1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128:
<?php
namespace App\Controllers;
use \App\View\View as View;
use \App\Utils\Session as Session;
use \App\Utils\ErrorLogger as ErrorLogger;
/**
* Contrôleur du suivi de paiement de fiche de frais
*/
class SuivrePaiementController extends BaseController {
/**
* Récupération du singleton de base de données
* Vérification du type de l'utilisateur
* S'il n'est pas comptable, on le redirige vers la page d'accueil
*/
public function __construct() {
parent::__construct('CPTBL');
// on vérifie que l'utilisateur soit comptable, sinon on le redirige vers l'accueil
$this->lesMois = $this->db->getLesMoisDisponibles("*");
$this->lesVisiteurs = $this->db->getVisiteursList();
}
/**
* Page d'accueil du suivi des paiements avec la liste de séléction de mois
* @return view Vue du suivi de paiements avec la liste de séléction des mois
*/
public function index() {
View::make('suiviPaiementMulti.twig', array('lesMois' => $this->lesMois,
'selectionMois' => $this->lesMois[0],
'listVisiteurs' => $this->lesVisiteurs,
'index' => true));
}
/**
* Affichage des fiches de frais de chaque utilisateur l'ayant remplie
* @param bool $singleUser Afficher pour un seul utilisateur (true) ou non (false)
* @return view Vue du suivi de paiements avec les informations nécessaires pour l'affichage
*/
public function showSuivi($singleUser = false) {
if ($singleUser) {
$lesFiches = $this->db->getLesInfosFicheFrais($_POST['user'], "*");
if (empty($lesFiches)) {
View::make('suiviPaiementUnique.twig', array('lesMois' => $this->lesMois,
'selectionMois' => $this->lesMois[0],
'listVisiteurs' => $this->lesVisiteurs));
}
else{
View::make('suiviPaiementUnique.twig', array('lesMois' => $this->lesMois,
'selectionMois' => $this->lesMois[0],
'lesFiches' => $lesFiches,
'nom' => $lesFiches[0]['nom'],
'prenom' => $lesFiches[0]['prenom'],
'user' => $_POST['user'],
'listVisiteurs' => $this->lesVisiteurs));
}
}
else{
$lesFiches = $this->db->getLesInfosFicheFrais("*", $_POST['lstMois']);
if (empty($lesFiches)) {
View::make('suiviPaiementMulti.twig', array('lesMois' => $this->lesMois,
'selectionMois' => $_POST['lstMois'],
'listVisiteurs' => $this->lesVisiteurs));
}
else{
View::make('suiviPaiementMulti.twig', array('lesMois' => $this->lesMois,
'selectionMois' => $_POST['lstMois'],
'lesFiches' => $lesFiches,
'listVisiteurs' => $this->lesVisiteurs));
}
}
}
/**
* Gestion du suivi multiple ou unique pour le routeur
* @param array $request Tableau comportant le type de filtrage pour les fiches de frais
*/
public function suivi($request) {
if ($request['type'] == 'multiple') {
$this->showSuivi();
}
elseif($request['type'] == 'unique'){
$this->showSuivi(true);
}
}
/**
* Mise en paiement des fiches de frais selectionnées
* @param array $request Tableau comportant le type de filtrage pour les fiches de frais
*/
public function miseEnPaiement($request){
/**
* Si on à séléctionné un mois à filtrer
*/
if ($request['type'] == 'multiple') {
if (isset($_POST['id'])) {
if (is_array($_POST['id'])) {
for ($i=0; $i<count($_POST['id']); $i++) {
$this->db->majEtatFicheFrais($_POST['id'][$i], $_POST['lstMois'], "VA");
}
}
else{
$this->db->majEtatFicheFrais($_POST['id'], $_POST['lstMois'], "VA");
}
}
$this->showSuivi();
}
// ou un utilisateur en particulier à filtrer
elseif($request['type'] == 'unique'){
if (isset ($_POST['lstMois'])) {
if (is_array($_POST['lstMois'])) {
for ($i=0; $i < count($_POST['lstMois']); $i++) {
$this->db->majEtatFicheFrais($_POST['user'], $_POST['lstMois'][$i], "VA");
}
}
else{
$this->db->majEtatFicheFrais($_POST['user'], $_POST['lstMois'], "VA");
}
}
$this->showSuivi(true);
}
}
}
?>