diff --git a/htdocs/compta/cashcontrol/cashcontrol_list.php b/htdocs/compta/cashcontrol/cashcontrol_list.php index 219a8d987af..11c14218440 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_list.php +++ b/htdocs/compta/cashcontrol/cashcontrol_list.php @@ -18,7 +18,7 @@ /** * \file cashcontrol_list.php - * \ingroup bank + * \ingroup cashdesk|takepos * \brief List page for cashcontrol */ diff --git a/htdocs/compta/cashcontrol/class/cashcontrol.class.php b/htdocs/compta/cashcontrol/class/cashcontrol.class.php index 071be33fd1f..d0a10ec94da 100644 --- a/htdocs/compta/cashcontrol/class/cashcontrol.class.php +++ b/htdocs/compta/cashcontrol/class/cashcontrol.class.php @@ -20,7 +20,7 @@ /** * \file cashcontrol/class/cashcontrol.class.php - * \ingroup bank + * \ingroup cashdesk|takepos * \brief This file is CRUD class file (Create/Read/Update/Delete) for cash fence table */ diff --git a/htdocs/compta/cashcontrol/report.php b/htdocs/compta/cashcontrol/report.php index a2187e3b344..749d112f711 100644 --- a/htdocs/compta/cashcontrol/report.php +++ b/htdocs/compta/cashcontrol/report.php @@ -25,13 +25,14 @@ /** * \file htdocs/compta/cashcontrol/report.php - * \ingroup pos + * \ingroup cashdesk|takepos * \brief List of bank transactions */ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $id = GETPOST('id','int'); @@ -94,9 +95,9 @@ $sql.=" OR b.fk_account=".$conf->global->CASHDESK_ID_BANKACCOUNT_CB; $sql.=" OR b.fk_account=".$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE; $sql.=")"; */ -$sql = "SELECT f.facnumber, pf.amount as total, cp.code"; -$sql.= " FROM ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."paiement as p, ".MAIN_DB_PREFIX."c_paiement as cp"; -$sql.= " WHERE pf.fk_facture = f.rowid AND p.rowid = pf.fk_paiement AND cp.id = p.fk_paiement"; +$sql = "SELECT f.rowid as facid, f.facnumber, f.datef as do, pf.amount as amount, b.fk_account as bankid, cp.code"; +$sql.= " FROM ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."paiement as p, ".MAIN_DB_PREFIX."c_paiement as cp, ".MAIN_DB_PREFIX."bank as b"; +$sql.= " WHERE pf.fk_facture = f.rowid AND p.rowid = pf.fk_paiement AND cp.id = p.fk_paiement AND p.fk_bank = b.rowid"; $sql.= " AND f.module_source = '".$db->escape($posmodule)."'"; $sql.= " AND f.pos_source = '".$db->escape($terminalid)."'"; $sql.= " AND f.paye = 1"; @@ -125,6 +126,12 @@ if ($resql) else print $langs->trans("CashControl")." - ".$langs->trans("Draft"); print "
".$langs->trans("DateCreationShort").": ".dol_print_date($cashcontrol->date_creation, 'dayhour').""; + $invoicetmp = new Facture($db); + + + print "

"; + print $langs->trans("InitialBankBalance").' - '.$langs->trans("Cash")." : ".price($cashcontrol->opening); + print "

"; print '
'; print ''."\n"; @@ -138,55 +145,17 @@ if ($resql) print_liste_field_titre($arrayfields['b.credit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder); print "\n"; - $balance = 0; // For balance - $balancecalculated = false; $posconciliatecol = 0; // Loop on each record $sign = 1; - $first='yes'; + $cash=$bank=$cheque=$other=0; $totalarray=array(); while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); - // If we are in a situation where we need/can show balance, we calculate the start of balance - if (! $balancecalculated && (! empty($arrayfields['balancebefore']['checked']) || ! empty($arrayfields['balance']['checked'])) && $mode_balance_ok) - { - if (! $account) - { - dol_print_error('', 'account is not defined but $mode_balance_ok is true'); - exit; - } - - // Loop on each record before - $sign = 1; - $i = 0; - $sqlforbalance='SELECT SUM(b.amount) as balance'; - $sqlforbalance.= " FROM "; - $sqlforbalance.= " ".MAIN_DB_PREFIX."bank_account as ba,"; - $sqlforbalance.= " ".MAIN_DB_PREFIX."bank as b"; - $sqlforbalance.= " WHERE b.fk_account = ba.rowid"; - $sqlforbalance.= " AND ba.entity IN (".getEntity('bank_account').")"; - $sqlforbalance.= " AND b.fk_account = ".$account; - $sqlforbalance.= " AND (b.datev < '" . $db->idate($db->jdate($objp->dv)) . "' OR (b.datev = '" . $db->idate($db->jdate($objp->dv)) . "' AND (b.dateo < '".$db->idate($db->jdate($objp->do))."' OR (b.dateo = '".$db->idate($db->jdate($objp->do))."' AND b.rowid < ".$objp->rowid."))))"; - $resqlforbalance = $db->query($sqlforbalance); - if ($resqlforbalance) - { - $objforbalance = $db->fetch_object($resqlforbalance); - if ($objforbalance) - { - $balance = $objforbalance->balance; - } - } - else dol_print_error($db); - - $balancecalculated=true; - } - - $balance = price2num($balance + ($sign * $objp->amount),'MT'); - if (empty($cachebankaccount[$objp->bankid])) { $bankaccounttmp = new Account($db); @@ -198,22 +167,22 @@ if ($resql) { $bankaccount = $cachebankaccount[$objp->bankid]; } - print ''; - if ($first == "yes") + /*if ($first == "yes") { print ''; print ''; print ''; print ''; $first = "no"; - } + }*/ print ''; // Ref print ''; if (! $i) $totalarray['nbfield']++; @@ -227,9 +196,10 @@ if ($resql) // Bank account print '\n"; if (! $i) $totalarray['nbfield']++; @@ -287,6 +257,7 @@ if ($resql) print $langs->trans("Cash").": ".price($cash)."

"; print $langs->trans("PaymentTypeCB").": ".price($bank)."

"; print $langs->trans("PaymentTypeCHQ").": ".price($cheque)."

"; + if ($other) print $langs->trans("Other").": ".price($other)."

"; print ""; //save totals to DB
'.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").''.price($cashcontrol->opening).'
'; - print $objp->facnumber; + $invoicetmp->fetch($objp->facid); + print $invoicetmp->getNomUrl(1); print ''; print $bankaccount->getNomUrl(1); - if ($sql.=$conf->global->CASHDESK_ID_BANKACCOUNT_CASH==$bankaccount->id) $cash+=$objp->amount; - if ($sql.=$conf->global->CASHDESK_ID_BANKACCOUNT_CB==$bankaccount->id) $bank+=$objp->amount; - if ($sql.=$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE==$bankaccount->id) $cheque+=$objp->amount; + if ($conf->global->CASHDESK_ID_BANKACCOUNT_CASH==$bankaccount->id) $cash+=$objp->amount; + elseif ($conf->global->CASHDESK_ID_BANKACCOUNT_CB==$bankaccount->id) $bank+=$objp->amount; + elseif ($conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE==$bankaccount->id) $cheque+=$objp->amount; + else $other+=$objp->amount; print "