Compare commits
34 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
b14060fd9f | ||
|
aae15b6693 | ||
|
1361815ceb | ||
|
fbb806123f | ||
|
0e88f5691b | ||
|
d318398632 | ||
|
34234fd5fc | ||
|
30b3cf0e62 | ||
|
7f42c1dc8f | ||
|
382275409e | ||
|
64c161d157 | ||
|
05246a1c9b | ||
|
479b33b6b5 | ||
|
4dbb9dbb02 | ||
|
e7ccb15c44 | ||
|
0ed841df0f | ||
|
b07b3ff28f | ||
|
44e8d2d357 | ||
|
ac9209740d | ||
|
61c8fdc536 | ||
|
f1ccd39f15 | ||
|
901b0b7693 | ||
|
755a9451b4 | ||
|
0debe9ff84 | ||
|
22c5a34c06 | ||
|
050a79dd07 | ||
|
d6ba333df3 | ||
|
d32990ad03 | ||
|
f914096f8c | ||
|
808ae02761 | ||
|
2ae9bb9cee | ||
|
0a5832a454 | ||
|
c9371d8084 | ||
|
29a10cf79e |
94
README.md
94
README.md
|
@ -1,2 +1,92 @@
|
||||||
# GestionConges-PHP
|
# GestionConges-PHP: Utilitaire PHP de Gestion des Congés (individuel)
|
||||||
Utilitaire PHP de Gestion des Congés (individuel)
|
|
||||||
|
## I. Installation
|
||||||
|
|
||||||
|
### 1. Prérequis
|
||||||
|
|
||||||
|
Pour installer l'utilitaire, vous avez besoin d'un serveur web (Apache, Nginx ou autre) ainsi que d'un serveur MySQL (ou MariaDB pour les plus à jour).
|
||||||
|
|
||||||
|
L'application fonctionnera également parfaitement en mode monoposte sur un serveur de type XAMPP ou WAMP.
|
||||||
|
|
||||||
|
## 2. Installation des fichiers web
|
||||||
|
|
||||||
|
Il suffit simplement de copier l'intégralité des fichiers sur le dossier dédié sur le serveur web.
|
||||||
|
Les liens dans les fichiers sont faits pour s'adapter à votre arborescence.
|
||||||
|
|
||||||
|
Attention cependant à ce que les fichiers PHP dont le nom commence par `class` restent bien dans le dossier au même nom.
|
||||||
|
|
||||||
|
## 3. Installation de la base de données
|
||||||
|
|
||||||
|
Vous pouvez créer votre base de données `gestionconges` (si vous êtes débutant, nous vous conseillons fortement de conserver ce nom, car il vous faudra sinon adapter `class.sqlconnect.php` en conséquence) sur votre serveur MySQL via des outils en ligne comme PhpMyAdmin ou Adminer.
|
||||||
|
|
||||||
|
Il faudra ensuite y importer le fichier `conges.sql` qui se trouve dans le dossier `sql`. Cela permettra de configurer la base directement de manière à ce que les données puissent s'y ajouter sans problème.
|
||||||
|
|
||||||
|
Nous vous conseillons fortement de créer un compte MySQL dédié pour cette base et de ne lui donner les droits que sur cette base.
|
||||||
|
|
||||||
|
Une fois votre base créée, vous pouvez saisir les informations relatives à celle-ci sous `class/class.sqlconnect.php` via les champs suivants :
|
||||||
|
|
||||||
|
```
|
||||||
|
$servername = "localhost";
|
||||||
|
$username = "utilisateur";
|
||||||
|
$password = "motdepasse";
|
||||||
|
$dbname = "gestionconges";
|
||||||
|
$table = "gestionconges.conges";
|
||||||
|
```
|
||||||
|
|
||||||
|
Le paramètre `$servername` sera localhost dans la majorité des cas. Ne le modifiez que si vous savez ce que vous faites.
|
||||||
|
|
||||||
|
Les paramètres `$username`et `$password` devront contenir respectivement identifiant et mot de passe de votre base de données.
|
||||||
|
|
||||||
|
Les paramètres `$dbname` et `$table` ne changeront pas si vous avez nommé votre base de données `gestionconges` comme conseillé.
|
||||||
|
|
||||||
|
### 4. Configuration des paramètres de votre organisation
|
||||||
|
|
||||||
|
Toutes les entreprises ne proposent pas forcément des RTT. C'est pourquoi il peut être nécessaire de faire des ajustements sur les soldes et saisies.
|
||||||
|
|
||||||
|
Il faudra faire ces ajustements dans le fichier `config.php` (des commentaires dans le fichier indiquent les valeurs attendues) :
|
||||||
|
|
||||||
|
```
|
||||||
|
$rttparan = 9; //Nombre de RTT par an
|
||||||
|
$cpparan = 25; //Nombre de CP par an
|
||||||
|
|
||||||
|
$rttparmois = 0.75; // Nombre de RTT par mois (pour calculer les acquis de l'année suivante)
|
||||||
|
$cpparmois = 2.0833333333; // Nombre de RTT par mois (pour calculer les acquis de l'année suivante)
|
||||||
|
```
|
||||||
|
|
||||||
|
## II. Utilisation de l'utilitaire
|
||||||
|
|
||||||
|
Après avoir procédé à la configuration de l'utilitaire, nous allons aborder son utilisation (il est très simpliste).
|
||||||
|
|
||||||
|
### 1. La page principale
|
||||||
|
|
||||||
|
Sur cette pages, 3 choses sont affichées :
|
||||||
|
|
||||||
|
- Un tableau contenant les congés que vous avez saisis avec les dates, le nombre de jours et la nature (le type). Il y a également un bouton Supprimer sur chaque ligne afin de procéder aux ajustements dont vous aurez besoin, mais aussi supprimer les lignes obsolètes au début d'une nouvelle année (le système n'est pas capable de faire le vide automatiquement).
|
||||||
|
- Un tableau indiquant le solde de congés ou RTT restants selon les paramètres saisis dans `config.php` et les jours déjà saisis.
|
||||||
|
- Un tableau indiquant le cumul pour année suivante, qui se base également sur `config.php`.
|
||||||
|
|
||||||
|
Le système prend en compte les congés avec les dates suivantes :
|
||||||
|
|
||||||
|
- RTT : 1er janvier au 31 décembre
|
||||||
|
- Congés payés : 1er juin au 31 mai
|
||||||
|
|
||||||
|
En cas de nécessité d'adaptation, ne pas hésiter à [ouvrir une issue](https://github.com/alexandremottier/GestionConges-PHP/issues/new).
|
||||||
|
|
||||||
|
### 2. La page de saisie
|
||||||
|
|
||||||
|
Sur cette page, un tableau vous demandant de saisir des informations sur vos congés :
|
||||||
|
|
||||||
|
- Date de début
|
||||||
|
- Date de fin
|
||||||
|
- Nombre de jours à décompter (pour ne pas compter inutilement les week-ends et jours fériés)
|
||||||
|
- La nature (type) des congés : RTT ou congé payé.
|
||||||
|
|
||||||
|
ATTENTION : Pour la saisie du nombre de jour, le séparateur décimal est le point `.` et non la virgule `,`.
|
||||||
|
|
||||||
|
Vous voilà maintenant prêt à utiliser cet utilitaire de gestion des congés !
|
||||||
|
|
||||||
|
Faites-en bon usage ! ;-)
|
||||||
|
|
||||||
|
## III. DÉMO
|
||||||
|
|
||||||
|
[Accéder à la démo](https://demo.am-networks.fr/GestionConges-PHP)
|
||||||
|
|
|
@ -4,11 +4,10 @@
|
||||||
<link rel="stylesheet" href="style.css">
|
<link rel="stylesheet" href="style.css">
|
||||||
<meta name="viewport" content="width=device-width">
|
<meta name="viewport" content="width=device-width">
|
||||||
<?php
|
<?php
|
||||||
require('sqlconnect.php');
|
require('class.sqlconnect.php');
|
||||||
?>
|
?>
|
||||||
</head>
|
</head>
|
||||||
<?php
|
<?php
|
||||||
require('sqlconnect.php');
|
|
||||||
|
|
||||||
$datedebut = $_POST['datedebut'];
|
$datedebut = $_POST['datedebut'];
|
||||||
$datefin = $_POST['datefin'];
|
$datefin = $_POST['datefin'];
|
||||||
|
@ -21,7 +20,7 @@ $req = "INSERT INTO $table VALUES ('$datedebut','$datefin','$nbjours','$type');"
|
||||||
$resultat = $mysqli->query($req);
|
$resultat = $mysqli->query($req);
|
||||||
if ($resultat) {
|
if ($resultat) {
|
||||||
echo "<p>La saisie a été ajoutée !</p>";
|
echo "<p>La saisie a été ajoutée !</p>";
|
||||||
header("refresh:2; url=index.php");
|
header("refresh:2; url=../index.php");
|
||||||
}else{
|
}else{
|
||||||
echo "<p>Erreur</p>";
|
echo "<p>Erreur</p>";
|
||||||
};
|
};
|
||||||
|
|
13
class/class.clearcp.php
Normal file
13
class/class.clearcp.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
require('class.sqlconnect.php');
|
||||||
|
$mysqli = new mysqli($servername, $username, $password, $dbname);
|
||||||
|
$mysqli->set_charset("utf8");
|
||||||
|
$req = "DELETE FROM $table WHERE type = 'cp' ;";
|
||||||
|
$resultat = $mysqli->query($req);
|
||||||
|
if ($resultat) {
|
||||||
|
echo "<p>Les congés payés ont été supprimés !</p>";
|
||||||
|
header("refresh:2; url=../index.php");
|
||||||
|
}else{
|
||||||
|
echo "<p>Erreur</p>";
|
||||||
|
};
|
||||||
|
?>
|
13
class/class.clearrtt.php
Normal file
13
class/class.clearrtt.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
require('class.sqlconnect.php');
|
||||||
|
$mysqli = new mysqli($servername, $username, $password, $dbname);
|
||||||
|
$mysqli->set_charset("utf8");
|
||||||
|
$req = "DELETE FROM $table WHERE type = 'rtt' ;";
|
||||||
|
$resultat = $mysqli->query($req);
|
||||||
|
if ($resultat) {
|
||||||
|
echo "<p>Les RTT ont été supprimés !</p>";
|
||||||
|
header("refresh:2; url=../index.php");
|
||||||
|
}else{
|
||||||
|
echo "<p>Erreur</p>";
|
||||||
|
};
|
||||||
|
?>
|
|
@ -3,7 +3,7 @@
|
||||||
//require('config.php');
|
//require('config.php');
|
||||||
|
|
||||||
function soldertt($table, $rttparan, $conn){
|
function soldertt($table, $rttparan, $conn){
|
||||||
$resultrtt = mysqli_query($conn, "SELECT SUM(nbjours) AS decomptertt FROM $table WHERE type='RTT' AND datedebut LIKE ");
|
$resultrtt = mysqli_query($conn, "SELECT SUM(nbjours) AS decomptertt FROM $table WHERE type='RTT'");
|
||||||
$rowrtt = mysqli_fetch_assoc($resultrtt);
|
$rowrtt = mysqli_fetch_assoc($resultrtt);
|
||||||
$sumrtt = $rowrtt['decomptertt'];
|
$sumrtt = $rowrtt['decomptertt'];
|
||||||
$rtt = ($rttparan - $sumrtt);
|
$rtt = ($rttparan - $sumrtt);
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
<link rel="stylesheet" href="style.css">
|
<link rel="stylesheet" href="style.css">
|
||||||
<meta name="viewport" content="width=device-width">
|
<meta name="viewport" content="width=device-width">
|
||||||
<?php
|
<?php
|
||||||
require('sqlconnect.php');
|
require('class.sqlconnect.php');
|
||||||
|
//require('config.php');
|
||||||
|
//require('class.functions.php');
|
||||||
?>
|
?>
|
||||||
</head>
|
</head>
|
||||||
<?php
|
<?php
|
||||||
require('sqlconnect.php');
|
|
||||||
|
|
||||||
$actual_link = $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
|
$actual_link = $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
|
||||||
$url_components = parse_url($actual_link);
|
$url_components = parse_url($actual_link);
|
||||||
parse_str($url_components['query'], $params);
|
parse_str($url_components['query'], $params);
|
||||||
|
@ -22,8 +22,8 @@ $req = "DELETE FROM $table WHERE datedebut = '$datedebut' AND datefin = '$datefi
|
||||||
$resultat = $mysqli->query($req);
|
$resultat = $mysqli->query($req);
|
||||||
if ($resultat) {
|
if ($resultat) {
|
||||||
echo "<p>La saisie a été supprimée !</p>";
|
echo "<p>La saisie a été supprimée !</p>";
|
||||||
header("refresh:2; url=index.php");
|
header("refresh:2; url=../index.php");
|
||||||
}else{
|
}else{
|
||||||
echo "<p>Erreur</p>";
|
echo "<p>Erreur</p>";
|
||||||
};
|
}
|
||||||
?>
|
?>
|
||||||
|
|
12
index.php
12
index.php
|
@ -13,7 +13,7 @@
|
||||||
<body>
|
<body>
|
||||||
<h1>Gestion des congés - Affichage</h1>
|
<h1>Gestion des congés - Affichage</h1>
|
||||||
<h2>Année en cours : <?php echo date('Y'); ?></h2>
|
<h2>Année en cours : <?php echo date('Y'); ?></h2>
|
||||||
<a href="saisie.php">Saisir des congés</a>
|
<button onclick="window.location.href='saisie.php'" class="button">Saisir des congés</button>
|
||||||
<br><br>
|
<br><br>
|
||||||
<?php
|
<?php
|
||||||
$sql = "SELECT * FROM $table";
|
$sql = "SELECT * FROM $table";
|
||||||
|
@ -30,7 +30,7 @@ $result = $conn->query($sql);
|
||||||
<td><b>Date début</b></td>
|
<td><b>Date début</b></td>
|
||||||
<td><b>Date fin</b></td>
|
<td><b>Date fin</b></td>
|
||||||
<td><b>Durée</b></td>
|
<td><b>Durée</b></td>
|
||||||
<td><b>Type de congé</b></td>
|
<td><b>Nature du congé</b></td>
|
||||||
<td><b>Suppression</b></td>
|
<td><b>Suppression</b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
@ -42,7 +42,10 @@ if ($result->num_rows > 0) {
|
||||||
$findate = str_replace('-"', '/', $row["datefin"]);
|
$findate = str_replace('-"', '/', $row["datefin"]);
|
||||||
$datefin = date("d/m/Y", strtotime($findate));
|
$datefin = date("d/m/Y", strtotime($findate));
|
||||||
$nombrejours = $row["nbjours"];
|
$nombrejours = $row["nbjours"];
|
||||||
echo "<tr><td> " . $datedebut. " </td><td> " . $datefin. " </td><td> " . $nombrejours . " jour(s) </td><td> ". $row["type"]." </td><td><a href=\"class.remove.php?datedebut=" . $row["datedebut"] . "&datefin=" . $row["datefin"]. "\">Supprimer la ligne</a></td></tr>";
|
$link = 'class/class.remove.php?datedebut=' . $row["datedebut"] . '&datefin=' . $row["datefin"];
|
||||||
|
echo "<tr><td> " . $datedebut. " </td><td> " . $datefin. " </td><td> " . $nombrejours . " jour(s) </td><td> " . $row["type"] . " </td><td><button onclick='window.location.href=" . '"' . $link . '"' . "' class='button'>Supprimer la ligne</button></td></tr>";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo "<tr colspan='4'><td>Pas de résultat</td></tr>";
|
echo "<tr colspan='4'><td>Pas de résultat</td></tr>";
|
||||||
|
@ -51,6 +54,9 @@ $conn->close();
|
||||||
?>
|
?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
<br>
|
||||||
|
<button onclick="window.location.href='class/class.clearcp.php'" class="button">Supprimer les congés payés</button>
|
||||||
|
<button onclick="window.location.href='class/class.clearrtt.php'" class="button">Supprimer les RTT</button>
|
||||||
<br><br>
|
<br><br>
|
||||||
<?php require('solde.php') ?>
|
<?php require('solde.php') ?>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<body>
|
<body>
|
||||||
<h1>Gestion des congés - Saisie</h1>
|
<h1>Gestion des congés - Saisie</h1>
|
||||||
<a href="index.php">Afficher les congés</a><br><br>
|
<a href="index.php">Afficher les congés</a><br><br>
|
||||||
<form class="generated-form" method="POST" action="class.ajout.php" target="_self">
|
<form class="generated-form" method="POST" action="class/class.ajout.php" target="_self">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend> Saisie de congés </legend>
|
<legend> Saisie de congés </legend>
|
||||||
<label for="datedebut">Date de début :</label><br>
|
<label for="datedebut">Date de début :</label><br>
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
<input type="date" id="datefin" name="datefin"><br>
|
<input type="date" id="datefin" name="datefin"><br>
|
||||||
<label for="nbjours">Nombre de jours :</label><br>
|
<label for="nbjours">Nombre de jours :</label><br>
|
||||||
<input type="text" id="nbjours" name="nbjours"><br><br>
|
<input type="text" id="nbjours" name="nbjours"><br><br>
|
||||||
<label for="nbjours">Type de congés :</label><br>
|
<label for="nbjours">Nature du congé :</label><br>
|
||||||
<select name="type">
|
<select name="type">
|
||||||
<option value="RTT" stud_name="sre">RTT</option>
|
<option value="RTT" stud_name="sre">RTT</option>
|
||||||
<option value="CP" stud_name="sam">Congé payé</option>
|
<option value="CP" stud_name="sam">Congé payé</option>
|
||||||
|
|
|
@ -38,12 +38,6 @@ require('config.php');
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
|
||||||
<td>RTT</td>
|
|
||||||
|
|
||||||
<td><?php echo cumuln1rtt($rttparmois); ?> jour(s)</td>
|
|
||||||
<td>Entre en vigueur le : 1er janvier <?php anneeplus(); ?></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Congés payés</td>
|
<td>Congés payés</td>
|
||||||
<td><?php echo cumuln1cp($cpparmois); ?> jour(s)</td>
|
<td><?php echo cumuln1cp($cpparmois); ?> jour(s)</td>
|
||||||
|
|
|
@ -2,8 +2,6 @@ SET NAMES utf8;
|
||||||
SET time_zone = '+00:00';
|
SET time_zone = '+00:00';
|
||||||
SET foreign_key_checks = 0;
|
SET foreign_key_checks = 0;
|
||||||
|
|
||||||
DROP DATABASE IF EXISTS `gestionconges`;
|
|
||||||
CREATE DATABASE `gestionconges` /*!40100 DEFAULT CHARACTER SET utf8 */;
|
|
||||||
USE `gestionconges`;
|
USE `gestionconges`;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `conges`;
|
DROP TABLE IF EXISTS `conges`;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user