NEW Can see/make bank conciliation from transaction list
This commit is contained in:
parent
304a44ffc2
commit
f93bca9be9
@ -92,30 +92,35 @@ if ($negpage)
|
|||||||
if ($page > GETPOST("nbpage")) $page = GETPOST("nbpage");
|
if ($page > GETPOST("nbpage")) $page = GETPOST("nbpage");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sortfield = "b.datev, b.datec, b.rowid";
|
||||||
|
|
||||||
$object = new Account($db);
|
$object = new Account($db);
|
||||||
|
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
|
||||||
{
|
|
||||||
$paiementtype="";
|
|
||||||
$req_nb="";
|
|
||||||
$thirdparty="";
|
|
||||||
$req_desc="";
|
|
||||||
$req_debit="";
|
|
||||||
$req_credit="";
|
|
||||||
$req_stdtmonth="";
|
|
||||||
$req_stdtday="";
|
|
||||||
$req_stdtyear="";
|
|
||||||
$req_stdt = "";
|
|
||||||
$req_enddtmonth="";
|
|
||||||
$req_enddtday="";
|
|
||||||
$req_enddtyear="";
|
|
||||||
$req_enddt = "";
|
|
||||||
$search_reconciled = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Action
|
* Action
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // All test are required to be compatible with all browsers
|
||||||
|
{
|
||||||
|
$paiementtype="";
|
||||||
|
$req_nb="";
|
||||||
|
$thirdparty="";
|
||||||
|
$req_desc="";
|
||||||
|
$req_debit="";
|
||||||
|
$req_credit="";
|
||||||
|
$req_stdtmonth="";
|
||||||
|
$req_stdtday="";
|
||||||
|
$req_stdtyear="";
|
||||||
|
$req_stdt = "";
|
||||||
|
$req_enddtmonth="";
|
||||||
|
$req_enddtday="";
|
||||||
|
$req_enddtyear="";
|
||||||
|
$req_enddt = "";
|
||||||
|
$search_reconciled = '';
|
||||||
|
}
|
||||||
|
|
||||||
$dateop=-1;
|
$dateop=-1;
|
||||||
|
|
||||||
if ($action == 'add' && $id && ! isset($_POST["cancel"]) && $user->rights->banque->modifier)
|
if ($action == 'add' && $id && ! isset($_POST["cancel"]) && $user->rights->banque->modifier)
|
||||||
@ -340,23 +345,10 @@ if ($id > 0 || ! empty($ref))
|
|||||||
$head=bank_prepare_head($object);
|
$head=bank_prepare_head($object);
|
||||||
dol_fiche_head($head,'journal',$langs->trans("FinancialAccount"),0,'account');
|
dol_fiche_head($head,'journal',$langs->trans("FinancialAccount"),0,'account');
|
||||||
|
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
// Ref
|
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
|
||||||
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref');
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Label
|
|
||||||
print '<tr><td>'.$langs->trans("Label").'</td>';
|
|
||||||
print '<td colspan="3">'.$object->label.'</td></tr>';
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
@ -507,7 +499,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
// Ligne de titre tableau des ecritures
|
// Ligne de titre tableau des ecritures
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans("Date").'</td>';
|
print '<td>'.$langs->trans("Date").'</td>';
|
||||||
print '<td>'.$langs->trans("Value").'</td>';
|
print_liste_field_titre($langs->trans("Value"), '', 'b.datev, b.datec, b.rowid','',$param,'',$sortfield,$sortorder);
|
||||||
print '<td>'.$langs->trans("Type").'</td>';
|
print '<td>'.$langs->trans("Type").'</td>';
|
||||||
print '<td>'.$langs->trans("Numero").'</td>';
|
print '<td>'.$langs->trans("Numero").'</td>';
|
||||||
print '<td>'.$langs->trans("Description").'</td>';
|
print '<td>'.$langs->trans("Description").'</td>';
|
||||||
@ -603,7 +595,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
$sql.= " AND b.fk_account = ba.rowid";
|
$sql.= " AND b.fk_account = ba.rowid";
|
||||||
$sql.= " AND ba.entity IN (".getEntity('bank_account', 1).")";
|
$sql.= " AND ba.entity IN (".getEntity('bank_account', 1).")";
|
||||||
$sql.= $sql_rech;
|
$sql.= $sql_rech;
|
||||||
$sql.= $db->order("b.datev, b.datec", "ASC"); // We add date of creation to have correct order when everything is done the same day
|
$sql.= $db->order($sortfield, "ASC"); // We add date of creation to have correct order when everything is done the same day
|
||||||
$sql.= $db->plimit($limitsql, 0);
|
$sql.= $db->plimit($limitsql, 0);
|
||||||
|
|
||||||
dol_syslog("account.php get transactions -", LOG_DEBUG);
|
dol_syslog("account.php get transactions -", LOG_DEBUG);
|
||||||
|
|||||||
@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
|
|||||||
$langs->load("banks");
|
$langs->load("banks");
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
|
|
||||||
$id=GETPOST('account');
|
$id=GETPOST('account')?GETPOST('account','alpha'):GETPOST('id');
|
||||||
$ref=GETPOST('ref');
|
$ref=GETPOST('ref');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
@ -60,16 +60,16 @@ llxHeader('',$title,$helpurl);
|
|||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
// Get account informations
|
// Get account informations
|
||||||
$acct = new Account($db);
|
$object = new Account($db);
|
||||||
if ($id > 0 && ! preg_match('/,/', $id)) // if for a particular account and not a list
|
if ($id > 0 && ! preg_match('/,/', $id)) // if for a particular account and not a list
|
||||||
{
|
{
|
||||||
$result=$acct->fetch($id);
|
$result=$object->fetch($id);
|
||||||
$id=$acct->id;
|
$id=$object->id;
|
||||||
}
|
}
|
||||||
if (! empty($ref))
|
if (! empty($ref))
|
||||||
{
|
{
|
||||||
$result=$acct->fetch(0, $ref);
|
$result=$object->fetch(0, $ref);
|
||||||
$id=$acct->id;
|
$id=$object->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -134,58 +134,38 @@ else
|
|||||||
|
|
||||||
|
|
||||||
// Onglets
|
// Onglets
|
||||||
$head=bank_prepare_head($acct);
|
$head=bank_prepare_head($object);
|
||||||
dol_fiche_head($head,'annual',$langs->trans("FinancialAccount"),0,'account');
|
dol_fiche_head($head,'annual',$langs->trans("FinancialAccount"),0,'account');
|
||||||
|
|
||||||
$title=$langs->trans("FinancialAccount")." : ".$acct->label;
|
$title=$langs->trans("FinancialAccount")." : ".$object->label;
|
||||||
$link=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?account=".$acct->id."&year_start=".($year_start-1)."'>".img_previous()."</a> ".$langs->trans("Year")." <a href='".$_SERVER["PHP_SELF"]."?account=".$acct->id."&year_start=".($year_start+1)."'>".img_next()."</a>":"");
|
$link=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?account=".$object->id."&year_start=".($year_start-1)."'>".img_previous()."</a> ".$langs->trans("Year")." <a href='".$_SERVER["PHP_SELF"]."?account=".$acct->id."&year_start=".($year_start+1)."'>".img_next()."</a>":"");
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
// Ref
|
|
||||||
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
if (!empty($id))
|
if (!empty($id))
|
||||||
{
|
{
|
||||||
if (! preg_match('/,/', $id))
|
if (! preg_match('/,/', $id))
|
||||||
{
|
{
|
||||||
print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref');
|
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$bankaccount=new Account($db);
|
$bankaccount=new Account($db);
|
||||||
$listid=explode(',', $id);
|
$listid=explode(',', $id);
|
||||||
foreach($listid as $key => $aId)
|
foreach($listid as $key => $aId)
|
||||||
{
|
{
|
||||||
$bankaccount->fetch($aId);
|
$bankaccount->fetch($aId);
|
||||||
$bankaccount->label=$bankaccount->ref;
|
$bankaccount->label=$bankaccount->ref;
|
||||||
print $bankaccount->getNomUrl(1);
|
print $bankaccount->getNomUrl(1);
|
||||||
if ($key < (count($listid)-1)) print ', ';
|
if ($key < (count($listid)-1)) print ', ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $langs->trans("ALL");
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Label
|
|
||||||
print '<tr><td>'.$langs->trans("Label").'</td>';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
if (! empty($id))
|
|
||||||
{
|
|
||||||
print $acct->label;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $langs->trans("AllAccounts");
|
print $langs->trans("AllAccounts");
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|||||||
@ -655,31 +655,6 @@ else
|
|||||||
if ($object->url) print '</a>';
|
if ($object->url) print '</a>';
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
// Categories
|
|
||||||
if ($conf->categorie->enabled) {
|
|
||||||
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
|
|
||||||
print $form->showCategories($object->id,'account',1);
|
|
||||||
print "</td></tr>";
|
|
||||||
}
|
|
||||||
|
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("Comment").'</td>';
|
|
||||||
print '<td>'.dol_htmlentitiesbr($object->comment).'</td></tr>';
|
|
||||||
|
|
||||||
// Other attributes
|
|
||||||
$cols = 2;
|
|
||||||
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
|
|
||||||
|
|
||||||
print '</div>';
|
|
||||||
print '<div class="fichehalfright">';
|
|
||||||
print '<div class="ficheaddleft">';
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
|
||||||
|
|
||||||
|
|
||||||
print '<table class="border centpercent">';
|
|
||||||
|
|
||||||
// Accountancy code
|
// Accountancy code
|
||||||
print '<tr class="liste_titre_add"><td class="titlefield">'.$langs->trans("AccountancyCode").'</td>';
|
print '<tr class="liste_titre_add"><td class="titlefield">'.$langs->trans("AccountancyCode").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -697,6 +672,31 @@ else
|
|||||||
print '<td>'.$object->accountancy_journal.'</td></tr>';
|
print '<td>'.$object->accountancy_journal.'</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Other attributes
|
||||||
|
$cols = 2;
|
||||||
|
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
print '<div class="fichehalfright">';
|
||||||
|
print '<div class="ficheaddleft">';
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<table class="border centpercent">';
|
||||||
|
|
||||||
|
// Categories
|
||||||
|
if ($conf->categorie->enabled) {
|
||||||
|
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
|
||||||
|
print $form->showCategories($object->id,'account',1);
|
||||||
|
print "</td></tr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<tr><td class="tdtop">'.$langs->trans("Comment").'</td>';
|
||||||
|
print '<td>'.dol_htmlentitiesbr($object->comment).'</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -139,6 +139,7 @@ else if ($action == 'confirm_deletefile' && $confirm == 'yes') {
|
|||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$title = $langs->trans("FinancialAccount").' - '.$langs->trans("Documents");
|
$title = $langs->trans("FinancialAccount").' - '.$langs->trans("Documents");
|
||||||
$helpurl = "";
|
$helpurl = "";
|
||||||
llxHeader('',$title,$helpurl);
|
llxHeader('',$title,$helpurl);
|
||||||
@ -152,8 +153,7 @@ if ($id > 0 || !empty($ref)) {
|
|||||||
|
|
||||||
// Onglets
|
// Onglets
|
||||||
$head = bank_prepare_head($object);
|
$head = bank_prepare_head($object);
|
||||||
dol_fiche_head($head, 'document', $langs->trans("FinancialAccount"), 0,
|
dol_fiche_head($head, 'document', $langs->trans("FinancialAccount"), 0, 'account');
|
||||||
'account');
|
|
||||||
|
|
||||||
|
|
||||||
// Construit liste des fichiers
|
// Construit liste des fichiers
|
||||||
@ -166,29 +166,25 @@ if ($id > 0 || !empty($ref)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
|
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
|
||||||
|
|
||||||
print '<table class="border"width="100%">';
|
|
||||||
|
print '<div class="fichecenter">';
|
||||||
// Ref
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<tr><td valign="top" width="25%">' . $langs->trans("Ref") . '</td>';
|
|
||||||
print '<td colspan="3">';
|
print '<table class="border" width="100%">';
|
||||||
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref');
|
print '<tr><td class="titlefield">' . $langs->trans("NbOfAttachedFiles") . '</td><td colspan="3">' . count($filearray) . '</td></tr>';
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Label
|
|
||||||
print '<tr><td valign="top">' . $langs->trans("Label") . '</td>';
|
|
||||||
print '<td colspan="3">' . $object->label . '</td></tr>';
|
|
||||||
|
|
||||||
// Status
|
|
||||||
print '<tr><td valign="top">' . $langs->trans("Status") . '</td>';
|
|
||||||
print '<td colspan="3">' . $object->getLibStatut(4) . '</td></tr>';
|
|
||||||
print '<tr><td>' . $langs->trans("NbOfAttachedFiles") . '</td><td colspan="3">' . count($filearray) . '</td></tr>';
|
|
||||||
print '<tr><td>' . $langs->trans("TotalSizeOfAttachedFiles") . '</td><td colspan="3">' . $totalsize . ' ' . $langs->trans("bytes") . '</td></tr>';
|
print '<tr><td>' . $langs->trans("TotalSizeOfAttachedFiles") . '</td><td colspan="3">' . $totalsize . ' ' . $langs->trans("bytes") . '</td></tr>';
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
print "</div>\n";
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
dol_htmloutput_mesg($mesg, $mesgs);
|
dol_htmloutput_mesg($mesg, $mesgs);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Confirmation suppression fichier
|
* Confirmation suppression fichier
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -67,15 +67,15 @@ if (! empty($_GET["year"])) $year=sprintf("%04d",$_GET["year"]);
|
|||||||
if (! empty($_GET["month"])) $month=sprintf("%02d",$_GET["month"]);
|
if (! empty($_GET["month"])) $month=sprintf("%02d",$_GET["month"]);
|
||||||
|
|
||||||
|
|
||||||
$acct = new Account($db);
|
$object = new Account($db);
|
||||||
if ($_GET["account"] && ! preg_match('/,/',$_GET["account"])) // if for a particular account and not a list
|
if ($_GET["account"] && ! preg_match('/,/',$_GET["account"])) // if for a particular account and not a list
|
||||||
{
|
{
|
||||||
$result=$acct->fetch($_GET["account"]);
|
$result=$object->fetch($_GET["account"]);
|
||||||
}
|
}
|
||||||
if ($_GET["ref"])
|
if ($_GET["ref"])
|
||||||
{
|
{
|
||||||
$result=$acct->fetch(0,$_GET["ref"]);
|
$result=$object->fetch(0,$_GET["ref"]);
|
||||||
$account=$acct->id;
|
$account=$object->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result=dol_mkdir($conf->bank->dir_temp);
|
$result=dol_mkdir($conf->bank->dir_temp);
|
||||||
@ -202,8 +202,8 @@ else
|
|||||||
{
|
{
|
||||||
$datas[$i] = $solde + $subtotal;
|
$datas[$i] = $solde + $subtotal;
|
||||||
}
|
}
|
||||||
$datamin[$i] = $acct->min_desired;
|
$datamin[$i] = $object->min_desired;
|
||||||
$dataall[$i] = $acct->min_allowed;
|
$dataall[$i] = $object->min_allowed;
|
||||||
//$labels[$i] = strftime("%d",$day);
|
//$labels[$i] = strftime("%d",$day);
|
||||||
$labels[$i] = $xday;
|
$labels[$i] = $xday;
|
||||||
|
|
||||||
@ -230,15 +230,15 @@ else
|
|||||||
foreach($datas as $i => $val)
|
foreach($datas as $i => $val)
|
||||||
{
|
{
|
||||||
$graph_datas[$i]=array(isset($labels[$i])?$labels[$i]:'',$datas[$i]);
|
$graph_datas[$i]=array(isset($labels[$i])?$labels[$i]:'',$datas[$i]);
|
||||||
if ($acct->min_desired) array_push($graph_datas[$i],$datamin[$i]);
|
if ($object->min_desired) array_push($graph_datas[$i],$datamin[$i]);
|
||||||
if ($acct->min_allowed) array_push($graph_datas[$i],$dataall[$i]);
|
if ($object->min_allowed) array_push($graph_datas[$i],$dataall[$i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$px1 = new DolGraph();
|
$px1 = new DolGraph();
|
||||||
$px1->SetData($graph_datas);
|
$px1->SetData($graph_datas);
|
||||||
$arraylegends=array($langs->transnoentities("Balance"));
|
$arraylegends=array($langs->transnoentities("Balance"));
|
||||||
if ($acct->min_desired) array_push($arraylegends,$langs->transnoentities("BalanceMinimalDesired"));
|
if ($object->min_desired) array_push($arraylegends,$langs->transnoentities("BalanceMinimalDesired"));
|
||||||
if ($acct->min_allowed) array_push($arraylegends,$langs->transnoentities("BalanceMinimalAllowed"));
|
if ($object->min_allowed) array_push($arraylegends,$langs->transnoentities("BalanceMinimalAllowed"));
|
||||||
$px1->SetLegend($arraylegends);
|
$px1->SetLegend($arraylegends);
|
||||||
$px1->SetLegendWidthMin(180);
|
$px1->SetLegendWidthMin(180);
|
||||||
$px1->SetMaxValue($px1->GetCeilMaxValue()<0?0:$px1->GetCeilMaxValue());
|
$px1->SetMaxValue($px1->GetCeilMaxValue()<0?0:$px1->GetCeilMaxValue());
|
||||||
@ -346,8 +346,8 @@ else
|
|||||||
{
|
{
|
||||||
$datas[$i] = $solde + $subtotal;
|
$datas[$i] = $solde + $subtotal;
|
||||||
}
|
}
|
||||||
$datamin[$i] = $acct->min_desired;
|
$datamin[$i] = $object->min_desired;
|
||||||
$dataall[$i] = $acct->min_allowed;
|
$dataall[$i] = $object->min_allowed;
|
||||||
if ($xday == '15')
|
if ($xday == '15')
|
||||||
{
|
{
|
||||||
$labels[$i] = dol_print_date($day,"%b");
|
$labels[$i] = dol_print_date($day,"%b");
|
||||||
@ -367,14 +367,14 @@ else
|
|||||||
foreach($datas as $i => $val)
|
foreach($datas as $i => $val)
|
||||||
{
|
{
|
||||||
$graph_datas[$i]=array(isset($labels[$i])?$labels[$i]:'',$datas[$i]);
|
$graph_datas[$i]=array(isset($labels[$i])?$labels[$i]:'',$datas[$i]);
|
||||||
if ($acct->min_desired) array_push($graph_datas[$i],$datamin[$i]);
|
if ($object->min_desired) array_push($graph_datas[$i],$datamin[$i]);
|
||||||
if ($acct->min_allowed) array_push($graph_datas[$i],$dataall[$i]);
|
if ($object->min_allowed) array_push($graph_datas[$i],$dataall[$i]);
|
||||||
}
|
}
|
||||||
$px2 = new DolGraph();
|
$px2 = new DolGraph();
|
||||||
$px2->SetData($graph_datas);
|
$px2->SetData($graph_datas);
|
||||||
$arraylegends=array($langs->transnoentities("Balance"));
|
$arraylegends=array($langs->transnoentities("Balance"));
|
||||||
if ($acct->min_desired) array_push($arraylegends,$langs->transnoentities("BalanceMinimalDesired"));
|
if ($object->min_desired) array_push($arraylegends,$langs->transnoentities("BalanceMinimalDesired"));
|
||||||
if ($acct->min_allowed) array_push($arraylegends,$langs->transnoentities("BalanceMinimalAllowed"));
|
if ($object->min_allowed) array_push($arraylegends,$langs->transnoentities("BalanceMinimalAllowed"));
|
||||||
$px2->SetLegend($arraylegends);
|
$px2->SetLegend($arraylegends);
|
||||||
$px2->SetLegendWidthMin(180);
|
$px2->SetLegendWidthMin(180);
|
||||||
$px2->SetMaxValue($px2->GetCeilMaxValue()<0?0:$px2->GetCeilMaxValue());
|
$px2->SetMaxValue($px2->GetCeilMaxValue()<0?0:$px2->GetCeilMaxValue());
|
||||||
@ -462,8 +462,8 @@ else
|
|||||||
{
|
{
|
||||||
$datas[$i] = '' + $solde + $subtotal;
|
$datas[$i] = '' + $solde + $subtotal;
|
||||||
}
|
}
|
||||||
$datamin[$i] = $acct->min_desired;
|
$datamin[$i] = $object->min_desired;
|
||||||
$dataall[$i] = $acct->min_allowed;
|
$dataall[$i] = $object->min_allowed;
|
||||||
if (substr($textdate,6,2) == '01' || $i == 0)
|
if (substr($textdate,6,2) == '01' || $i == 0)
|
||||||
{
|
{
|
||||||
$labels[$i] = substr($textdate,4,2);
|
$labels[$i] = substr($textdate,4,2);
|
||||||
@ -482,15 +482,15 @@ else
|
|||||||
foreach($datas as $i => $val)
|
foreach($datas as $i => $val)
|
||||||
{
|
{
|
||||||
$graph_datas[$i]=array(isset($labels[$i])?$labels[$i]:'',$datas[$i]);
|
$graph_datas[$i]=array(isset($labels[$i])?$labels[$i]:'',$datas[$i]);
|
||||||
if ($acct->min_desired) array_push($graph_datas[$i],$datamin[$i]);
|
if ($object->min_desired) array_push($graph_datas[$i],$datamin[$i]);
|
||||||
if ($acct->min_allowed) array_push($graph_datas[$i],$dataall[$i]);
|
if ($object->min_allowed) array_push($graph_datas[$i],$dataall[$i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$px3 = new DolGraph();
|
$px3 = new DolGraph();
|
||||||
$px3->SetData($graph_datas);
|
$px3->SetData($graph_datas);
|
||||||
$arraylegends=array($langs->transnoentities("Balance"));
|
$arraylegends=array($langs->transnoentities("Balance"));
|
||||||
if ($acct->min_desired) array_push($arraylegends,$langs->transnoentities("BalanceMinimalDesired"));
|
if ($object->min_desired) array_push($arraylegends,$langs->transnoentities("BalanceMinimalDesired"));
|
||||||
if ($acct->min_allowed) array_push($arraylegends,$langs->transnoentities("BalanceMinimalAllowed"));
|
if ($object->min_allowed) array_push($arraylegends,$langs->transnoentities("BalanceMinimalAllowed"));
|
||||||
$px3->SetLegend($arraylegends);
|
$px3->SetLegend($arraylegends);
|
||||||
$px3->SetLegendWidthMin(180);
|
$px3->SetLegendWidthMin(180);
|
||||||
$px3->SetMaxValue($px3->GetCeilMaxValue()<0?0:$px3->GetCeilMaxValue());
|
$px3->SetMaxValue($px3->GetCeilMaxValue()<0?0:$px3->GetCeilMaxValue());
|
||||||
@ -605,7 +605,7 @@ else
|
|||||||
$data_credit[$i] = isset($credits[substr("0".($i+1),-2)]) ? $credits[substr("0".($i+1),-2)] : 0;
|
$data_credit[$i] = isset($credits[substr("0".($i+1),-2)]) ? $credits[substr("0".($i+1),-2)] : 0;
|
||||||
$data_debit[$i] = isset($debits[substr("0".($i+1),-2)]) ? $debits[substr("0".($i+1),-2)] : 0;
|
$data_debit[$i] = isset($debits[substr("0".($i+1),-2)]) ? $debits[substr("0".($i+1),-2)] : 0;
|
||||||
$labels[$i] = sprintf("%02d",$i+1);
|
$labels[$i] = sprintf("%02d",$i+1);
|
||||||
$datamin[$i] = $acct->min_desired;
|
$datamin[$i] = $object->min_desired;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fabrication tableau 4a
|
// Fabrication tableau 4a
|
||||||
@ -714,7 +714,7 @@ else
|
|||||||
$data_credit[$i] = isset($credits[substr("0".($i+1),-2)]) ? $credits[substr("0".($i+1),-2)] : 0;
|
$data_credit[$i] = isset($credits[substr("0".($i+1),-2)]) ? $credits[substr("0".($i+1),-2)] : 0;
|
||||||
$data_debit[$i] = isset($debits[substr("0".($i+1),-2)]) ? $debits[substr("0".($i+1),-2)] : 0;
|
$data_debit[$i] = isset($debits[substr("0".($i+1),-2)]) ? $debits[substr("0".($i+1),-2)] : 0;
|
||||||
$labels[$i] = dol_print_date(dol_mktime(12,0,0,$i+1,1,2000),"%b");
|
$labels[$i] = dol_print_date(dol_mktime(12,0,0,$i+1,1,2000),"%b");
|
||||||
$datamin[$i] = $acct->min_desired;
|
$datamin[$i] = $object->min_desired;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fabrication tableau 4b
|
// Fabrication tableau 4b
|
||||||
@ -754,36 +754,33 @@ else
|
|||||||
|
|
||||||
|
|
||||||
// Onglets
|
// Onglets
|
||||||
$head=bank_prepare_head($acct);
|
$head=bank_prepare_head($object);
|
||||||
dol_fiche_head($head,'graph',$langs->trans("FinancialAccount"),0,'account');
|
dol_fiche_head($head,'graph',$langs->trans("FinancialAccount"),0,'account');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
// Ref
|
|
||||||
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
if ($account)
|
if ($account)
|
||||||
{
|
{
|
||||||
if (! preg_match('/,/',$account))
|
if (! preg_match('/,/',$account))
|
||||||
{
|
{
|
||||||
$moreparam='&month='.$month.'&year='.$year.($mode=='showalltime'?'&mode=showalltime':'');
|
$moreparam='&month='.$month.'&year='.$year.($mode=='showalltime'?'&mode=showalltime':'');
|
||||||
|
|
||||||
if ($_GET["option"]!='all')
|
if ($_GET["option"]!='all')
|
||||||
{
|
{
|
||||||
$morehtml='<a href="'.$_SERVER["PHP_SELF"].'?account='.$account.'&option=all'.$moreparam.'">'.$langs->trans("ShowAllAccounts").'</a>';
|
$morehtml='<a href="'.$_SERVER["PHP_SELF"].'?account='.$account.'&option=all'.$moreparam.'">'.$langs->trans("ShowAllAccounts").'</a>';
|
||||||
print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref', 'ref', '', $moreparam);
|
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', '', $moreparam);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$morehtml='<a href="'.$_SERVER["PHP_SELF"].'?account='.$account.$moreparam.'">'.$langs->trans("BackToAccount").'</a>';
|
$morehtml='<a href="'.$_SERVER["PHP_SELF"].'?account='.$account.$moreparam.'">'.$langs->trans("BackToAccount").'</a>';
|
||||||
print $langs->trans("All");
|
print $langs->trans("AllAccounts");
|
||||||
//print $morehtml;
|
//print $morehtml;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$bankaccount=new Account($db);
|
$bankaccount=new Account($db);
|
||||||
$listid=explode(',',$account);
|
$listid=explode(',',$account);
|
||||||
foreach($listid as $key => $id)
|
foreach($listid as $key => $id)
|
||||||
{
|
{
|
||||||
@ -795,25 +792,9 @@ if ($account)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
print $langs->trans("All");
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Label
|
|
||||||
print '<tr><td>'.$langs->trans("Label").'</td>';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
if ($account && $_GET["option"]!='all')
|
|
||||||
{
|
|
||||||
print $acct->label;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
print $langs->trans("AllAccounts");
|
print $langs->trans("AllAccounts");
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,16 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
|
||||||
|
|
||||||
$langs->load("banks");
|
$langs->load("banks");
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
@ -61,6 +71,8 @@ $limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
|
|||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
$sortorder = GETPOST("sortorder",'alpha');
|
||||||
$page = GETPOST("page",'int');
|
$page = GETPOST("page",'int');
|
||||||
|
$pageplusone = GETPOST("pageplusone",'int');
|
||||||
|
if ($pageplusone) $page = $pageplusone - 1;
|
||||||
if ($page == -1) { $page = 0; }
|
if ($page == -1) { $page = 0; }
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
@ -68,6 +80,16 @@ $pagenext = $page + 1;
|
|||||||
if (! $sortorder) $sortorder='DESC';
|
if (! $sortorder) $sortorder='DESC';
|
||||||
if (! $sortfield) $sortfield='b.dateo';
|
if (! $sortfield) $sortfield='b.dateo';
|
||||||
|
|
||||||
|
$mode_balance_ok=false;
|
||||||
|
//if (($sortfield == 'b.datev' || $sortfield == 'b.datev, b.dateo, b.rowid')) // TODO Manage balance when account not selected
|
||||||
|
if (($sortfield == 'b.datev' || $sortfield == 'b.datev, b.dateo, b.rowid') && $account > 0)
|
||||||
|
{
|
||||||
|
$sortfield = 'b.datev, b.dateo, b.rowid';
|
||||||
|
$mode_balance_ok = true;
|
||||||
|
}
|
||||||
|
if (strtolower($sortorder) == 'desc') $mode_balance_ok = false;
|
||||||
|
|
||||||
|
|
||||||
// Initialize technical object to manage context to save list fields
|
// Initialize technical object to manage context to save list fields
|
||||||
$contextpage='banktransactionlist';
|
$contextpage='banktransactionlist';
|
||||||
|
|
||||||
@ -81,15 +103,16 @@ $search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search
|
|||||||
|
|
||||||
$arrayfields=array(
|
$arrayfields=array(
|
||||||
'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
|
'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
|
||||||
|
'description'=>array('label'=>$langs->trans("Description"), 'checked'=>1),
|
||||||
'b.dateo'=>array('label'=>$langs->trans("DateOperationShort"), 'checked'=>1),
|
'b.dateo'=>array('label'=>$langs->trans("DateOperationShort"), 'checked'=>1),
|
||||||
'b.datev'=>array('label'=>$langs->trans("DateValueShort"), 'checked'=>1),
|
'b.datev'=>array('label'=>$langs->trans("DateValueShort"), 'checked'=>1),
|
||||||
'type'=>array('label'=>$langs->trans("Type"), 'checked'=>1),
|
'type'=>array('label'=>$langs->trans("Type"), 'checked'=>1),
|
||||||
'b.num_chq'=>array('label'=>$langs->trans("Numero"), 'checked'=>1),
|
'b.num_chq'=>array('label'=>$langs->trans("Numero"), 'checked'=>1),
|
||||||
'description'=>array('label'=>$langs->trans("Description"), 'checked'=>1),
|
|
||||||
'bu.label'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1, 'position'=>500),
|
'bu.label'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1, 'position'=>500),
|
||||||
|
'ba.ref'=>array('label'=>$langs->trans("BankAccount"), 'checked'=>1, 'position'=>1000),
|
||||||
'b.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1, 'position'=>600),
|
'b.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1, 'position'=>600),
|
||||||
'b.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1, 'position'=>605),
|
'b.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1, 'position'=>605),
|
||||||
'ba.ref'=>array('label'=>$langs->trans("Account"), 'checked'=>1, 'position'=>1000),
|
'balance'=>array('label'=>$langs->trans("Balance"), 'checked'=>1, 'position'=>1000),
|
||||||
'b.num_releve'=>array('label'=>$langs->trans("AccountStatement"), 'checked'=>1, 'position'=>1010),
|
'b.num_releve'=>array('label'=>$langs->trans("AccountStatement"), 'checked'=>1, 'position'=>1010),
|
||||||
);
|
);
|
||||||
// Extra fields
|
// Extra fields
|
||||||
@ -148,22 +171,35 @@ if (empty($reshook))
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$companystatic=new Societe($db);
|
|
||||||
$bankaccountstatic=new Account($db);
|
|
||||||
|
|
||||||
llxHeader('', $langs->trans("BankTransactions"), '', '', 0, 0, array(), array(), $param);
|
|
||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
$formother = new FormOther($db);
|
$formother = new FormOther($db);
|
||||||
|
|
||||||
if ($vline) $viewline = $vline;
|
$companystatic=new Societe($db);
|
||||||
else $viewline = 50;
|
$bankaccountstatic=new Account($db);
|
||||||
|
|
||||||
|
$societestatic=new Societe($db);
|
||||||
|
$userstatic=new User($db);
|
||||||
|
$chargestatic=new ChargeSociales($db);
|
||||||
|
$loanstatic=new Loan($db);
|
||||||
|
$memberstatic=new Adherent($db);
|
||||||
|
$paymentstatic=new Paiement($db);
|
||||||
|
$paymentsupplierstatic=new PaiementFourn($db);
|
||||||
|
$paymentvatstatic=new TVA($db);
|
||||||
|
$paymentsalstatic=new PaymentSalary($db);
|
||||||
|
$donstatic=new Don($db);
|
||||||
|
$expensereportstatic=new ExpenseReport($db);
|
||||||
|
$bankstatic=new Account($db);
|
||||||
|
$banklinestatic=new AccountLine($db);
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
|
llxHeader('', $langs->trans("BankTransactions"), '', '', 0, 0, array(), array(), $param);
|
||||||
|
|
||||||
$sql = "SELECT b.rowid, b.dateo as do, b.datev as dv, b.amount, b.label, b.rappro, b.num_releve, b.num_chq,";
|
$sql = "SELECT b.rowid, b.dateo as do, b.datev as dv, b.amount, b.label, b.rappro, b.num_releve, b.num_chq,";
|
||||||
$sql.= " b.fk_account, b.fk_type,";
|
$sql.= " b.fk_account, b.fk_type,";
|
||||||
$sql.= " ba.rowid as bankid, ba.ref as bankref,";
|
$sql.= " ba.rowid as bankid, ba.ref as bankref,";
|
||||||
$sql.= " bu.url_id,";
|
$sql.= " bu.url_id,";
|
||||||
$sql.= " s.nom, s.name_alias, s.client, s.fournisseur, s.code_client, s.code_fournisseur";
|
$sql.= " s.nom, s.name_alias, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur";
|
||||||
// Add fields from extrafields
|
// Add fields from extrafields
|
||||||
foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : '');
|
foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : '');
|
||||||
// Add fields from hooks
|
// Add fields from hooks
|
||||||
@ -183,7 +219,8 @@ if ($search_ref) $sql.=natural_search("b.rowid", $search_ref);
|
|||||||
if ($account > 0) $sql.=" AND b.fk_account = ".$account;
|
if ($account > 0) $sql.=" AND b.fk_account = ".$account;
|
||||||
if ($search_req_nb) $sql.= natural_search("b.num_chq", $search_req_nb);
|
if ($search_req_nb) $sql.= natural_search("b.num_chq", $search_req_nb);
|
||||||
if ($search_num_releve) $sql.= natural_search("b.num_releve", $search_num_releve);
|
if ($search_num_releve) $sql.= natural_search("b.num_releve", $search_num_releve);
|
||||||
if ($search_thirdparty) $sql.=" AND s.nom LIKE '%".$db->escape($search_thirdparty)."%'";
|
if ($search_thirdparty) $sql.= natural_search("s.nom", $search_thirdparty);
|
||||||
|
if ($description) $sql.= natural_search("b.label", $description); // Warning some text are just translation keys, not translated strings
|
||||||
if ($bid) $sql.= " AND b.rowid=l.lineid AND l.fk_categ=".$bid;
|
if ($bid) $sql.= " AND b.rowid=l.lineid AND l.fk_categ=".$bid;
|
||||||
if (! empty($type)) $sql.= " AND b.fk_type = '".$db->escape($type)."' ";
|
if (! empty($type)) $sql.= " AND b.fk_type = '".$db->escape($type)."' ";
|
||||||
// Search period criteria
|
// Search period criteria
|
||||||
@ -219,6 +256,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
|||||||
{
|
{
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
|
$nbtotalofpages = ceil($nbtotalofrecords/$limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql.= $db->plimit($limit+1,$offset);
|
$sql.= $db->plimit($limit+1,$offset);
|
||||||
@ -280,14 +318,20 @@ if ($resql)
|
|||||||
|
|
||||||
// Title
|
// Title
|
||||||
$bankcateg=new BankCateg($db);
|
$bankcateg=new BankCateg($db);
|
||||||
|
$morehtml='<div data-role="fieldcontain">';
|
||||||
|
$morehtml.= '<label for="pageplusone">'.$langs->trans("Page")."</label> "; // ' Page ';
|
||||||
|
$morehtml.='<input type="text" name="pageplusone" id="pageplusone" size="1" class="flat" value="'.($page+1).'">';
|
||||||
|
$morehtml.='/'.$nbtotalofpages.' ';
|
||||||
|
$morehtml.='</div>';
|
||||||
|
|
||||||
if (GETPOST("bid"))
|
if (GETPOST("bid"))
|
||||||
{
|
{
|
||||||
$result=$bankcateg->fetch(GETPOST("bid"));
|
$result=$bankcateg->fetch(GETPOST("bid"));
|
||||||
print_barre_liste($langs->trans("BankTransactionForCategory",$bankcateg->label).' '.($socid?' '.$soc->name:''), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_bank.png', 0, '', '', $limit);
|
print_barre_liste($langs->trans("BankTransactionForCategory",$bankcateg->label).' '.($socid?' '.$soc->name:''), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_bank.png', 0, $morehtml, '', $limit);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print_barre_liste($langs->trans("BankTransactions"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_bank.png', 0, '', '', $limit);
|
print_barre_liste($langs->trans("BankTransactions"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_bank.png', 0, $morehtml, '', $limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
@ -320,16 +364,17 @@ if ($resql)
|
|||||||
// Fields title
|
// Fields title
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (! empty($arrayfields['b.rowid']['checked'])) print_liste_field_titre($arrayfields['b.rowid']['label'],$_SERVER['PHP_SELF'],'b.rowid','',$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['b.rowid']['checked'])) print_liste_field_titre($arrayfields['b.rowid']['label'],$_SERVER['PHP_SELF'],'b.rowid','',$param,'',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['description']['checked'])) print_liste_field_titre($arrayfields['description']['label'],$_SERVER['PHP_SELF'],'','',$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['b.dateo']['checked'])) print_liste_field_titre($arrayfields['b.dateo']['label'],$_SERVER['PHP_SELF'],'b.dateo','',$param,'align="center"',$sortfield,$sortorder);
|
if (! empty($arrayfields['b.dateo']['checked'])) print_liste_field_titre($arrayfields['b.dateo']['label'],$_SERVER['PHP_SELF'],'b.dateo','',$param,'align="center"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['b.datev']['checked'])) print_liste_field_titre($arrayfields['b.datev']['label'],$_SERVER['PHP_SELF'],'b.datev','',$param,'align="center"',$sortfield,$sortorder);
|
if (! empty($arrayfields['b.datev']['checked'])) print_liste_field_titre($arrayfields['b.datev']['label'],$_SERVER['PHP_SELF'],'b.datev, b.dateo, b.rowid','',$param,'align="center"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['type']['checked'])) print_liste_field_titre($arrayfields['type']['label'],$_SERVER['PHP_SELF'],'','',$param,'align="center"',$sortfield,$sortorder);
|
if (! empty($arrayfields['type']['checked'])) print_liste_field_titre($arrayfields['type']['label'],$_SERVER['PHP_SELF'],'','',$param,'align="center"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['b.num_chq']['checked'])) print_liste_field_titre($arrayfields['b.num_chq']['label'],$_SERVER['PHP_SELF'],'b.num_chq','',$param,'align="center"',$sortfield,$sortorder);
|
if (! empty($arrayfields['b.num_chq']['checked'])) print_liste_field_titre($arrayfields['b.num_chq']['label'],$_SERVER['PHP_SELF'],'b.num_chq','',$param,'align="center"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['description']['checked'])) print_liste_field_titre($arrayfields['description']['label'],$_SERVER['PHP_SELF'],'','',$param,'',$sortfield,$sortorder);
|
|
||||||
if (! empty($arrayfields['bu.label']['checked'])) print_liste_field_titre($arrayfields['bu.label']['label'],$_SERVER['PHP_SELF'],'bu.label','',$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['bu.label']['checked'])) print_liste_field_titre($arrayfields['bu.label']['label'],$_SERVER['PHP_SELF'],'bu.label','',$param,'',$sortfield,$sortorder);
|
||||||
|
if (! empty($arrayfields['ba.ref']['checked'])) print_liste_field_titre($arrayfields['ba.ref']['label'],$_SERVER['PHP_SELF'],'ba.ref','',$param,'align="right"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['b.debit']['checked'])) print_liste_field_titre($arrayfields['b.debit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder);
|
if (! empty($arrayfields['b.debit']['checked'])) print_liste_field_titre($arrayfields['b.debit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['b.credit']['checked'])) print_liste_field_titre($arrayfields['b.credit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder);
|
if (! empty($arrayfields['b.credit']['checked'])) print_liste_field_titre($arrayfields['b.credit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['ba.ref']['checked'])) print_liste_field_titre($arrayfields['ba.ref']['label'],$_SERVER['PHP_SELF'],'ba.ref','',$param,'align="right"',$sortfield,$sortorder);
|
if (! empty($arrayfields['balance']['checked'])) print_liste_field_titre($arrayfields['balance']['label'],$_SERVER['PHP_SELF'],'balance','',$param,'align="right"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['b.num_releve']['checked'])) print_liste_field_titre($arrayfields['b.num_releve']['label'],$_SERVER['PHP_SELF'],'b.num_releve','',$param,'align="center"',$sortfield,$sortorder);
|
if (! empty($arrayfields['b.num_releve']['checked'])) print_liste_field_titre($arrayfields['b.num_releve']['label'],$_SERVER['PHP_SELF'],'b.num_releve','',$param,'align="center"',$sortfield,$sortorder);
|
||||||
// Extra fields
|
// Extra fields
|
||||||
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
|
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
|
||||||
{
|
{
|
||||||
@ -356,6 +401,12 @@ if ($resql)
|
|||||||
print '<input type="text" class="flat" name="search_ref" size="4" value="'.dol_escape_htmltag($search_ref).'">';
|
print '<input type="text" class="flat" name="search_ref" size="4" value="'.dol_escape_htmltag($search_ref).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
if (! empty($arrayfields['description']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
//print '<input type="text" class="flat" name="description" size="10" value="'.dol_escape_htmltag($description).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
if (! empty($arrayfields['b.dateo']['checked']))
|
if (! empty($arrayfields['b.dateo']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre"> </td>';
|
print '<td class="liste_titre"> </td>';
|
||||||
@ -367,7 +418,7 @@ if ($resql)
|
|||||||
if (! empty($arrayfields['type']['checked']))
|
if (! empty($arrayfields['type']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre" align="center">';
|
print '<td class="liste_titre" align="center">';
|
||||||
$form->select_types_paiements(empty($type)?'':$type, 'type', '', 2, 0, 1);
|
$form->select_types_paiements(empty($type)?'':$type, 'type', '', 2, 0, 1, 0, 1, 'maxwidth100');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['b.num_chq']['checked']))
|
if (! empty($arrayfields['b.num_chq']['checked']))
|
||||||
@ -375,16 +426,16 @@ if ($resql)
|
|||||||
// Numero
|
// Numero
|
||||||
print '<td class="liste_titre" align="center"><input type="text" class="flat" name="req_nb" value="'.dol_escape_htmltag($search_req_nb).'" size="2"></td>';
|
print '<td class="liste_titre" align="center"><input type="text" class="flat" name="req_nb" value="'.dol_escape_htmltag($search_req_nb).'" size="2"></td>';
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['description']['checked']))
|
|
||||||
{
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<input type="text" class="flat" name="description" size="10" value="'.dol_escape_htmltag($description).'">';
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
if (! empty($arrayfields['bu.label']['checked']))
|
if (! empty($arrayfields['bu.label']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre"><input type="text" class="flat" name="thirdparty" value="'.dol_escape_htmltag($search_thirdparty).'" size="10"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat" name="thirdparty" value="'.dol_escape_htmltag($search_thirdparty).'" size="10"></td>';
|
||||||
}
|
}
|
||||||
|
if (! empty($arrayfields['ba.ref']['checked']))
|
||||||
|
{
|
||||||
|
print '<td align="right">';
|
||||||
|
$form->select_comptes($account,'account',0,'',1);
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
if (! empty($arrayfields['b.debit']['checked']))
|
if (! empty($arrayfields['b.debit']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre" align="right">';
|
print '<td class="liste_titre" align="right">';
|
||||||
@ -397,16 +448,17 @@ if ($resql)
|
|||||||
print '<input type="text" class="flat" name="credit" size="4" value="'.dol_escape_htmltag($credit).'">';
|
print '<input type="text" class="flat" name="credit" size="4" value="'.dol_escape_htmltag($credit).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['ba.ref']['checked']))
|
if (! empty($arrayfields['balance']['checked']))
|
||||||
{
|
{
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
$form->select_comptes($account,'account',0,'',1);
|
$htmltext=$langs->trans("BalanceVisibilityDependsOnSortAndFilters", $langs->transnoentitiesnoconv("DateValue"));
|
||||||
|
print $form->textwithpicto('', $htmltext, 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['b.num_releve']['checked']))
|
if (! empty($arrayfields['b.num_releve']['checked']))
|
||||||
{
|
{
|
||||||
// Numero
|
// Numero statement
|
||||||
print '<td class="liste_titre" align="center"><input type="text" class="flat" name="search_num_releve" value="'.dol_escape_htmltag($search_num_releve).'" size="2"></td>';
|
print '<td class="liste_titre" align="center"><input type="text" class="flat" name="search_num_releve" value="'.dol_escape_htmltag($search_num_releve).'" size="3"></td>';
|
||||||
}
|
}
|
||||||
print '<td class="liste_titre" align="middle">';
|
print '<td class="liste_titre" align="middle">';
|
||||||
$searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
|
$searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
|
||||||
@ -415,168 +467,346 @@ if ($resql)
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
// Loop on each record
|
// Loop on each record
|
||||||
|
$total = 0; // For balance
|
||||||
|
$sign = 1;
|
||||||
|
|
||||||
$totalarray=array();
|
$totalarray=array();
|
||||||
while ($i < min($num,$limit))
|
while ($i < min($num,$limit))
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($resql);
|
$objp = $db->fetch_object($resql);
|
||||||
|
|
||||||
// Why this ?
|
$total = price2num($total + ($sign * $objp->amount),'MT');
|
||||||
$printline=false;
|
|
||||||
//Search Description
|
if (empty($cachebankaccount[$objp->bankid]))
|
||||||
if ($description) {
|
{
|
||||||
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthese on tente recherche de traduction
|
$bankaccounttmp = new Account($db);
|
||||||
if ($reg[1]) {
|
$bankaccounttmp->fetch($objp->bankid);
|
||||||
if ($langs->transnoentities($reg[1])==$description) {
|
$cachebankaccount[$objp->bankid]=$bankaccounttmp;
|
||||||
$printline=true;
|
$bankaccount = $bankaccounttmp;
|
||||||
}
|
|
||||||
} elseif ($objp->label==$description) {
|
|
||||||
$printline=true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$printline=true;
|
|
||||||
}
|
}
|
||||||
if ($printline) {
|
else
|
||||||
|
{
|
||||||
$var=!$var;
|
$bankaccount = $cachebankaccount[$objp->bankid];
|
||||||
|
}
|
||||||
|
|
||||||
|
$var=!$var;
|
||||||
|
|
||||||
print "<tr ".$bc[$var].">";
|
print "<tr ".$bc[$var].">";
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
if (! empty($arrayfields['b.rowid']['checked']))
|
if (! empty($arrayfields['b.rowid']['checked']))
|
||||||
{
|
{
|
||||||
print '<td align="left" class="nowrap">';
|
print '<td align="left" class="nowrap">';
|
||||||
print "<a href=\"ligne.php?rowid=".$objp->rowid.'">'.img_object($langs->trans("ShowPayment").': '.$objp->rowid, 'payment', 'class="classfortooltip"').' '.$objp->rowid."</a> ";
|
print "<a href=\"ligne.php?rowid=".$objp->rowid.'">'.img_object($langs->trans("ShowPayment").': '.$objp->rowid, 'account', 'class="classfortooltip"').' '.$objp->rowid."</a> ";
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
|
||||||
}
|
|
||||||
// Date ope
|
|
||||||
if (! empty($arrayfields['b.dateo']['checked']))
|
|
||||||
{
|
|
||||||
print '<td align="center" class="nowrap">'.dol_print_date($db->jdate($objp->do),"day")."</td>\n";
|
|
||||||
if (! $i) $totalarray['nbfield']++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Date value
|
|
||||||
if (! empty($arrayfields['b.datev']['checked']))
|
|
||||||
{
|
|
||||||
print '<td align="center" class="nowrap">'.dol_print_date($db->jdate($objp->dv),"day")."</td>\n";
|
|
||||||
if (! $i) $totalarray['nbfield']++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Payment type
|
|
||||||
if (! empty($arrayfields['type']['checked']))
|
|
||||||
{
|
|
||||||
print '<td align="center" class="nowrap">';
|
|
||||||
$labeltype=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$langs->getLabelFromKey($db,$objp->fk_type,'c_paiement','code','libelle');
|
|
||||||
if ($labeltype == 'SOLD') print ' '; //$langs->trans("InitialBankBalance");
|
|
||||||
else print $labeltype;
|
|
||||||
print "</td>\n";
|
|
||||||
if (! $i) $totalarray['nbfield']++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Num cheque
|
|
||||||
if (! empty($arrayfields['b.num_releve']['checked']))
|
|
||||||
{
|
|
||||||
print '<td class="nowrap" align="center">'.($objp->num_chq?$objp->num_chq:"")."</td>\n";
|
|
||||||
if (! $i) $totalarray['nbfield']++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Description
|
|
||||||
if (! empty($arrayfields['description']['checked']))
|
|
||||||
{
|
|
||||||
print "<td>";
|
|
||||||
|
|
||||||
print "<a href=\"ligne.php?rowid=".$objp->rowid."&account=".$objp->fk_account."\">";
|
|
||||||
$reg=array();
|
|
||||||
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthee on tente recherche de traduction
|
|
||||||
if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]);
|
|
||||||
else print dol_trunc($objp->label,40);
|
|
||||||
print "</a> ";
|
|
||||||
|
|
||||||
print '</td>';
|
|
||||||
if (! $i) $totalarray['nbfield']++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Third party
|
|
||||||
if (! empty($arrayfields['bu.label']['checked']))
|
|
||||||
{
|
|
||||||
print "<td>";
|
|
||||||
if ($objp->url_id)
|
|
||||||
{
|
|
||||||
$companystatic->id=$objp->url_id;
|
|
||||||
$companystatic->name=$objp->nom;
|
|
||||||
$companystatic->name_alias=$objp->name_alias;
|
|
||||||
$companystatic->client=$objp->client;
|
|
||||||
$companystatic->fournisseur=$objp->fournisseur;
|
|
||||||
$companystatic->code_client=$objp->code_client;
|
|
||||||
$companystatic->code_fournisseur=$objp->code_fournisseur;
|
|
||||||
print $companystatic->getNomUrl(1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print ' ';
|
|
||||||
}
|
|
||||||
print '</td>';
|
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Debit
|
// Description
|
||||||
if (! empty($arrayfields['b.debit']['checked']))
|
if (! empty($arrayfields['description']['checked']))
|
||||||
{
|
{
|
||||||
print '<td align="right">';
|
print "<td>";
|
||||||
if ($objp->amount < 0)
|
|
||||||
{
|
//print "<a href=\"ligne.php?rowid=".$objp->rowid."&account=".$objp->fk_account."\">";
|
||||||
print price($objp->amount * -1);
|
$reg=array();
|
||||||
$totalarray['totaldeb'] += $objp->amount;
|
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthee on tente recherche de traduction
|
||||||
}
|
if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]);
|
||||||
print "</td>\n";
|
else print dol_trunc($objp->label,40);
|
||||||
if (! $i) $totalarray['nbfield']++;
|
//print "</a> ";
|
||||||
if (! $i) $totalarray['totaldebfield']=$totalarray['nbfield'];
|
|
||||||
}
|
// Add links after description
|
||||||
// Credit
|
$links = $bankaccountstatic->get_url($objp->rowid);
|
||||||
if (! empty($arrayfields['b.credit']['checked']))
|
$cachebankaccount=array();
|
||||||
{
|
foreach($links as $key=>$val)
|
||||||
print '<td align="right">';
|
{
|
||||||
if ($objp->amount > 0)
|
if ($links[$key]['type']=='payment')
|
||||||
{
|
{
|
||||||
print price($objp->amount);
|
$paymentstatic->id=$links[$key]['url_id'];
|
||||||
$totalarray['totalcred'] += $objp->amount;
|
$paymentstatic->ref=$links[$key]['url_id'];
|
||||||
}
|
print ' '.$paymentstatic->getNomUrl(2);
|
||||||
print "</td>\n";
|
}
|
||||||
if (! $i) $totalarray['nbfield']++;
|
elseif ($links[$key]['type']=='payment_supplier')
|
||||||
if (! $i) $totalarray['totalcredfield']=$totalarray['nbfield'];
|
{
|
||||||
}
|
$paymentsupplierstatic->id=$links[$key]['url_id'];
|
||||||
|
$paymentsupplierstatic->ref=$links[$key]['url_id'];
|
||||||
// Bank account
|
print ' '.$paymentsupplierstatic->getNomUrl(2);
|
||||||
if (! empty($arrayfields['ba.ref']['checked']))
|
}
|
||||||
{
|
elseif ($links[$key]['type']=='payment_sc')
|
||||||
print '<td align="right" class="nowrap">';
|
{
|
||||||
$bankaccountstatic->id=$objp->bankid;
|
print '<a href="'.DOL_URL_ROOT.'/compta/payment_sc/card.php?id='.$links[$key]['url_id'].'">';
|
||||||
$bankaccountstatic->label=$objp->bankref;
|
print ' '.img_object($langs->trans('ShowPayment'),'payment').' ';
|
||||||
print $bankaccountstatic->getNomUrl(1);
|
//print $langs->trans("SocialContributionPayment");
|
||||||
print "</td>\n";
|
print '</a>';
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='payment_vat')
|
||||||
|
{
|
||||||
|
$paymentvatstatic->id=$links[$key]['url_id'];
|
||||||
|
$paymentvatstatic->ref=$links[$key]['url_id'];
|
||||||
|
print ' '.$paymentvatstatic->getNomUrl(2);
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='payment_salary')
|
||||||
|
{
|
||||||
|
$paymentsalstatic->id=$links[$key]['url_id'];
|
||||||
|
$paymentsalstatic->ref=$links[$key]['url_id'];
|
||||||
|
print ' '.$paymentsalstatic->getNomUrl(2);
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='payment_loan')
|
||||||
|
{
|
||||||
|
print '<a href="'.DOL_URL_ROOT.'/loan/payment/card.php?id='.$links[$key]['url_id'].'">';
|
||||||
|
print ' '.img_object($langs->trans('ShowPayment'),'payment').' ';
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='payment_donation')
|
||||||
|
{
|
||||||
|
print '<a href="'.DOL_URL_ROOT.'/don/payment/card.php?id='.$links[$key]['url_id'].'">';
|
||||||
|
print ' '.img_object($langs->trans('ShowPayment'),'payment').' ';
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='payment_expensereport')
|
||||||
|
{
|
||||||
|
print '<a href="'.DOL_URL_ROOT.'/expensereport/payment/card.php?id='.$links[$key]['url_id'].'">';
|
||||||
|
print ' '.img_object($langs->trans('ShowPayment'),'payment').' ';
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='banktransfert')
|
||||||
|
{
|
||||||
|
// Do not show link to transfer since there is no transfer card (avoid confusion). Can already be accessed from transaction detail.
|
||||||
|
if ($objp->amount > 0)
|
||||||
|
{
|
||||||
|
$banklinestatic->fetch($links[$key]['url_id']);
|
||||||
|
$bankstatic->id=$banklinestatic->fk_account;
|
||||||
|
$bankstatic->label=$banklinestatic->bank_account_ref;
|
||||||
|
print ' ('.$langs->trans("TransferFrom").' ';
|
||||||
|
print $bankstatic->getNomUrl(1,'transactions');
|
||||||
|
print ' '.$langs->trans("toward").' ';
|
||||||
|
$bankstatic->id=$objp->bankid;
|
||||||
|
$bankstatic->label=$objp->bankref;
|
||||||
|
print $bankstatic->getNomUrl(1,'');
|
||||||
|
print ')';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$bankstatic->id=$objp->bankid;
|
||||||
|
$bankstatic->label=$objp->bankref;
|
||||||
|
print ' ('.$langs->trans("TransferFrom").' ';
|
||||||
|
print $bankstatic->getNomUrl(1,'');
|
||||||
|
print ' '.$langs->trans("toward").' ';
|
||||||
|
$banklinestatic->fetch($links[$key]['url_id']);
|
||||||
|
$bankstatic->id=$banklinestatic->fk_account;
|
||||||
|
$bankstatic->label=$banklinestatic->bank_account_ref;
|
||||||
|
print $bankstatic->getNomUrl(1,'transactions');
|
||||||
|
print ')';
|
||||||
|
}
|
||||||
|
//var_dump($links);
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='company')
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='user')
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='member')
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
elseif ($links[$key]['type']=='sc')
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Show link with label $links[$key]['label']
|
||||||
|
if (! empty($objp->label) && ! empty($links[$key]['label'])) print ' - ';
|
||||||
|
print '<a href="'.$links[$key]['url'].$links[$key]['url_id'].'">';
|
||||||
|
if (preg_match('/^\((.*)\)$/i',$links[$key]['label'],$reg))
|
||||||
|
{
|
||||||
|
// Label generique car entre parentheses. On l'affiche en le traduisant
|
||||||
|
if ($reg[1]=='paiement') $reg[1]='Payment';
|
||||||
|
print ' '.$langs->trans($reg[1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print ' '.$links[$key]['label'];
|
||||||
|
}
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Date ope
|
||||||
|
if (! empty($arrayfields['b.dateo']['checked']))
|
||||||
|
{
|
||||||
|
print '<td align="center" class="nowrap">'.dol_print_date($db->jdate($objp->do),"day")."</td>\n";
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($arrayfields['b.num_releve']['checked']))
|
// Date value
|
||||||
{
|
if (! empty($arrayfields['b.datev']['checked']))
|
||||||
print '<td class="nowrap" align="center">'.($objp->num_releve?$objp->num_releve:"")."</td>\n";
|
{
|
||||||
|
print '<td align="center" class="nowrap">'.dol_print_date($db->jdate($objp->dv),"day")."</td>\n";
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action column
|
// Payment type
|
||||||
print '<td class="nowrap" align="center">';
|
if (! empty($arrayfields['type']['checked']))
|
||||||
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
|
{
|
||||||
{
|
print '<td align="center" class="nowrap">';
|
||||||
$selected=0;
|
$labeltype=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$langs->getLabelFromKey($db,$objp->fk_type,'c_paiement','code','libelle');
|
||||||
if (in_array($obj->rowid, $arrayofselected)) $selected=1;
|
if ($labeltype == 'SOLD') print ' '; //$langs->trans("InitialBankBalance");
|
||||||
print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
|
else print $labeltype;
|
||||||
}
|
print "</td>\n";
|
||||||
print '</td>';
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Num cheque
|
||||||
|
if (! empty($arrayfields['b.num_releve']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="nowrap" align="center">'.($objp->num_chq?$objp->num_chq:"")."</td>\n";
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Third party
|
||||||
|
if (! empty($arrayfields['bu.label']['checked']))
|
||||||
|
{
|
||||||
|
print "<td>";
|
||||||
|
if ($objp->url_id)
|
||||||
|
{
|
||||||
|
$companystatic->id=$objp->url_id;
|
||||||
|
$companystatic->name=$objp->nom;
|
||||||
|
$companystatic->name_alias=$objp->name_alias;
|
||||||
|
$companystatic->client=$objp->client;
|
||||||
|
$companystatic->fournisseur=$objp->fournisseur;
|
||||||
|
$companystatic->code_client=$objp->code_client;
|
||||||
|
$companystatic->code_fournisseur=$objp->code_fournisseur;
|
||||||
|
$companystatic->code_compta=$objp->code_compta;
|
||||||
|
$companystatic->code_compta_fournisseur=$objp->code_compta_fournisseur;
|
||||||
|
print $companystatic->getNomUrl(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print ' ';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
print "</tr>";
|
|
||||||
}
|
// Bank account
|
||||||
|
if (! empty($arrayfields['ba.ref']['checked']))
|
||||||
|
{
|
||||||
|
print '<td align="right" class="nowrap">';
|
||||||
|
print $bankaccount->getNomUrl(1);
|
||||||
|
print "</td>\n";
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debit
|
||||||
|
if (! empty($arrayfields['b.debit']['checked']))
|
||||||
|
{
|
||||||
|
print '<td align="right">';
|
||||||
|
if ($objp->amount < 0)
|
||||||
|
{
|
||||||
|
print price($objp->amount * -1);
|
||||||
|
$totalarray['totaldeb'] += $objp->amount;
|
||||||
|
}
|
||||||
|
print "</td>\n";
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
if (! $i) $totalarray['totaldebfield']=$totalarray['nbfield'];
|
||||||
|
}
|
||||||
|
// Credit
|
||||||
|
if (! empty($arrayfields['b.credit']['checked']))
|
||||||
|
{
|
||||||
|
print '<td align="right">';
|
||||||
|
if ($objp->amount > 0)
|
||||||
|
{
|
||||||
|
print price($objp->amount);
|
||||||
|
$totalarray['totalcred'] += $objp->amount;
|
||||||
|
}
|
||||||
|
print "</td>\n";
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
if (! $i) $totalarray['totalcredfield']=$totalarray['nbfield'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Balance
|
||||||
|
if (! empty($arrayfields['balance']['checked']))
|
||||||
|
{
|
||||||
|
if ($mode_balance_ok)
|
||||||
|
{
|
||||||
|
if ($total >= 0)
|
||||||
|
{
|
||||||
|
print '<td align="right" class="nowrap"> '.price($total).'</td>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<td align="right" class="error nowrap"> '.price($total).'</td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<td align="right">-</td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Transaction reconciliated or edit link
|
||||||
|
if ($objp->rappro && $bankaccount->canBeConciliated() > 0) // If line not conciliated and account can be conciliated
|
||||||
|
{
|
||||||
|
print '<td align="center" class="nowrap">';
|
||||||
|
print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$object->id.'&page='.$page.'">';
|
||||||
|
print img_edit();
|
||||||
|
print '</a>';
|
||||||
|
print " ";
|
||||||
|
print '<a href="releve.php?num='.$objp->num_releve.'&account='.$object->id.'">'.$objp->num_releve.'</a>';
|
||||||
|
print "</td>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<td align="center">';
|
||||||
|
if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
|
||||||
|
{
|
||||||
|
print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$object->id.'&page='.$page.'">';
|
||||||
|
print img_edit();
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$object->id.'&page='.$page.'">';
|
||||||
|
print img_view();
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
if ($bankaccount->canBeConciliated() > 0 && empty($objp->rappro))
|
||||||
|
{
|
||||||
|
if ($db->jdate($objp->dv) < ($now - $conf->bank->rappro->warning_delay))
|
||||||
|
{
|
||||||
|
print ' '.img_warning($langs->trans("Late"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print ' ';
|
||||||
|
if ($user->rights->banque->modifier)
|
||||||
|
{
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=delete&rowid='.$objp->rowid.'&id='.$object->id.'&page='.$page.'">';
|
||||||
|
print img_delete();
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Action column
|
||||||
|
print '<td class="nowrap" align="center">';
|
||||||
|
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
|
||||||
|
{
|
||||||
|
$selected=0;
|
||||||
|
if (in_array($obj->rowid, $arrayofselected)) $selected=1;
|
||||||
|
print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
|
print "</tr>";
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/compta/bank/treso.php
|
* \file htdocs/compta/bank/treso.php
|
||||||
* \ingroup banque
|
* \ingroup banque
|
||||||
* \brief Page de detail du budget de tresorerie
|
* \brief Page to estimate future balance
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
@ -77,42 +77,32 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
|
|||||||
$viewline = 20;
|
$viewline = 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
$acct = new Account($db);
|
$object = new Account($db);
|
||||||
if ($_GET["account"])
|
if ($_GET["account"])
|
||||||
{
|
{
|
||||||
$result=$acct->fetch($_GET["account"]);
|
$result=$object->fetch($_GET["account"]);
|
||||||
}
|
}
|
||||||
if ($_GET["ref"])
|
if ($_GET["ref"])
|
||||||
{
|
{
|
||||||
$result=$acct->fetch(0,$_GET["ref"]);
|
$result=$object->fetch(0,$_GET["ref"]);
|
||||||
$_GET["account"]=$acct->id;
|
$_GET["account"]=$object->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Onglets
|
// Onglets
|
||||||
$head=bank_prepare_head($acct);
|
$head=bank_prepare_head($object);
|
||||||
dol_fiche_head($head,'cash',$langs->trans("FinancialAccount"),0,'account');
|
dol_fiche_head($head,'cash',$langs->trans("FinancialAccount"),0,'account');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
// Ref
|
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
|
||||||
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref');
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Label
|
|
||||||
print '<tr><td>'.$langs->trans("Label").'</td>';
|
|
||||||
print '<td colspan="3">'.$acct->label.'</td></tr>';
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
$solde = $acct->solde(0);
|
$solde = $object->solde(0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Affiche tableau des echeances a venir
|
* Affiche tableau des echeances a venir
|
||||||
@ -154,7 +144,7 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
|
|||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON f.fk_soc = s.rowid";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON f.fk_soc = s.rowid";
|
||||||
$sql.= " WHERE f.entity = ".$conf->entity;
|
$sql.= " WHERE f.entity = ".$conf->entity;
|
||||||
$sql.= " AND f.paye = 0 AND f.fk_statut = 1"; // Not paid
|
$sql.= " AND f.paye = 0 AND f.fk_statut = 1"; // Not paid
|
||||||
$sql.= " AND (f.fk_account IN (0, ".$acct->id.") OR f.fk_account IS NULL)"; // Id bank account of invoice
|
$sql.= " AND (f.fk_account IN (0, ".$object->id.") OR f.fk_account IS NULL)"; // Id bank account of invoice
|
||||||
$sql.= " ORDER BY dlr ASC";
|
$sql.= " ORDER BY dlr ASC";
|
||||||
|
|
||||||
// Supplier invoices
|
// Supplier invoices
|
||||||
@ -164,7 +154,7 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
|
|||||||
$sql2.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON ff.fk_soc = s.rowid";
|
$sql2.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON ff.fk_soc = s.rowid";
|
||||||
$sql2.= " WHERE ff.entity = ".$conf->entity;
|
$sql2.= " WHERE ff.entity = ".$conf->entity;
|
||||||
$sql2.= " AND ff.paye = 0 AND fk_statut = 1"; // Not paid
|
$sql2.= " AND ff.paye = 0 AND fk_statut = 1"; // Not paid
|
||||||
$sql2.= " AND (ff.fk_account IN (0, ".$acct->id.") OR ff.fk_account IS NULL)"; // Id bank account of supplier invoice
|
$sql2.= " AND (ff.fk_account IN (0, ".$object->id.") OR ff.fk_account IS NULL)"; // Id bank account of supplier invoice
|
||||||
$sql2.= " ORDER BY dlr ASC";
|
$sql2.= " ORDER BY dlr ASC";
|
||||||
|
|
||||||
// Social contributions
|
// Social contributions
|
||||||
@ -174,7 +164,7 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
|
|||||||
$sql3.= " LEFT JOIN ".MAIN_DB_PREFIX."c_chargesociales as ccs ON cs.fk_type = ccs.id";
|
$sql3.= " LEFT JOIN ".MAIN_DB_PREFIX."c_chargesociales as ccs ON cs.fk_type = ccs.id";
|
||||||
$sql3.= " WHERE cs.entity = ".$conf->entity;
|
$sql3.= " WHERE cs.entity = ".$conf->entity;
|
||||||
$sql3.= " AND cs.paye = 0"; // Not paid
|
$sql3.= " AND cs.paye = 0"; // Not paid
|
||||||
$sql3.= " AND (cs.fk_account IN (0, ".$acct->id.") OR cs.fk_account IS NULL)"; // Id bank account of social contribution
|
$sql3.= " AND (cs.fk_account IN (0, ".$object->id.") OR cs.fk_account IS NULL)"; // Id bank account of social contribution
|
||||||
$sql3.= " ORDER BY dlr ASC";
|
$sql3.= " ORDER BY dlr ASC";
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
@ -332,8 +322,8 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
|
|||||||
// Solde actuel
|
// Solde actuel
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td align="left" colspan="5">'.$langs->trans("FutureBalance").' ('.$acct->currency_code.')</td>';
|
print '<td align="left" colspan="5">'.$langs->trans("FutureBalance").' ('.$object->currency_code.')</td>';
|
||||||
print '<td align="right" class="nowrap">'.price($solde, 0, $langs, 0, 0, -1, $acct->currency_code).'</td>';
|
print '<td align="right" class="nowrap">'.price($solde, 0, $langs, 0, 0, -1, $object->currency_code).'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|||||||
@ -2814,9 +2814,10 @@ class Form
|
|||||||
* @param int $noadmininfo 0=Add admin info, 1=Disable admin info
|
* @param int $noadmininfo 0=Add admin info, 1=Disable admin info
|
||||||
* @param int $maxlength Max length of label
|
* @param int $maxlength Max length of label
|
||||||
* @param int $active Active or not, -1 = all
|
* @param int $active Active or not, -1 = all
|
||||||
|
* @param string $morecss Add more css
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function select_types_paiements($selected='', $htmlname='paiementtype', $filtertype='', $format=0, $empty=0, $noadmininfo=0, $maxlength=0, $active=1)
|
function select_types_paiements($selected='', $htmlname='paiementtype', $filtertype='', $format=0, $empty=0, $noadmininfo=0, $maxlength=0, $active=1, $morecss='')
|
||||||
{
|
{
|
||||||
global $langs,$user;
|
global $langs,$user;
|
||||||
|
|
||||||
@ -2829,7 +2830,7 @@ class Form
|
|||||||
|
|
||||||
$this->load_cache_types_paiements();
|
$this->load_cache_types_paiements();
|
||||||
|
|
||||||
print '<select id="select'.$htmlname.'" class="flat selectpaymenttypes" name="'.$htmlname.'">';
|
print '<select id="select'.$htmlname.'" class="flat selectpaymenttypes'.($morecss?' '.$morecss:'').'" name="'.$htmlname.'">';
|
||||||
if ($empty) print '<option value=""> </option>';
|
if ($empty) print '<option value=""> </option>';
|
||||||
foreach($this->cache_types_paiements as $id => $arraytypes)
|
foreach($this->cache_types_paiements as $id => $arraytypes)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -86,6 +86,7 @@ Refund=Refund
|
|||||||
SocialContributionsPayments=Social/fiscal taxes payments
|
SocialContributionsPayments=Social/fiscal taxes payments
|
||||||
ShowVatPayment=Show VAT payment
|
ShowVatPayment=Show VAT payment
|
||||||
TotalToPay=Total to pay
|
TotalToPay=Total to pay
|
||||||
|
BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account
|
||||||
CustomerAccountancyCode=Customer accountancy code
|
CustomerAccountancyCode=Customer accountancy code
|
||||||
SupplierAccountancyCode=Supplier accountancy code
|
SupplierAccountancyCode=Supplier accountancy code
|
||||||
CustomerAccountancyCodeShort=Cust. account. code
|
CustomerAccountancyCodeShort=Cust. account. code
|
||||||
|
|||||||
@ -1904,7 +1904,11 @@ class Societe extends CommonObject
|
|||||||
$label.= '<br><b>' . $langs->trans('CustomerCode') . ':</b> '. $this->code_client;
|
$label.= '<br><b>' . $langs->trans('CustomerCode') . ':</b> '. $this->code_client;
|
||||||
if (! empty($this->code_fournisseur) && $this->fournisseur)
|
if (! empty($this->code_fournisseur) && $this->fournisseur)
|
||||||
$label.= '<br><b>' . $langs->trans('SupplierCode') . ':</b> '. $this->code_fournisseur;
|
$label.= '<br><b>' . $langs->trans('SupplierCode') . ':</b> '. $this->code_fournisseur;
|
||||||
|
if (! empty($conf->accounting->enabled) && $this->client)
|
||||||
|
$label.= '<br><b>' . $langs->trans('CustomerAccountancyCode') . ':</b> '. $this->code_compta_client;
|
||||||
|
if (! empty($conf->accounting->enabled) && $this->fournisseur)
|
||||||
|
$label.= '<br><b>' . $langs->trans('SupplierAccountancyCode') . ':</b> '. $this->code_compta_fournisseur;
|
||||||
|
|
||||||
if (! empty($this->logo))
|
if (! empty($this->logo))
|
||||||
{
|
{
|
||||||
$label.= '</br><div class="photointooltip">';
|
$label.= '</br><div class="photointooltip">';
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user