33 require
'../../main.inc.php';
34 require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/tva.class.php';
35 require_once DOL_DOCUMENT_ROOT.
'/user/class/user.class.php';
36 require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
37 require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/paymentsocialcontribution.class.php';
38 require_once DOL_DOCUMENT_ROOT.
'/salaries/class/salary.class.php';
39 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
40 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
41 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formsocialcontrib.class.php';
43 include_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
49 $hookmanager->initHooks(array(
'specialexpensesindex'));
52 $langs->loadLangs(array(
'compta',
'bills',
'hrm'));
55 $search_sc_type =
GETPOST(
'search_sc_type',
'intcomma');
56 $optioncss =
GETPOST(
'optioncss',
'alpha');
59 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
60 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
62 if (empty($page) || $page < 0) {
65 $offset = $limit * $page;
66 $pageprev = $page - 1;
67 $pagenext = $page + 1;
69 $sortfield =
"cs.date_ech";
77 $socid = $user->socid;
79 $result =
restrictedArea($user,
'tax',
'',
'chargesociales',
'charges');
87 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
98 $tva_static =
new Tva($db);
101 $userstatic =
new User($db);
102 $sal_static =
new Salary($db);
103 $accountstatic =
new Account($db);
107 $title = $langs->trans(
"SocialContributionsPayments");
114 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
115 $param .=
'&contextpage='.urlencode($contextpage);
117 if ($limit > 0 && $limit != $conf->liste_limit) {
118 $param .=
'&limit='.((int) $limit);
121 $param .=
'&sortfield='.urlencode($sortfield);
124 $param .=
'&sortorder='.urlencode($sortorder);
127 $param .=
'&year='.urlencode((
string) ($year));
129 if ($search_sc_type) {
130 $param .=
'&search_sc_type='.urlencode((
string) ($search_sc_type));
132 if ($optioncss !=
'') {
133 $param .=
'&optioncss='.urlencode($optioncss);
137 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
138 if ($optioncss !=
'') {
139 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
141 print
'<input type="hidden" name="token" value="'.newToken().
'">';
142 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
143 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
144 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
145 print
'<input type="hidden" name="page" value="'.$page.
'">';
147 $sql =
"SELECT c.id, c.libelle as type_label,";
148 $sql .=
" cs.rowid, cs.libelle as label_sc, cs.fk_type as type, cs.periode, cs.date_ech, cs.amount as total, cs.paye,";
149 $sql .=
" pc.rowid as pid, pc.datep, pc.amount as totalpaid, pc.num_paiement as num_payment, pc.fk_bank,";
150 $sql .=
" pct.code as payment_code,";
151 $sql .=
" u.rowid as uid, u.lastname, u.firstname, u.email, u.login, u.admin, u.statut,";
152 $sql .=
" ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel, ba.iban_prefix as iban, ba.bic, ba.currency_code, ba.clos,";
153 $sql .=
" aj.label as account_journal";
154 $sql .=
" FROM ".MAIN_DB_PREFIX.
"c_chargesociales as c,";
155 $sql .=
" ".MAIN_DB_PREFIX.
"chargesociales as cs";
156 $sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"paiementcharge as pc ON pc.fk_charge = cs.rowid";
157 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as pct ON pc.fk_typepaiement = pct.id";
158 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON pc.fk_bank = b.rowid";
159 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
160 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"accounting_journal as aj ON ba.fk_accountancy_journal = aj.rowid";
161 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as u ON u.rowid = cs.fk_user";
162 $sql .=
" WHERE cs.fk_type = c.id";
163 $sql .=
" AND cs.entity IN (".getEntity(
"tax").
")";
164 if ($search_sc_type > 0) {
165 $sql .=
" AND cs.fk_type = ".((int) $search_sc_type);
175 if (preg_match(
'/^cs\./', $sortfield)
176 || preg_match(
'/^c\./', $sortfield)
177 || preg_match(
'/^pc\./', $sortfield)
178 || preg_match(
'/^pct\./', $sortfield)
179 || preg_match(
'/^u\./', $sortfield)
180 || preg_match(
'/^ba\./', $sortfield)) {
181 $sql .= $db->order($sortfield, $sortorder);
185 $nbtotalofrecords =
'';
187 $resql = $db->query(
$sql);
188 $nbtotalofrecords = $db->num_rows($resql);
189 if (($page * $limit) > $nbtotalofrecords) {
195 if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) {
196 $num = $nbtotalofrecords;
199 $sql .= $db->plimit($limit + 1, $offset);
202 $resql = $db->query(
$sql);
208 $num = $db->num_rows($resql);
214 print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num, $nbtotalofrecords,
'object_payment', 0, $nav,
'', $limit, 0);
216 print
'<table class="noborder centpercent">';
218 print
'<tr class="liste_titre">';
219 print
'<td class="liste_titre"></td>';
220 print
'<td class="liste_titre"></td>';
221 print
'<td class="liste_titre">';
222 $formsocialcontrib->select_type_socialcontrib(
GETPOSTISSET(
"search_sc_type") ? $search_sc_type :
'',
'search_sc_type', 1, 0, 0,
'minwidth200 maxwidth300');
224 print
'<td class="liste_titre"></td>';
225 print
'<td class="liste_titre"></td>';
226 print
'<td class="liste_titre"></td>';
227 print
'<td class="liste_titre"></td>';
228 print
'<td class="liste_titre"></td>';
229 print
'<td class="liste_titre"></td>';
231 print
'<td class="liste_titre"></td>';
232 print
'<td class="liste_titre"></td>';
234 print
'<td class="liste_titre"></td>';
235 print
'<td class="liste_titre center">';
236 $searchpicto = $form->showFilterButtons();
241 print
'<tr class="liste_titre">';
242 print_liste_field_titre(
"RefPayment", $_SERVER[
"PHP_SELF"],
"pc.rowid",
"", $param,
'', $sortfield, $sortorder);
243 print_liste_field_titre(
"SocialContribution", $_SERVER[
"PHP_SELF"],
"c.libelle",
"", $param,
'', $sortfield, $sortorder);
244 print_liste_field_titre(
"TypeContrib", $_SERVER[
"PHP_SELF"],
"cs.fk_type",
"", $param,
'', $sortfield, $sortorder);
245 print_liste_field_titre(
"PeriodEndDate", $_SERVER[
"PHP_SELF"],
"cs.periode",
"", $param,
'', $sortfield, $sortorder,
'center ');
246 print_liste_field_titre(
"DatePayment", $_SERVER[
"PHP_SELF"],
"pc.datep",
"", $param,
'', $sortfield, $sortorder,
'center ');
248 print_liste_field_titre(
"PaymentMode", $_SERVER[
"PHP_SELF"],
"pct.code",
"", $param,
'', $sortfield, $sortorder);
249 print_liste_field_titre(
"Numero", $_SERVER[
"PHP_SELF"],
"pc.num_paiement",
"", $param,
'', $sortfield, $sortorder,
'',
'ChequeOrTransferNumber');
251 print_liste_field_titre(
"BankTransactionLine", $_SERVER[
"PHP_SELF"],
"pc.fk_bank",
"", $param,
'', $sortfield, $sortorder);
252 print_liste_field_titre(
"BankAccount", $_SERVER[
"PHP_SELF"],
"ba.label",
"", $param,
"", $sortfield, $sortorder);
254 print_liste_field_titre(
"ExpectedToPay", $_SERVER[
"PHP_SELF"],
"cs.amount",
"", $param,
'class="right"', $sortfield, $sortorder);
255 print_liste_field_titre(
"PayedByThisPayment", $_SERVER[
"PHP_SELF"],
"pc.amount",
"", $param,
'class="right"', $sortfield, $sortorder);
269 while ($i < min($num, $limit)) {
270 $obj = $db->fetch_object($resql);
272 $payment_sc_static->id = $obj->pid;
273 $payment_sc_static->ref = $obj->pid;
274 $payment_sc_static->datep = $db->jdate($obj->datep);
276 $socialcontrib->id = $obj->rowid;
277 $socialcontrib->ref = empty($obj->label_sc) ? $obj->type_label : $obj->label_sc;
278 $socialcontrib->paye = $obj->paye;
281 $socialcontrib->label = empty($obj->label_sc) ? $obj->type_label : $obj->label_sc;
282 $socialcontrib->type_label = $obj->type_label;
284 print
'<tr class="oddeven">';
286 print
'<td class="nowraponall">'.$payment_sc_static->getNomUrl(1).
"</td>\n";
288 print
'<td class="tdoverflowmax250">';
289 print $socialcontrib->getNomUrl(1,
'');
292 print
'<td title="'.dol_escape_htmltag($obj->type_label).
'" class="tdoverflowmax300">'.$obj->type_label.
'</td>';
294 $date = $obj->periode;
296 $date = $obj->date_ech;
298 print
'<td class="center">'.dol_print_date($date,
'day').
'</td>';
300 print
'<td class="center">'.dol_print_date($db->jdate($obj->datep),
'day').
'</td>';
304 if (!empty($obj->uid)) {
305 $userstatic->id = $obj->uid;
306 $userstatic->lastname = $obj->lastname;
307 $userstatic->firstname = $obj->firstname;
308 $userstatic->admin = $obj->admin;
309 $userstatic->login = $obj->login;
310 $userstatic->email = $obj->email;
311 $userstatic->status = $obj->statut;
312 print $userstatic->getNomUrl(1);
318 if ($obj->payment_code) {
319 $labelpayment = $langs->trans(
"PaymentTypeShort".$obj->payment_code);
321 print
'<td class="tdoverflowmax150" title="'.$labelpayment.
'">';
325 print
'<td>'.$obj->num_payment.
'</td>';
330 print
'<td class="nowraponall">';
331 $accountlinestatic->id = $obj->fk_bank;
332 print $accountlinestatic->getNomUrl(1);
335 print
'<td class="nowraponall">';
337 $accountstatic->id = $obj->bid;
338 $accountstatic->ref = $obj->bref;
339 $accountstatic->number = $obj->bnumber;
340 $accountstatic->label = $obj->blabel;
341 $accountstatic->iban = $obj->iban;
342 $accountstatic->bic = $obj->bic;
343 $accountstatic->currency_code = $langs->trans(
"Currency".$obj->currency_code);
344 $accountstatic->clos = $obj->clos;
347 $accountstatic->account_number = $obj->account_number;
348 $accountstatic->accountancy_journal = $obj->account_journal;
350 print $accountstatic->getNomUrl(1);
358 print
'<td class="right"><span class="amount">'.price($obj->total).
'</span></td>';
361 print
'<td class="right">';
362 if ($obj->totalpaid) {
363 print
'<span class="amount">'.price($obj->totalpaid).
'</span>';
371 $total = $total + $obj->total;
372 $totalpaid = $totalpaid + $obj->totalpaid;
377 print
'<tr class="liste_total"><td colspan="3" class="liste_total">'.$langs->trans(
"Total").
'</td>';
378 print
'<td class="liste_total right"></td>';
379 print
'<td align="center" class="liste_total"> </td>';
380 print
'<td align="center" class="liste_total"> </td>';
381 print
'<td align="center" class="liste_total"> </td>';
382 print
'<td align="center" class="liste_total"> </td>';
383 print
'<td align="center" class="liste_total"> </td>';
388 print
'<td class="liste_total right">'.price($totalpaid).
"</td>";
397 $parameters = array(
'user' => $user);
398 $reshook = $hookmanager->executeHooks(
'dashboardSpecialBills', $parameters,
$object);
if($user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $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 to manage bank transaction lines.
Class for managing the social charges.
Class to manage payments of social contributions.
Class to manage salary payments.
Put here description of your class.
Class to manage Dolibarr users.
if(isModEnabled('invoice') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&!getDolGlobalString('MAIN_USE_NEW_SUPPLIERMOD') && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') && $user->hasRight('tax', 'charges', 'lire')) if(isModEnabled('invoice') &&isModEnabled('order') && $user->hasRight("commande", "lire") &&!getDolGlobalString('WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER')) $sql
Social contributions to pay.
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.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
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...
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
isModEnabled($module)
Is Dolibarr module enabled.
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.