Compare commits

..

No commits in common. "master" and "v1.0" have entirely different histories.
master ... v1.0

12 changed files with 24 additions and 143 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -1,92 +1,2 @@
# GestionConges-PHP: 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)
# GestionConges-PHP
Utilitaire PHP de Gestion des Congés (individuel)

View File

@ -4,10 +4,11 @@
<link rel="stylesheet" href="style.css">
<meta name="viewport" content="width=device-width">
<?php
require('class.sqlconnect.php');
require('sqlconnect.php');
?>
</head>
<?php
require('sqlconnect.php');
$datedebut = $_POST['datedebut'];
$datefin = $_POST['datefin'];
@ -20,7 +21,7 @@ $req = "INSERT INTO $table VALUES ('$datedebut','$datefin','$nbjours','$type');"
$resultat = $mysqli->query($req);
if ($resultat) {
echo "<p>La saisie a été ajoutée !</p>";
header("refresh:2; url=../index.php");
header("refresh:2; url=index.php");
}else{
echo "<p>Erreur</p>";
};

View File

@ -1,13 +0,0 @@
<?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>";
};
?>

View File

@ -1,13 +0,0 @@
<?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>";
};
?>

View File

@ -3,7 +3,7 @@
//require('config.php');
function soldertt($table, $rttparan, $conn){
$resultrtt = mysqli_query($conn, "SELECT SUM(nbjours) AS decomptertt FROM $table WHERE type='RTT'");
$resultrtt = mysqli_query($conn, "SELECT SUM(nbjours) AS decomptertt FROM $table WHERE type='RTT' AND datedebut LIKE ");
$rowrtt = mysqli_fetch_assoc($resultrtt);
$sumrtt = $rowrtt['decomptertt'];
$rtt = ($rttparan - $sumrtt);

View File

@ -4,12 +4,12 @@
<link rel="stylesheet" href="style.css">
<meta name="viewport" content="width=device-width">
<?php
require('class.sqlconnect.php');
//require('config.php');
//require('class.functions.php');
require('sqlconnect.php');
?>
</head>
<?php
require('sqlconnect.php');
$actual_link = $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$url_components = parse_url($actual_link);
parse_str($url_components['query'], $params);
@ -22,8 +22,8 @@ $req = "DELETE FROM $table WHERE datedebut = '$datedebut' AND datefin = '$datefi
$resultat = $mysqli->query($req);
if ($resultat) {
echo "<p>La saisie a été supprimée !</p>";
header("refresh:2; url=../index.php");
header("refresh:2; url=index.php");
}else{
echo "<p>Erreur</p>";
}
};
?>

View File

@ -13,7 +13,7 @@
<body>
<h1>Gestion des congés - Affichage</h1>
<h2>Année en cours : <?php echo date('Y'); ?></h2>
<button onclick="window.location.href='saisie.php'" class="button">Saisir des congés</button>
<a href="saisie.php">Saisir des congés</a>
<br><br>
<?php
$sql = "SELECT * FROM $table";
@ -30,7 +30,7 @@ $result = $conn->query($sql);
<td><b>Date début</b></td>
<td><b>Date fin</b></td>
<td><b>Durée</b></td>
<td><b>Nature du congé</b></td>
<td><b>Type de congé</b></td>
<td><b>Suppression</b></td>
</tr>
<?php
@ -42,10 +42,7 @@ if ($result->num_rows > 0) {
$findate = str_replace('-"', '/', $row["datefin"]);
$datefin = date("d/m/Y", strtotime($findate));
$nombrejours = $row["nbjours"];
$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>";
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>";
}
} else {
echo "<tr colspan='4'><td>Pas de résultat</td></tr>";
@ -54,9 +51,6 @@ $conn->close();
?>
</tbody>
</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>
<?php require('solde.php') ?>
</body>

View File

@ -13,7 +13,7 @@
<body>
<h1>Gestion des congés - Saisie</h1>
<a href="index.php">Afficher les congés</a><br><br>
<form class="generated-form" method="POST" action="class/class.ajout.php" target="_self">
<form class="generated-form" method="POST" action="class.ajout.php" target="_self">
<fieldset>
<legend> Saisie de congés </legend>
<label for="datedebut">Date de début :</label><br>
@ -22,7 +22,7 @@
<input type="date" id="datefin" name="datefin"><br>
<label for="nbjours">Nombre de jours :</label><br>
<input type="text" id="nbjours" name="nbjours"><br><br>
<label for="nbjours">Nature du congé :</label><br>
<label for="nbjours">Type de congés :</label><br>
<select name="type">
<option value="RTT" stud_name="sre">RTT</option>
<option value="CP" stud_name="sam">Congé payé</option>

View File

@ -38,6 +38,12 @@ require('config.php');
</tr>
</thead>
<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>
<td>Congés payés</td>
<td><?php echo cumuln1cp($cpparmois); ?> jour(s)</td>

View File

@ -2,6 +2,8 @@ SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
DROP DATABASE IF EXISTS `gestionconges`;
CREATE DATABASE `gestionconges` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `gestionconges`;
DROP TABLE IF EXISTS `conges`;

View File

@ -1,9 +1,3 @@
button {
padding: 10px 20px;
background-color: blue;
color: white;
!important;
}
table,
td {
border: 1px solid #333;