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 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link rel="stylesheet" href="./style.css" type="text/css">
<script type="text/javascript">
function numbersOnly(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if(key != null) {
key = parseInt(key, 10);
if((key < 48 || key > 57) && (key < 96 || key > 105)) {
if(!isUserFriendlyChar(key))
return false;
}
else {
if(evt.shiftKey)
return false;
}
}
return true;
}
function isUserFriendlyChar(val) {
// Backspace, Tab, Enter (13 désactivé), Insert, and Delete
if(val == 8 || val == 9 || val == 45 || val == 46)
return true;
// Ctrl, Alt, CapsLock, Home, End, and Arrows
if((val > 16 && val < 21) || (val > 34 && val < 41))
return true;
// The rest
return false;
}
function compte(ref){
while(ref.tagName != "TR"){
ref = ref.parentNode;
}
var total = 0, count = ref.getElementsByTagName('input'), i = count.length;
while(i){
i--;
total += parseInt(count[i].value,10);
}
ref.getElementsByTagName('td')[2].innerHTML = total;
}
</script>
</head>
<body>
<?php
// Connexion à la base mysql
include('../connexion.php');
unset($rub);
unset($srub);
// Début du formulaire
echo '<form name="form_enregistrement" action="valid_demandes.php" method="POST">';
// Titre de la page
echo '<div style="text-align:center;"><img src="./images/admin_titre_demande.png"></div>';
// Tableau des fournitures
echo '<table id="table_fournitures" cellspacing="2">';
echo '<tr height="50">';
// Titre des colonnes
echo '<th class="titre" width="320"></th>';
echo '<th class="titre2" width="43">ETAT stock</th>';
echo '<th class="titre_total" width="52">TOTAL demande</th>';
// Requête SQL permettant de récupérer les noms des services
$req_titre_services = mysql_query ("
SELECT *
FROM services
ORDER BY serv_id");
while ($sql_titre_services = mysql_fetch_array($req_titre_services)){
echo '<th class="titre2" width="30" alt="'.$sql_titre_services['serv_nom '].'" title="'.$sql_titre_services['serv_nom '].'">'.$sql_titre_services['serv_initiale'].'</th>';
}
echo '<th class="titre3" width="18"></th>';
echo '</tr>';
// Requête SQL de sélection des fournitures dans la table sql
$req_fournitures = mysql_query ("
SELECT *
FROM rubriques
JOIN srubriques ON rubriques.rub_id=srubriques.rub_id
JOIN fournitures ON srubriques.srub_id=fournitures.srub_id
ORDER BY rubriques.rub_ordre ASC, srubriques.srub_ordre ASC, fournitures.fourn_ordre ASC");
while ($sql_result = mysql_fetch_array($req_fournitures)){
// Requête SQL du calcul de la somme total des demandes par fourniture
$req_sum_dem_total = mysql_query ("
SELECT SUM(dfourn_quantite) as sum_dem_total
FROM dem_fournitures
WHERE dem_fournitures.fourn_id=".$sql_result['fourn_id']."
GROUP BY dem_fournitures.fourn_id
LIMIT 1");
$sql_sum_dem_total = mysql_fetch_array($req_sum_dem_total);
// Requête SQL du calcul de la somme total des livraisons par fourniture
$req_sum_livr_total = mysql_query ("
SELECT SUM(lfourn_quantite) as sum_livr_total
FROM livr_fournitures
WHERE livr_fournitures.fourn_id=".$sql_result['fourn_id']."
GROUP BY livr_fournitures.fourn_id
LIMIT 1");
$sql_sum_livr_total = mysql_fetch_array($req_sum_livr_total);
// Variable égale au nombre réel de fourniture non livré. (somme total des demandes - somme total des livraisons)
$somme_demandes = ($sql_sum_dem_total['sum_dem_total']-$sql_sum_livr_total['sum_livr_total']);
// Affichage d'une ligne vide si nouvelle rubrique
if ($sql_result['srub_nom']<>$srubrique and $rubrique<>null and $somme_demandes<>0) {
echo '<tr><td class="td_vide" height="10" colspan="20"></td></tr>';
}
// Affichage du nom de la rubrique
if ($sql_result['rub_nom']<>$rubrique and $somme_demandes<>0) {
$rubrique = $sql_result['rub_nom'];
echo '<tr><td class="td_admin_rubrique" colspan="20">'.$sql_result['rub_nom'].'</td></tr>';
}
// Affichage du nom de la sous-rubrique
if ($sql_result['srub_nom']<>$srubrique and $somme_demandes<>0) {
$srubrique = $sql_result['srub_nom'];
echo '<tr><td class="td_srubrique" colspan="20">'.$sql_result['srub_nom'].'</td></tr>';
}
// Affichage d'une ligne vide si fourniture est = à espace
if ($sql_result['fourn_nom']=='espace' and $somme_demandes<>0) {
echo '<tr><td class="td_vide" height="10" colspan="20"></td></tr>';
} else {
//Condition : si la somme des demandes est différente de 0 la ligne s'affiche
if ($somme_demandes<>0) {
// Requête SQL du calcul de la somme total des commandes de fournitures par fourniture
$req_sum_com = mysql_query ("
SELECT SUM(cfourn_quantite) as sum_com
FROM com_fournitures
WHERE com_fournitures.fourn_id=".$sql_result['fourn_id']."
GROUP BY com_fournitures.fourn_id
LIMIT 1");
$sql_sum_com = mysql_fetch_array($req_sum_com);
// Requête SQL permettant de récupérer la valeur moyenne des commandes par fourniture
$req_avg_com = mysql_query ("
SELECT avg(cfourn_quantite) as avg_com
FROM com_fournitures
WHERE com_fournitures.fourn_id=".$sql_result['fourn_id']."
LIMIT 1");
$sql_avg_com = mysql_fetch_array($req_avg_com);
// Variable égale au stock réel (somme total des commandes moins la somme total des livraisons)
$stock = $sql_sum_com['sum_com']-$sql_sum_livr_total['sum_livr_total'];
// Variable égale à l'état du stock en pourcentage par rapport à la valeur la plus importante des commandes pour chaque fourniture
if ($stock>0) {
$coul_etat_stock = ($stock/$sql_avg_com['avg_com'])*100;
// Condition : si l'état est égale a 20 ou mois la couleur est rouge, si égale ou moins de 50 la couleur est orange et si supérieur à 50 la couleur est verte
if ($coul_etat_stock<=20) { $coul_etat_stock = 'td_fourniture3'; $alt_etat_stock ='Stock faible (- de 20%)';}
if ($coul_etat_stock>21 and $coul_etat_stock<=50) { $coul_etat_stock = 'td_fourniture2'; $alt_etat_stock ='Stock moyen (>20% et <50%)';}
if ($coul_etat_stock>51) { $coul_etat_stock = 'td_fourniture1'; $alt_etat_stock ='Stock bon (> à 50%)';}
} else { $coul_etat_stock = 'td_fourniture'; $alt_etat_stock='Stock';}
// Affichage des fournitures
echo '<tr class="tr_fourniture">';
echo '<td class="td_fourniture" style="text-align:left;">'.ucfirst($sql_result['fourn_nom']).' - <span style="color:#FF0000">'.$sql_result['fourn_cond'].'</span> (<span style="font-weight:bold;">'.$sql_result['fourn_format'].'</span>) '.$sql_result['fourn_nuance'].'</td>';
echo '<td class="'.$coul_etat_stock.'" alt="'.$alt_etat_stock.'" title="'.$alt_etat_stock.'">'.$stock.'</td>';
// Affichage de la somme total des demandes moins le total des livraisons répartie pour chaque fourniture
echo '<td class="td_admin_rubrique2" alt="Total demande" title="Total demande">'.$somme_demandes.'</td>';
// Requête SQL permettant de récupérer les informations de chaque service
$req_services = mysql_query ("
SELECT *
FROM services");
while ($sql_services = mysql_fetch_array($req_services)){
// Requête SQL permettant de calculer la somme des demandes de fourniture repartie par fourniture et par service
$req_sum_dem = mysql_query ("
SELECT SUM(dfourn_quantite) as sum_dem
FROM dem_fournitures
WHERE dem_fournitures.fourn_id=".$sql_result['fourn_id']." AND dem_fournitures.serv_id=".$sql_services['serv_id']."
GROUP BY dem_fournitures.fourn_id, dem_fournitures.serv_id
LIMIT 1");
$sql_sum_dem = mysql_fetch_array($req_sum_dem);
// Requête SQL permettant de calculer la somme des livraisons de fourniture repartie par fourniture et par service
$req_sum_livr = mysql_query ("
SELECT SUM(lfourn_quantite) as sum_livr
FROM livr_fournitures
WHERE livr_fournitures.fourn_id=".$sql_result['fourn_id']." AND livr_fournitures.serv_id=".$sql_services['serv_id']."
GROUP BY livr_fournitures.fourn_id, livr_fournitures.serv_id
LIMIT 1");
$sql_sum_livr = mysql_fetch_array($req_sum_livr);
// Variable égale au nombre réel de fourniture non livré repartie par fourniture et par service (somme total des demandes - somme total des livraisons)
$somme = ($sql_sum_dem['sum_dem']-$sql_sum_livr['sum_livr']);
// Affichage de la somme total des demandes - le total des livraisons répartie par fourniture et par service
echo '<td class="td_fourniture" alt="'.$sql_services['serv_initiale'].'" title="'.$sql_services['serv_initiale'].'">';
// Condition : si la somme est suppérieur à 0 un champ input est affiché avec la valeur de $somme
if ($somme>0) {
echo '<input type="texte" id="fourn'.$sql_result['fourn_id'].'_serv'.$sql_services['serv_id'].'" maxlength="3" style="width: 19px" class="input_affichage" value="'.$somme.'" onkeydown="return numbersOnly(event);" onpaste="return false;"></td>';
} else { echo '</td>'; }
}
echo '<td class="td_admin_rubrique3"><img src="./images/admin_valider.png" align="absmiddle" style="cursor:pointer"; onmouseover="this.src=\'./images/admin_valider_hoover.png\';" onmouseout="this.src=\'./images/admin_valider.png\';" onclick="if($somme<=$stock) then submit(); else alert("pouet");"></td>';
echo '</tr>';
}
}
}
echo '</table>';
?>
<script type="text/javascript">
var base = document.getElementById("table_fournitures").getElementsByTagName('input');
var compteur = base.length;
while(compteur){
compteur--;
base[compteur].onkeyup = function(){compte(this)};
}
</script>
</body>
</html> |
Partager