<?php /* * * Pour appel ajax */ require_once '../config.php'; require_once '../class/recurrence.class.php'; $PDOdb = new TPDOdb(); $type = __get('type'); $id_charge = __get('id_charge'); $periode = __get('periode'); $date_fin_rec = __get('date_fin_rec'); $nb_prev_rec = __get('nb_prev_rec'); if (empty($nb_prev_rec)) { $nb_prev_rec = 0; } if ($type == 'delete-recurrence') { TRecurrence::del($PDOdb, $id_charge); } else { TRecurrence::update($PDOdb, $id_charge, $periode, $date_fin_rec, $nb_prev_rec); }
static function get_recurrence(&$PDOdb, $id_charge) { $recurrence = new TRecurrence(); $recurrence->loadBy($PDOdb, $id_charge, 'fk_chargesociale'); return $recurrence; }
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>'; }