FactureManager

🔧 __construct

function __construct($id_type, $id_objet, $contexte = "",$handleGlobalEvent = null) { parent::__construct($id_type, $id_objet, $contexte, $handleGlobalEvent); }

🔧 __construct

function __construct($id_type, $id_objet, $contexte = "",$handleGlobalEvent = null) { parent::__construct($id_type, $id_objet, $contexte, $handleGlobalEvent); }

🔧 __construct

Constructor
function __construct($id_type, $id_objet, $contexte = "",$handleGlobalEvent = null) { parent::__construct($id_type, $id_objet, $contexte, $handleGlobalEvent); }

⚙️ Parameters

⚠️ Throws


🔧 initialize

Initialize the document
function initialize($contexte, $handleGlobalEvent) { try { $this->eventHandler = isset($handleGlobalEven) ? $this->handleFactureEvent($handleGlobalEvent) : []; $this->facture = $this->document; // on force l'attribution de la facture à un groupe - quoi qu'il se passe - le groupe de l'utilisateur connecté. $this->forceGroupeFacture(); $this->client = fwc7_data_objet_att('',$this->getModuleCodes()["setting_client_id_type_"],$this->document[$this->getModuleCodes()['id_client']],[]); $this->devis = fwc7_data_objet_att('',$this->getModuleCodes()["setting_devis_id_type_"],$this->document[$this->getModuleCodes()['att_devis']],[]); /// LINE_FIELD_INPUTS $this->line_field_inputs = [ 'lig_produit_id_designation_metier', 'lig_produit_quantite', // ... (truncated)

⚙️ Parameters


🔧 forceGroupeFacture

function forceGroupeFacture():void{ if($this->facture[$this->getModuleCodes()['id_groupe_franchise']] !== '' && !is_null($this->facture[$this->getModuleCodes()['id_groupe_franchise']])){ fwc7_modify_att_edit('',$this->id_type,$this->id_objet,[ $this->getModuleCodes()['id_groupe_franchise']=>$this->identification['intersectGroup'][0] ],'edit','Mise à jour du groupe Franchise'); // reload this-facture. $this->facture = fwc7_data_objet_att('',$this->id_type,$this->id_objet,[],true); } }

↩️ Returns

(void)

🔧 getFactureCommissionRate

goal, récupère sur la cooperative associé au Devis, le taux de comission à appliquer sur la Facture
function getFactureCommissionRate() { $cooperative = $this->getCooperative(); $is_commission_applied_field = fwp7_param_template_att_get_number('', $this->getModuleCodes()["setting_devis_id_"], 'apply_commission'); $is_commission_applied = boolval($cooperative[$is_commission_applied_field]); $id_commission_field = fwp7_param_template_att_get_number('', $this->getModuleCodes()["setting_devis_id_"], 'taux_commission'); if($is_commission_applied){ $commission_rate = $cooperative[$id_commission_field] ? floatval($cooperative[$id_commission_field]) : 0; }else{ $commission_rate = 0; } // ... (truncated)

↩️ Returns

(float|int)

🔧 getFieldsToSum

Get fields to sum for totals calculation
function getFieldsToSum(): array { return [ // set des totaux 'att_ttc_remise'=> 'document_calcul_euro_ttc_discount', // att7 'att_calcul_ht_remise'=>'document_calcul_euro_ttc_ht_discount', // att40 'att_remise_totht' => 'document_amount_total_discounted_ht', // att37 'att_remise_tottva' => 'document_amount_total_discounted_tva', // att39 'att_remise_totttc' => 'document_amount_total_discounted_ttc', // att38 'att_totht' => 'document_total_ht', 'att_tottva' => 'document_total_tva', 'att_totttc' => 'document_total_ttc', ]; }

↩️ Returns

(array) Fields to sum

🔧 applyCommissionRate

application d'une commission sur les totaux
function applyCommissionRate($lineItem, $commission_rate):lineItem_callback{ // commission rate to the total $lineItem->total->total_ht *= $commission_rate; $lineItem->total->tva_amount *= $commission_rate; $lineItem->total->total_ttc *= $commission_rate; // commission rate total_discounted $lineItem->total_discounted->total_ht *= $commission_rate; $lineItem->total_discounted->tva_amount *= $commission_rate; $lineItem->total_discounted->total_ttc *= $commission_rate; // Rounds $lineItem->total->total_ht = round($lineItem->total->total_ht, 2); $lineItem->total->tva_amount = round($lineItem->total->tva_amount, 2); $lineItem->total->total_ttc = round($lineItem->total->total_ttc, 2); // ... (truncated)

↩️ Returns

(void)

🔧 checkInvoicing_Metrics

retourne un entier qui indique le pourcentage d'avancement de la facturation d'une Commande
function checkInvoicing_Metrics():int{ return 100; }

↩️ Returns

(int)

🔧 checkPayment_Metrics

retourne un entier qui indique le pourcentage d'avancement deq paiementq de la facture .
function checkPayment_Metrics():array{ // check des lignes de règlements $list_rgl_facs = $this->reglements; $montant_regle = 0; foreach ($list_rgl_facs as $rgl_fac) { $montant_regle += $rgl_fac[$this->getModuleCodes()["setting_reglement_lig_montant"]]; } $est_reglee = 0; $reste=abs( $this->forceReload_Facture()[$this->getModuleCodes()['att_totttc']]-$montant_regle); if ($reste<1) {$est_reglee=1;} return [ // ... (truncated)

↩️ Returns

(int)

🔧 checkInvoicing_validationHandshake

goal : controle de cohérence d'une facture avant sa validation
function checkInvoicing_validationHandshake():bool { // fresh datas $this->facture = fwc7_data_objet_att('',$this->id_type,$this->id_objet,'',true); // check mandatory fields firsts. $list_mandatory_fields =[ 'nom_client', 'adr_fac', 'att_prefix', 'att_date_dmd', 'att_totht', 'att_delai_rgl', 'att_mode_rgl', // ... (truncated)

↩️ Returns

(void)

🔧 submit_VAT_Totals

Soumet et met à jour les totaux de TVA Cette fonction gère les lignes de TVA d'un document. Pour chaque taux de TVA standard (0%, 10%, 20%), elle vérifie si une ligne existe déjà dans le document et la crée, met à jour ou supprime selon le cas. La fonction consolide également les taux de TVA dupliqués en additionnant leurs montants. Le comportement est le suivant : - Si un taux de TVA a un montant > 0 dans les totaux : créer/restaurer et mettre à jour la ligne - Si un taux de TVA a un montant = 0 ou n'apparaît pas dans les totaux : supprimer la ligne Format attendu : [ 'tvas' => [ [ 'vat_rate' => '20', // Taux de TVA (0, 10, 20) 'amount_ht' => 1000, // Montant HT 'vat_amount_in_euro' => 200 // Montant de TVA ], ... ]
function submit_VAT_Totals(array $totals,$eventHandler = null): bool { // Recap TVA tlig = ?? $codes = $this->getModuleCodes(); $tlig_recap_tva = $codes["ligne_de_tvas"]; $lig_tva_tx = $codes["tva_tx"]; $lig_montant_ht_base = $codes["tva_base"]; $lig_montant_tva = $codes["tva_mnt"]; // TVA rates (0%, 10%, 20%) $tva_rates = ['0', '10', '20']; try { // Consolider les valeurs de TVA par rapport aux triages $consolidated_tvas = []; foreach ($totals['tvas'] as $triage) { // ... (truncated)

⚙️ Parameters

↩️ Returns

(bool) Retourne true en cas de succès, false en cas d'erreur

🔧 generateInfosDocument

Generate document info
function generateInfosDocument(): string { // TODO: Implement generateInfosDocument() method. }

↩️ Returns

(string) Formatted document info

🔧 generateFormattedAddress

Generate formatted address
function generateFormattedAddress(): string { // TODO: Implement generateFormattedAddress() method. }

↩️ Returns

(string) Formatted address

🔧 getAllContacts

Get all contacts
function getAllContacts() { // TODO: Implement getAllContacts() method. }

↩️ Returns

(array) List of contacts

🔧 handleInterlocuteur

Get l'interlocuteur conerné
function handleInterlocuteur() { // TODO: Implement handleInterlocuteur() method. }

↩️ Returns

(string) Interlocutor ID

🔧 getEntite

Get les informations de l'entité de type franhcise/agence concerné par l'obje
function getEntite() { // TODO: Implement getEntite() method. }

↩️ Returns

(array) Entity information