FIX Cash fence
This commit is contained in:
parent
527ef8bdc8
commit
8b1455f29e
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file cashcontrol_list.php
|
* \file cashcontrol_list.php
|
||||||
* \ingroup bank
|
* \ingroup cashdesk|takepos
|
||||||
* \brief List page for cashcontrol
|
* \brief List page for cashcontrol
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file cashcontrol/class/cashcontrol.class.php
|
* \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
|
* \brief This file is CRUD class file (Create/Read/Update/Delete) for cash fence table
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@ -25,13 +25,14 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/compta/cashcontrol/report.php
|
* \file htdocs/compta/cashcontrol/report.php
|
||||||
* \ingroup pos
|
* \ingroup cashdesk|takepos
|
||||||
* \brief List of bank transactions
|
* \brief List of bank transactions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.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/bank/class/account.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
|
|
||||||
$id = GETPOST('id','int');
|
$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.=" OR b.fk_account=".$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE;
|
||||||
$sql.=")";
|
$sql.=")";
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT f.facnumber, pf.amount as total, cp.code";
|
$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";
|
$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";
|
$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.module_source = '".$db->escape($posmodule)."'";
|
||||||
$sql.= " AND f.pos_source = '".$db->escape($terminalid)."'";
|
$sql.= " AND f.pos_source = '".$db->escape($terminalid)."'";
|
||||||
$sql.= " AND f.paye = 1";
|
$sql.= " AND f.paye = 1";
|
||||||
@ -125,6 +126,12 @@ if ($resql)
|
|||||||
else print $langs->trans("CashControl")." - ".$langs->trans("Draft");
|
else print $langs->trans("CashControl")." - ".$langs->trans("Draft");
|
||||||
print "<br>".$langs->trans("DateCreationShort").": ".dol_print_date($cashcontrol->date_creation, 'dayhour')."</h2></center>";
|
print "<br>".$langs->trans("DateCreationShort").": ".dol_print_date($cashcontrol->date_creation, 'dayhour')."</h2></center>";
|
||||||
|
|
||||||
|
$invoicetmp = new Facture($db);
|
||||||
|
|
||||||
|
|
||||||
|
print "<div style='text-align: right'><h2>";
|
||||||
|
print $langs->trans("InitialBankBalance").' - '.$langs->trans("Cash")." : ".price($cashcontrol->opening);
|
||||||
|
print "</h2></div>";
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="tagtable liste">'."\n";
|
print '<table class="tagtable liste">'."\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_liste_field_titre($arrayfields['b.credit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder);
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$balance = 0; // For balance
|
|
||||||
$balancecalculated = false;
|
|
||||||
$posconciliatecol = 0;
|
$posconciliatecol = 0;
|
||||||
|
|
||||||
// Loop on each record
|
// Loop on each record
|
||||||
$sign = 1;
|
$sign = 1;
|
||||||
$first='yes';
|
$cash=$bank=$cheque=$other=0;
|
||||||
|
|
||||||
$totalarray=array();
|
$totalarray=array();
|
||||||
while ($i < min($num,$limit))
|
while ($i < min($num,$limit))
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($resql);
|
$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]))
|
if (empty($cachebankaccount[$objp->bankid]))
|
||||||
{
|
{
|
||||||
$bankaccounttmp = new Account($db);
|
$bankaccounttmp = new Account($db);
|
||||||
@ -198,22 +167,22 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$bankaccount = $cachebankaccount[$objp->bankid];
|
$bankaccount = $cachebankaccount[$objp->bankid];
|
||||||
}
|
}
|
||||||
print '<tr class="oddeven">';
|
|
||||||
|
|
||||||
if ($first == "yes")
|
/*if ($first == "yes")
|
||||||
{
|
{
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").'</td>';
|
print '<td>'.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").'</td>';
|
||||||
print '<td></td><td></td><td></td><td align="right">'.price($cashcontrol->opening).'</td>';
|
print '<td></td><td></td><td></td><td align="right">'.price($cashcontrol->opening).'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
$first = "no";
|
$first = "no";
|
||||||
}
|
}*/
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
print '<td align="left" class="nowrap">';
|
print '<td align="left" class="nowrap">';
|
||||||
print $objp->facnumber;
|
$invoicetmp->fetch($objp->facid);
|
||||||
|
print $invoicetmp->getNomUrl(1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
@ -227,9 +196,10 @@ if ($resql)
|
|||||||
// Bank account
|
// Bank account
|
||||||
print '<td align="right" class="nowrap">';
|
print '<td align="right" class="nowrap">';
|
||||||
print $bankaccount->getNomUrl(1);
|
print $bankaccount->getNomUrl(1);
|
||||||
if ($sql.=$conf->global->CASHDESK_ID_BANKACCOUNT_CASH==$bankaccount->id) $cash+=$objp->amount;
|
if ($conf->global->CASHDESK_ID_BANKACCOUNT_CASH==$bankaccount->id) $cash+=$objp->amount;
|
||||||
if ($sql.=$conf->global->CASHDESK_ID_BANKACCOUNT_CB==$bankaccount->id) $bank+=$objp->amount;
|
elseif ($conf->global->CASHDESK_ID_BANKACCOUNT_CB==$bankaccount->id) $bank+=$objp->amount;
|
||||||
if ($sql.=$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE==$bankaccount->id) $cheque+=$objp->amount;
|
elseif ($conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE==$bankaccount->id) $cheque+=$objp->amount;
|
||||||
|
else $other+=$objp->amount;
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
@ -287,6 +257,7 @@ if ($resql)
|
|||||||
print $langs->trans("Cash").": ".price($cash)."<br><br>";
|
print $langs->trans("Cash").": ".price($cash)."<br><br>";
|
||||||
print $langs->trans("PaymentTypeCB").": ".price($bank)."<br><br>";
|
print $langs->trans("PaymentTypeCB").": ".price($bank)."<br><br>";
|
||||||
print $langs->trans("PaymentTypeCHQ").": ".price($cheque)."<br><br>";
|
print $langs->trans("PaymentTypeCHQ").": ".price($cheque)."<br><br>";
|
||||||
|
if ($other) print $langs->trans("Other").": ".price($other)."<br><br>";
|
||||||
print "</h2></div>";
|
print "</h2></div>";
|
||||||
|
|
||||||
//save totals to DB
|
//save totals to DB
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user