From 341bc115eef45077953d119b259afadc37447976 Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Wed, 14 Dec 2022 15:43:34 +0100 Subject: [PATCH 1/2] NEW accountancy bank journal when deposits are just payments is enabled --- htdocs/accountancy/journal/bankjournal.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 5fb201ebfdc..92fdfea2f49 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -4,7 +4,7 @@ * Copyright (C) 2011 Juanjo Menent * Copyright (C) 2012 Regis Houssin * Copyright (C) 2013 Christophe Battarel - * Copyright (C) 2013-2021 Alexandre Spangaro + * Copyright (C) 2013-2022 Open-DSI * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2017-2021 Frédéric France @@ -1415,9 +1415,15 @@ function getSourceDocRef($val, $typerecord) $sqlmid = ''; if ($typerecord == 'payment') { - $sqlmid = 'SELECT payfac.fk_facture as id, f.ref as ref'; - $sqlmid .= " FROM ".MAIN_DB_PREFIX."paiement_facture as payfac, ".MAIN_DB_PREFIX."facture as f"; - $sqlmid .= " WHERE payfac.fk_facture = f.rowid AND payfac.fk_paiement=".((int) $val["paymentid"]); + $sqlmid .= "SELECT payfac.fk_facture as id, f.ref as ref"; + $sqlmid .= " FROM ".$db->prefix()."paiement_facture as payfac"; + if (getDolGlobalInt('FACTURE_DEPOSITS_ARE_JUST_PAYMENTS')) { + $sqlmid .= " INNER JOIN ".$db->prefix()."societe_remise_except as sre ON sre.fk_facture_source = payfac.fk_facture"; + $sqlmid .= " INNER JOIN ".$db->prefix()."facture as f ON f.rowid = sre.fk_facture"; + } else { + $sqlmid .= " INNER JOIN ".$db->prefix()."facture as f ON f.rowid = payfac.fk_facture"; + } + $sqlmid .= " WHERE payfac.fk_paiement=".((int) $val['paymentid']); $ref = $langs->transnoentitiesnoconv("Invoice"); } elseif ($typerecord == 'payment_supplier') { $sqlmid = 'SELECT payfac.fk_facturefourn as id, f.ref'; From b0e4b4b18e23a04f2806c8b626905f95360096f3 Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Wed, 14 Dec 2022 17:30:42 +0100 Subject: [PATCH 2/2] FIX sql when discount is applied --- htdocs/accountancy/journal/bankjournal.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 92fdfea2f49..e63101594cb 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -1415,15 +1415,19 @@ function getSourceDocRef($val, $typerecord) $sqlmid = ''; if ($typerecord == 'payment') { - $sqlmid .= "SELECT payfac.fk_facture as id, f.ref as ref"; - $sqlmid .= " FROM ".$db->prefix()."paiement_facture as payfac"; if (getDolGlobalInt('FACTURE_DEPOSITS_ARE_JUST_PAYMENTS')) { - $sqlmid .= " INNER JOIN ".$db->prefix()."societe_remise_except as sre ON sre.fk_facture_source = payfac.fk_facture"; - $sqlmid .= " INNER JOIN ".$db->prefix()."facture as f ON f.rowid = sre.fk_facture"; + $sqlmid = "SELECT payfac.fk_facture as id, ".$db->ifsql('f1.rowid IS NULL', 'f.ref', 'f1.ref')." as ref"; + $sqlmid .= " FROM ".$db->prefix()."paiement_facture as payfac"; + $sqlmid .= " LEFT JOIN ".$db->prefix()."facture as f ON f.rowid = payfac.fk_facture"; + $sqlmid .= " LEFT JOIN ".$db->prefix()."societe_remise_except as sre ON sre.fk_facture_source = payfac.fk_facture"; + $sqlmid .= " LEFT JOIN ".$db->prefix()."facture as f1 ON f1.rowid = sre.fk_facture"; + $sqlmid .= " WHERE payfac.fk_paiement=".((int) $val['paymentid']); } else { + $sqlmid = "SELECT payfac.fk_facture as id, f.ref as ref"; + $sqlmid .= " FROM ".$db->prefix()."paiement_facture as payfac"; $sqlmid .= " INNER JOIN ".$db->prefix()."facture as f ON f.rowid = payfac.fk_facture"; + $sqlmid .= " WHERE payfac.fk_paiement=".((int) $val['paymentid']); } - $sqlmid .= " WHERE payfac.fk_paiement=".((int) $val['paymentid']); $ref = $langs->transnoentitiesnoconv("Invoice"); } elseif ($typerecord == 'payment_supplier') { $sqlmid = 'SELECT payfac.fk_facturefourn as id, f.ref';