Example #1
0
function update_dev()
{
    global $id_bibli, $id_dev, $num_dev, $statut;
    global $id_fou;
    global $id_adr_liv, $id_adr_fac;
    global $comment, $comment_i, $ref, $devise;
    global $code, $lib, $qte, $prix, $typ, $tva, $rem, $id_sug, $id_lig, $typ_lig, $id_prod;
    global $acquisition_gestion_tva;
    //Recuperation des lignes valides
    $tab_lig = array();
    if (count($id_lig)) {
        foreach ($id_lig as $k => $v) {
            $code[$k] = trim($code[$k]);
            $lib[$k] = trim($lib[$k]);
            if ($code[$k] != '' || $lib[$k] != '') {
                $tab_lig[$k] = $v;
            }
        }
    }
    if (!$id_dev) {
        //Creation de devis
        $dev = new actes();
        $dev->type_acte = TYP_ACT_DEV;
        $dev->num_entite = $id_bibli;
        /*$num_dev=trim($num_dev);
        		if ($num_dev!='') {
        			$dev->numero=$num_dev;
        		} else {
        			$dev->calc();
        		}*/
        $dev->statut = STA_ACT_ENC;
        $dev->num_fournisseur = $id_fou;
        $dev->num_contact_livr = $id_adr_liv;
        $dev->num_contact_fact = $id_adr_fac;
        $dev->commentaires = trim($comment);
        $dev->commentaires_i = trim($comment_i);
        $dev->reference = trim($ref);
        $dev->devise = trim($devise);
        $dev->save();
        $id_dev = $dev->id_acte;
        //Creation des lignes de devis
        foreach ($tab_lig as $k => $v) {
            $lig_dev = new lignes_actes();
            $lig_dev->type_ligne = $typ_lig[$k];
            $lig_dev->num_acte = $id_dev;
            $lig_dev->num_produit = $id_prod[$k];
            $lig_dev->num_acquisition = $id_sug[$k];
            $lig_dev->num_type = $typ[$k];
            $lig_dev->code = $code[$k];
            $lig_dev->libelle = $lib[$k];
            $lig_dev->prix = $prix[$k];
            if ($acquisition_gestion_tva) {
                $lig_dev->tva = $tva[$k];
            } else {
                $lig_dev->tva = '0.00';
            }
            $lig_dev->remise = $rem[$k];
            $lig_dev->nb = round($qte[$k]);
            $lig_dev->date_cre = today();
            $lig_dev->save();
        }
        //Mise à jour du statut des suggestions et envoi email suivi de suggestion
        $sug_map = new suggestions_map();
        $sug_map->doTransition('ESTIMATED', $id_sug);
    } else {
        //Modification de devis
        $dev = new actes($id_dev);
        /*$num_dev=trim($num_dev);
        		if ($num_dev!='') {
        			$dev->numero=$num_dev;
        		} else {
        			$dev->numero=addslashes($dev->numero);
        		}*/
        $old_statut = $dev->statut & ~STA_ACT_ARC;
        if ($old_statut != STA_ACT_ENC && $old_statut != STA_ACT_REC) {
            $old_statut = STA_ACT_ENC;
        }
        if ($statut == STA_ACT_ARC) {
            $rec_statut = $old_statut | STA_ACT_ARC;
        } else {
            $rec_statut = $statut;
        }
        $dev->statut = $rec_statut;
        $dev->num_fournisseur = $id_fou;
        $dev->num_contact_livr = $id_adr_liv;
        $dev->num_contact_fact = $id_adr_fac;
        $dev->commentaires = trim($comment);
        $dev->commentaires_i = trim($comment_i);
        $dev->reference = trim($ref);
        $dev->devise = trim($devise);
        $dev->save();
        //maj des lignes de devis
        foreach ($tab_lig as $k => $v) {
            $lig_dev = new lignes_actes($v);
            $lig_dev->type_ligne = $typ_lig[$k];
            $lig_dev->num_acte = $id_dev;
            $lig_dev->num_produit = $id_prod[$k];
            $lig_dev->num_acquisition = $id_sug[$k];
            $lig_dev->num_type = $typ[$k];
            $lig_dev->code = $code[$k];
            $lig_dev->libelle = $lib[$k];
            $lig_dev->prix = $prix[$k];
            if ($acquisition_gestion_tva) {
                $lig_dev->tva = $tva[$k];
            } else {
                $lig_dev->tva = '0.00';
            }
            $lig_dev->remise = $rem[$k];
            $lig_dev->nb = round($qte[$k]);
            $lig_dev->date_cre = today();
            $lig_dev->save();
            if ($v == 0) {
                $tab_lig[$k] = $lig_dev->id_ligne;
            }
        }
        //suppression des lignes non reprises
        $dev->cleanLignes($id_dev, $tab_lig);
    }
}
Example #2
0
if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) {
    die("no access");
}
//URL de retour du form de création/modification de suggestion
$back_url = "onClick=\"document.location='./acquisition.php?categ=sug&action=list'\"";
require_once $base_path . '/acquisition/suggestions/func_suggestions.inc.php';
require_once $class_path . '/suggestions_map.class.php';
if ($acquisition_sugg_display) {
    require_once $acquisition_sugg_display;
} else {
    require_once 'suggestions_display.inc.php';
}
$sug_map = new suggestions_map();
//Traitement des transitions
if ($transition) {
    $sug_map->doTransition($transition, $chk);
    if ($sug_map->getState_DISPLAY($transition) != 'NO') {
        $statut = $sug_map->getState_ID($transition);
    } else {
        $statut = -1;
    }
}
//Traitement des changements de categories
if ($acquisition_sugg_categ == '1' && $action == 'to_categ') {
    $sug_map->changeCateg($chk, $to_categ);
}
//Traitement des actions
print "<h1>" . htmlentities($msg['acquisition_sug_ges'], ENT_QUOTES, $charset) . "</h1>";
switch ($action) {
    case 'list':
        if ($sug_map->has_unimarc) {
Example #3
0
function update_sug()
{
    global $id_sug, $sel_sugstat;
    //Mise à jour de la suggestion
    $sug = array();
    $sug[0] = new suggestions($id_sug);
    $sug_map = new suggestions_map();
    $sug_map->doTransition($sug_map->getStateNameFromId($sel_sugstat), $sug[0], TRUE);
}
Example #4
0
function update_cde()
{
    global $id_bibli, $id_exer, $id_cde, $num_cde, $nom_acte, $id_dev, $statut;
    global $id_fou;
    global $id_adr_liv, $id_adr_fac;
    global $comment, $comment_i, $ref, $date_pay, $num_pay, $date_liv, $devise;
    global $code, $lib, $qte, $prix, $typ, $tva, $rem, $rub, $id_sug, $id_lig, $typ_lig, $id_prod;
    global $acquisition_gestion_tva;
    global $action;
    global $force_debit;
    global $lg_statut, $comment_lg, $comment_lo;
    if (!$id_cde) {
        //Creation de commande
        $cde = new actes();
        $cde->type_acte = TYP_ACT_CDE;
        $cde->num_entite = $id_bibli;
        $cde->num_exercice = $id_exer;
        /*$num_cde=trim($num_cde);
        		if ($num_cde!='') {
        			$cde->numero=$num_cde;
        		} else {
        			$cde->calc();
        		}*/
        $cde->nom_acte = trim($nom_acte);
        if ($action == 'valid') {
            $cde->statut = STA_ACT_ENC;
        } else {
            $cde->statut = STA_ACT_AVA;
        }
        $cde->num_fournisseur = $id_fou;
        $cde->num_contact_livr = $id_adr_liv;
        $cde->num_contact_fact = $id_adr_fac;
        $cde->commentaires = trim($comment);
        $cde->commentaires_i = trim($comment_i);
        $cde->reference = trim($ref);
        $cde->date_paiement = $date_pay;
        $cde->num_paiement = trim($num_pay);
        $cde->date_ech = $date_liv;
        $cde->devise = trim($devise);
        $cde->save();
        $id_cde = $cde->id_acte;
        //creation des liens entre actes
        if ($id_dev) {
            $la = new liens_actes($id_dev, $id_cde);
        }
        //Recuperation des lignes valides
        $tab_lig = array();
        if (count($id_lig)) {
            foreach ($id_lig as $k => $v) {
                $code[$k] = trim($code[$k]);
                $lib[$k] = trim($lib[$k]);
                $comment_lg[$k] = trim($comment_lg[$k]);
                $comment_lo[$k] = trim($comment_lo[$k]);
                if ($code[$k] != '' || $lib[$k] != '') {
                    $tab_lig[$k] = $v;
                }
            }
        }
        //creation des lignes de commande
        foreach ($tab_lig as $k => $v) {
            $lig_cde = new lignes_actes();
            $lig_cde->type_ligne = $typ_lig[$k];
            $lig_cde->num_acte = $id_cde;
            $lig_cde->num_rubrique = $rub[$k];
            $lig_cde->num_produit = $id_prod[$k];
            $lig_cde->num_acquisition = $id_sug[$k];
            $lig_cde->num_type = $typ[$k];
            $lig_cde->code = trim($code[$k]);
            $lig_cde->libelle = trim($lib[$k]);
            $lig_cde->prix = $prix[$k];
            if ($acquisition_gestion_tva) {
                $lig_cde->tva = $tva[$k];
            } else {
                $lig_cde->tva = '0.00';
            }
            $lig_cde->debit_tva = $force_debit[$k];
            $lig_cde->remise = $rem[$k];
            $lig_cde->nb = round($qte[$k]);
            $lig_cde->date_ech = $date_liv;
            $lig_cde->date_cre = today();
            $lig_cde->statut = $lg_statut[$k];
            $lig_cde->commentaires_gestion = $comment_lg[$k];
            $lig_cde->commentaires_opac = $comment_lo[$k];
            $lig_cde->save();
        }
        //Mise à jour du statut des suggestions et envoi email suivi de suggestion
        $sug_map = new suggestions_map();
        $sug_map->doTransition('ORDERED', $id_sug);
    } else {
        //modification de commande
        $cde = new actes($id_cde);
        $old_statut = $statut;
        if ($old_statut != STA_ACT_ENC) {
            //Commande a valider
            /*$num_cde=trim($num_cde);
            		if ($num_cde!='') {
            			$cde->numero=$num_cde;
            		} else {
            			$cde->numero=addslashes($cde->numero);
            		}*/
            $cde->nom_acte = trim($nom_acte);
            if ($action == 'valid') {
                $cde->date_valid = date("Y-m-d");
                $cde->statut = STA_ACT_ENC;
                //Statut commande = A valider->en cours
            }
            $cde->num_fournisseur = $id_fou;
            $cde->num_contact_livr = $id_adr_liv;
            $cde->num_contact_fact = $id_adr_fac;
            $cde->commentaires = trim($comment);
            $cde->commentaires_i = trim($comment_i);
            $cde->reference = trim($ref);
            $cde->date_paiement = $date_pay;
            $cde->num_paiement = trim($num_pay);
            $cde->date_ech = $date_liv;
            $cde->devise = trim($devise);
            $cde->save();
            //Recuperation des lignes valides
            $tab_lig = array();
            if (count($id_lig)) {
                foreach ($id_lig as $k => $v) {
                    $code[$k] = trim($code[$k]);
                    $lib[$k] = trim($lib[$k]);
                    $comment_lg[$k] = trim($comment_lg[$k]);
                    $comment_lo[$k] = trim($comment_lo[$k]);
                    if ($code[$k] != '' || $lib[$k] != '') {
                        $tab_lig[$k] = $v;
                    }
                }
            }
            //maj des lignes de commande
            foreach ($tab_lig as $k => $v) {
                $lig_cde = new lignes_actes($v);
                $lig_cde->type_ligne = $typ_lig[$k];
                $lig_cde->num_acte = $id_cde;
                $lig_cde->num_rubrique = $rub[$k];
                $lig_cde->num_produit = $id_prod[$k];
                $lig_cde->num_acquisition = $id_sug[$k];
                $lig_cde->num_type = $typ[$k];
                $lig_cde->code = trim($code[$k]);
                $lig_cde->libelle = trim($lib[$k]);
                $lig_cde->prix = $prix[$k];
                if ($acquisition_gestion_tva) {
                    $lig_cde->tva = $tva[$k];
                } else {
                    $lig_cde->tva = '0.00';
                }
                $lig_cde->debit_tva = $force_debit[$k];
                $lig_cde->remise = $rem[$k];
                $lig_cde->nb = round($qte[$k]);
                $lig_cde->date_ech = $date_liv;
                $lig_cde->date_cre = today();
                $lig_cde->statut = $lg_statut[$k];
                $lig_cde->commentaires_gestion = $comment_lg[$k];
                $lig_cde->commentaires_opac = $comment_lo[$k];
                $lig_cde->save();
                if ($v == 0) {
                    $tab_lig[$k] = $lig_cde->id_ligne;
                }
            }
            //suppression des lignes non reprises
            $cde->cleanLignes($id_cde, $tab_lig);
        } else {
            //Commande validee
            $cde->numero = addslashes($cde->numero);
            $cde->commentaires = trim($comment);
            $cde->commentaires_i = addslashes($cde->commentaires_i);
            $cde->reference = trim($ref);
            $cde->date_paiement = $date_pay;
            $cde->num_paiement = trim($num_pay);
            $cde->devise = addslashes($cde->devise);
            $cde->save();
            //Recuperation des lignes
            $tab_lig = array();
            if (count($id_lig)) {
                foreach ($id_lig as $k => $v) {
                    $comment_lg[$k] = trim($comment_lg[$k]);
                    $comment_lo[$k] = trim($comment_lo[$k]);
                    $tab_lig[$k] = $v;
                }
            }
            //maj des lignes de commande
            foreach ($tab_lig as $k => $v) {
                $lig_cde = new lignes_actes($v);
                $lig_cde->code = addslashes($lig_cde->code);
                $lig_cde->libelle = addslashes($lig_cde->libelle);
                $lig_cde->statut = $lg_statut[$k];
                $lig_cde->commentaires_gestion = $comment_lg[$k];
                $lig_cde->commentaires_opac = $comment_lo[$k];
                $lig_cde->save();
            }
        }
    }
}
Example #5
0
function update_liv()
{
    global $id_bibli, $id_cde, $id_liv, $comment, $ref;
    global $max_lig, $max_lig_liv, $id_lig, $id_prod, $code, $rec;
    global $acquisition_email_sugg;
    $tab_liv = array();
    //Tableau des lignes livrées
    //Les lignes restant à livrer sont reprises dans la tableau si la qté reçue est >0
    for ($i = 1; $i <= $max_lig; $i++) {
        if ($rec[$i]) {
            $tab_liv[$i]['id_lig'] = $id_lig[$i];
            $tab_liv[$i]['rec'] = $rec[$i];
        }
    }
    //Les quantités recues des lignes déjà livrées sont reportées dans le tableau si l'identifiant de ligne existe
    //Sinon une nouvelle ligne est créée
    for ($i; $i <= $max_lig + $max_lig_liv; $i++) {
        $deja = false;
        for ($j = 1; $j <= $max_lig; $j++) {
            //Y a-t'il une ligne deja créée
            if ($tab_liv[$j]['id_lig'] == $id_lig[$i]) {
                //Si oui, on rajoute la quantité reçue dans le tableau
                $tab_liv[$j]['rec'] = $tab_liv[$j]['rec'] + $rec[$i];
                $deja = true;
                break;
            }
        }
        if (!$deja) {
            //Sinon, on crée la ligne dans le tableau
            $tab_liv[$i]['id_lig'] = $id_lig[$i];
            $tab_liv[$i]['rec'] = $rec[$i];
        }
    }
    //Récupération de la commande
    $cde = new actes($id_cde);
    if (!$id_liv) {
        //Création du bon de livraison
        $liv = new actes();
        $liv->date_acte = today();
        $liv->type_acte = '2';
        $liv->statut = '4';
        //Statut BL = recu
        $liv->num_entite = $cde->num_entite;
        $liv->num_fournisseur = $cde->num_fournisseur;
        $liv->num_contact_livr = $cde->num_contact_livr;
        $liv->num_contact_fact = $cde->num_contact_fact;
        $liv->num_exercice = $cde->num_exercice;
        $liv->commentaires = $comment;
        $liv->reference = $ref;
        $liv->calc();
        $liv->save();
        $id_liv = $liv->id_acte;
        //création des liens entre actes
        $la = new liens_actes($id_cde, $id_liv);
    } else {
        //Modification du bon de livraison
        $liv = new actes($id_liv);
        $liv->numero = addslashes($liv->numero);
        $liv->commentaires = trim($comment);
        $liv->reference = trim($ref);
        $liv->save();
    }
    //Suppression des lignes de livraisons précédemment enregistrées
    actes::deleteLignes($id_liv);
    $sug_map = new suggestions_map();
    //Création des lignes de livraison
    foreach ($tab_liv as $key => $value) {
        $lig_cde = new lignes_actes($tab_liv[$key]['id_lig']);
        $lig_liv = new lignes_actes();
        $lig_liv->num_acte = $liv->id_acte;
        $lig_liv->lig_ref = $lig_cde->id_ligne;
        $lig_liv->num_acquisition = $lig_cde->num_acquisition;
        $lig_liv->num_rubrique = $lig_cde->num_rubrique;
        $lig_liv->num_produit = $lig_cde->num_produit;
        $lig_liv->num_type = $lig_cde->num_type;
        $lig_liv->libelle = addslashes($lig_cde->libelle);
        $lig_liv->code = addslashes($lig_cde->code);
        $lig_liv->prix = $lig_cde->prix;
        $lig_liv->tva = $lig_cde->tva;
        $lig_liv->remise = $lig_cde->remise;
        $lig_liv->nb = $tab_liv[$key]['rec'];
        $lig_liv->date_cre = today();
        $lig_liv->save();
        if ($lig_cde->num_acquisition != 0) {
            $sug = array();
            $sug[] = $lig_cde->num_acquisition;
            $sug_map->doTransition('RECEIVED', $sug);
        }
    }
    //La commande est-elle soldée
    $tab_cde = actes::getLignes($id_cde);
    $solde = true;
    while ($row_cde = mysql_fetch_object($tab_cde)) {
        if ($row_cde->type_ligne == 3) {
            // Frais, non livrables
        } else {
            $tab_liv = lignes_actes::getLivraisons($row_cde->id_ligne);
            $nb_liv = 0;
            while ($row_liv = mysql_fetch_object($tab_liv)) {
                $nb_liv = $nb_liv + $row_liv->nb;
            }
            if ($row_cde->nb > $nb_liv) {
                $solde = false;
                break;
            }
        }
    }
    if ($solde) {
        $cde->statut = $cde->statut & ~2 | 4;
        // Cde soldée >> Statut commande = en cours->soldé
    }
    $cde->update_statut();
}