6 Commits

Author SHA1 Message Date
e6b8c87744 pagination 2024-01-12 11:06:07 +01:00
c990aed3d3 pagination gestion fiche 2024-01-11 15:55:07 +01:00
af3771e786 app ajout ficheAvalider 2024-01-11 11:41:51 +01:00
8aafdf565b menu ajout ficheAvalider 2024-01-11 10:58:15 +01:00
pierre renaudot
a2201a4eb3 Merge branch 'main' of https://gitea.lyc-lecastel.fr/pierre.renaudot/AP44 2024-01-11 09:14:14 +01:00
pierre renaudot
89273aced9 modification de la vue gestion fiche 2024-01-11 09:13:57 +01:00
11 changed files with 261 additions and 57 deletions

View File

@@ -3,6 +3,9 @@
class Class_gestionFiche class Class_gestionFiche
{ {
private $pdo = null; private $pdo = null;
public static $NB_LIGNES_PAGINATION = 12;
public static $NB_LIGNES_FICHEAVALIDER = 15;
public function __construct(PdoGsb $pDO) public function __construct(PdoGsb $pDO)
{ {
@@ -13,25 +16,72 @@ class Class_gestionFiche
{ {
$req = 'SELECT "uId", "uNom", "uPrenom" FROM utilisateur WHERE "uStatut"!=0 ORDER BY "uNom" ASC;'; $req = 'SELECT "uId", "uNom", "uPrenom" FROM utilisateur WHERE "uStatut"!=0 ORDER BY "uNom" ASC;';
$result = $this->pdo->prepare($req); $result = $this->pdo->prepare($req);
$result ->execute(); $result->execute();
return $result->fetchAll(); return $result->fetchAll();
} }
public function get_ListesFiches(string $idUtilisateur): array public function dateComplete(string $date): string
{ {
$req = 'SELECT "rMois", "rEtat","rNbJustificatifs","rMontantValide","eLibelle" return substr($date, 0, 4) . '-' . substr($date, 4);
}
public function get_ficheAvalider(int $nPage): array
{
$decalage = ($nPage - 1) * $this::$NB_LIGNES_FICHEAVALIDER;
$req = 'SELECT "rMois", "rVisiteur", "rEtat", ROUND("rMontantValide", 2)
as "rMontantValide", "eLibelle", "uNom", "uPrenom"
from remboursement
INNER JOIN utilisateur ON utilisateur."uId"=remboursement."rVisiteur"
INNER JOIN etat ON etat."eId"=remboursement."rEtat"
where "rEtat"=\'CL\'
ORDER BY "rMois" ASC
LIMIT :nbLignes offset :decalage;';
$result = $this->pdo->prepare($req);
$result->bindParam('nbLignes', $this::$NB_LIGNES_FICHEAVALIDER);
$result->bindParam('decalage', $decalage);
$result->execute();
return $result->fetchAll();
}
public function get_nbFicheAvalider(): int
{
$req = 'SELECT COUNT(*) as "nbFicheAvalider" from remboursement
where "rEtat"=\'CL\'';
$result = $this->pdo->prepare($req);
$result->execute();
$result = $result->fetch();
return (int) $result['nbFicheAvalider'];
}
public function get_nbRemboursement(string $idUtilisateur): int
{
$req = 'SELECT COUNT(*) as "nbRemboursement" from remboursement WHERE "rVisiteur"= :userId;';
$result = $this->pdo->prepare($req);
$result->bindParam("userId", $idUtilisateur);
$result->execute();
$result = $result->fetch();
return (int) $result['nbRemboursement'];
}
public function get_Page(int $nPage, string $idUtilisateur): array
{
$decalage = ($nPage - 1) * $this::$NB_LIGNES_PAGINATION;
$req = 'SELECT "rMois", "rVisiteur", "rEtat", ROUND("rMontantValide", 2)
as "rMontantValide", "eLibelle"
FROM remboursement FROM remboursement
INNER JOIN etat ON etat."eId"=remboursement."rEtat" INNER JOIN etat ON etat."eId"=remboursement."rEtat"
WHERE "rVisiteur"= :userId WHERE "rVisiteur"= :userId
ORDER BY "rMois" DESC'; ORDER BY "rDateModif" DESC LIMIT :nbLignes offset :decalage;';
$result = $this->pdo->prepare($req); $result = $this->pdo->prepare($req);
$result ->bindParam("userId", $idUtilisateur); $result->bindParam('nbLignes', $this::$NB_LIGNES_PAGINATION);
$result ->execute(); $result->bindParam('decalage', $decalage);
$result->bindParam('userId', $idUtilisateur);
$result->execute();
return $result->fetchAll(); return $result->fetchAll(PDO::FETCH_ASSOC);
} }
} }

View File

@@ -13,7 +13,7 @@ class Class_user
$this->pdo = $pDO->getPdoGsb(); $this->pdo = $pDO->getPdoGsb();
} }
public function connectUser(string $login, string $password): array public function connectUser(string $login, string $password): array|bool
{ {
$req = 'SELECT "uId", "uNom", "uPrenom", "uAdresse", "uCp", "uVille", "uSecteur", "uLabo", "parametre"."pLibelle" $req = 'SELECT "uId", "uNom", "uPrenom", "uAdresse", "uCp", "uVille", "uSecteur", "uLabo", "parametre"."pLibelle"
FROM utilisateur FROM utilisateur

View File

@@ -6,6 +6,11 @@ if (isset($_POST['login']) && isset($_POST['password'])) {
//Récupère les données de l'utilisateur //Récupère les données de l'utilisateur
$data = $userClass->connectUser($_POST['login'], $_POST['password']); $data = $userClass->connectUser($_POST['login'], $_POST['password']);
if($data == false) {
header('location: index.php');
}
//Si l'utilisateur existe ou pas //Si l'utilisateur existe ou pas
if (count($data) === 0) { if (count($data) === 0) {
header('location: index.php?direction=connexion&msg=errorco'); header('location: index.php?direction=connexion&msg=errorco');

View File

@@ -0,0 +1,31 @@
<?php
$_SESSION["typeU"] = "comptable";
require_once(__DIR__ . '/../Class/class.gestionFiche.php');
$gestionFiche = new Class_gestionFiche($pdo);
$LesUtilisateurs = $gestionFiche->getLesUtilisateurs(); //RENVOIE LISTE USERS
if ($_SESSION["typeU"] == "comptable") {
if (isset($_REQUEST['selVisiteur'])) {
$userId = $_REQUEST['selVisiteur'];
} else {
$userId = $LesUtilisateurs[0]['uId'];
}
} else {
$userId = $_SESSION['uId'];
}
//Pagination
if(isset($_GET['page']) && !empty($_GET['page'])){
$currentPage = (int) strip_tags($_GET['page']);
}else{
$currentPage = 1;
}
$pages = ceil($gestionFiche->get_nbFicheAvalider() / $gestionFiche::$NB_LIGNES_FICHEAVALIDER);
$lesFiches = $gestionFiche->get_ficheAvalider($currentPage);
include("vues/v_fichesAvalider.php");

View File

@@ -16,8 +16,16 @@ if ($_SESSION["typeU"] == "comptable") {
$userId = $_SESSION['uId']; $userId = $_SESSION['uId'];
} }
$lesFiches = $gestionFiche->get_ListesFiches($userId); //Pagination
if(isset($_GET['page']) && !empty($_GET['page'])){
$currentPage = (int) strip_tags($_GET['page']);
}else{
$currentPage = 1;
}
$pages = ceil($gestionFiche->get_nbRemboursement($userId) / $gestionFiche::$NB_LIGNES_PAGINATION);
$lesFiches = $gestionFiche->get_Page($currentPage, $userId);
include("vues/v_gestionFiches.php"); include("vues/v_gestionFiches.php");

View File

@@ -1,19 +1,44 @@
<?php <?php
/**
* sudo date --set "YYYY-MM-DD HH:MM:SS"
*/
require_once(__DIR__ . '/../Class/class.newFiche.php'); require_once(__DIR__ . '/../Class/class.newFiche.php');
$typeUser = $_SESSION['uType']; //visiteur ou comptable $typeUser = $_SESSION['uType']; //visiteur ou comptable
// $typeUser = 'comptable';//$_SESSION['uType']; //visiteur ou comptable $typeUser = 'visiteur';//$_SESSION['uType']; //visiteur ou comptable
$userId = $_SESSION['uId']; //exemple: 'b34' $userId = $_SESSION['uId']; //exemple: 'b34'
/** /**
* Gestion de la date selon la vue à afficher * Gestion de la date selon la vue à afficher
*/ */
if (isset($_GET['currentList'])) { if (isset($_GET['currentList'])) {
//Date des req SQL et function //Date des req SQL et function
$date = date('Ym'); $date = date('Ym');
//Date du header en français //Timestamp de la date
try { $dateTimeStamp = strtotime(date('Y-m-\01'));
//Date du formulaire HF
$dateFormHFMin = date('Y-m-\01');
$dateFormHFMax = date("Y-m-t", mktime(0, 0, 0, date('m'), 1, date('Y'))); // retourne le dernier jour du mois (30 ou 31)
} elseif (isset($_GET['dateListing'])) {
//Données pour nourire la vue
$userId = $_REQUEST['userId'];
$date = $_REQUEST['dateListing'];
//Timestamp de la date
$dateTimeStamp = strtotime(substr($date, 0, 4) . '-' . substr($date, 4) . '-01');
//Date du formulaire HF
$dateFormHFMin = substr($date, 0, 4) . '-' . substr($date, 4) . '-01';
$dateFormHFMax = date("Y-m-t", mktime(0, 0, 0, date('m', $dateTimeStamp), 1, date('Y', $dateTimeStamp))); // retourne le dernier jour du mois (30 ou 31)
}
//Date du header en français
try {
//sudo timedatectl set-local-rtc 1 //sudo timedatectl set-local-rtc 1
$format = new IntlDateFormatter( $format = new IntlDateFormatter(
'fr_FR', 'fr_FR',
@@ -23,18 +48,10 @@ if (isset($_GET['currentList'])) {
IntlDateFormatter::GREGORIAN, IntlDateFormatter::GREGORIAN,
'MMMM Y' 'MMMM Y'
); );
$dateHeader = $format->format(time()); $dateHeader = $format->format($dateFormat);
} catch (\Throwable $th) { } catch (\Throwable $th) {
$dateHeader = date('F Y'); $dateHeader = date('F Y', $dateTimeStamp);
}
//Date du formulaire HF
$dateFormHFMin = date('Y-m-\01');
$dateFormHFMax = date("Y-m-t", mktime(0, 0, 0, date('m'), 1, date('Y'))); // retourne le dernier jour du mois (30 ou 31)
} elseif (isset($_GET['dateListing'])) {
$date = $_GET['dateListing'];
} }
//$date = '202312'; //TESTVAR //$date = '202312'; //TESTVAR

View File

@@ -13,7 +13,7 @@
Partie visiteur Partie visiteur
--> -->
<?php <?php
if($_SESSION['typeU'] == 'visiteur'): if($_SESSION['uType'] == 'visiteur'):
?> ?>
<li> <li>
<a href="#submenu1" data-bs-toggle="collapse" class="nav-link px-0 align-middle"> <a href="#submenu1" data-bs-toggle="collapse" class="nav-link px-0 align-middle">
@@ -34,7 +34,7 @@
<a href="#" class="nav-link px-0 align-middle"> <a href="#" class="nav-link px-0 align-middle">
<i class="fs-4 bi-table"></i> <span class="ms-1 d-none d-sm-inline">Visites</span></a> <i class="fs-4 bi-table"></i> <span class="ms-1 d-none d-sm-inline">Visites</span></a>
</li> </li>
<?php endif; if ($_SESSION['typeU'] == 'comptable'): ?> <?php endif; if ($_SESSION['uType'] == 'comptable'): ?>
<!-- <!--
Partie comptable Partie comptable
--> -->
@@ -48,7 +48,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="#" class="nav-link px-0"> <span class="d-none d-sm-inline">Historique</span> <a href="index.php?direction=ficheAvalider" class="nav-link px-0"> <span class="d-none d-sm-inline">fiches a vérifier</span>
</a> </a>
</li> </li>
</ul> </ul>

View File

@@ -195,6 +195,12 @@ function calcPrixTotalFrsF() {
*/ */
function calcPrixTotalFrsHorsF() { function calcPrixTotalFrsHorsF() {
console.log($('td#MttFrsHF').length)
if ($('td#MttFrsHF').length == 0) {
vf
}
var prixTotal = 0; var prixTotal = 0;
$('td#MttFrsHF').each(function () { $('td#MttFrsHF').each(function () {
prixTotal += parseFloat($(this).html().replace('€', '')) prixTotal += parseFloat($(this).html().replace('€', ''))

View File

@@ -71,6 +71,10 @@ if (!isset($_REQUEST['direction']) && !isset($_SESSION['uId'])) {
include(__DIR__ . "/controleurs/c_nouvelleFiche.php"); include(__DIR__ . "/controleurs/c_nouvelleFiche.php");
break; break;
case 'ficheAvalider':
include(__DIR__ . "/controleurs/c_ficheAvalider.php");
break;
default: default:
include("controleurs/c_homePage.php"); include("controleurs/c_homePage.php");
break; break;

70
vues/v_fichesAvalider.php Normal file
View File

@@ -0,0 +1,70 @@
<div class="text-center">
<br>
<h3>Fiches à valider</h3>
</div>
<div class="col-11 d-flex mx-auto">
<table class="table table-striped">
<thead>
<tr>
<th scope="col">Mois</th>
<th scope="col">Nom Fiche</th>
<th scope="col">Total</th>
<th scope="col">Statut</th>
<th scope="col">Détails</th>
</tr>
</thead>
<tbody>
<?php foreach ($lesFiches as $uneFiche) { ?>
<tr>
<th scope="row">
<?= $gestionFiche->dateComplete($uneFiche['rMois']) ?>
</th>
<td>
<?= $uneFiche['uNom'] ?>
<?= $uneFiche['uPrenom'] ?>
</td>
<td>
<?= $uneFiche['rMontantValide'] ?> €
</td>
<td>
<?= $uneFiche['eLibelle'] ?>
</td>
<td><a
href="index.php?direction=nouvelleFiche&userId=<?= $userId ?>&dateListing=<?= $uneFiche['rMois'] ?>">voir</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<?php if ($pages > 0) { ?>
<div class="col-4 d-flex mx-auto">
<nav>
<ul class="pagination">
<!-- Lien vers la page précédente (désactivé si on se trouve sur la 1ère page) -->
<li class="page-item <?= ($currentPage == 1) ? "disabled" : "" ?>">
<a href="index.php?direction=ficheAvalider&page=<?= $currentPage - 1 ?>"
class="page-link">Précédente</a>
</li>
<?php for ($page = 1; $page <= $pages; $page++): ?>
<!-- Lien vers chacune des pages (activé si on se trouve sur la page correspondante) -->
<li class="page-item <?= ($currentPage == $page) ? "active" : "" ?>">
<a href="index.php?direction=ficheAvalider&page=<?= $page ?>"
class="page-link">
<?= $page ?>
</a>
</li>
<?php endfor ?>
<!-- Lien vers la page suivante (désactivé si on se trouve sur la dernière page) -->
<li class="page-item <?= ($currentPage == $pages) ? "disabled" : "" ?>">
<a href="index.php?direction=ficheAvalider&page=<?= $currentPage + 1 ?>"
class="page-link">Suivante</a>
</li>
</ul>
</nav>
</div>
<?php
};
?>

View File

@@ -22,7 +22,7 @@
} }
} }
echo '</select>'; ?> echo '</select>'; ?>
<button type="submit" class="btn btn-dark m-2" >Selectionner</button> <button type="submit" class="btn btn-dark m-2">Selectionner</button>
<!-- Fin du formulaire --> <!-- Fin du formulaire -->
<?php } <?php }
?> ?>
@@ -45,7 +45,7 @@
<?php foreach ($lesFiches as $uneFiche) { ?> <?php foreach ($lesFiches as $uneFiche) { ?>
<tr> <tr>
<th scope="row"> <th scope="row">
<?= $uneFiche['rMois'] ?> <?= $gestionFiche->dateComplete($uneFiche['rMois']) ?>
</th> </th>
<td> <td>
<?= $uneFiche['rMontantValide'] ?> € <?= $uneFiche['rMontantValide'] ?> €
@@ -54,7 +54,7 @@
<?= $uneFiche['eLibelle'] ?> <?= $uneFiche['eLibelle'] ?>
</td> </td>
<td><a <td><a
href="controleurs\c_nouvelleFiche.php?userId=<?= $userId ?>&dateListing=<?= $uneFiche['rMois'] ?>">voir</a> href="index.php?direction=nouvelleFiche&userId=<?= $userId ?>&dateListing=<?= $uneFiche['rMois'] ?>">voir</a>
</td> </td>
</tr> </tr>
<?php } ?> <?php } ?>
@@ -63,22 +63,35 @@
</div> </div>
<!-- <!--
PAGINATION:// NE PAS TOUCHER PAGINATION:
--> -->
<div class="col-4 d-flex mx-auto">
<nav aria-label="..."> <?php if ($pages > 0) { ?>
<div class="col-4 d-flex mx-auto">
<nav>
<ul class="pagination"> <ul class="pagination">
<li class="page-item disabled"> <!-- Lien vers la page précédente (désactivé si on se trouve sur la 1ère page) -->
<a class="page-link">Previous</a> <li class="page-item <?= ($currentPage == 1) ? "disabled" : "" ?>">
<a href="index.php?direction=gestionFiche&page=<?= $currentPage - 1 ?>&selVisiteur=<?= $userId ?>"
class="page-link">Précédente</a>
</li> </li>
<li class="page-item"><a class="page-link" href="#">1</a></li> <?php for ($page = 1; $page <= $pages; $page++): ?>
<li class="page-item active" aria-current="page"> <!-- Lien vers chacune des pages (activé si on se trouve sur la page correspondante) -->
<a class="page-link" href="#">2</a> <li class="page-item <?= ($currentPage == $page) ? "active" : "" ?>">
<a href="index.php?direction=gestionFiche&page=<?= $page ?>&selVisiteur=<?= $userId ?>"
class="page-link">
<?= $page ?>
</a>
</li> </li>
<li class="page-item"><a class="page-link" href="#">3</a></li> <?php endfor ?>
<li class="page-item"> <!-- Lien vers la page suivante (désactivé si on se trouve sur la dernière page) -->
<a class="page-link" href="#">Next</a> <li class="page-item <?= ($currentPage == $pages) ? "disabled" : "" ?>">
<a href="index.php?direction=gestionFiche&page=<?= $currentPage + 1 ?>&selVisiteur=<?= $userId ?>"
class="page-link">Suivante</a>
</li> </li>
</ul> </ul>
</nav> </nav>
</div> </div>
<?php
};
?>