30 require
'../../main.inc.php';
31 require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/tva.class.php';
32 require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
33 require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/paymentsocialcontribution.class.php';
34 require_once DOL_DOCUMENT_ROOT.
'/salaries/class/paymentsalary.class.php';
35 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
36 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
42 $hookmanager->initHooks(array(
'specialexpensesindex'));
45 $langs->loadLangs(array(
'compta',
'bills'));
48 if ($user->socid) $socid = $user->socid;
49 $result =
restrictedArea($user,
'tax|salaries',
'',
'',
'charges|');
51 $mode =
GETPOST(
"mode",
'alpha');
53 $filtre =
GETPOST(
"filtre",
'alpha');
54 if (!$year) { $year = date(
"Y", time()); }
56 $search_account =
GETPOST(
'search_account',
'int');
58 $limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
59 $sortfield =
GETPOST(
"sortfield",
'alpha');
60 $sortorder =
GETPOST(
"sortorder",
'alpha');
62 if (empty($page) || $page == -1) { $page = 0; }
63 $offset = $limit * $page;
64 $pageprev = $page - 1;
65 $pagenext = $page + 1;
66 if (!$sortfield) $sortfield =
"cs.date_ech";
67 if (!$sortorder) $sortorder =
"DESC";
74 $tva_static =
new Tva($db);
78 $accountstatic =
new Account($db);
80 llxHeader(
'', $langs->trans(
"SpecialExpensesArea"));
82 $title = $langs->trans(
"SpecialExpensesArea");
85 if (!empty($contextpage) && $contextpage !=
$_SERVER[
"PHP_SELF"]) $param .=
'&contextpage='.$contextpage;
86 if ($limit > 0 && $limit != $conf->liste_limit) $param .=
'&limit='.$limit;
87 if ($sortfield) $param .=
'&sortfield='.$sortfield;
88 if ($sortorder) $param .=
'&sortorder='.$sortorder;
93 print '<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
94 if ($optioncss !=
'')
print '<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
95 print '<input type="hidden" name="token" value="'.newToken().
'">';
96 print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
97 print '<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
98 print '<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
99 print '<input type="hidden" name="page" value="'.$page.
'">';
100 print '<input type="hidden" name="mode" value="'.$mode.
'">';
102 $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>" :
"");
103 print_barre_liste($title, $page,
$_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num, $totalnboflines,
'object_payment', 0, $nav,
'', $limit, 1);
105 if ($year) $param .=
'&year='.$year;
107 print '<span class="opacitymedium">'.$langs->trans(
"DescTaxAndDividendsArea").
'</span><br>';
110 if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
113 print load_fiche_titre($langs->trans(
"SocialContributionsPayments").($year ?
' ('.$langs->trans(
"Year").
' '.$year.
')' :
''),
'',
'');
115 print '<table class="noborder centpercent">';
116 print '<tr class="liste_titre">';
128 $sql =
"SELECT c.id, c.libelle as label,";
129 $sql .=
" cs.rowid, cs.libelle, cs.fk_type as type, cs.periode, cs.date_ech, cs.amount as total,";
130 $sql .=
" pc.rowid as pid, pc.datep, pc.amount as totalpaye, pc.num_paiement as num_payment, pc.fk_bank,";
131 $sql .=
" pct.code as payment_code,";
132 $sql .=
" ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel";
133 $sql .=
" FROM ".MAIN_DB_PREFIX.
"c_chargesociales as c,";
134 $sql .=
" ".MAIN_DB_PREFIX.
"chargesociales as cs";
135 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"paiementcharge as pc ON pc.fk_charge = cs.rowid";
136 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as pct ON pc.fk_typepaiement = pct.id";
137 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON pc.fk_bank = b.rowid";
138 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
139 $sql .=
" WHERE cs.fk_type = c.id";
140 $sql .=
" AND cs.entity IN (".getEntity(
"tax").
")";
150 if (preg_match(
'/^cs\./', $sortfield) || preg_match(
'/^c\./', $sortfield) || preg_match(
'/^pc\./', $sortfield) || preg_match(
'/^pct\./', $sortfield)) $sql .= $db->order($sortfield, $sortorder);
154 dol_syslog(
"compta/charges/index.php: select payment", LOG_DEBUG);
155 $resql = $db->query($sql);
158 $num = $db->num_rows(
$resql);
164 while ($i < min($num, $limit))
166 $obj = $db->fetch_object(
$resql);
167 print '<tr class="oddeven">';
169 $date = $obj->periode;
170 if (empty($date)) $date = $obj->date_ech;
171 print '<td>'.dol_print_date($date,
'day').
'</td>';
174 $socialcontrib->id = $obj->rowid;
175 $socialcontrib->ref = $obj->label;
176 $socialcontrib->label = $obj->label;
177 print $socialcontrib->getNomUrl(1,
'20');
180 print '<td><a href="../sociales/list.php?filtre=cs.fk_type:'.$obj->type.
'">'.$obj->label.
'</a></td>';
182 print '<td class="right">'.price($obj->total).
'</td>';
184 $payment_sc_static->id = $obj->pid;
185 $payment_sc_static->ref = $obj->pid;
186 print '<td>'.$payment_sc_static->getNomUrl(1).
"</td>\n";
188 print '<td class="center">'.dol_print_date($db->jdate($obj->datep),
'day').
'</td>';
191 if ($obj->payment_code)
print $langs->trans(
"PaymentTypeShort".$obj->payment_code).
' ';
192 print $obj->num_payment.
'</td>';
194 if (!empty($conf->banque->enabled))
197 if ($obj->fk_bank > 0)
200 $accountstatic->id = $obj->bid;
201 $accountstatic->ref = $obj->bref;
202 $accountstatic->number = $obj->bnumber;
203 $accountstatic->accountancy_number = $obj->account_number;
204 $accountstatic->accountancy_journal = $obj->accountancy_journal;
205 $accountstatic->label = $obj->blabel;
206 print $accountstatic->getNomUrl(1);
207 }
else print ' ';
211 print '<td class="right">';
212 if ($obj->totalpaye)
print price($obj->totalpaye);
216 $total = $total + $obj->total;
217 $totalnb = $totalnb + $obj->nb;
218 $totalpaye = $totalpaye + $obj->totalpaye;
221 print '<tr class="liste_total"><td colspan="3" class="liste_total">'.$langs->trans(
"Total").
'</td>';
222 print '<td class="liste_total right"></td>';
223 print '<td align="center" class="liste_total"> </td>';
224 print '<td align="center" class="liste_total"> </td>';
225 print '<td align="center" class="liste_total"> </td>';
226 if (!empty($conf->banque->enabled))
print '<td></td>';
227 print '<td class="liste_total right">'.price($totalpaye).
"</td>";
236 if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
242 print load_fiche_titre($langs->trans(
"VATPayments").($year ?
' ('.$langs->trans(
"Year").
' '.$year.
')' :
''),
'',
'');
244 $sql =
"SELECT pv.rowid, pv.amount, pv.label, pv.datev as dm, pv.fk_bank,";
245 $sql .=
" pct.code as payment_code,";
246 $sql .=
" ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel";
247 $sql .=
" FROM ".MAIN_DB_PREFIX.
"tva as pv";
248 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON pv.fk_bank = b.rowid";
249 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
250 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as pct ON pv.fk_typepayment = pct.id";
251 $sql .=
" WHERE pv.entity IN (".getEntity(
"tax").
")";
258 if (preg_match(
'/^pv\./', $sortfield)) $sql .= $db->order($sortfield, $sortorder);
260 $result = $db->query($sql);
263 $num = $db->num_rows($result);
266 print '<table class="noborder centpercent">';
267 print '<tr class="liste_titre">';
280 $obj = $db->fetch_object($result);
282 $total = $total + $obj->amount;
285 print '<tr class="oddeven">';
286 print '<td class="left">'.dol_print_date($db->jdate($obj->dm),
'day').
'</td>'.
"\n";
288 print "<td>".$obj->label.
"</td>\n";
290 print '<td class="right">'.price($obj->amount).
"</td>";
293 $tva_static->id = $obj->rowid;
294 $tva_static->ref = $obj->rowid;
295 print '<td class="left">'.$tva_static->getNomUrl(1).
"</td>\n";
298 print '<td class="center">'.dol_print_date($db->jdate($obj->dm),
'day').
"</td>\n";
302 if ($obj->payment_code)
print $langs->trans(
"PaymentTypeShort".$obj->payment_code).
' ';
303 print $obj->num_payment.
'</td>';
306 if (!empty($conf->banque->enabled))
309 if ($obj->fk_bank > 0)
312 $accountstatic->id = $obj->bid;
313 $accountstatic->ref = $obj->bref;
314 $accountstatic->number = $obj->bnumber;
315 $accountstatic->accountancy_number = $obj->account_number;
316 $accountstatic->accountancy_journal = $obj->accountancy_journal;
317 $accountstatic->label = $obj->blabel;
318 print $accountstatic->getNomUrl(1);
319 }
else print ' ';
324 print '<td class="right">'.price($obj->amount).
"</td>";
329 print '<tr class="liste_total"><td colspan="2">'.$langs->trans(
"Total").
'</td>';
330 print '<td class="right">'.price($total).
'</td>';
331 print '<td> </td>';
332 print '<td> </td>';
333 print '<td> </td>';
334 print '<td> </td>';
335 print '<td class="right">'.price($total).
"</td>";
346 if ($mysoc->localtax1_assuj ==
"1" && $mysoc->localtax2_assuj ==
"1")
350 } elseif ($mysoc->localtax1_assuj ==
"1")
354 } elseif ($mysoc->localtax2_assuj ==
"1")
369 print load_fiche_titre($langs->transcountry(($j == 1 ?
"LT1Payments" :
"LT2Payments"), $mysoc->country_code).($year ?
' ('.$langs->trans(
"Year").
' '.$year.
')' :
''),
'',
'');
372 $sql =
"SELECT pv.rowid, pv.amount, pv.label, pv.datev as dm, pv.datep as dp";
373 $sql .=
" FROM ".MAIN_DB_PREFIX.
"localtax as pv";
374 $sql .=
" WHERE pv.entity = ".$conf->entity.
" AND localtaxtype = ".$j;
381 if (preg_match(
'/^pv/', $sortfield)) $sql .= $db->order($sortfield, $sortorder);
383 $result = $db->query($sql);
386 $num = $db->num_rows($result);
389 print '<table class="noborder centpercent">';
390 print '<tr class="liste_titre">';
401 $obj = $db->fetch_object($result);
403 $total = $total + $obj->amount;
405 print '<tr class="oddeven">';
406 print '<td class="left">'.dol_print_date($db->jdate($obj->dm),
'day').
'</td>'.
"\n";
408 print "<td>".$obj->label.
"</td>\n";
410 print '<td class="right">'.price($obj->amount).
"</td>";
413 $tva_static->id = $obj->rowid;
414 $tva_static->ref = $obj->rowid;
415 print '<td class="left">'.$tva_static->getNomUrl(1).
"</td>\n";
417 print '<td class="center">'.dol_print_date($db->jdate($obj->dp),
'day').
"</td>\n";
418 print '<td class="right">'.price($obj->amount).
"</td>";
423 print '<tr class="liste_total"><td class="right" colspan="2">'.$langs->trans(
"Total").
'</td>';
424 print '<td class="right">'.price($total).
"</td>";
425 print '<td align="center"> </td>';
426 print '<td align="center"> </td>';
427 print '<td class="right">'.price($total).
"</td>";
550 $parameters = array(
'user' => $user);
551 $reshook = $hookmanager->executeHooks(
'dashboardSpecialBills', $parameters, $object);
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
Class to manage salary payments.
Class to manage payments of social contributions.
dol_get_first_day($year, $month=1, $gm=false)
Return GMT time for first day of a month or year.
Class to manage bank accounts.
Put here description of your class.
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_barre_liste($titre, $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.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with picto.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.
restrictedArea($user, $features, $objectid=0, $tableandshare= '', $feature2= '', $dbt_keyfield= 'fk_soc', $dbt_select= 'rowid', $isdraft=0)
Check permissions of a user to show a page and an object.
print $_SERVER["PHP_SELF"]
Edit parameters.
img_next($titlealt= 'default', $moreatt= '')
Show next logo.
dol_get_last_day($year, $month=12, $gm=false)
Return GMT time for last day of a month or year.
print
Draft customers invoices.
img_previous($titlealt= 'default', $moreatt= '')
Show previous logo.
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
Classe permettant la gestion des paiements des charges La tva collectee n'est calculee que sur les fa...