304 lines
7.6 KiB
PHP
304 lines
7.6 KiB
PHP
<?php // TODO: faire les changements apportés avec l'apparition du champ numero de DA
|
|
if (!defined("LIBLDACHAT_INC")){
|
|
define(LIBLDACHAT_INC,1);
|
|
|
|
/*
|
|
* classe qui correspond à une ligne d'achat
|
|
*/
|
|
class LDachat {
|
|
var $famille;
|
|
var $produit;
|
|
var $quantite;
|
|
var $_da_id;
|
|
/*var $date_livr;*/
|
|
|
|
function LDachat($fam, $prod, $qte,$da_id=-1) {
|
|
$this->famille=$fam;
|
|
$this->produit=$prod;
|
|
$this->quantite=$qte;
|
|
$this->_da_id=$da_id;
|
|
}
|
|
} // FIN classe LDacaht
|
|
|
|
class DemandeAchat {
|
|
var $_id_mag;
|
|
var $_ligneAchat;
|
|
var $_ligneIdx;
|
|
var $_numero;
|
|
|
|
function DemandeAchat($id_mag){
|
|
/* initialiser les var */
|
|
$this->_id_mag=$id_mag;
|
|
$this->_ligneAchat=array();
|
|
$this->_ligneIdx=0;
|
|
//$this->_numero=666;
|
|
}
|
|
|
|
function load($id_da){
|
|
// rempli l'objet DA a partir de la base pour l'id id_da
|
|
|
|
$connexion = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASSWD);
|
|
|
|
if(!$connexion) {
|
|
echo "Erreur serveur mysql $connexion";
|
|
}
|
|
|
|
$requete1="SELECT * FROM Ligne_d_achat "
|
|
."WHERE numero_da=".$id_da;
|
|
$result1=mysql_db_query(SQL_BASE, $requete1, $connexion)
|
|
or die(mysql_error($connexion));
|
|
|
|
while($row=mysql_fetch_object($result1)) {
|
|
$prod_ref_in=$row->reference_interne;
|
|
$prod_qte=$row->quantite;
|
|
|
|
|
|
$requete2="SELECT nom_fam FROM Produit_Interne, Famille_de_produit "
|
|
."WHERE Produit_Interne.reference_fam=Famille_de_produit.reference_fam "
|
|
."AND reference_interne='$prod_ref_in'";
|
|
$result2=mysql_db_query(SQL_BASE, $requete2, $connexion)
|
|
or die(mysql_error($connexion));
|
|
|
|
while($row=mysql_fetch_array($result2)) {
|
|
$this->ajouteLDA($row[0],
|
|
$prod_ref_in,
|
|
$prod_qte);
|
|
}
|
|
}
|
|
}
|
|
|
|
function ajouteLDA($famProd,$prodSelect,$quantiteDem,$prodUnit="kg"){
|
|
$lda = new LDachat($famProd, $prodSelect, $quantiteDem);
|
|
$this->_ligneAchat[$this->_ligneIdx]=&$lda;
|
|
$this->_ligneIdx++;
|
|
}
|
|
|
|
function supprimeLDA($Cases_supp){
|
|
// on cherche les lignes selectionnees pour la suppression
|
|
if (is_array($Cases_supp)){
|
|
while( list($case,$val) = each($Cases_supp) ){
|
|
// on supprime les lignes selectionnees
|
|
$idx=preg_replace("/Check_/","",$val);
|
|
unset($this->_ligneAchat[$idx]);
|
|
}
|
|
|
|
// on reindexe les tableaux
|
|
$tmp_tab = array_values($this->_ligneAchat);
|
|
$this->_ligneAchat = $tmp_tab;
|
|
$this->_ligneIdx=count($this->_ligneAchat);
|
|
}
|
|
}
|
|
|
|
function toHTML($editable=0){
|
|
if ($this->_ligneIdx<1){
|
|
$content="";
|
|
} else {
|
|
|
|
for($i=0;$i<$this->_ligneIdx;$i++) {
|
|
$content.="<p class=\"ligne".($i % 2)."\">";
|
|
if ($editable){
|
|
$content.="<input type=\"checkbox\" "
|
|
."id=\"Case_suppr[]\" "
|
|
."name=\"Case_suppr[]\" "
|
|
."value=\"Check_$i\" /> ";
|
|
}
|
|
$content.="<span class=\"DAfamille\">";
|
|
$content.=$this->_ligneAchat[$i]->famille;
|
|
$content.="</span> ";
|
|
$content.="<span class=\"DAproduit\">";
|
|
$content.=$this->_ligneAchat[$i]->produit;
|
|
$content.="</span> ";
|
|
$content.="<span class=\"DAquantite\">";
|
|
$content.=$this->_ligneAchat[$i]->quantite;
|
|
$content.="</span> ";
|
|
$content.="\n";
|
|
$content.="</p>";
|
|
}
|
|
$content.="<br />";
|
|
if ($editable){
|
|
$content.="\n<input type=\"submit\" "
|
|
."name=\"action\" "
|
|
."value=\"Supprimer\" /> ";
|
|
}
|
|
}
|
|
return $content;
|
|
}
|
|
|
|
|
|
/*
|
|
* fonction qui insere la demande d'achat dans la base de donnees
|
|
*/
|
|
function insereBD() {
|
|
/*
|
|
* connexion a la base de donnees
|
|
*/
|
|
$connexion = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASSWD);
|
|
|
|
if (!$connexion) {
|
|
echo "Erreur serveur mysql $connexion";
|
|
}
|
|
|
|
/*
|
|
* insertion dans la base de donnees
|
|
*/
|
|
do{
|
|
$requete="SELECT max(numero_da) AS newId FROM Demande_d_achat";
|
|
$resultat=mysql_db_query(SQL_BASE,$requete,$connexion)
|
|
or die(mysql_error($connexion));
|
|
$row=mysql_fetch_object($resultat);
|
|
$id_DA=$row->newId;
|
|
if ($id_DA!= "NULL"){
|
|
$id_DA+=1;
|
|
} else {
|
|
$id_DA=1;
|
|
}
|
|
|
|
//TODO: remplacer la date bidon par une vraie
|
|
$date = date("Y")."-".date("m")."-".date("d");
|
|
$requete="INSERT INTO Demande_d_achat (numero_da, date, id_magasinier) "
|
|
."VALUES ('', '$date','".$this->_id_mag."')";
|
|
$resultat=mysql_db_query(SQL_BASE,$requete,$connexion);
|
|
$numeroDA=mysql_insert_id();
|
|
} while (!$resultat);
|
|
// insertion des lignes d'achat
|
|
for($i=0; $i<$this->_ligneIdx; $i++) {
|
|
$id_LDA=-1;
|
|
$requete=0;
|
|
$resultat=0;
|
|
do{
|
|
$requete="SELECT max(numero_lda) AS newId from Ligne_d_achat";
|
|
$resultat=mysql_db_query(SQL_BASE,$requete,$connexion)
|
|
or die(mysql_error($connexion));
|
|
$row=mysql_fetch_object($resultat);
|
|
$id_LDA=$row->newId;
|
|
if ($id_LDA!= "NULL"){
|
|
$id_LDA+=1;
|
|
} else {
|
|
$id_LDA=1;
|
|
}
|
|
|
|
$requete="INSERT INTO Ligne_d_achat (numero_lda, "
|
|
."numero_da, "
|
|
."reference_interne, "
|
|
."quantite) "
|
|
."VALUES ('$id_LDA', '$numeroDA', "
|
|
."'".$this->_ligneAchat[$i]->produit."', "
|
|
."'".$this->_ligneAchat[$i]->quantite."');";
|
|
$resultat=mysql_db_query(SQL_BASE,$requete,$connexion);
|
|
} while(!$resultat);
|
|
//TODO: corriger date
|
|
$date = date("Y")."-".date("m")."-".date("d");
|
|
$requete="INSERT INTO Etats_LA "
|
|
."(date,Libelle,numero_lda,quantite_recue) "
|
|
."VALUES "
|
|
."('$date','CREE','$id_LDA','0')";
|
|
$resultat=mysql_db_query(SQL_BASE,$requete,$connexion)
|
|
or die(mysql_error($connexion));
|
|
} // next lda
|
|
}
|
|
|
|
}// END Class DemandeAchat
|
|
|
|
|
|
/*
|
|
* fonctions pour creer les menus deroulant
|
|
*/
|
|
function menu_deroulant_familleProd ($famille) {
|
|
echo "<option value=\"$famille\">$famille</option>\n";
|
|
}
|
|
|
|
function menu_deroulant_Produits ($ref_int, $designation) {
|
|
$ref_des = "".$ref_int." : ".$designation;
|
|
echo "<option value=\"$ref_int\">$ref_des</option>\n";
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
* fonction qui donne les familles de produits
|
|
*/
|
|
function donne_familles() {
|
|
/*
|
|
* Connexion a la base de donnees
|
|
*/
|
|
|
|
require("db.conf.php");
|
|
$connexion = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASSWD);
|
|
|
|
/*
|
|
* Requete et resultat
|
|
*/
|
|
$familles = array();
|
|
$requete="SELECT nom_fam FROM Famille_de_produit";
|
|
$resultat=mysql_db_query(SQL_BASE,$requete,$connexion)
|
|
or die($requete.":".mysql_error($connexion));
|
|
|
|
while ($ligneTab= mysql_fetch_array($resultat)) {
|
|
$familles[] = $ligneTab[0];
|
|
}
|
|
|
|
return $familles;
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
* fonction qui cherche les produits en fonctions de la famille selectionnée
|
|
*/
|
|
function trouve_produits($ref_famille) {
|
|
|
|
require("db.conf.php");
|
|
$connexion = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASSWD);
|
|
|
|
if (!$connexion) {
|
|
echo "Erreur serveur mysql $connexion";
|
|
}
|
|
|
|
/* on cherche les produits associes */
|
|
$produits = array();
|
|
$requetePROD="SELECT reference_interne, ".
|
|
"designation ".
|
|
"FROM Produit_Interne ".
|
|
"WHERE reference_fam=".$ref_famille;
|
|
$resultatPROD=mysql_db_query(SQL_BASE,$requetePROD,$connexion)
|
|
or die($requetePROD.":".mysql_error($connexion));
|
|
|
|
while ($lignePROD = mysql_fetch_array($resultatPROD)) {
|
|
$produits[] = $lignePROD[0];
|
|
$produits[] = $lignePROD[1];
|
|
}
|
|
|
|
return $produits;
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
* fonction permettant de convertir du php en javascript
|
|
*/
|
|
function convertToJS($var) {
|
|
if (is_array($var)) {
|
|
$res = "[";
|
|
$array = array();
|
|
foreach ($var as $a_var) {
|
|
$array[] = convertToJS($a_var);
|
|
}
|
|
return "(" . join(",", $array) . ")";
|
|
}
|
|
elseif (is_bool($var)) {
|
|
return $var ? "true" : "false";
|
|
}
|
|
elseif (is_int($var) || is_integer($var) || is_double($var) || is_float($var)) {
|
|
return $var;
|
|
}
|
|
elseif (is_string($var)) {
|
|
return "'" . addslashes(stripslashes($var)) . "'";
|
|
}
|
|
// autres cas: objets, on ne les gère pas
|
|
return FALSE;
|
|
}
|
|
|
|
} // defined LIBLDACHAT_INC
|
|
|
|
?>
|