コード例 #1
0
<?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);
}
コード例 #2
0
 static function get_recurrence(&$PDOdb, $id_charge)
 {
     $recurrence = new TRecurrence();
     $recurrence->loadBy($PDOdb, $id_charge, 'fk_chargesociale');
     return $recurrence;
 }
コード例 #3
0
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>';
}