56 |
$_POST["reyear"])); |
$_POST["reyear"])); |
57 |
|
|
58 |
$paiement_id = 0; |
$paiement_id = 0; |
59 |
|
$total = 0; |
60 |
$amounts = array(); |
$amounts = array(); |
61 |
foreach ($_POST as $key => $value) |
foreach ($_POST as $key => $value) |
62 |
{ |
{ |
65 |
$other_facid = substr($key,7); |
$other_facid = substr($key,7); |
66 |
|
|
67 |
$amounts[$other_facid] = $_POST[$key]; |
$amounts[$other_facid] = $_POST[$key]; |
68 |
|
$total = $total + $amounts[$other_facid]; |
69 |
} |
} |
70 |
} |
} |
71 |
|
|
72 |
$db->begin(); |
if ($total > 0) |
73 |
|
{ |
|
// Creation de la ligne paiement |
|
|
$paiement = new Paiement($db); |
|
|
$paiement->datepaye = $datepaye; |
|
|
$paiement->amounts = $amounts; // Tableau de montant |
|
|
$paiement->paiementid = $_POST["paiementid"]; |
|
|
$paiement->num_paiement = $_POST["num_paiement"]; |
|
|
$paiement->note = $_POST["comment"]; |
|
|
|
|
|
$paiement_id = $paiement->create($user); |
|
74 |
|
|
75 |
if ($paiement_id > 0) |
$db->begin(); |
76 |
{ |
|
77 |
// On determine le montant total du paiement |
// Creation de la ligne paiement |
78 |
$total=0; |
$paiement = new Paiement($db); |
79 |
foreach ($paiement->amounts as $key => $value) |
$paiement->datepaye = $datepaye; |
80 |
{ |
$paiement->amounts = $amounts; // Tableau de montant |
81 |
$facid = $key; |
$paiement->paiementid = $_POST["paiementid"]; |
82 |
$value = trim($value); |
$paiement->num_paiement = $_POST["num_paiement"]; |
83 |
$amount = round(ereg_replace(",",".",$value), 2); |
$paiement->note = $_POST["comment"]; |
|
if (is_numeric($amount)) |
|
|
{ |
|
|
$total += $amount; |
|
|
} |
|
|
} |
|
84 |
|
|
85 |
if ($conf->banque->enabled && $_POST["accountid"]) |
$paiement_id = $paiement->create($user); |
|
{ |
|
|
// Insertion dans llx_bank |
|
|
$label = "Règlement facture"; |
|
|
$acc = new Account($db, $_POST["accountid"]); |
|
|
//paiementid contient "CHQ ou VIR par exemple" |
|
|
$bank_line_id = $acc->addline($paiement->datepaye, |
|
|
$paiement->paiementid, |
|
|
$label, |
|
|
$total, |
|
|
$paiement->num_paiement, |
|
|
'', |
|
|
$user); |
|
|
|
|
86 |
|
|
87 |
// Mise a jour fk_bank dans llx_paiement. |
if ($paiement_id > 0) |
88 |
// On connait ainsi le paiement qui a généré l'écriture bancaire |
{ |
89 |
if ($bank_line_id > 0) |
// On determine le montant total du paiement |
90 |
|
$total=0; |
91 |
|
foreach ($paiement->amounts as $key => $value) |
92 |
{ |
{ |
93 |
$paiement->update_fk_bank($bank_line_id); |
$facid = $key; |
94 |
|
$value = trim($value); |
95 |
// Mise a jour liens (pour chaque facture concernées par le paiement) |
$amount = round(ereg_replace(",",".",$value), 2); |
96 |
foreach ($paiement->amounts as $key => $value) |
if (is_numeric($amount)) |
97 |
{ |
{ |
98 |
$facid = $key; |
$total += $amount; |
|
$fac = new Facture($db); |
|
|
$fac->fetch($facid); |
|
|
$fac->fetch_client(); |
|
|
$acc->add_url_line($bank_line_id, |
|
|
$paiement_id, |
|
|
DOL_URL_ROOT.'/compta/paiement/fiche.php?id=', |
|
|
"(paiement)"); |
|
|
$acc->add_url_line($bank_line_id, |
|
|
$fac->client->id, |
|
|
DOL_URL_ROOT.'/compta/fiche.php?socid=', |
|
|
$fac->client->nom); |
|
99 |
} |
} |
|
|
|
100 |
} |
} |
101 |
else |
|
102 |
|
if ($conf->banque->enabled && $_POST["accountid"]) |
103 |
{ |
{ |
104 |
$error++; |
// Insertion dans llx_bank |
105 |
} |
$label = "Règlement facture"; |
106 |
} |
$acc = new Account($db, $_POST["accountid"]); |
107 |
|
//paiementid contient "CHQ ou VIR par exemple" |
108 |
} |
$bank_line_id = $acc->addline($paiement->datepaye, |
109 |
else |
$paiement->paiementid, |
110 |
{ |
$label, |
111 |
$error++; |
$total, |
112 |
} |
$paiement->num_paiement, |
113 |
|
'', |
114 |
|
$user); |
115 |
|
|
116 |
|
|
117 |
if ($error == 0) |
// Mise a jour fk_bank dans llx_paiement. |
118 |
{ |
// On connait ainsi le paiement qui a généré l'écriture bancaire |
119 |
|
if ($bank_line_id > 0) |
120 |
|
{ |
121 |
|
$paiement->update_fk_bank($bank_line_id); |
122 |
|
|
123 |
|
// Mise a jour liens (pour chaque facture concernées par le paiement) |
124 |
|
foreach ($paiement->amounts as $key => $value) |
125 |
|
{ |
126 |
|
$facid = $key; |
127 |
|
$fac = new Facture($db); |
128 |
|
$fac->fetch($facid); |
129 |
|
$fac->fetch_client(); |
130 |
|
$acc->add_url_line($bank_line_id, |
131 |
|
$paiement_id, |
132 |
|
DOL_URL_ROOT.'/compta/paiement/fiche.php?id=', |
133 |
|
"(paiement)"); |
134 |
|
$acc->add_url_line($bank_line_id, |
135 |
|
$fac->client->id, |
136 |
|
DOL_URL_ROOT.'/compta/fiche.php?socid=', |
137 |
|
$fac->client->nom); |
138 |
|
} |
139 |
|
|
140 |
|
} |
141 |
|
else |
142 |
|
{ |
143 |
|
$error++; |
144 |
|
} |
145 |
|
} |
146 |
|
|
147 |
|
} |
148 |
|
else |
149 |
|
{ |
150 |
|
$error++; |
151 |
|
} |
152 |
|
|
|
$loc = DOL_URL_ROOT.'/compta/paiement/fiche.php?id='.$paiement_id; |
|
|
|
|
|
$db->commit(); |
|
153 |
|
|
154 |
Header("Location: $loc"); |
if ($error == 0) |
155 |
|
{ |
156 |
|
$loc = DOL_URL_ROOT.'/compta/paiement/fiche.php?id='.$paiement_id; |
157 |
|
$db->commit(); |
158 |
|
Header("Location: $loc"); |
159 |
|
} |
160 |
|
else |
161 |
|
{ |
162 |
|
// Il y a eu erreur |
163 |
|
$db->rollback(); |
164 |
|
$fiche_erreur_message = $langs->trans("ErrorUnknown"); |
165 |
|
} |
166 |
} |
} |
167 |
else |
else |
168 |
{ |
{ |
169 |
// Il y a eu erreur |
$fiche_erreur_message = '<div class="error">Aucun montants indiqués</div>'; |
|
$db->rollback(); |
|
|
$fiche_erreur_message = $langs->trans("ErrorUnknown"); |
|
170 |
} |
} |
|
|
|
171 |
} |
} |
172 |
else |
else |
173 |
{ |
{ |