This add two params (PAYMENTS_REPORT_GROUP_BY_MOD and PAYMENTS_FOURN_REPORT_GROUP_BY_MOD) for payments and supplier payments to group them by mode and get subtotals for each mode. Add the corresponding configuration options on admin page fore each payments and supplier payments.
176 lines
5.4 KiB
PHP
176 lines
5.4 KiB
PHP
<?php
|
|
/* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
|
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
|
* Copyright (C) 2020 Maxime DEMAREST <maxime@indelog.fr>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/**
|
|
* \file htdocs/compta/paiement/rapport.php
|
|
* \ingroup facture
|
|
* \brief Payment reports page
|
|
*/
|
|
|
|
require '../../main.inc.php';
|
|
require_once DOL_DOCUMENT_ROOT.'/core/modules/rapport/pdf_paiement.class.php';
|
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
|
|
|
// Security check
|
|
if (!$user->rights->facture->lire) accessforbidden();
|
|
|
|
$action = GETPOST('action', 'aZ09');
|
|
|
|
$socid = 0;
|
|
if ($user->socid > 0)
|
|
{
|
|
$action = '';
|
|
$socid = $user->socid;
|
|
}
|
|
|
|
$dir = $conf->facture->dir_output.'/payments';
|
|
if (!$user->rights->societe->client->voir || $socid) $dir .= '/private/'.$user->id; // If user has no permission to see all, output dir is specific to user
|
|
|
|
$year = GETPOST('year', 'int');
|
|
if (!$year) { $year = date("Y"); }
|
|
|
|
|
|
/*
|
|
* Actions
|
|
*/
|
|
|
|
if ($action == 'builddoc')
|
|
{
|
|
$rap = new pdf_paiement($db);
|
|
|
|
$outputlangs = $langs;
|
|
if (GETPOST('lang_id', 'aZ09'))
|
|
{
|
|
$outputlangs = new Translate("", $conf);
|
|
$outputlangs->setDefaultLang(GETPOST('lang_id', 'aZ09'));
|
|
}
|
|
|
|
// We save charset_output to restore it because write_file can change it if needed for
|
|
// output format that does not support UTF8.
|
|
$sav_charset_output = $outputlangs->charset_output;
|
|
if ($rap->write_file($dir, $_POST["remonth"], $_POST["reyear"], $outputlangs) > 0)
|
|
{
|
|
$outputlangs->charset_output = $sav_charset_output;
|
|
}
|
|
else
|
|
{
|
|
$outputlangs->charset_output = $sav_charset_output;
|
|
dol_print_error($db, $obj->error);
|
|
}
|
|
|
|
$year = $_POST["reyear"];
|
|
}
|
|
|
|
|
|
/*
|
|
* View
|
|
*/
|
|
|
|
$formother = new FormOther($db);
|
|
$formfile = new FormFile($db);
|
|
|
|
llxHeader();
|
|
|
|
$titre = ($year ? $langs->trans("PaymentsReportsForYear", $year) : $langs->trans("PaymentsReports"));
|
|
print load_fiche_titre($titre, '', 'bill');
|
|
|
|
// Formulaire de generation
|
|
print '<form method="post" action="rapport.php?year='.$year.'">';
|
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
|
print '<input type="hidden" name="action" value="builddoc">';
|
|
$cmonth = GETPOST("remonth") ?GETPOST("remonth") : date("n", time());
|
|
$syear = GETPOST("reyear") ?GETPOST("reyear") : date("Y", time());
|
|
|
|
print $formother->select_month($cmonth, 'remonth');
|
|
|
|
print $formother->select_year($syear, 'reyear');
|
|
|
|
print '<input type="submit" class="button" value="'.$langs->trans("Create").'">';
|
|
print '</form>';
|
|
print '<br>';
|
|
|
|
clearstatcache();
|
|
|
|
// Show link on other years
|
|
$linkforyear = array();
|
|
$found = 0;
|
|
if (is_dir($dir))
|
|
{
|
|
$handle = opendir($dir);
|
|
if (is_resource($handle))
|
|
{
|
|
while (($file = readdir($handle)) !== false)
|
|
{
|
|
if (is_dir($dir.'/'.$file) && !preg_match('/^\./', $file) && is_numeric($file))
|
|
{
|
|
$found = 1;
|
|
$linkforyear[] = $file;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
asort($linkforyear);
|
|
foreach ($linkforyear as $cursoryear)
|
|
{
|
|
print '<a href="'.$_SERVER["PHP_SELF"].'?year='.$cursoryear.'">'.$cursoryear.'</a> ';
|
|
}
|
|
|
|
if ($year)
|
|
{
|
|
if (is_dir($dir.'/'.$year))
|
|
{
|
|
$handle = opendir($dir.'/'.$year);
|
|
|
|
if ($found) print '<br>';
|
|
print '<br>';
|
|
print '<table width="100%" class="noborder">';
|
|
print '<tr class="liste_titre">';
|
|
print '<td>'.$langs->trans("Reporting").'</td>';
|
|
print '<td class="right">'.$langs->trans("Size").'</td>';
|
|
print '<td class="right">'.$langs->trans("Date").'</td>';
|
|
print '</tr>';
|
|
|
|
if (is_resource($handle))
|
|
{
|
|
while (($file = readdir($handle)) !== false)
|
|
{
|
|
if (preg_match('/^payment/i', $file))
|
|
{
|
|
$tfile = $dir.'/'.$year.'/'.$file;
|
|
$relativepath = $year.'/'.$file;
|
|
print '<tr class="oddeven">';
|
|
print '<td><a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?modulepart=facture_paiement&file='.urlencode($relativepath).'">'.img_pdf().' '.$file.'</a>'.$formfile->showPreview($file, 'facture_paiement', $relativepath, 0).'</td>';
|
|
print '<td class="right">'.dol_print_size(dol_filesize($tfile)).'</td>';
|
|
print '<td class="right">'.dol_print_date(dol_filemtime($tfile), "dayhour").'</td>';
|
|
print '</tr>';
|
|
}
|
|
}
|
|
closedir($handle);
|
|
}
|
|
print '</table>';
|
|
}
|
|
}
|
|
|
|
// End of page
|
|
llxFooter();
|
|
$db->close();
|