Fix preview of receipt for the payment mode

This commit is contained in:
Laurent Destailleur 2023-03-26 03:14:18 +02:00
parent 3613008362
commit 91e680ba2a

View File

@ -270,42 +270,57 @@ if (isModEnabled('multicurrency') && $_SESSION["takeposcustomercurrency"] != ""
echo '</td></tr>'; echo '</td></tr>';
} }
if ($conf->global->TAKEPOS_PRINT_PAYMENT_METHOD) { if (getDolGlobalString('TAKEPOS_PRINT_PAYMENT_METHOD')) {
$sql = "SELECT p.pos_change as pos_change, p.datep as date, p.fk_paiement, p.num_paiement as num, pf.amount as amount, pf.multicurrency_amount,"; if (empty($facid)) {
$sql .= " cp.code"; // Case of specimen
$sql .= " FROM ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."paiement as p"; echo '<tr>';
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as cp ON p.fk_paiement = cp.id"; echo '<td class="right">';
$sql .= " WHERE pf.fk_paiement = p.rowid AND pf.fk_facture = ".((int) $facid); echo $langs->transnoentitiesnoconv("PaymentTypeShortLIQ");
$sql .= " ORDER BY p.datep"; echo '</td>';
$resql = $db->query($sql); echo '<td class="right">';
if ($resql) { $amount_payment = 0;
$num = $db->num_rows($resql); echo price($amount_payment, 1, '', 1, - 1, - 1, $conf->currency);
$i = 0; echo '</td>';
while ($i < $num) { echo '</tr>';
$row = $db->fetch_object($resql); } else {
echo '<tr>'; $sql = "SELECT p.pos_change as pos_change, p.datep as date, p.fk_paiement, p.num_paiement as num, pf.amount as amount, pf.multicurrency_amount,";
echo '<td class="right">'; $sql .= " cp.code";
echo $langs->transnoentitiesnoconv("PaymentTypeShort".$row->code); $sql .= " FROM ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."paiement as p";
echo '</td>'; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as cp ON p.fk_paiement = cp.id";
echo '<td class="right">'; $sql .= " WHERE pf.fk_paiement = p.rowid AND pf.fk_facture = ".((int) $facid);
$amount_payment = (isModEnabled('multicurrency') && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount; $sql .= " ORDER BY p.datep";
if ($row->code == "LIQ") {
$amount_payment = $amount_payment + $row->pos_change; // Show amount with excess received if is cash payment $resql = $db->query($sql);
} if ($resql) {
echo price($amount_payment, 1, '', 1, - 1, - 1, $conf->currency); $num = $db->num_rows($resql);
echo '</td>';
echo '</tr>'; $i = 0;
if ($row->code == "LIQ" && $row->pos_change > 0) { // Print change only in cash payments while ($i < $num) {
$row = $db->fetch_object($resql);
echo '<tr>'; echo '<tr>';
echo '<td class="right">'; echo '<td class="right">';
echo $langs->trans("Change"); echo $langs->transnoentitiesnoconv("PaymentTypeShort".$row->code);
echo '</td>'; echo '</td>';
echo '<td class="right">'; echo '<td class="right">';
echo price($row->pos_change, 1, '', 1, - 1, - 1, $conf->currency); $amount_payment = (isModEnabled('multicurrency') && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount;
if ($row->code == "LIQ") {
$amount_payment = $amount_payment + $row->pos_change; // Show amount with excess received if is cash payment
}
echo price($amount_payment, 1, '', 1, - 1, - 1, $conf->currency);
echo '</td>'; echo '</td>';
echo '</tr>'; echo '</tr>';
if ($row->code == "LIQ" && $row->pos_change > 0) { // Print change only in cash payments
echo '<tr>';
echo '<td class="right">';
echo $langs->trans("Change");
echo '</td>';
echo '<td class="right">';
echo price($row->pos_change, 1, '', 1, - 1, - 1, $conf->currency);
echo '</td>';
echo '</tr>';
}
$i++;
} }
$i++;
} }
} }
} }