/** * 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); } } }