print '<td class="liste_titre"> </td>'; print '<td class="liste_titre"> </td>'; print '<td class="liste_titre" align="right">'; print '<input type="image" class="liste_titre" src="' . img_picto($langs->trans("Search"), 'search.png', '', '', 1) . '" name="button_search" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">'; print '</td>'; print "</tr>\n"; while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); $var = !$var; print "<tr " . $bc[$var] . ">"; // Ref print '<td width="60">'; $chargesociale_static->id = $obj->id; $chargesociale_static->lib = $obj->id; $chargesociale_static->ref = $obj->id; print $chargesociale_static->getNomUrl(1, '20'); print '</td>'; // Label print '<td>' . dol_trunc($obj->libelle, 42) . '</td>'; // Type print '<td>' . dol_trunc($obj->type_lib, 16) . '</td>'; // Date end period print '<td align="center">'; if ($obj->periode) { print '<a href="index.php?year=' . strftime("%Y", $db->jdate($obj->periode)) . '">' . dol_print_date($db->jdate($obj->periode), 'day') . '</a>'; } else { print ' '; } print '</td>'; print '<td align="right" width="100">' . price($obj->amount) . '</td>'; // Due date
$userstatic->lastname = $links[$key]['label']; print $userstatic->getNomUrl(1, ''); } else { if ($links[$key]['type'] == 'sc') { // sc=old value $chargestatic->id = $links[$key]['url_id']; if (preg_match('/^\\((.*)\\)$/i', $links[$key]['label'], $reg)) { if ($reg[1] == 'socialcontribution') { $reg[1] = 'SocialContribution'; } $chargestatic->lib = $langs->trans($reg[1]); } else { $chargestatic->lib = $links[$key]['label']; } $chargestatic->ref = $chargestatic->lib; print $chargestatic->getNomUrl(1, 16); } else { if ($links[$key]['type'] == 'loan') { $loanstatic->id = $links[$key]['url_id']; if (preg_match('/^\\((.*)\\)$/i', $links[$key]['label'], $reg)) { if ($reg[1] == 'loan') { $reg[1] = 'Loan'; } $loanstatic->label = $langs->trans($reg[1]); } else { $loanstatic->label = $links[$key]['label']; } $loanstatic->ref = $loanstatic->label; print $loanstatic->getLinkUrl(1, 16); } else { if ($links[$key]['type'] == 'member') {
print '<td align="center">' . $langs->trans("DateDue") . '</td>'; print '<td align="right">' . $langs->trans("AmountTTC") . '</td>'; print '<td align="right">' . $langs->trans("Paid") . '</td>'; print '<td> </td>'; print '</tr>'; if ($num) { $i = 0; $tot_ttc = 0; while ($i < $num) { $obj = $db->fetch_object($resql); print "<tr " . $bc[$var] . ">"; $chargestatic->id = $obj->rowid; $chargestatic->ref = $obj->libelle; $chargestatic->lib = $obj->libelle; $chargestatic->paye = $obj->paye; print '<td>' . $chargestatic->getNomUrl(1) . '</td>'; print '<td align="center">' . dol_print_date($obj->date_ech, 'day') . '</td>'; print '<td align="right">' . price($obj->amount) . '</td>'; print '<td align="right">' . price($obj->sumpaid) . '</td>'; print '<td align="center">' . $chargestatic->getLibStatut(3) . '</td>'; print '</tr>'; $tot_ttc += $obj->amount; $var = !$var; $i++; } print '<tr class="liste_total"><td align="left" colspan="2">' . $langs->trans("Total") . '</td>'; print '<td align="right">' . price($tot_ttc) . '</td>'; print '<td align="right"></td>'; print '<td align="right"> </td>'; print '</tr>'; } else {
} elseif ($links[$key]['type'] == 'payment_supplier') { $paymentsupplierstatic->id = $links[$key]['url_id']; $paymentsupplierstatic->ref = $links[$key]['label']; print ' ' . $paymentsupplierstatic->getNomUrl(1); $newline = 0; } elseif ($links[$key]['type'] == 'company') { $societestatic->id = $links[$key]['url_id']; $societestatic->name = $links[$key]['label']; print $societestatic->getNomUrl(1, '', 24); $newline = 0; } else { if ($links[$key]['type'] == 'sc') { $chargestatic->id = $links[$key]['url_id']; $chargestatic->ref = $links[$key]['url_id']; $chargestatic->lib = $langs->trans("SocialContribution"); print ' ' . $chargestatic->getNomUrl(1); } else { if ($links[$key]['type'] == 'payment_sc') { // We don't show anything because there is 1 payment for 1 social contribution and we already show link to social contribution /*print '<a href="'.DOL_URL_ROOT.'/compta/payment_sc/fiche.php?id='.$links[$key]['url_id'].'">'; print img_object($langs->trans('ShowPayment'),'payment').' '; print $langs->trans("SocialContributionPayment"); print '</a>';*/ $newline = 2; } else { if ($links[$key]['type'] == 'payment_vat') { $paymentvatstatic->id = $links[$key]['url_id']; $paymentvatstatic->ref = $links[$key]['url_id']; $paymentvatstatic->ref = $langs->trans("VATPayment"); print ' ' . $paymentvatstatic->getNomUrl(1); } else {
if ($obj->family == 'invoice') { $facturestatic->ref = $obj->ref; $facturestatic->id = $obj->objid; $facturestatic->type = $obj->type; $ref = $facturestatic->getNomUrl(1, ''); $societestatic->id = $obj->socid; $societestatic->name = $obj->name; $refcomp = $societestatic->getNomUrl(1, '', 24); $paiement = $facturestatic->getSommePaiement(); // Payment already done } if ($obj->family == 'social_contribution') { $socialcontribstatic->ref = $obj->ref; $socialcontribstatic->id = $obj->objid; $socialcontribstatic->lib = $obj->type; $ref = $socialcontribstatic->getNomUrl(1, 24); $paiement = -1 * $socialcontribstatic->getSommePaiement(); // Payment already done } $total_ttc = $obj->total_ttc; if ($paiement) { $total_ttc = $obj->total_ttc - $paiement; } $solde += $total_ttc; // We discard lines with a remainder to pay to 0 if (price2num($total_ttc) != 0) { $var = !$var; // Show line print "<tr " . $bc[$var] . ">"; print '<td>'; if ($obj->dlr) {
while ($i < $num) { $obj = $db->fetch_object($resql); $var = !$var; print "<tr " . $bc[$var] . ">"; // Date $date = $obj->periode; if (empty($date)) { $date = $obj->date_ech; } print '<td>' . dol_print_date($date, 'day') . '</td>'; // Label print '<td>'; $socialcontrib->id = $obj->rowid; $socialcontrib->ref = $obj->libelle; $socialcontrib->lib = $obj->libelle; print $socialcontrib->getNomUrl(1, '20'); print '</td>'; // Type print '<td><a href="../sociales/index.php?filtre=cs.fk_type:' . $obj->type . '">' . $obj->lib . '</a></td>'; // Expected to pay print '<td align="right">' . price($obj->total) . '</td>'; // Ref payment $payment_sc_static->id = $obj->pid; $payment_sc_static->ref = $obj->pid; print '<td>' . $payment_sc_static->getNomUrl(1) . "</td>\n"; // Date payment print '<td align="center">' . dol_print_date($db->jdate($obj->datep), 'day') . '</td>'; // Type payment print '<td>'; if ($obj->payment_code) { print $langs->trans("PaymentTypeShort" . $obj->payment_code) . ' ';
if ($links[$key]['type'] == 'company') { $societestatic->id = $links[$key]['url_id']; $societestatic->name = $links[$key]['label']; $tabpay[$obj->rowid]["soclib"] = $societestatic->getNomUrl(1, '', 30); $tabtp[$obj->rowid][$compta_soc] += $obj->amount; } else { if ($links[$key]['type'] == 'user') { $userstatic->id = $links[$key]['url_id']; $userstatic->name = $links[$key]['label']; $tabpay[$obj->rowid]["soclib"] = $userstatic->getNomUrl(1, '', 30); // $tabtp[$obj->rowid][$compta_user] += $obj->amount; } else { if ($links[$key]['type'] == 'sc') { $chargestatic->id = $links[$key]['url_id']; $chargestatic->ref = $links[$key]['url_id']; $tabpay[$obj->rowid]["lib"] .= ' ' . $chargestatic->getNomUrl(2); if (preg_match('/^\\((.*)\\)$/i', $links[$key]['label'], $reg)) { if ($reg[1] == 'socialcontribution') { $reg[1] = 'SocialContribution'; } $chargestatic->lib = $langs->trans($reg[1]); } else { $chargestatic->lib = $links[$key]['label']; } $chargestatic->ref = $chargestatic->lib; $tabpay[$obj->rowid]["soclib"] = $chargestatic->getNomUrl(1, 30); $sqlmid = 'SELECT cchgsoc.accountancy_code'; $sqlmid .= " FROM " . MAIN_DB_PREFIX . "c_chargesociales cchgsoc "; $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "chargesociales as chgsoc ON chgsoc.fk_type=cchgsoc.id"; $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paycharg ON paycharg.fk_charge=chgsoc.rowid"; $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "bank_url as bkurl ON bkurl.url_id=paycharg.rowid";
print '<td>' . $langs->trans('Type') . '</td>'; print '<td>' . $langs->trans('Label') . '</td>'; print '<td align="right">' . $langs->trans('ExpectedToPay') . '</td>'; print '<td align="center">' . $langs->trans('Status') . '</td>'; print '<td align="right">' . $langs->trans('PayedByThisPayment') . '</td>'; print "</tr>\n"; if ($num > 0) { $var = True; while ($i < $num) { $objp = $db->fetch_object($resql); $var = !$var; print '<tr ' . $bc[$var] . '>'; // Ref print '<td>'; $socialcontrib->fetch($objp->scid); print $socialcontrib->getNomUrl(1); print "</td>\n"; // Type print '<td>'; print $socialcontrib->type_libelle; /*print $socialcontrib->type;*/ print "</td>\n"; // Label print '<td>' . $objp->libelle . '</td>'; // Expected to pay print '<td align="right">' . price($objp->sc_amount) . '</td>'; // Status print '<td align="center">' . $socialcontrib->LibStatut($objp->fk_statut, 2) . '</td>'; // Amount payed print '<td align="right">' . price($objp->amount) . '</td>'; print "</tr>\n";
function _liste_charges_sociales(&$PDOdb, $action, $page, $limit, $offset) { global $conf, $db, $user, $bc; $charge_sociale = new ChargeSociales($PDOdb); $sql = "\n\t\tSELECT cs.rowid as id, cs.fk_type as type, cs.amount, cs.date_ech, cs.libelle, cs.paye, cs.periode, c.libelle as type_lib, SUM(pc.amount) as alreadypayed, \n\t\t(SELECT r.montant FROM " . MAIN_DB_PREFIX . "recurrence as r WHERE r.fk_chargesociale = cs.rowid) montant_reccur\n\t\tFROM " . MAIN_DB_PREFIX . "c_chargesociales as c\n\t\tINNER JOIN " . MAIN_DB_PREFIX . "chargesociales as cs ON c.id = cs.fk_type\n\t\tLEFT JOIN " . MAIN_DB_PREFIX . "paiementcharge as pc ON pc.fk_charge = cs.rowid\n\t\tWHERE cs.fk_type = c.id\n\t\tAND cs.entity = " . $conf->entity . "\n\t\tAND cs.rowid NOT IN (SELECT fk_target FROM " . MAIN_DB_PREFIX . "element_element WHERE sourcetype = 'chargesociales' AND targettype = 'chargesociales')\n\t"; if ($action == 'add') { $sql .= "AND cs.rowid NOT IN (SELECT fk_chargesociale FROM " . MAIN_DB_PREFIX . "recurrence)"; } else { $sql .= "AND cs.rowid IN (SELECT fk_chargesociale FROM " . MAIN_DB_PREFIX . "recurrence)"; } $sql .= 'GROUP BY cs.rowid, cs.fk_type, cs.amount, cs.date_ech, cs.libelle, cs.paye, cs.periode, c.libelle '; $sql .= 'ORDER BY cs.periode DESC '; $sql .= 'LIMIT ' . $offset . ', ' . ($limit + 1); $res = $PDOdb->Execute($sql); $result = $PDOdb->Get_All(); $num = count($result); $param = '&action=' . $action; print_barre_liste('Liste', $page, $_SERVER["PHP_SELF"], $param, '', '', '', $num, $limit + 1); $form = new TFormCore($db); echo '<table class="noborder" width="100%">'; _print_head_tab_charges_sociales($action); $var = true; echo '<tbody>'; foreach ($result as $obj) { $var = !$var; $charge_sociale->id = $obj->id; $charge_sociale->lib = $obj->id; $charge_sociale->ref = $obj->id; if ($action != 'add') { $recurrence = TRecurrence::get_recurrence($PDOdb, $charge_sociale->id); } $TNextCharges = TRecurrence::get_prochaines_charges($PDOdb, $charge_sociale->id); echo '<tr ' . $bc[$var] . '>'; if ($action != 'add') { echo '<td><input type="checkbox" name="recurrences[]" value="' . $charge_sociale->id . '" style="margin: 0 0 0 4px;" /></td>'; } else { echo '<td></td>'; } echo '<td>' . $charge_sociale->getNomUrl(1, '20') . '</td>'; echo '<td>' . utf8_encode($obj->libelle) . '</td>'; echo '<td>' . utf8_encode($obj->type_lib) . '</td>'; // Type echo '<td>' . dol_print_date($obj->periode, 'day') . '</td>'; if ($action != 'add') { // Affiche la date de la prochaine charge créée à partir de cette récurrence if (!empty($TNextCharges)) { echo '<td>' . dol_print_date($TNextCharges[0]->periode, 'day') . '</td>'; } else { echo '<td></td>'; } } echo '<td><input type="text" id="montant_' . $obj->id . '" name="montant" value="' . ($obj->montant_reccur > 0 ? $obj->montant_reccur : $obj->amount) . '" /></td>'; echo '<td>'; if ($action == 'add') { TRecurrence::get_liste_periodes($PDOdb, 'periode_' . $obj->id, 'fk_periode', 'mensuel'); } else { TRecurrence::get_liste_periodes($PDOdb, 'periode_' . $obj->id, 'fk_periode', $recurrence->periode); } echo '</td>'; if ($action == 'add') { echo '<td><input type="text" class="date" id="date_fin_rec_' . $obj->id . '" name="date_fin_rec" /></td>'; echo '<td><input type="text" id="nb_prev_rec_' . $obj->id . '" name="nb_previsionnel_rec" /></td>'; } else { $date = ''; if ($recurrence->date_fin > 0) { $date = date('d/m/Y', $recurrence->date_fin); } echo '<td><input type="text" class="date" id="date_fin_rec_' . $obj->id . '" name="date_fin_rec" value="' . $date . '"/></td>'; echo '<td><input type="text" id="nb_prev_rec_' . $obj->id . '" name="nb_previsionnel_rec" value="' . $recurrence->nb_previsionnel . '"/></td>'; } if ($user->rights->tax->charges->creer) { if ($action == 'add') { echo '<td><button class="update-recurrence" data-chargesociale="' . $obj->id . '" style="margin: 2px 4px; padding: 2px;">Ajouter</button></td>'; } else { echo '<td> <button class="update-recurrence" data-chargesociale="' . $obj->id . '" style="margin: 2px 4px; padding: 2px;">Modifier</button> <button class="delete-recurrence" data-chargesociale="' . $obj->id . '" style="margin: 2px 4px; padding: 2px;">Supprimer</button> </td>'; } } else { echo '<td>Droits requis</td>'; } echo '</tr>'; } if (count($result) <= 0) { echo '<tr>'; if ($action == 'add') { echo '<td style="text-align: center;" colspan="9">Aucune récurrence enregistrée. (<a href="gestion.php?action=add">Créer une récurrence</a>)</td>'; } else { echo '<td style="text-align: center;" colspan="10">Aucune récurrence enregistrée. (<a href="gestion.php?action=add">Créer une récurrence</a>)</td>'; } echo '</tr>'; } echo '</tbody>'; echo '</table>'; }
$var = True; $total = 0; $totalrecu = 0; $TPreChecked = array(); foreach ($Tab as $c) { $charge = new ChargeSociales($db); $charge->fetch($c->rowid); $var = !$var; print "<tr " . $bc[$var] . ">"; if (!in_array($c->fk_source, $TPreChecked)) { print '<td><input type="checkbox" name="selected_charges[]" value="' . $charge->id . '" checked /></td>'; $TPreChecked[] = $c->fk_source; } else { print '<td><input type="checkbox" name="selected_charges[]" value="' . $charge->id . '" /></td>'; } print '<td>' . $charge->getNomUrl(1) . ' - ' . htmlentities($charge->lib) . '</td>'; print '<td>' . dol_print_date($charge->periode, 'day') . '</td>'; print '<td>' . price($charge->amount, 2) . '</td>'; $sql = "SELECT sum(p.amount) as total"; $sql .= "FROM " . MAIN_DB_PREFIX . "paiementcharge as p"; $sql .= "WHERE p.fk_charge = " . $charge->id; $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); $sumpaid = $obj->total; $db->free(); } print '<td>' . price($sumpaid, 2) . '</td>'; print '<td>' . price($charge->amount - $sumpaid, 2) . '</td>'; $namef = "amount_" . $charge->id; print '<td><input type="text" size="8" name="' . $namef . '" value="' . $charge->amount . '"></td>';