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
| <?php
try{
$bdd=new PDO('mysql:host=localhost;dbname=pcg;charset=utf8', 'root','');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// afficher les erreurs php
}catch(Exception $e){
die('Erreur :' . $e->getMessage());
}
if(!empty($_POST)){
echo'<script>window.location.href("grandlivre.php")</script>';
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../css/bootstrap.css">
<link rel="stylesheet" href="../css/style.css">
<link rel="stylesheet" href="../css/carousel.css">
<title>Comptabilité</title>
<script src="../js/jquery.js"></script>
<script src="../js/bootstrap.min.js"></script>
</head>
<body>
<div id="grandlivre">
<div class="container">
<div class="row">
<div class="col-sm-12">
<h1 style="font-size:25px;text-align:center;color:black;">Grand livre</h1>
<table>
<thead>
<tr>
<th class="journal">Journal</th>
<th class="dateecritures">Date</th>
<th class="libelle">Libellé écritures</th>
<th class="debit">Débit</th>
<th class="credit">Crédit</th>
<th class="solde">Solde</th>
</tr>
</thead>
<tbody>
<?php
$comptePrecedent = 0;
//Sélection des numéros et noms de compte dans le plan comptable
$response = $bdd->query('SELECT * FROM plancomptable');
$plancomptable = $response->fetchAll();
$response->closeCursor();
//Sélection des écritures comptables correspondant au numéro de compte
$responses = $bdd->query('SELECT * FROM ecriturescomptables E INNER JOIN plancomptable B ON E.numerocompte = B.compte ORDER BY E.numerocompte, E.date_operation');
$ecritures = $responses->fetchAll();
setlocale(LC_ALL, ['fr_FR.UTF8','fra', 'french']);
$responses->closeCursor();
foreach( $ecritures as $ecriture ) {
if( $comptePrecedent != $ecriture['compte'] ) {
$dateoperation = new DateTime($ecriture['date_operation']);
$debit = $ecriture['debit'];
$credit = $ecriture['credit'];
echo '<tr class="titrecompte"><th colspan="6">'.htmlspecialchars($ecriture['compte']).'. '.htmlspecialchars($ecriture['libelle_plan']).'</th></tr>';
if($debit < 0){
echo '<tr><td>'.htmlspecialchars($ecriture['journal']).'</td><td>'.utf8_encode(strftime('%d %B %Y', $dateoperation->format('U'))).'</td><td>'.htmlspecialchars($ecriture['libelle_comptable']).'</td><td>'.''.'</td><td>'.number_format($credit, 2, ',', ' ').'</td></tr>';
}else {
echo '<tr><td>'.htmlspecialchars($ecriture['journal']).'</td><td>'.utf8_encode(strftime('%d %B %Y', $dateoperation->format('U'))).'</td><td>'.htmlspecialchars($ecriture['libelle_comptable']).'</td><td>'.number_format($debit, 2, ',', ' ').'</td><td>'.''.'</td></tr>';
}
//Calcul des totaux débit et crédit et solde respectif
$response1=$bdd->query('SELECT SUM(debit) AS totaldebiteur, SUM(credit) AS totalcrediteur FROM ecriturescomptables WHERE numerocompte = '.$ecriture['compte'].' GROUP BY numerocompte');
$totaux=$response1->fetchAll();
if (!empty($totaux)){
foreach($totaux as $total){
$compte = $ecriture['compte'];
$libelle_plan = $ecriture['libelle_plan'];
$totaldebiteur = $total['totaldebiteur'];
$totalcrediteur = $total['totalcrediteur'];
$soldedebiteur = $totaldebiteur - $totalcrediteur;
$soldecrediteur = $totalcrediteur - $totaldebiteur;
if($totaldebiteur > $totalcrediteur){
echo '<tr><td>'.'</td><td>'.'</td><td class="totaux">'.'Solde débiteur'.'</td><td class="totaux">'.number_format($totaldebiteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($totalcrediteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($soldedebiteur, 2, ',', ' ').'</td></tr>';
}else {
echo '<tr><td>'.'</td><td>'.'</td><td class="totaux">'.'Solde créditeur'.'</td><td class="totaux">'.number_format($totaldebiteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($totalcrediteur, 2, ',', ' ').'</td><td class="totaux">'.number_format($soldecrediteur, 2, ',', ' ').'</td></tr>';
}
}
}
// Insertion et Mise à jour solde
$insertionMAJsoldes = $bdd->prepare('INSERT INTO balance (compte, libelle_plan, soldedebiteur, soldecrediteur) VALUES ( :compte, :libelle_plan, :soldedebiteur, :soldecrediteur ) ON DUPLICATE KEY UPDATE compte = :compte, libelle_plan = :libelle_plan, soldedebiteur = :soldedebiteur, soldecrediteur = :soldecrediteur;');
$insertionMAJsoldes->execute( array(
'compte' => $compte,
'libelle_plan' => $libelle_plan,
'soldedebiteur' => $soldedebiteur,
'soldecrediteur' => $soldecrediteur
));
$insertionMAJsoldes->closeCursor();
}
$comptePrecedent = $ecriture['compte'];
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script type="application/javascript" src="../js/jquery-3.4.1.min.js"></script>
<script src="../js/script.js"></script>
</body>
</html> |
Partager