32require
'../../main.inc.php';
33require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/tva.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/paymentvat.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/paymentsocialcontribution.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/salaries/class/salary.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
39require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
45$hookmanager->initHooks(array(
'specialexpensesindex'));
48$langs->loadLangs(array(
'compta',
'bills'));
52 $socid = $user->socid;
54$result =
restrictedArea($user,
'tax|salaries',
'',
'',
'charges|');
56$mode =
GETPOST(
"mode",
'alpha');
58$filtre =
GETPOST(
"filtre",
'alpha');
60 $year = date(
"Y", time());
62$optioncss =
GETPOST(
'optioncss',
'aZ');
65$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
66$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
68if (empty($page) || $page == -1) {
71$offset = $limit * $page;
75 $sortfield =
"cs.date_ech";
86$tva_static =
new Tva($db);
90$sal_static =
new Salary($db);
91$accountstatic =
new Account($db);
93llxHeader(
'', $langs->trans(
"SpecialExpensesArea"));
95$title = $langs->trans(
"SpecialExpensesArea");
98if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
99 $param .=
'&contextpage='.$contextpage;
101if ($limit > 0 && $limit != $conf->liste_limit) {
102 $param .=
'&limit='.$limit;
105 $param .=
'&sortfield='.$sortfield;
108 $param .=
'&sortorder='.$sortorder;
114print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
115if ($optioncss !=
'') {
116 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
118print
'<input type="hidden" name="token" value="'.newToken().
'">';
119print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
120print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
121print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
122print
'<input type="hidden" name="page" value="'.$page.
'">';
123print
'<input type="hidden" name="mode" value="'.$mode.
'">';
125$nav = ($year ?
'<a href="index.php?year='.($year - 1).$param.
'">'.
img_previous($langs->trans(
"Previous"),
'class="valignbottom"').
"</a> ".$langs->trans(
"Year").
' '.$year.
' <a href="index.php?year='.($year + 1).$param.
'">'.
img_next($langs->trans(
"Next"),
'class="valignbottom"').
"</a>" :
"");
127print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num, $totalnboflines,
'object_payment', 0, $nav,
'', $limit, 1);
130 $param .=
'&year='.$year;
133print
'<span class="opacitymedium">'.$langs->trans(
"DescTaxAndDividendsArea").
'</span><br>';
136if (isModEnabled(
'tax') && $user->hasRight(
'tax',
'charges',
'lire')) {
137 $sql =
"SELECT c.id, c.libelle as label,";
138 $sql .=
" cs.rowid, cs.libelle, cs.fk_type as type, cs.periode as period, cs.date_ech, cs.amount as total,";
139 $sql .=
" pc.rowid as pid, pc.datep, pc.amount as totalpaid, pc.num_paiement as num_payment, pc.fk_bank,";
140 $sql .=
" pct.code as payment_code,";
141 $sql .=
" ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel";
142 $sql .=
" FROM ".MAIN_DB_PREFIX.
"c_chargesociales as c,";
143 $sql .=
" ".MAIN_DB_PREFIX.
"chargesociales as cs";
144 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"paiementcharge as pc ON pc.fk_charge = cs.rowid";
145 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as pct ON pc.fk_typepaiement = pct.id";
146 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON pc.fk_bank = b.rowid";
147 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
148 $sql .=
" WHERE cs.fk_type = c.id";
149 $sql .=
" AND cs.entity IN (".getEntity(
"tax").
")";
158 if (preg_match(
'/^cs\./', $sortfield) || preg_match(
'/^c\./', $sortfield) || preg_match(
'/^pc\./', $sortfield) || preg_match(
'/^pct\./', $sortfield)) {
159 $sql .= $db->order($sortfield, $sortorder);
164 dol_syslog(
"compta/charges/index.php: select payment", LOG_DEBUG);
165 $resql = $db->query($sql);
167 $num = $db->num_rows($resql);
171 print
load_fiche_titre($langs->trans(
"SocialContributions").($year ?
' ('.$langs->trans(
"Year").
' '.$year.
')' :
''),
'',
'');
173 print
'<table class="noborder centpercent">';
174 print
'<tr class="liste_titre">';
175 print_liste_field_titre(
"PeriodEndDate", $_SERVER[
"PHP_SELF"],
"cs.date_ech",
"", $param,
'width="120"', $sortfield, $sortorder,
'nowraponall ');
178 print_liste_field_titre(
"ExpectedToPay", $_SERVER[
"PHP_SELF"],
"cs.amount",
"", $param,
'class="right"', $sortfield, $sortorder);
179 print_liste_field_titre(
"RefPayment", $_SERVER[
"PHP_SELF"],
"pc.rowid",
"", $param,
'', $sortfield, $sortorder);
180 print_liste_field_titre(
"DatePayment", $_SERVER[
"PHP_SELF"],
"pc.datep",
"", $param,
'align="center"', $sortfield, $sortorder);
181 print_liste_field_titre(
"PaymentMode", $_SERVER[
"PHP_SELF"],
"pct.code",
"", $param,
'', $sortfield, $sortorder);
182 if (isModEnabled(
"bank")) {
183 print_liste_field_titre(
"BankAccount", $_SERVER[
"PHP_SELF"],
"ba.label",
"", $param,
"", $sortfield, $sortorder);
185 print_liste_field_titre(
"PayedByThisPayment", $_SERVER[
"PHP_SELF"],
"pc.amount",
"", $param,
'class="right"', $sortfield, $sortorder);
195 while ($i < $imaxinloop) {
196 $obj = $db->fetch_object($resql);
198 print
'<tr class="oddeven">';
200 $date = $obj->period;
202 $date = $obj->date_ech;
204 print
'<td>'.dol_print_date($date,
'day').
'</td>';
207 $socialcontrib->id = $obj->rowid;
208 $socialcontrib->ref = $obj->label;
209 $socialcontrib->label = $obj->label;
210 print $socialcontrib->getNomUrl(1,
'20');
213 print
'<td class="tdoverflowmax200"><a href="'.DOL_URL_ROOT.
'/compta/sociales/list.php?filtre=cs.fk_type:'.$obj->type.
'">'.$obj->label.
'</a></td>';
215 print
'<td class="right"><span class="amount">'.price($obj->total).
'</span></td>';
217 $payment_sc_static->id = $obj->pid;
218 $payment_sc_static->ref = $obj->pid;
219 print
'<td>'.$payment_sc_static->getNomUrl(1).
"</td>\n";
221 print
'<td class="center">'.dol_print_date($db->jdate($obj->datep),
'day').
'</td>';
225 if ($obj->payment_code) {
226 $s .= $langs->trans(
"PaymentTypeShort".$obj->payment_code).
' ';
228 $s .= $obj->num_payment;
229 print
'<td class="tdoverflowmax125" title="'.dolPrintHTMLForAttribute($s).
'">';
234 if (isModEnabled(
"bank")) {
236 if ($obj->fk_bank > 0) {
238 $accountstatic->id = $obj->bid;
239 $accountstatic->ref = $obj->bref;
240 $accountstatic->number = $obj->bnumber;
241 $accountstatic->account_number = $obj->account_number;
242 $accountstatic->fk_accountancy_journal = $obj->fk_accountancy_journal;
243 $accountstatic->label = $obj->blabel;
245 print $accountstatic->getNomUrl(1);
252 print
'<td class="right">';
253 if ($obj->totalpaid) {
254 print
price($obj->totalpaid);
259 $total = $total + $obj->total;
260 $totalpaid = $totalpaid + $obj->totalpaid;
263 print
'<tr class="liste_total">';
265 print
'<td colspan="3" class="liste_total">'.$langs->trans(
"Total").
'</td>';
269 print
'<td class="liste_total right"></td>';
271 print
'<td class="liste_total center"> </td>';
272 print
'<td class="liste_total center"> </td>';
273 print
'<td class="liste_total center"> </td>';
274 if (isModEnabled(
"bank")) {
275 print
'<td class="liste_total center"></td>';
277 print
'<td class="liste_total right">'.price($totalpaid).
"</td>";
287if (isModEnabled(
'tax') && $user->hasRight(
'tax',
'charges',
'lire')) {
288 $sql =
"SELECT ptva.rowid, pv.rowid as id_tva, pv.amount as amount_tva, ptva.amount, pv.label, pv.datev as dm, ptva.datep as date_payment, ptva.fk_bank, ptva.num_paiement as num_payment,";
289 $sql .=
" pct.code as payment_code,";
290 $sql .=
" ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel";
291 $sql .=
" FROM ".MAIN_DB_PREFIX.
"tva as pv";
292 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"payment_vat as ptva ON ptva.fk_tva = pv.rowid";
293 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON (ptva.fk_bank = b.rowid)";
294 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
295 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as pct ON ptva.fk_typepaiement = pct.id";
296 $sql .=
" WHERE pv.entity IN (".getEntity(
"tax").
")";
302 if (preg_match(
'/^pv\./', $sortfield) || preg_match(
'/^ptva\./', $sortfield)) {
303 $sql .= $db->order($sortfield, $sortorder);
306 $result = $db->query($sql);
308 $num = $db->num_rows($result);
316 $labeltax = $langs->transcountry(
"VAT", $mysoc->country_code);
318 print
load_fiche_titre($labeltax.($year ?
' ('.$langs->trans(
"Year").
' '.$year.
')' :
''),
'',
'');
320 print
'<table class="noborder centpercent">';
321 print
'<tr class="liste_titre">';
322 print_liste_field_titre(
"PeriodEndDate", $_SERVER[
"PHP_SELF"],
"pv.datev",
"", $param,
'width="120"', $sortfield, $sortorder,
'nowraponall ');
324 print_liste_field_titre(
"ExpectedToPay", $_SERVER[
"PHP_SELF"],
"pv.amount",
"", $param,
'', $sortfield, $sortorder,
'right ');
325 print_liste_field_titre(
"RefPayment", $_SERVER[
"PHP_SELF"],
"ptva.rowid",
"", $param,
'', $sortfield, $sortorder);
326 print_liste_field_titre(
"DatePayment", $_SERVER[
"PHP_SELF"],
"ptva.datep",
"", $param,
'', $sortfield, $sortorder,
'center ');
327 print_liste_field_titre(
"PaymentMode", $_SERVER[
"PHP_SELF"],
"pct.code",
"", $param,
'', $sortfield, $sortorder);
328 if (isModEnabled(
"bank")) {
329 print_liste_field_titre(
"BankAccount", $_SERVER[
"PHP_SELF"],
"ba.label",
"", $param,
"", $sortfield, $sortorder);
331 print_liste_field_titre(
"PayedByThisPayment", $_SERVER[
"PHP_SELF"],
"ptva.amount",
"", $param,
'', $sortfield, $sortorder,
'right ');
337 while ($i < $imaxinloop) {
338 $obj = $db->fetch_object($result);
340 $totaltopay = $totaltopay + $obj->amount_tva;
341 $total = $total + $obj->amount;
343 print
'<tr class="oddeven">';
345 print
'<td class="left">'.dol_print_date($db->jdate($obj->dm),
'day').
'</td>'.
"\n";
347 $tva_static->id = $obj->id_tva;
348 $tva_static->ref = $obj->label;
349 print
"<td>".$tva_static->getNomUrl(1).
"</td>\n";
351 print
'<td class="right"><span class="amount">'.price($obj->amount_tva).
"</span></td>";
354 $ptva_static->id = $obj->rowid;
355 $ptva_static->ref = $obj->rowid;
356 print
'<td>'.$ptva_static->getNomUrl(1).
"</td>\n";
359 print
'<td class="center">'.dol_print_date($db->jdate($obj->date_payment),
'day').
"</td>\n";
363 if ($obj->payment_code) {
364 $s .= $langs->trans(
"PaymentTypeShort".$obj->payment_code).
' ';
366 $s .= $obj->num_payment;
367 print
'<td class="tdoverflowmax125" title="'.dolPrintHTMLForAttribute($s).
'">';
372 if (isModEnabled(
"bank")) {
374 if ($obj->fk_bank > 0) {
376 $accountstatic->id = $obj->bid;
377 $accountstatic->ref = $obj->bref;
378 $accountstatic->number = $obj->bnumber;
379 $accountstatic->account_number = $obj->account_number;
380 $accountstatic->fk_accountancy_journal = $obj->fk_accountancy_journal;
381 $accountstatic->label = $obj->blabel;
383 print $accountstatic->getNomUrl(1);
391 print
'<td class="right"><span class="amount">'.price($obj->amount).
"</span></td>";
398 print
'<tr class="liste_total">';
400 print
'<td class="liste_total" colspan="2">'.$langs->trans(
"Total").
'</td>';
404 print
'<td class="liste_total"> </td>';
406 print
'<td class="liste_total"></td>';
407 print
'<td class="liste_total"></td>';
408 print
'<td class="liste_total"></td>';
410 if (isModEnabled(
"bank")) {
411 print
'<td class="liste_total"></td>';
414 print
'<td class="liste_total right">'.price($total).
"</td>";
427if ($mysoc->localtax1_assuj ==
"1" && $mysoc->localtax2_assuj ==
"1") {
430} elseif ($mysoc->localtax1_assuj ==
"1") {
433} elseif ($mysoc->localtax2_assuj ==
"1") {
444 $labeltax = $langs->transcountry(($j == 1 ?
"LT1" :
"LT2"), $mysoc->country_code);
446 print
load_fiche_titre($labeltax.($year ?
' ('.$langs->trans(
"Year").
' '.$year.
')' :
''),
'',
'');
449 $sql =
"SELECT pv.rowid, pv.amount, pv.label, pv.datev as dm, pv.datep as dp";
450 $sql .=
" FROM ".MAIN_DB_PREFIX.
"localtax as pv";
451 $sql .=
" WHERE pv.entity = ".$conf->entity.
" AND localtaxtype = ".((int) $j);
457 if (preg_match(
'/^pv/', $sortfield)) {
458 $sql .= $db->order($sortfield, $sortorder);
461 $result = $db->query($sql);
463 $num = $db->num_rows($result);
467 print
'<div class="div-table-responsive-no-min">';
468 print
'<table class="noborder centpercent">';
469 print
'<tr class="liste_titre">';
470 print_liste_field_titre(
"PeriodEndDate", $_SERVER[
"PHP_SELF"],
"pv.datev",
"", $param,
'width="120"', $sortfield, $sortorder);
472 print_liste_field_titre(
"ExpectedToPay", $_SERVER[
"PHP_SELF"],
"pv.amount",
"", $param,
'class="right"', $sortfield, $sortorder);
473 print_liste_field_titre(
"RefPayment", $_SERVER[
"PHP_SELF"],
"pv.rowid",
"", $param,
'', $sortfield, $sortorder);
474 print_liste_field_titre(
"DatePayment", $_SERVER[
"PHP_SELF"],
"pv.datep",
"", $param,
'align="center"', $sortfield, $sortorder);
475 print_liste_field_titre(
"PayedByThisPayment", $_SERVER[
"PHP_SELF"],
"pv.amount",
"", $param,
'class="right"', $sortfield, $sortorder);
479 $obj = $db->fetch_object($result);
481 $total = $total + $obj->amount;
483 print
'<tr class="oddeven">';
484 print
'<td class="left">'.dol_print_date($db->jdate($obj->dm),
'day').
'</td>'.
"\n";
486 print
"<td>".$obj->label.
"</td>\n";
488 print
'<td class="right"><span class="amount">'.price($obj->amount).
"</span></td>";
491 $ptva_static->id = $obj->rowid;
492 $ptva_static->ref = $obj->rowid;
493 print
'<td class="left">'.$ptva_static->getNomUrl(1).
"</td>\n";
495 print
'<td class="center">'.dol_print_date($db->jdate($obj->dp),
'day').
"</td>\n";
496 print
'<td class="right"><span class="amount">'.price($obj->amount).
"</span></td>";
501 print
'<tr class="liste_total"><td colspan="2">'.$langs->trans(
"Total").
'</td>';
502 print
'<td class="right">'.price($total).
"</td>";
503 print
'<td align="center"> </td>';
504 print
'<td align="center"> </td>';
505 print
'<td class="right">'.price($total).
"</td>";
521$parameters = array(
'user' => $user);
522$reshook = $hookmanager->executeHooks(
'dashboardSpecialBills', $parameters, $object);
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage bank accounts.
Class for managing the social charges.
Class to manage payments of social contributions.
Class to manage payments of social contributions.
Class to manage salary payments.
Put here description of your class.
dol_get_first_day($year, $month=1, $gm=false)
Return GMT time for first day of a month or year.
dol_get_last_day($year, $month=12, $gm=false)
Return GMT time for last day of a month or year.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
img_previous($titlealt='default', $moreatt='')
Show previous logo.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
img_next($titlealt='default', $moreatt='')
Show next logo.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.