26if (!defined(
'NOREQUIRESOC')) {
27 define(
'NOREQUIRESOC',
'1');
29if (!defined(
'NOTOKENRENEWAL')) {
30 define(
'NOTOKENRENEWAL',
'1');
32if (!defined(
'NOREQUIREMENU')) {
33 define(
'NOREQUIREMENU',
'1');
35if (!defined(
'NOREQUIREHTML')) {
36 define(
'NOREQUIREHTML',
'1');
40require
'../main.inc.php';
50$langs->load(
'compta');
61$amountPayment =
GETPOST(
'amountPayment');
62$amounts =
GETPOST(
'amounts',
'array');
64$currentInvId =
GETPOST(
'imgClicked');
67$amountPayment = $amountPayment !=
'' ? (is_numeric(
price2num($amountPayment)) ?
price2num($amountPayment) :
'') :
'';
71$multicurrencyAmountPayment =
GETPOST(
'multicurrency_amountPayment');
72$multicurrencyAmounts =
GETPOST(
'multicurrency_amounts',
'array');
73$multicurrencyRemains =
GETPOST(
'multicurrency_remains');
76$multicurrencyAmountPayment = $multicurrencyAmountPayment !=
'' ? (is_numeric(
price2num($multicurrencyAmountPayment)) ?
price2num($multicurrencyAmountPayment) :
'') :
'';
80 if (is_array($multicurrencyAmounts)) {
81 foreach ($multicurrencyAmounts as $key => $value) {
83 $multicurrencyAmounts[$key] = $value;
85 unset($multicurrencyAmounts[$key]);
90 if (is_array($multicurrencyRemains)) {
91 foreach ($multicurrencyRemains as $key => $value) {
93 $multicurrencyRemains[$key] = ($invoice_type == 2 ? -1 : 1) * (
float) $value;
95 unset($multicurrencyRemains[$key]);
98 } elseif ($multicurrencyRemains) {
99 $multicurrencyRemains = array(
price2num($multicurrencyRemains));
101 $multicurrencyRemains = array();
105 $result = ($multicurrencyAmountPayment !=
'') ? ((
float) $multicurrencyAmountPayment - array_sum($multicurrencyAmounts)) : array_sum($multicurrencyAmounts);
106 $toJsonArray = array();
107 $totalRemaining =
price2num(array_sum($multicurrencyRemains));
108 $toJsonArray[
'label'] = $multicurrencyAmountPayment ==
'' ?
'' : $langs->transnoentities(
'RemainingAmountPayment');
111 $currentAmount = $multicurrencyAmounts[
'amount_'.$currentInvId];
112 $currentRemain = $multicurrencyRemains[
'remain_'.$currentInvId];
115 if ($multicurrencyAmountPayment ==
'') {
117 $amountExists = array_key_exists(
'amount_'.$currentInvId, $multicurrencyAmounts);
119 $remainAmount = $currentRemain - $currentAmount;
120 $result += $remainAmount;
121 $currentAmount += $remainAmount;
123 $currentAmount = $currentRemain;
124 $result += $currentRemain;
132 $amountToBreakdown = ($result - $currentRemain >= 0 ?
134 $currentRemain + ($result - $currentRemain));
135 $currentAmount = $amountToBreakdown;
136 $result -= $amountToBreakdown;
139 $toJsonArray[
'multicurrency_amount_'.$currentInvId] =
price2num($currentAmount);
142 $toJsonArray[
'multicurrency_makeRed'] = ($totalRemaining <
price2num($result) ||
price2num($result) < 0);
143 $toJsonArray[
'multicurrency_result'] =
price($result);
144 $toJsonArray[
'multicurrency_resultnum'] =
price2num($result);
147 if (is_array($amounts)) {
148 foreach ($amounts as $key => $value) {
150 $amounts[$key] = $value;
152 unset($amounts[$key]);
157 if (is_array($remains)) {
158 foreach ($remains as $key => $value) {
160 $remains[$key] = ($invoice_type == 2 ? -1 : 1) * (
float) $value;
162 unset($remains[$key]);
165 } elseif ($remains) {
172 $result = ($amountPayment !=
'') ? ((
float) $amountPayment - array_sum($amounts)) : array_sum($amounts);
173 $toJsonArray = array();
174 $totalRemaining =
price2num(array_sum($remains));
175 $toJsonArray[
'label'] = $amountPayment ==
'' ?
'' : $langs->transnoentities(
'RemainingAmountPayment');
178 $currentAmount = $amounts[
'amount_'.$currentInvId];
179 $currentRemain = $remains[
'remain_'.$currentInvId];
182 if ($amountPayment ==
'') {
184 $amountExists = array_key_exists(
'amount_'.$currentInvId, $amounts);
186 $remainAmount = $currentRemain - $currentAmount;
187 $result += $remainAmount;
188 $currentAmount += $remainAmount;
190 $currentAmount = $currentRemain;
191 $result += $currentRemain;
199 $amountToBreakdown = ($result - $currentRemain >= 0 ?
201 $currentRemain + ($result - $currentRemain));
202 $currentAmount = $amountToBreakdown;
203 $result -= $amountToBreakdown;
206 $toJsonArray[
'amount_'.$currentInvId] =
price2num($currentAmount);
209 $toJsonArray[
'makeRed'] = ($totalRemaining <
price2num($result) ||
price2num($result) < 0);
210 $toJsonArray[
'result'] =
price($result);
211 $toJsonArray[
'resultnum'] =
price2num($result);
215echo json_encode($toJsonArray);
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.