* * 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. */ /** * \file mahnung/list.php * \ingroup mahnung * \brief Vorschlagsliste (mode=vorschlag) und Mahnvorgaenge-Archiv (mode=archiv). */ $res = 0; if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; } $tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; } if (!$res && file_exists("../main.inc.php")) { $res = @include "../main.inc.php"; } if (!$res && file_exists("../../main.inc.php")) { $res = @include "../../main.inc.php"; } if (!$res) { die("Include of main fails"); } require_once DOL_DOCUMENT_ROOT.'/custom/mahnung/class/mahnung.class.php'; require_once DOL_DOCUMENT_ROOT.'/custom/mahnung/class/mahnungstufe.class.php'; require_once DOL_DOCUMENT_ROOT.'/custom/mahnung/class/mahnungvorschlag.class.php'; global $langs, $user, $db; $langs->loadLangs(array('mahnung@mahnung', 'companies', 'bills')); if (!$user->hasRight('mahnung', 'read')) { accessforbidden(); } $mode = GETPOST('mode', 'aZ09'); if ($mode !== 'archiv') { $mode = 'vorschlag'; } $filter = array(); $filter_stufe = GETPOST('filter_stufe', 'int'); if ($filter_stufe !== '' && $filter_stufe !== null) { $filter['stufe'] = (int) $filter_stufe; } $filter_minverzug = GETPOST('filter_minverzug', 'int'); if ($filter_minverzug !== '' && $filter_minverzug !== null) { $filter['min_tage_verzug'] = (int) $filter_minverzug; } $filter_socid = GETPOST('search_socid', 'int'); if (!empty($filter_socid)) { $filter['soc_id'] = (int) $filter_socid; } llxHeader('', $langs->trans($mode === 'archiv' ? 'MahnungArchiv' : 'MahnungVorschlagsliste')); print load_fiche_titre( $langs->trans($mode === 'archiv' ? 'MahnungArchiv' : 'MahnungVorschlagsliste'), '', 'fa-envelope-open-text' ); // --- Filter-Form --- print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print '
'.$langs->trans('MahnungStufe').''.$langs->trans('MahnungTageVerzug').' (min)'.$langs->trans('MahnungKunde').'
'; print '
'; print '

'; if ($mode === 'vorschlag') { renderVorschlagsliste($db, $filter); } else { renderArchiv($db, $filter); } llxFooter(); $db->close(); /** * Rendert die Vorschlagsliste auf Basis von MahnungVorschlag. * * @param DoliDB $db * @param array $filter * @return void */ function renderVorschlagsliste($db, $filter) { global $langs, $user; $service = new MahnungVorschlag($db); $rows = $service->getVorschlaege($filter); if (empty($rows)) { print '
'.$langs->trans('MahnungKeineUeberfaelligen').'
'; return; } $canWrite = $user->hasRight('mahnung', 'write'); print '
'; print ''; print ''; print ''; if ($canWrite) { print ''; } print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; $summeOffen = 0.0; foreach ($rows as $r) { print ''; if ($canWrite) { print ''; } print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; $summeOffen += (float) $r['betrag_offen']; } print ''; print ''; print '
'.$langs->trans('MahnungRechnung').''.$langs->trans('MahnungKunde').''.$langs->trans('MahnungKundentyp').''.$langs->trans('MahnungFaelligkeitAlt').''.$langs->trans('MahnungTageVerzug').''.$langs->trans('MahnungBetragOffen').''.$langs->trans('MahnungLetzteMahnung').''.$langs->trans('MahnungVorgeschlageneStufe').'
'.dol_escape_htmltag($r['facture_ref']).''.dol_escape_htmltag($r['soc_nom']).''.dol_escape_htmltag($r['kundentyp']).''.dol_print_date($r['facture_date_lim_reglement'], 'day').''.((int) $r['tage_verzug']).''.price($r['betrag_offen']).''.($r['letzte_mahnung_stufe'] ? 'Stufe '.((int) $r['letzte_mahnung_stufe']).' am '.dol_print_date($r['letzte_mahnung_datum'], 'day') : '—').''.((int) $r['vorgeschlagene_stufe']).' — '.dol_escape_htmltag($r['vorgeschlagene_stufe_label']).'
'.$langs->trans('Total').''.price($summeOffen).'
'; if ($canWrite) { print '
'; print ' '; print ''; print '
'; print ''; } print '
'; } /** * Rendert das Archiv aller bestehenden Mahnvorgaenge. * * @param DoliDB $db * @param array $filter * @return void */ function renderArchiv($db, $filter) { global $langs; $mahnungObj = new Mahnung($db); $archivFilter = array(); if (isset($filter['stufe'])) { $archivFilter['stufe'] = $filter['stufe']; } $mahnungen = $mahnungObj->fetchAll('date_mahnung', 'DESC', 200, 0, $archivFilter); if (empty($mahnungen)) { print '
Keine Mahnvorgaenge.
'; return; } print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; foreach ($mahnungen as $m) { print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; } print '
'.$langs->trans('MahnungRef').''.$langs->trans('MahnungRechnung').''.$langs->trans('MahnungKunde').''.$langs->trans('MahnungStufe').''.$langs->trans('MahnungDatum').''.$langs->trans('MahnungBetragOffen').''.$langs->trans('MahnungGebuehr').''.$langs->trans('MahnungVerzugszinsen').''.$langs->trans('MahnungSumme').'Status
'.dol_escape_htmltag($m->ref).'#'.((int) $m->fk_facture).'#'.((int) $m->fk_soc).''.((int) $m->stufe).''.dol_print_date($m->date_mahnung, 'day').''.price($m->betrag_offen).''.price((float) $m->mahngebuehr + (float) $m->pauschale_b2b).''.price($m->verzugszinsen).''.price($m->summe_mahnung).''.dol_escape_htmltag($m->getStatusLabel()).'
'; }