コード例 #1
0
 /**
  * Insert into JRNX the No Deductible amount and into Analytic Accountancy for the ND VAT
  * @param Acc_Compute $p_nd_amount content ND amount
  * @param Fiche $p_fiche Card of the Service
  * @param type $p_tva_both  0 if TVA is normal or 1 if on both side
  * @param type $p_tot_debit total debit
  * @param $p_acc_operation Acc_Operation for inserting into jrnx
  * @param $p_group group for AC
  * @param $idx row number
  * 
  * @see Acc_Ledger_Purchase::insert
  */
 private function insert_no_deductible(Acc_Compute $p_nd_amount, Fiche $p_fiche, $p_tva_both, &$p_tot_debit, Acc_Operation $p_acc_operation, $p_group, $idx)
 {
     global $g_parameter;
     if ($p_acc_operation->jrnx_id == 0) {
         throw new Exception(__FILE__ . __LINE__ . 'invalid acc_operation.j_id');
     }
     $source_j_id = $p_acc_operation->jrnx_id;
     /*
      * Save all the no deductible
      *     ATTR_DEF_ACCOUNT_ND_TVA,ATTR_DEF_ACCOUNT_ND_TVA_ND,ATTR_DEF_ACCOUNT_ND_PERSO,ATTR_DEF_ACCOUNT_ND
      */
     if ($p_nd_amount->amount_nd_rate != 0) {
         $dna_default = new Acc_Parm_Code($this->db, 'DNA');
         /* save op. */
         if (!$p_fiche->empty_attribute(ATTR_DEF_ACCOUNT_ND)) {
             $dna = $p_fiche->strAttribut(ATTR_DEF_ACCOUNT_ND);
         } else {
             $dna = $dna_default->p_value;
         }
         $dna = $dna == '' ? $dna_default->p_value : $dna;
         $p_acc_operation->type = 'd';
         $p_acc_operation->amount = $p_nd_amount->amount_nd;
         $p_acc_operation->poste = $dna;
         $p_acc_operation->qcode = '';
         $p_acc_operation->desc = $this->find_label($dna) . " ND " . $p_fiche->strAttribut(ATTR_DEF_QUICKCODE);
         if ($p_nd_amount->amount_nd > 0) {
             $p_tot_debit = bcadd($p_tot_debit, $p_nd_amount->amount_nd);
         }
         $j_id = $p_acc_operation->insert_jrnx();
     }
     /*
      * ATTR_DEF_ACCOUNT_ND_PERSO
      */
     if ($p_nd_amount->amount_perso != 0) {
         $dna_default = new Acc_Parm_Code($this->db, 'DEP_PRIV');
         /* save op. */
         $p_acc_operation->type = 'd';
         if (!$p_fiche->empty_attribute(ATTR_DEF_ACCOUNT_ND_PERSO)) {
             $dna = $p_fiche->strAttribut(ATTR_DEF_ACCOUNT_ND_PERSO);
         } else {
             $dna = $dna_default->p_value;
         }
         $dna = $dna == '' ? $dna_default->p_value : $dna;
         $p_acc_operation->amount = $p_nd_amount->amount_perso;
         $p_acc_operation->poste = $dna;
         $p_acc_operation->qcode = '';
         $p_acc_operation->desc = $this->find_label($dna) . " ND_PRIV " . $p_fiche->strAttribut(ATTR_DEF_QUICKCODE);
         if ($p_nd_amount->amount_perso > 0) {
             $p_tot_debit = bcadd($p_tot_debit, $p_nd_amount->amount_perso);
         }
         $j_id = $p_acc_operation->insert_jrnx();
     }
     if ($p_nd_amount->nd_vat != 0) {
         $dna_default = new Acc_Parm_Code($this->db, 'TVA_DNA');
         /* save op. */
         $p_acc_operation->type = 'd';
         $p_acc_operation->qcode = '';
         if (!$p_fiche->empty_attribute(ATTR_DEF_ACCOUNT_ND_TVA_ND)) {
             $dna = $p_fiche->strAttribut(ATTR_DEF_ACCOUNT_ND_TVA_ND);
         } else {
             $dna = $dna_default->p_value;
         }
         $dna = $dna == '' ? $dna_default->p_value : $dna;
         $p_acc_operation->amount = $p_nd_amount->nd_vat;
         $p_acc_operation->poste = $dna;
         $p_acc_operation->desc = $this->find_label($dna) . " ND_TVA " . $p_fiche->strAttribut(ATTR_DEF_QUICKCODE);
         $j_id = $p_acc_operation->insert_jrnx();
         if ($g_parameter->MY_ANALYTIC != "nu") {
             $op = new Anc_Operation($this->db);
             $op->oa_group = $p_group;
             $op->j_id = $j_id;
             $op->oa_date = $p_acc_operation->date;
             $op->oa_debit = 't';
             $op->oa_description = sql_string('ND_TVA');
             $op->oa_jrnx_id_source = $source_j_id;
             $op->save_form_plan_vat_nd($_POST, $idx, $j_id, $p_nd_amount->nd_vat, $p_acc_operation->jrnx_id);
         }
         if ($p_nd_amount->nd_vat > 0) {
             $p_tot_debit = bcadd($p_tot_debit, $p_nd_amount->nd_vat);
         }
     }
     if ($p_nd_amount->nd_ded_vat != 0) {
         $dna_default = new Acc_Parm_Code($this->db, 'TVA_DED_IMPOT');
         /* save op. */
         if (!$p_fiche->empty_attribute(ATTR_DEF_ACCOUNT_ND_TVA)) {
             $dna = $p_fiche->strAttribut(ATTR_DEF_ACCOUNT_ND_TVA);
         } else {
             $dna = $dna_default->p_value;
         }
         $dna = $dna == '' ? $dna_default->value : $dna;
         $p_acc_operation->type = 'd';
         $p_acc_operation->qcode = '';
         $p_acc_operation->amount = $p_nd_amount->nd_ded_vat;
         $p_acc_operation->poste = $dna;
         $p_acc_operation->desc = $this->find_label($dna) . " DED_TVA " . $p_fiche->strAttribut(ATTR_DEF_QUICKCODE);
         if ($p_nd_amount->nd_ded_vat > 0) {
             $p_tot_debit = bcadd($p_tot_debit, $p_nd_amount->nd_ded_vat);
         }
         $j_id = $p_acc_operation->insert_jrnx();
         if ($g_parameter->MY_ANALYTIC != "nu") {
             $op = new Anc_Operation($this->db);
             $op->oa_group = $p_group;
             $op->j_id = $j_id;
             $op->oa_date = $p_acc_operation->date;
             $op->oa_debit = 't';
             $op->oa_description = sql_string('DED_TVA ');
             $op->oa_jrnx_id_source = $source_j_id;
             $op->save_form_plan_vat_nd($_POST, $idx, $j_id, $p_nd_amount->nd_ded_vat);
         }
     }
 }