From 247a718553823131119eae5726e379c554438028 Mon Sep 17 00:00:00 2001
From: Rodolphe Quiedeville
Date: Thu, 13 Nov 2003 17:36:45 +0000
Subject: [PATCH] Nouveaux fichiers
---
htdocs/expedition/commande.php | 341 +++++++++++++
htdocs/expedition/expedition.class.php | 400 ++++++++++++++++
htdocs/expedition/fiche.php | 634 +++++++++++++++++++++++++
htdocs/expedition/index.php | 181 +++++++
htdocs/expedition/liste.php | 159 +++++++
5 files changed, 1715 insertions(+)
create mode 100644 htdocs/expedition/commande.php
create mode 100644 htdocs/expedition/expedition.class.php
create mode 100644 htdocs/expedition/fiche.php
create mode 100644 htdocs/expedition/index.php
create mode 100644 htdocs/expedition/liste.php
diff --git a/htdocs/expedition/commande.php b/htdocs/expedition/commande.php
new file mode 100644
index 00000000000..a1f4357c9a3
--- /dev/null
+++ b/htdocs/expedition/commande.php
@@ -0,0 +1,341 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+require("./pre.inc.php");
+
+$user->getrights('commande');
+$user->getrights('expedition');
+if (!$user->rights->commande->lire)
+ accessforbidden();
+
+require("../project.class.php");
+require("../propal.class.php");
+require("../product/stock/entrepot.class.php");
+/*
+ * Sécurité accés client
+ */
+if ($user->societe_id > 0)
+{
+ $action = '';
+ $socidp = $user->societe_id;
+}
+/*
+ *
+ */
+
+if ($HTTP_POST_VARS["action"] == 'confirm_valid' && $HTTP_POST_VARS["confirm"] == yes && $user->rights->commande->valider)
+{
+ $commande = new Commande($db);
+ $commande->fetch($_GET["id"]);
+ $result = $commande->cloture($user);
+}
+
+llxHeader('','Fiche commande','');
+
+$html = new Form($db);
+
+/* *************************************************************************** */
+/* */
+/* Mode vue et edition */
+/* */
+/* *************************************************************************** */
+
+if ($id > 0)
+{
+ $commande = New Commande($db);
+ if ( $commande->fetch($id) > 0)
+ {
+ $commande->livraison_array();
+
+ $soc = new Societe($db);
+ $soc->fetch($commande->soc_id);
+ $author = new User($db);
+ $author->id = $commande->user_author_id;
+ $author->fetch();
+
+ print_titre("Commande : ".$commande->ref);
+
+ /*
+ * Commande
+ */
+ print '\n";
+
+ /*
+ * Alerte de seuil
+ *
+ */
+ if ($reste_a_livrer_total > 0 && defined("MAIN_MODULE_STOCK"))
+ {
+ print '
';
+ foreach ($reste_a_livrer as $key => $value)
+ {
+ if ($value > 0)
+ {
+ $sql = "SELECT e.label as entrepot, ps.reel, p.label ";
+ $sql .= " FROM llx_entrepot as e, llx_product_stock as ps, llx_product as p";
+ $sql .= " WHERE e.rowid = ps.fk_entrepot AND ps.fk_product = p.rowid AND ps.fk_product = $key";
+ $sql .= " AND reel < $value";
+
+ $result = $db->query($sql);
+ if ($result)
+ {
+ $num = $db->num_rows();
+ $i = 0;
+
+ $var=True;
+ while ($i < $num)
+ {
+ $obja = $db->fetch_object( $i);
+ print "
";
+ print '| '.$obja->label.' | '.$obja->entrepot.' | Stock : '.$obja->reel.' | ';
+ print "
\n";
+ $i++;
+ }
+ $db->free();
+ }
+ }
+ }
+ print "
";
+ }
+ /*
+ *
+ *
+ */
+ if ($user->societe_id == 0)
+ {
+ print '';
+
+ print '| - | ';
+ print '- | ';
+
+ if ($user->rights->expedition->valider && $reste_a_livrer_total == 0)
+ {
+ print 'Clôturer | ';
+ }
+ else
+ {
+ print '- | ';
+ }
+
+ print '- | ';
+ print '- | ';
+ print "
";
+ }
+ /*
+ * Déjà livré
+ *
+ *
+ */
+ $sql = "SELECT cd.fk_product, cd.description, cd.rowid, cd.qty as qty_commande, ed.qty as qty_livre, e.ref, e.rowid as expedition_id";
+ $sql .= " FROM llx_commandedet as cd , llx_expeditiondet as ed, llx_expedition as e";
+ $sql .= " WHERE cd.fk_commande = $id AND cd.rowid = ed.fk_commande_ligne AND ed.fk_expedition = e.rowid";
+ $sql .= " ORDER BY cd.fk_product";
+ $result = $db->query($sql);
+ if ($result)
+ {
+ $num = $db->num_rows();
+ $i = 0; $total = 0;
+
+ if ($num)
+ {
+ print '
';
+ print '
';
+ print '| Description | ';
+ print 'Quan. livrée | ';
+ print 'Expédition | ';
+
+ print "
\n";
+
+ $var=True;
+ while ($i < $num)
+ {
+ $objp = $db->fetch_object( $i);
+ print "";
+ if ($objp->fk_product > 0)
+ {
+ print '| ';
+ print ''.stripslashes(nl2br($objp->description)).' | ';
+ }
+ else
+ {
+ print "".stripslashes(nl2br($objp->description))." | \n";
+ }
+ print ''.$objp->qty_livre.' | ';
+ print ''.$objp->ref.' | ';
+ $i++;
+ }
+
+ print '
';
+ }
+ }
+ }
+ else
+ {
+ /* Commande non trouvée */
+ print "Commande inexistante ou accés refusé";
+ }
+}
+
+
+$db->close();
+
+llxFooter("Dernière modification $Date$ révision $Revision$");
+?>
diff --git a/htdocs/expedition/expedition.class.php b/htdocs/expedition/expedition.class.php
new file mode 100644
index 00000000000..c06aa30d930
--- /dev/null
+++ b/htdocs/expedition/expedition.class.php
@@ -0,0 +1,400 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+
+class Expedition
+{
+ var $db ;
+ var $id ;
+ var $brouillon;
+ var $entrepot_id;
+ /**
+ * Initialisation
+ *
+ */
+ Function Expedition($DB)
+ {
+ $this->db = $DB;
+ $this->lignes = array();
+
+ $this->sources[0] = "Proposition commerciale";
+ $this->sources[1] = "Internet";
+ $this->sources[2] = "Courrier";
+ $this->sources[3] = "Téléphone";
+ $this->sources[4] = "Fax";
+
+ $this->statuts[-1] = "Annulée";
+ $this->statuts[0] = "Brouillon";
+ $this->statuts[1] = "Validée";
+
+ $this->products = array();
+ }
+ /**
+ * Créé
+ *
+ *
+ */
+ Function create($user)
+ {
+ require_once DOL_DOCUMENT_ROOT ."/product/stock/mouvementstock.class.php";
+ $error = 0;
+ /* On positionne en mode brouillon la commande */
+ $this->brouillon = 1;
+
+
+ $this->user = $user;
+ $this->db->begin();
+
+ $sql = "INSERT INTO llx_expedition (date_creation, fk_user_author, date_expedition, fk_commande, fk_entrepot) ";
+ $sql .= " VALUES (now(), $user->id, ".$this->db->idate($this->date_expedition).",$this->commande_id, $this->entrepot_id)";
+
+ if ( $this->db->query($sql) )
+ {
+ $this->id = $this->db->last_insert_id();
+
+ /*
+ *
+ *
+ */
+
+ $sql = "UPDATE llx_expedition SET ref='(PROV".$this->id.")' WHERE rowid=".$this->id;
+ if ($this->db->query($sql))
+ {
+
+ $this->commande = new Commande($this->db);
+ $this->commande->id = $this->commande_id;
+ $this->commande->fetch_lignes();
+
+ /*
+ * Insertion des produits dans la base
+ */
+ for ($i = 0 ; $i < sizeof($this->lignes) ; $i++)
+ {
+ //TODO
+ if (! $this->create_line(0, $this->lignes[$i]->commande_ligne_id, $this->lignes[$i]->qty))
+ {
+ $error++;
+ }
+ }
+ /*
+ *
+ *
+ */
+ $sql = "UPDATE llx_commande SET fk_statut = 2 WHERE rowid=".$this->commande_id;
+ if (! $this->db->query($sql))
+ {
+ $error++;
+ }
+
+
+ if ($error ==0)
+ {
+ $this->db->commit();
+ }
+ else
+ {
+ $this->db->rollback();
+ }
+
+ return $this->id;
+ }
+ else
+ {
+ $error++;
+ return -1;
+ }
+ }
+ else
+ {
+ $error++;
+ print $this->db->error() . '
'.$sql;
+ return 0;
+ }
+ }
+ /**
+ *
+ *
+ */
+ Function create_line($transaction, $commande_ligne_id, $qty)
+ {
+ $error = 0;
+ $mouvS = new MouvementStock($this->db);
+
+ $idprod = 0;
+ $j = 0;
+ while (($j < sizeof($this->commande->lignes)) && idprod == 0)
+ {
+ if ($this->commande->lignes[$j]->id == $commande_ligne_id)
+ {
+ $idprod = $this->commande->lignes[$j]->product_id;
+ }
+ $j++;
+ }
+
+ if (! $mouvS->livraison($this->user, $idprod, $this->entrepot_id, $qty, 0) )
+ {
+ $error++;
+ }
+
+ $sql = "INSERT INTO llx_expeditiondet (fk_expedition, fk_commande_ligne, qty)";
+ $sql .= " VALUES ($this->id,".$commande_ligne_id.",".$qty.")";
+
+ if (! $this->db->query($sql) )
+ {
+ $error++;
+ }
+
+
+ if ($error == 0 )
+ {
+ return 1;
+ }
+
+ }
+ /**
+ *
+ * Lit une commande
+ *
+ */
+ Function fetch ($id)
+ {
+ $sql = "SELECT e.rowid, e.date_creation, e.ref, e.fk_user_author, e.fk_statut, e.fk_commande";
+ $sql .= ", ".$this->db->pdate("e.date_expedition")." as date_expedition ";
+ $sql .= " FROM llx_expedition as e";
+ $sql .= " WHERE e.rowid = $id";
+
+ $result = $this->db->query($sql) ;
+
+ if ( $result )
+ {
+ $obj = $this->db->fetch_object();
+
+ $this->id = $obj->rowid;
+ $this->ref = $obj->ref;
+ $this->statut = $obj->fk_statut;
+ $this->commande_id = $obj->fk_commande;
+ $this->user_author_id = $obj->fk_user_author;
+ $this->date = $obj->date_expedition;
+
+ $this->db->free();
+
+ if ($this->statut == 0)
+ $this->brouillon = 1;
+
+ return 1;
+ }
+ else
+ {
+ print $this->db->error();
+ return -1;
+ }
+ }
+
+ /**
+ * Valide l'expedition
+ *
+ *
+ */
+ Function valid($user)
+ {
+ $result = 0;
+ if ($user->rights->expedition->valider)
+ {
+
+ $sql = "UPDATE llx_expedition SET ref='EXP".$this->id."', fk_statut = 1, date_valid=now(), fk_user_valid=$user->id";
+ $sql .= " WHERE rowid = $this->id AND fk_statut = 0 ;";
+
+ if ($this->db->query($sql) )
+ {
+ $result = 1;
+ }
+ else
+ {
+ $result = -1;
+ print $this->db->error() . ' in ' . $sql;
+ }
+ }
+ return $result ;
+ }
+ /**
+ * Annule la commande
+ *
+ *
+ */
+ Function cancel($user)
+ {
+ if ($user->rights->commande->valider)
+ {
+
+ $sql = "UPDATE llx_commande SET fk_statut = -1";
+ $sql .= " WHERE rowid = $this->id AND fk_statut = 1 ;";
+
+ if ($this->db->query($sql) )
+ {
+ return 1;
+ }
+ else
+ {
+ print $this->db->error() . ' in ' . $sql;
+ }
+ }
+ }
+
+ /**
+ * Ajoute un produit
+ *
+ */
+ Function insert_product_generic($p_desc, $p_price, $p_qty, $p_tva_tx=19.6, $p_product_id=0, $remise_percent=0)
+ {
+ if ($this->statut == 0)
+ {
+ if (strlen(trim($p_qty)) == 0)
+ {
+ $p_qty = 1;
+ }
+
+ $p_price = ereg_replace(",",".",$p_price);
+
+ $price = $p_price;
+ $subprice = $p_price;
+ if ($remise_percent > 0)
+ {
+ $remise = round(($p_price * $remise_percent / 100), 2);
+ $price = $p_price - $remise;
+ }
+
+ $sql = "INSERT INTO llx_commandedet (fk_commande, fk_product, qty, price, tva_tx, description, remise_percent, subprice) VALUES ";
+ $sql .= " (".$this->id.", $p_product_id,". $p_qty.",". $price.",".$p_tva_tx.",'".$p_desc."',$remise_percent, $subprice) ; ";
+
+ if ($this->db->query($sql) )
+ {
+
+ if ($this->update_price() > 0)
+ {
+ return 1;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ else
+ {
+ print $this->db->error();
+ print "
".$sql;
+ return -2;
+ }
+ }
+ }
+ /**
+ * Ajoute une ligne
+ *
+ */
+ Function addline( $id, $qty )
+ {
+ $num = sizeof($this->lignes);
+ $ligne = new ExpeditionLigne();
+
+ $ligne->commande_ligne_id = $id;
+ $ligne->qty = $qty;
+
+ $this->lignes[$num] = $ligne;
+ }
+
+ /**
+ *
+ *
+ */
+ Function delete_line($idligne)
+ {
+ if ($this->statut == 0)
+ {
+ $sql = "DELETE FROM llx_commandedet WHERE rowid = $idligne";
+
+ if ($this->db->query($sql) )
+ {
+ $this->update_price();
+
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+ /**
+ * Supprime la fiche
+ *
+ */
+ Function delete()
+ {
+ $this->db->begin();
+
+ $sql = "DELETE FROM llx_expeditiondet WHERE fk_expedition = $this->id ;";
+ if ( $this->db->query($sql) )
+ {
+ $sql = "DELETE FROM llx_expedition WHERE rowid = $this->id;";
+ if ( $this->db->query($sql) )
+ {
+ $this->db->commit();
+ return 1;
+ }
+ else
+ {
+ $this->db->rollback();
+ return -2;
+ }
+ }
+ else
+ {
+ $this->db->rollback();
+ return -1;
+ }
+ }
+ /**
+ * Class la commande
+ *
+ *
+ */
+ Function classin($cat_id)
+ {
+ $sql = "UPDATE llx_commande SET fk_projet = $cat_id";
+ $sql .= " WHERE rowid = $this->id;";
+
+ if ($this->db->query($sql) )
+ {
+ return 1;
+ }
+ else
+ {
+ print $this->db->error() . ' in ' . $sql;
+ }
+ }
+}
+
+
+class ExpeditionLigne
+{
+
+}
+
+?>
diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php
new file mode 100644
index 00000000000..a4564e481fc
--- /dev/null
+++ b/htdocs/expedition/fiche.php
@@ -0,0 +1,634 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+require("./pre.inc.php");
+
+$user->getrights('commande');
+$user->getrights('expedition');
+if (!$user->rights->expedition->lire)
+ accessforbidden();
+
+require("../project.class.php");
+require("../propal.class.php");
+require("../product/stock/entrepot.class.php");
+
+/*
+ * Sécurité accés client
+ */
+if ($user->societe_id > 0)
+{
+ $action = '';
+ $socidp = $user->societe_id;
+}
+/*
+ *
+ */
+if ($HTTP_POST_VARS["action"] == 'classin')
+{
+ $commande = new Commande($db);
+ $commande->fetch($_GET["id"]);
+ $commande->classin($HTTP_POST_VARS["projetid"]);
+}
+/*
+ *
+ */
+if ($HTTP_POST_VARS["action"] == 'add')
+{
+ $expedition = new Expedition($db);
+
+ $expedition->date_expedition = time();
+ $expedition->note = $HTTP_POST_VARS["note"];
+ $expedition->commande_id = $HTTP_POST_VARS["commande_id"];
+ $expedition->entrepot_id = $HTTP_POST_VARS["entrepot_id"];
+
+ $commande = new Commande($db);
+ $commande->fetch($expedition->commande_id);
+ $commande->fetch_lignes();
+
+ for ($i = 0 ; $i < sizeof($commande->lignes) ; $i++)
+ {
+ $qty = "qtyl".$i;
+ $idl = "idl".$i;
+ if ($HTTP_POST_VARS[$qty] > 0)
+ {
+ $expedition->addline($HTTP_POST_VARS[$idl],$HTTP_POST_VARS[$qty]);
+ }
+ }
+
+ $expedition->create($user);
+
+ $id = $expedition->id;
+
+ $action = '';
+}
+
+/*
+ *
+ */
+
+
+if ($HTTP_POST_VARS["action"] == 'confirm_valid' && $HTTP_POST_VARS["confirm"] == yes && $user->rights->expedition->valider)
+{
+ $expedition = new Expedition($db);
+ $expedition->fetch($_GET["id"]);
+ $result = $expedition->valid($user);
+}
+
+if ($HTTP_POST_VARS["action"] == 'confirm_delete' && $HTTP_POST_VARS["confirm"] == yes)
+{
+ if ($user->rights->expedition->supprimer )
+ {
+ $expedition = new Expedition($db);
+ $expedition->id = $_GET["id"];
+ $expedition->delete();
+ Header("Location: liste.php");
+ }
+}
+
+/*
+ *
+ */
+
+llxHeader('','Fiche expedition','ch-expedition.html',$form_search);
+
+$html = new Form($db);
+
+/*********************************************************************
+ *
+ * Mode creation
+ *
+ *
+ *
+ ************************************************************************/
+if ($HTTP_POST_VARS["action"] == 'create')
+{
+ print_titre("Créer une expédition");
+
+ $commande = new Commande($db);
+ $commande->livraison_array();
+
+ if ( $commande->fetch($HTTP_POST_VARS["commande_id"]))
+ {
+ $soc = new Societe($db);
+ $soc->fetch($commande->soc_id);
+ $author = new User($db);
+ $author->id = $commande->user_author_id;
+ $author->fetch();
+
+ $entrepot = new Entrepot($db);
+ /*
+ * Commande
+ */
+ print '';
+ }
+ else
+ {
+ print $db->error() . "
$sql";;
+ }
+}
+else
+/* *************************************************************************** */
+/* */
+/* Mode vue et edition */
+/* */
+/* *************************************************************************** */
+{
+ if ($id > 0)
+ {
+ $expedition = New Expedition($db);
+ if ( $expedition->fetch($id) > 0)
+ {
+ $author = new User($db);
+ $author->id = $expedition->user_author_id;
+ $author->fetch();
+
+ $commande = New Commande($db);
+ $commande->fetch($expedition->commande_id);
+
+ $soc = new Societe($db);
+ $soc->fetch($commande->soc_id);
+
+ print_titre("Expedition : ".$expedition->ref);
+
+ /*
+ * Confirmation de la suppression
+ *
+ */
+ if ($action == 'delete')
+ {
+ $html->form_confirm("$PHP_SELF?id=$id","Supprimer l'expedition","Etes-vous sûr de vouloir supprimer cette expedition ?","confirm_delete");
+ }
+
+ /*
+ * Confirmation de la validation
+ *
+ */
+ if ($_GET["action"] == 'valid')
+ {
+ $html->form_confirm("$PHP_SELF?id=$id","Valider l'expédition","Etes-vous sûr de vouloir valider cette expédition ?","confirm_valid");
+ }
+ /*
+ * Confirmation de l'annulation
+ *
+ */
+ if ($_GET["action"] == 'annuler')
+ {
+ $html->form_confirm("$PHP_SELF?id=$id","Annuler la commande","Etes-vous sûr de vouloir annuler cette commande ?","confirm_cancel");
+ }
+
+ /*
+ * Commande
+ */
+ if ($commande->brouillon == 1 && $user->rights->commande->creer)
+ {
+ print '
';
+ }
+ /*
+ *
+ *
+ */
+ if ($action == 'presend')
+ {
+ $replytoname = $user->fullname;
+ $from_name = $replytoname;
+
+ $replytomail = $user->email;
+ $from_mail = $replytomail;
+
+ print "";
+ }
+ }
+ else
+ {
+ /* Commande non trouvée */
+ print "Commande inexistante ou accés refusé";
+ }
+ }
+}
+
+$db->close();
+
+llxFooter("Dernière modification $Date$ révision $Revision$");
+?>
diff --git a/htdocs/expedition/index.php b/htdocs/expedition/index.php
new file mode 100644
index 00000000000..f38e6b63127
--- /dev/null
+++ b/htdocs/expedition/index.php
@@ -0,0 +1,181 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+
+require("./pre.inc.php");
+
+llxHeader('','Expéditions','',$form_search);
+
+print_titre("Expeditions");
+
+print '';
+
+print '';
+/*
+ *
+ */
+
+/*
+ * Expeditions à valider
+ */
+$sql = "SELECT e.rowid, e.ref, s.nom, s.idp, c.ref as commande_ref, c.rowid as commande_id FROM llx_expedition as e, llx_societe as s, llx_commande as c";
+$sql .= " WHERE e.fk_commande = c.rowid AND c.fk_soc = s.idp AND e.fk_statut = 0";
+if ($socidp)
+{
+ $sql .= " AND c.fk_soc = $socidp";
+}
+
+print '';
+print '';
+print '| '.translate("Expeditions à valider").' | ';
+
+
+if ( $db->query($sql) )
+{
+ $num = $db->num_rows();
+ if ($num)
+ {
+ $i = 0;
+
+ while ($i < $num)
+ {
+ $var=!$var;
+ $obj = $db->fetch_object($i);
+ print "| rowid\">$obj->ref | ";
+ print ''.$obj->nom.' | ';
+ print ''.$obj->commande_ref.' | ';
+ $i++;
+ }
+ }
+}
+print " ";
+
+/*
+ *
+ */
+print ' | ';
+
+/*
+ * Commandes à traiter
+ */
+$sql = "SELECT c.rowid, c.ref, s.nom, s.idp FROM llx_commande as c, llx_societe as s";
+$sql .= " WHERE c.fk_soc = s.idp AND c.fk_statut = 1";
+if ($socidp)
+{
+ $sql .= " AND c.fk_soc = $socidp";
+}
+
+if ( $db->query($sql) )
+{
+ $num = $db->num_rows();
+ if ($num)
+ {
+ $i = 0;
+ print '';
+ print '';
+ print '| '.translate("Commandes à traiter").' | ';
+
+ while ($i < $num)
+ {
+ $var=!$var;
+ $obj = $db->fetch_object($i);
+ print "| rowid\">$obj->ref | ";
+ print ''.$obj->nom.' | ';
+ $i++;
+ }
+ print " ";
+ }
+}
+
+/*
+ * Commandes à traiter
+ */
+$sql = "SELECT c.rowid, c.ref, s.nom, s.idp FROM llx_commande as c, llx_societe as s";
+$sql .= " WHERE c.fk_soc = s.idp AND c.fk_statut = 2";
+if ($socidp)
+{
+ $sql .= " AND c.fk_soc = $socidp";
+}
+
+if ( $db->query($sql) )
+{
+ $num = $db->num_rows();
+ if ($num)
+ {
+ $i = 0;
+ print '';
+ print '';
+ print '| '.translate("Commandes en traitement").' | ';
+
+ while ($i < $num)
+ {
+ $var=!$var;
+ $obj = $db->fetch_object($i);
+ print "| rowid\">$obj->ref | ";
+ print ''.$obj->nom.' | ';
+ $i++;
+ }
+ print " ";
+ }
+}
+
+
+
+/*
+ * Expeditions à valider
+ */
+$sql = "SELECT e.rowid, e.ref, s.nom, s.idp, c.ref as commande_ref, c.rowid as commande_id FROM llx_expedition as e, llx_societe as s, llx_commande as c";
+$sql .= " WHERE e.fk_commande = c.rowid AND c.fk_soc = s.idp AND e.fk_statut = 1";
+if ($socidp)
+{
+ $sql .= " AND c.fk_soc = $socidp";
+}
+$sql .= " ORDER BY c.rowid DESC";
+$sql .= $db->plimit(5, 0);
+if ( $db->query($sql) )
+{
+ $num = $db->num_rows();
+ if ($num)
+ {
+ $i = 0;
+ print ' ";
+ }
+}
+
+print ' |
';
+
+$db->close();
+
+llxFooter("Dernière modification $Date$ révision $Revision$");
+?>
diff --git a/htdocs/expedition/liste.php b/htdocs/expedition/liste.php
new file mode 100644
index 00000000000..2387834615a
--- /dev/null
+++ b/htdocs/expedition/liste.php
@@ -0,0 +1,159 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ *
+ */
+
+/**
+* Gestion d'une proposition commerciale
+* @package propale
+*/
+
+require("./pre.inc.php");
+
+$user->getrights('expedition');
+if (!$user->rights->expedition->lire)
+ accessforbidden();
+
+/*
+ * Sécurité accés client
+ */
+if ($user->societe_id > 0)
+{
+ $action = '';
+ $socidp = $user->societe_id;
+}
+
+
+
+llxHeader();
+
+/******************************************************************************/
+/* Fin des Actions */
+/******************************************************************************/
+
+/****************************************************************************
+ * *
+ * *
+ * *
+ * *
+ ****************************************************************************/
+
+if ($sortfield == "")
+{
+ $sortfield="e.rowid";
+}
+if ($sortorder == "")
+{
+ $sortorder="DESC";
+}
+
+if ($page == -1) { $page = 0 ; }
+
+$limit = $conf->liste_limit;
+$offset = $limit * $page ;
+$pageprev = $page - 1;
+$pagenext = $page + 1;
+
+$sql = "SELECT e.rowid, e.ref,".$db->pdate("e.date_expedition")." as date_expedition" ;
+$sql .= " FROM llx_expedition as e ";
+$sql_add = " WHERE ";
+if ($socidp)
+{
+ $sql .= $sql_add . " s.idp = $socidp";
+ $sql_add = " AND ";
+}
+
+if (strlen($HTTP_POST_VARS["sf_ref"]) > 0)
+{
+ $sql .= $sql_add . " e.ref like '%".$HTTP_POST_VARS["sf_ref"] . "%'";
+}
+
+$sql .= " ORDER BY $sortfield $sortorder";
+$sql .= $db->plimit($limit + 1,$offset);
+
+if ( $db->query($sql) )
+{
+ $num = $db->num_rows();
+ print_barre_liste("Expeditions", $page, $PHP_SELF,"&socidp=$socidp",$sortfield,$sortorder,'',$num);
+
+
+ $i = 0;
+ print '';
+
+ print '';
+
+ print_liste_field_titre_new ("Réf",$PHP_SELF,"p.ref","","&socidp=$socidp",'width="15%"',$sortfield);
+
+ print_liste_field_titre_new ("Société",$PHP_SELF,"s.nom","","&socidp=$socidp",'width="30%"',$sortfield);
+
+ print_liste_field_titre_new ("Date",$PHP_SELF,"c.date_expedition","","&socidp=$socidp", 'width="25%" align="right" colspan="2"',$sortfield);
+
+ print_liste_field_titre_new ("Statut",$PHP_SELF,"p.fk_statut","","&socidp=$socidp",'width="10%" align="center"',$sortfield);
+ print "
\n";
+ $var=True;
+
+ while ($i < min($num,$limit))
+ {
+ $objp = $db->fetch_object( $i);
+
+ $var=!$var;
+ print "";
+ print "| rowid\">$objp->ref | \n";
+ print "idp\">$objp->nom | \n";
+
+ $now = time();
+ $lim = 3600 * 24 * 15 ;
+
+ if ( ($now - $objp->date_expedition) > $lim && $objp->statutid == 1 )
+ {
+ print " > 15 jours | ";
+ }
+ else
+ {
+ print " | ";
+ }
+
+ print "";
+ $y = strftime("%Y",$objp->date_expedition);
+ $m = strftime("%m",$objp->date_expedition);
+
+ print strftime("%d",$objp->date_expedition)."\n";
+ print " ";
+ print strftime("%B",$objp->date_expedition)."\n";
+ print " ";
+ print strftime("%Y",$objp->date_expedition)." | \n";
+
+ print "$objp->statut | \n";
+ print "
\n";
+
+ $i++;
+ }
+
+ print "
";
+ $db->free();
+ }
+ else
+ {
+ print $db->error();
+ }
+
+$db->close();
+llxFooter("Dernière modification $Date$ révision $Revision$");
+?>