diff --git a/htdocs/comm/addpropal.php b/htdocs/comm/addpropal.php index 40452a4bab6..5652bf0e589 100644 --- a/htdocs/comm/addpropal.php +++ b/htdocs/comm/addpropal.php @@ -216,7 +216,7 @@ if ($_GET["action"] == 'create') for ($i = 1 ; $i <= PROPALE_NEW_FORM_NB_PRODUCT ; $i++) { print ''; - $html->select_produits("idprod".$id); + $html->select_produits('',"idprod".$i); print ''; print ''; print ' %'; diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index 6aa8f863637..751ce7de019 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -1,534 +1,534 @@ - - * Copyright (C) 2004-2005 Laurent Destailleur - * - * 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$ - * - */ - -/** - \file htdocs/commande/fiche.php - \ingroup commande - \brief Fiche commande - \version $Revision$ -*/ - -require("./pre.inc.php"); - -$langs->load("orders"); -$langs->load("sendings"); -$langs->load("companies"); -$langs->load("bills"); -$langs->load("propal"); - -$user->getrights('commande'); -$user->getrights('expedition'); - -if (!$user->rights->commande->lire) accessforbidden(); - -require_once(DOL_DOCUMENT_ROOT."/project.class.php"); -require_once(DOL_DOCUMENT_ROOT."/propal.class.php"); -require_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php"); - -// Sécurité accés client -if ($user->societe_id > 0) -{ - $action = ''; - $socidp = $user->societe_id; -} - - -/* - * Actions - */ -if ($_POST["action"] == 'classin' && $user->rights->commande->creer) -{ - $commande = new Commande($db); - $commande->fetch($_GET["id"]); - $commande->classin($_POST["projetid"]); -} -/* - * - */ -if ($_POST["action"] == 'add' && $user->rights->commande->creer) -{ - $datecommande = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); - - $commande = new Commande($db); - - $commande->soc_id = $_POST["soc_id"]; - $commande->date_commande = $datecommande; - $commande->note = $_POST["note"]; - $commande->source = $_POST["source_id"]; - $commande->projetid = $_POST["projetid"]; - $commande->remise_percent = $_POST["remise_percent"]; - - $commande->add_product($_POST["idprod1"],$_POST["qty1"],$_POST["remise_percent1"]); - $commande->add_product($_POST["idprod2"],$_POST["qty2"],$_POST["remise_percent2"]); - $commande->add_product($_POST["idprod3"],$_POST["qty3"],$_POST["remise_percent3"]); - $commande->add_product($_POST["idprod4"],$_POST["qty4"],$_POST["remise_percent4"]); - - $commande_id = $commande->create($user); - - $_GET["id"] = $commande->id; - - $action = ''; -} - -/* - * - */ - -if ($_POST["action"] == 'setremise' && $user->rights->commande->creer) -{ - $commande = new Commande($db); - $commande->fetch($_GET["id"]); - - $commande->set_remise($user, $_POST["remise"]); -} - -if ($_POST["action"] == 'setnote' && $user->rights->commande->creer) -{ - $commande = new Commande($db); - $commande->fetch($_GET['id']); - $commande->set_note($user, $_POST['note']); -} - -if ($_POST["action"] == 'addligne' && $user->rights->commande->creer) -{ + + * Copyright (C) 2004-2005 Laurent Destailleur + * + * 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$ + * + */ + +/** + \file htdocs/commande/fiche.php + \ingroup commande + \brief Fiche commande + \version $Revision$ +*/ + +require("./pre.inc.php"); + +$langs->load("orders"); +$langs->load("sendings"); +$langs->load("companies"); +$langs->load("bills"); +$langs->load("propal"); + +$user->getrights('commande'); +$user->getrights('expedition'); + +if (!$user->rights->commande->lire) accessforbidden(); + +require_once(DOL_DOCUMENT_ROOT."/project.class.php"); +require_once(DOL_DOCUMENT_ROOT."/propal.class.php"); +require_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php"); + +// Sécurité accés client +if ($user->societe_id > 0) +{ + $action = ''; + $socidp = $user->societe_id; +} + + +/* + * Actions + */ +if ($_POST["action"] == 'classin' && $user->rights->commande->creer) +{ + $commande = new Commande($db); + $commande->fetch($_GET["id"]); + $commande->classin($_POST["projetid"]); +} +/* + * + */ +if ($_POST["action"] == 'add' && $user->rights->commande->creer) +{ + $datecommande = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); + + $commande = new Commande($db); + + $commande->soc_id = $_POST["soc_id"]; + $commande->date_commande = $datecommande; + $commande->note = $_POST["note"]; + $commande->source = $_POST["source_id"]; + $commande->projetid = $_POST["projetid"]; + $commande->remise_percent = $_POST["remise_percent"]; + + $commande->add_product($_POST["idprod1"],$_POST["qty1"],$_POST["remise_percent1"]); + $commande->add_product($_POST["idprod2"],$_POST["qty2"],$_POST["remise_percent2"]); + $commande->add_product($_POST["idprod3"],$_POST["qty3"],$_POST["remise_percent3"]); + $commande->add_product($_POST["idprod4"],$_POST["qty4"],$_POST["remise_percent4"]); + + $commande_id = $commande->create($user); + + $_GET["id"] = $commande->id; + + $action = ''; +} + +/* + * + */ + +if ($_POST["action"] == 'setremise' && $user->rights->commande->creer) +{ + $commande = new Commande($db); + $commande->fetch($_GET["id"]); + + $commande->set_remise($user, $_POST["remise"]); +} + +if ($_POST["action"] == 'setnote' && $user->rights->commande->creer) +{ + $commande = new Commande($db); + $commande->fetch($_GET['id']); + $commande->set_note($user, $_POST['note']); +} + +if ($_POST["action"] == 'addligne' && $user->rights->commande->creer) +{ /* * Ajout d'une ligne produit dans la commande */ - $commande = new Commande($db); - $ret=$commande->fetch($_POST["id"]); - - if (isset($_POST["p_idprod"])) - { - $result = $commande->addline( - $_POST["np_desc"], - $_POST["pu"], - $_POST["pqty"], - $_POST["tva_tx"], - $_POST["p_idprod"], - $_POST["premise"]); - } - else - { - $result = $commande->addline( - $_POST["desc"], - $_POST["pu"], - $_POST["qty"], - $_POST["tva_tx"], - 0, - $_POST["remise_percent"]); - } - -} - -if ($_POST["action"] == 'updateligne' && $user->rights->commande->creer) -{ - $commande = new Commande($db,"",$_GET["id"]); - if ($commande->fetch($_GET["id"]) ) - { - $result = $commande->update_line($_POST["elrowid"], - $_POST["eldesc"], - $_POST["elprice"], - $_POST["elqty"], - $_POST["elremise_percent"]); - } - else - { - print "Erreur"; - } -} - -if ($_GET["action"] == 'deleteline' && $user->rights->commande->creer) -{ - $commande = new Commande($db); - $commande->fetch($_GET["id"]); - $result = $commande->delete_line($_GET["lineid"]); - Header("Location: fiche.php?id=".$_GET["id"]); -} - -if ($_POST["action"] == 'confirm_valid' && $_POST["confirm"] == 'yes' && $user->rights->commande->valider) -{ - $commande = new Commande($db); - $commande->fetch($_GET["id"]); - $soc = new Societe($db); - $soc->fetch($commande->soc_id); - $result = $commande->valid($user); -} - -if ($_POST["action"] == 'confirm_close' && $_POST["confirm"] == 'yes' && $user->rights->commande->creer) -{ - $commande = new Commande($db); - $commande->fetch($_GET["id"]); - $result = $commande->cloture($user); -} - -if ($_POST["action"] == 'confirm_cancel' && $_POST["confirm"] == 'yes' && $user->rights->commande->valider) -{ - $commande = new Commande($db); - $commande->fetch($_GET["id"]); - $result = $commande->cancel($user); -} - -if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') -{ - if ($user->rights->commande->supprimer ) - { - $commande = new Commande($db); - $commande->id = $_GET["id"]; - $commande->delete(); - Header("Location: index.php"); - } -} - -if ($_GET["action"] == 'pdf') -{ - /* - * Generation de la commande - * définit dans /includes/modules/commande/modules_commande.php - */ - commande_pdf_create($db, $_GET["id"]); -} - - -llxHeader('',$langs->trans("OrderCard"),"Commande"); - - - -$html = new Form($db); - -/********************************************************************* - * - * Mode creation - * - *********************************************************************/ -if ($_GET["action"] == 'create' && $user->rights->commande->creer) -{ - print_titre($langs->trans("CreateOrder")); - - $new_commande = new Commande($db); - - if ($propalid) - { - $sql = "SELECT s.nom, s.prefix_comm, s.idp, p.price, p.remise, p.remise_percent, p.tva, p.total, p.ref, ".$db->pdate("p.datep")." as dp, c.id as statut, c.label as lst"; - $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."c_propalst as c"; - $sql .= " WHERE p.fk_soc = s.idp AND p.fk_statut = c.id"; - $sql .= " AND p.rowid = $propalid"; - } - else - { - $sql = "SELECT s.nom, s.prefix_comm, s.idp "; - $sql .= "FROM ".MAIN_DB_PREFIX."societe as s "; - $sql .= "WHERE s.idp = ".$_GET["socidp"]; - } - - $resql = $db->query($sql); - - if ( $resql ) - { - $num = $db->num_rows($resql); - if ($num) - { - $obj = $db->fetch_object($resql); - - $soc = new Societe($db); - $soc->fetch($obj->idp); - - print '
'; - print ''; - print '' ."\n"; - print ''; - print ''; - - print ''; - - print ''; - print ''; - - $nbrow=3; - if ($conf->projet->enabled) $nbrow++; - print ''; - - print '"; - - if ($conf->projet->enabled) - { - print '"; - } - - print '"; - - if ($propalid > 0) - { - $amount = ($obj->price); - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''; - - print ''; - print ''; - print '"; - print '"; - } - else - { - /* - * Services/produits prédéfinis - */ - $NBLINES=8; - - print ''; - print ''; - } - - /* - * - */ - print ''; - print "\n"; - print "
'.$langs->trans("Ref").' :Provisoire'.$langs->trans("Comments").' :
'.$langs->trans("Customer").' :'.$soc->nom_url.''; - print '
'.$langs->trans("Date").' :'; - $html->select_date(); - print "
'.$langs->trans("Project").' :'; - $html->select_projects($soc->id,'','projetid'); - print "
'.$langs->trans("Source").' :'; - $html->select_array("source_id",$new_commande->sources,2); - print "
'.$langs->trans("Ref").''.$obj->ref.'
'.$langs->trans("TotalTTC").''.price($amount).'
'.$langs->trans("VAT").''.price($obj->tva)."
'.$langs->trans("TotalTTC").''.price($obj->total)."
'.$langs->trans("Services").'/'.$langs->trans("Products").'
'; - - - print ''; - print ''; - for ($i = 1 ; $i <= $NBLINES ; $i++) - { - print ''; - print ''; - print ''; - } - - print '
'.$langs->trans("ProductsAndServices").''.$langs->trans("Qty").''.$langs->trans("Discount").'
'; - print $html->select_produits('','idprod'); - print '%
'; - print '
\n"; - - if ($propalid) - { - /* - * Produits - */ - print_titre($langs->trans("Products")); - - print ''; - print ''; - print ''; - - $var=false; - - $sql = "SELECT pt.rowid, p.label as product, p.ref, pt.price, pt.qty, p.rowid as prodid, pt.remise_percent"; - $sql .= " FROM ".MAIN_DB_PREFIX."propaldet as pt, ".MAIN_DB_PREFIX."product as p WHERE pt.fk_product = p.rowid AND pt.fk_propal = $propalid"; - $sql .= " ORDER BY pt.rowid ASC"; - $result = $db->query($sql); - if ($result) - { - $num = $db->num_rows($result); - $i = 0; - while ($i < $num) - { - $objp = $db->fetch_object($result); - $var=!$var; - print "\n"; - print ''; - print ""; - print ''; - print "\n"; - $i++; - } - } - - $sql = "SELECT pt.rowid, pt.description as product, pt.price, pt.qty, pt.remise_percent"; - $sql .= " FROM ".MAIN_DB_PREFIX."propaldet as pt WHERE pt.fk_propal = $propalid AND pt.fk_product = 0"; - $sql .= " ORDER BY pt.rowid ASC"; - if ($db->query($sql)) - { - $num = $db->num_rows(); - $i = 0; - while ($i < $num) - { - $objp = $db->fetch_object(); - $var=!$var; - print "\n"; - print ''; - print ''; - print ''; - print "\n"; - $i++; - } - } - else - { - dolibarr_print_error($db); - } - - print '
'.$langs->trans("Ref").''.$langs->trans("Product").''.$langs->trans("Price").''.$langs->trans("Discount").''.$langs->trans("Qty").'
[$objp->ref]'.img_object($langs->trans("ShowProduct"),"product").' '.$objp->product.'".price($objp->price)."'.$objp->remise_percent.'%".$objp->qty."
 '.img_object($langs->trans("ShowProduct"),"product").' '.$objp->product.''.price($objp->price).''.$objp->remise_percent.'%".$objp->qty."
'; - } - } - } - else - { - dolibarr_print_error($db); - } -} -else -/* *************************************************************************** */ -/* */ -/* Mode vue et edition */ -/* */ -/* *************************************************************************** */ -{ - $id = $_GET["id"]; - if ($id > 0) - { - $commande = new Commande($db); - if ( $commande->fetch($_GET["id"]) > 0) - { - $soc = new Societe($db); - $soc->fetch($commande->soc_id); - $author = new User($db); - $author->id = $commande->user_author_id; - $author->fetch(); - - $h=0; - - if ($conf->commande->enabled && $user->rights->commande->lire) - { - $head[$h][0] = DOL_URL_ROOT.'/commande/fiche.php?id='.$commande->id; - $head[$h][1] = $langs->trans("OrderCard"); - $hselected = $h; - $h++; - } - - if ($conf->expedition->enabled && $user->rights->expedition->lire) - { - $head[$h][0] = DOL_URL_ROOT.'/expedition/commande.php?id='.$commande->id; - $head[$h][1] = $langs->trans("SendingCard"); - $h++; - } - - if ($conf->compta->enabled) - { - $head[$h][0] = DOL_URL_ROOT.'/compta/commande/fiche.php?id='.$commande->id; - $head[$h][1] = $langs->trans("ComptaCard"); - $h++; - } - - $head[$h][0] = DOL_URL_ROOT.'/commande/info.php?id='.$commande->id; - $head[$h][1] = $langs->trans("Info"); - $h++; - - dolibarr_fiche_head($head, $hselected, $langs->trans("Order").": $commande->ref"); - - /* - * Confirmation de la suppression de la commande - */ - if ($_GET["action"] == 'delete') - { - $html->form_confirm("fiche.php?id=$id",$langs->trans("DeleteOrder"),$langs->trans("ConfirmDeleteOrder"),"confirm_delete"); - print "
\n"; - } - - /* - * Confirmation de la validation - */ - if ($_GET["action"] == 'valid') - { - //$numfa = commande_get_num($soc); - $html->form_confirm("fiche.php?id=$id",$langs->trans("ValidateOrder"),$langs->trans("ConfirmValidateOrder"),"confirm_valid"); - print "
\n"; - } - - /* - * Confirmation de la cloture - */ - if ($_GET["action"] == 'cloture') - { - //$numfa = commande_get_num($soc); - $html->form_confirm("fiche.php?id=$id",$langs->trans("CloseOrder"),$langs->trans("ConfirmCloseOrder"),"confirm_close"); - print "
\n"; - } - - /* - * Confirmation de l'annulation - */ - if ($_GET["action"] == 'annuler') - { - $html->form_confirm("fiche.php?id=$id",$langs->trans("Cancel"),$langs->trans("ConfirmCancel"),"confirm_cancel"); - print "
\n"; - } - - /* - * Commande - */ - print ''; - print '"; - print ''; - print '"; - - print ""; - print ''; - print ''; - - print ''; - print "\n"; - $nbrow=6; - if ($conf->projet->enabled) $nbrow++; - print ''; - - print ''; - print "\n"; - print ''; - + $commande = new Commande($db); + $ret=$commande->fetch($_POST["id"]); + + if (isset($_POST["p_idprod"])) + { + $result = $commande->addline( + $_POST["np_desc"], + $_POST["pu"], + $_POST["pqty"], + $_POST["tva_tx"], + $_POST["p_idprod"], + $_POST["premise"]); + } + else + { + $result = $commande->addline( + $_POST["desc"], + $_POST["pu"], + $_POST["qty"], + $_POST["tva_tx"], + 0, + $_POST["remise_percent"]); + } + +} + +if ($_POST["action"] == 'updateligne' && $user->rights->commande->creer) +{ + $commande = new Commande($db,"",$_GET["id"]); + if ($commande->fetch($_GET["id"]) ) + { + $result = $commande->update_line($_POST["elrowid"], + $_POST["eldesc"], + $_POST["elprice"], + $_POST["elqty"], + $_POST["elremise_percent"]); + } + else + { + print "Erreur"; + } +} + +if ($_GET["action"] == 'deleteline' && $user->rights->commande->creer) +{ + $commande = new Commande($db); + $commande->fetch($_GET["id"]); + $result = $commande->delete_line($_GET["lineid"]); + Header("Location: fiche.php?id=".$_GET["id"]); +} + +if ($_POST["action"] == 'confirm_valid' && $_POST["confirm"] == 'yes' && $user->rights->commande->valider) +{ + $commande = new Commande($db); + $commande->fetch($_GET["id"]); + $soc = new Societe($db); + $soc->fetch($commande->soc_id); + $result = $commande->valid($user); +} + +if ($_POST["action"] == 'confirm_close' && $_POST["confirm"] == 'yes' && $user->rights->commande->creer) +{ + $commande = new Commande($db); + $commande->fetch($_GET["id"]); + $result = $commande->cloture($user); +} + +if ($_POST["action"] == 'confirm_cancel' && $_POST["confirm"] == 'yes' && $user->rights->commande->valider) +{ + $commande = new Commande($db); + $commande->fetch($_GET["id"]); + $result = $commande->cancel($user); +} + +if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') +{ + if ($user->rights->commande->supprimer ) + { + $commande = new Commande($db); + $commande->id = $_GET["id"]; + $commande->delete(); + Header("Location: index.php"); + } +} + +if ($_GET["action"] == 'pdf') +{ + /* + * Generation de la commande + * définit dans /includes/modules/commande/modules_commande.php + */ + commande_pdf_create($db, $_GET["id"]); +} + + +llxHeader('',$langs->trans("OrderCard"),"Commande"); + + + +$html = new Form($db); + +/********************************************************************* + * + * Mode creation + * + *********************************************************************/ +if ($_GET["action"] == 'create' && $user->rights->commande->creer) +{ + print_titre($langs->trans("CreateOrder")); + + $new_commande = new Commande($db); + + if ($propalid) + { + $sql = "SELECT s.nom, s.prefix_comm, s.idp, p.price, p.remise, p.remise_percent, p.tva, p.total, p.ref, ".$db->pdate("p.datep")." as dp, c.id as statut, c.label as lst"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."c_propalst as c"; + $sql .= " WHERE p.fk_soc = s.idp AND p.fk_statut = c.id"; + $sql .= " AND p.rowid = $propalid"; + } + else + { + $sql = "SELECT s.nom, s.prefix_comm, s.idp "; + $sql .= "FROM ".MAIN_DB_PREFIX."societe as s "; + $sql .= "WHERE s.idp = ".$_GET["socidp"]; + } + + $resql = $db->query($sql); + + if ( $resql ) + { + $num = $db->num_rows($resql); + if ($num) + { + $obj = $db->fetch_object($resql); + + $soc = new Societe($db); + $soc->fetch($obj->idp); + + print ''; + print ''; + print '' ."\n"; + print ''; + print ''; + + print '
'.$langs->trans("Ref")."'.$commande->ref.''.$langs->trans("Source").' : ' . $commande->sources[$commande->source] ; - if ($commande->source == 0) - { - /* Propale */ - $propal = new Propal($db); - $propal->fetch($commande->propale_id); - print ' -> '.$propal->ref.''; - } - print "
".$langs->trans("Customer")."'; - print ''.$soc->nom.'
'.$langs->trans("Status").'".$commande->statuts[$commande->statut]."'.$langs->trans("Note").' :
'; - if ($commande->brouillon == 1 && $user->rights->commande->creer) - { - print '
'; - print ''; - print '
'; - print '
'; - print '
'; - } - else - { - print nl2br($commande->note); - } - print '
'.$langs->trans("Date").'".dolibarr_print_date($commande->date,"%A %d %B %Y")."
'; + + print ''; + print ''; + + $nbrow=3; + if ($conf->projet->enabled) $nbrow++; + print ''; + + print '"; + + if ($conf->projet->enabled) + { + print '"; + } + + print '"; + + if ($propalid > 0) + { + $amount = ($obj->price); + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''; + + print ''; + print ''; + print '"; + print '"; + } + else + { + /* + * Services/produits prédéfinis + */ + $NBLINES=8; + + print ''; + print ''; + } + + /* + * + */ + print ''; + print "\n"; + print "
'.$langs->trans("Ref").' :Provisoire'.$langs->trans("Comments").' :
'.$langs->trans("Customer").' :'.$soc->nom_url.''; + print '
'.$langs->trans("Date").' :'; + $html->select_date(); + print "
'.$langs->trans("Project").' :'; + $html->select_projects($soc->id,'','projetid'); + print "
'.$langs->trans("Source").' :'; + $html->select_array("source_id",$new_commande->sources,2); + print "
'.$langs->trans("Ref").''.$obj->ref.'
'.$langs->trans("TotalTTC").''.price($amount).'
'.$langs->trans("VAT").''.price($obj->tva)."
'.$langs->trans("TotalTTC").''.price($obj->total)."
'.$langs->trans("Services").'/'.$langs->trans("Products").'
'; + + + print ''; + print ''; + for ($i = 1 ; $i <= $NBLINES ; $i++) + { + print ''; + print ''; + print ''; + } + + print '
'.$langs->trans("ProductsAndServices").''.$langs->trans("Qty").''.$langs->trans("Discount").'
'; + print $html->select_produits('','idprod'.$i); + print '%
'; + print '
\n"; + + if ($propalid) + { + /* + * Produits + */ + print_titre($langs->trans("Products")); + + print ''; + print ''; + print ''; + + $var=false; + + $sql = "SELECT pt.rowid, p.label as product, p.ref, pt.price, pt.qty, p.rowid as prodid, pt.remise_percent"; + $sql .= " FROM ".MAIN_DB_PREFIX."propaldet as pt, ".MAIN_DB_PREFIX."product as p WHERE pt.fk_product = p.rowid AND pt.fk_propal = $propalid"; + $sql .= " ORDER BY pt.rowid ASC"; + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + $i = 0; + while ($i < $num) + { + $objp = $db->fetch_object($result); + $var=!$var; + print "\n"; + print ''; + print ""; + print ''; + print "\n"; + $i++; + } + } + + $sql = "SELECT pt.rowid, pt.description as product, pt.price, pt.qty, pt.remise_percent"; + $sql .= " FROM ".MAIN_DB_PREFIX."propaldet as pt WHERE pt.fk_propal = $propalid AND pt.fk_product = 0"; + $sql .= " ORDER BY pt.rowid ASC"; + if ($db->query($sql)) + { + $num = $db->num_rows(); + $i = 0; + while ($i < $num) + { + $objp = $db->fetch_object(); + $var=!$var; + print "\n"; + print ''; + print ''; + print ''; + print "\n"; + $i++; + } + } + else + { + dolibarr_print_error($db); + } + + print '
'.$langs->trans("Ref").''.$langs->trans("Product").''.$langs->trans("Price").''.$langs->trans("Discount").''.$langs->trans("Qty").'
[$objp->ref]'.img_object($langs->trans("ShowProduct"),"product").' '.$objp->product.'".price($objp->price)."'.$objp->remise_percent.'%".$objp->qty."
 '.img_object($langs->trans("ShowProduct"),"product").' '.$objp->product.''.price($objp->price).''.$objp->remise_percent.'%".$objp->qty."
'; + } + } + } + else + { + dolibarr_print_error($db); + } +} +else +/* *************************************************************************** */ +/* */ +/* Mode vue et edition */ +/* */ +/* *************************************************************************** */ +{ + $id = $_GET["id"]; + if ($id > 0) + { + $commande = new Commande($db); + if ( $commande->fetch($_GET["id"]) > 0) + { + $soc = new Societe($db); + $soc->fetch($commande->soc_id); + $author = new User($db); + $author->id = $commande->user_author_id; + $author->fetch(); + + $h=0; + + if ($conf->commande->enabled && $user->rights->commande->lire) + { + $head[$h][0] = DOL_URL_ROOT.'/commande/fiche.php?id='.$commande->id; + $head[$h][1] = $langs->trans("OrderCard"); + $hselected = $h; + $h++; + } + + if ($conf->expedition->enabled && $user->rights->expedition->lire) + { + $head[$h][0] = DOL_URL_ROOT.'/expedition/commande.php?id='.$commande->id; + $head[$h][1] = $langs->trans("SendingCard"); + $h++; + } + + if ($conf->compta->enabled) + { + $head[$h][0] = DOL_URL_ROOT.'/compta/commande/fiche.php?id='.$commande->id; + $head[$h][1] = $langs->trans("ComptaCard"); + $h++; + } + + $head[$h][0] = DOL_URL_ROOT.'/commande/info.php?id='.$commande->id; + $head[$h][1] = $langs->trans("Info"); + $h++; + + dolibarr_fiche_head($head, $hselected, $langs->trans("Order").": $commande->ref"); + + /* + * Confirmation de la suppression de la commande + */ + if ($_GET["action"] == 'delete') + { + $html->form_confirm("fiche.php?id=$id",$langs->trans("DeleteOrder"),$langs->trans("ConfirmDeleteOrder"),"confirm_delete"); + print "
\n"; + } + + /* + * Confirmation de la validation + */ + if ($_GET["action"] == 'valid') + { + //$numfa = commande_get_num($soc); + $html->form_confirm("fiche.php?id=$id",$langs->trans("ValidateOrder"),$langs->trans("ConfirmValidateOrder"),"confirm_valid"); + print "
\n"; + } + + /* + * Confirmation de la cloture + */ + if ($_GET["action"] == 'cloture') + { + //$numfa = commande_get_num($soc); + $html->form_confirm("fiche.php?id=$id",$langs->trans("CloseOrder"),$langs->trans("ConfirmCloseOrder"),"confirm_close"); + print "
\n"; + } + + /* + * Confirmation de l'annulation + */ + if ($_GET["action"] == 'annuler') + { + $html->form_confirm("fiche.php?id=$id",$langs->trans("Cancel"),$langs->trans("ConfirmCancel"),"confirm_cancel"); + print "
\n"; + } + + /* + * Commande + */ + print ''; + print '"; + print ''; + print '"; + + print ""; + print ''; + print ''; + + print ''; + print "\n"; + $nbrow=6; + if ($conf->projet->enabled) $nbrow++; + print ''; + + print ''; + print "\n"; + print ''; + // Projet if ($conf->projet->enabled) { @@ -549,175 +549,175 @@ else $html->form_project($_SERVER["PHP_SELF"]."?id=$commande->id",$commande->fk_soc,$commande->projetid,"none"); } print ""; - } else { - print ''; - } - - // Lignes de 3 colonnes - print ''; - print ''; - print ''; - - - print ''; - - print ''; - print ''; - print ''; - print ''; - - print '
'.$langs->trans("Ref")."'.$commande->ref.''.$langs->trans("Source").' : ' . $commande->sources[$commande->source] ; + if ($commande->source == 0) + { + /* Propale */ + $propal = new Propal($db); + $propal->fetch($commande->propale_id); + print ' -> '.$propal->ref.''; + } + print "
".$langs->trans("Customer")."'; + print ''.$soc->nom.'
'.$langs->trans("Status").'".$commande->statuts[$commande->statut]."'.$langs->trans("Note").' :
'; + if ($commande->brouillon == 1 && $user->rights->commande->creer) + { + print '
'; + print ''; + print '
'; + print '
'; + print '
'; + } + else + { + print nl2br($commande->note); + } + print '
'.$langs->trans("Date").'".dolibarr_print_date($commande->date,"%A %d %B %Y")."
  
'.$langs->trans("AmountHT").''.price($commande->total_ht).''.$langs->trans("Currency".$conf->monnaie).'
'.$langs->trans("GlobalDiscount").''; - - if ($commande->brouillon == 1 && $user->rights->commande->creer) - { - print '
'; - print ''; - print '%'; - print '
'; - print ''; - } - else - { - print $commande->remise_percent.'% '; - } - print '
'.$langs->trans("VAT").''.price($commande->total_tva).''.$langs->trans("Currency".$conf->monnaie).'
'.$langs->trans("TotalTTC").''.price($commande->total_ttc).''.$langs->trans("Currency".$conf->monnaie).'

'; - if ($commande->brouillon == 1 && $user->rights->commande->creer) - { - print ''; - } - - /* - * Lignes de commandes - * - */ - $sql = 'SELECT l.fk_product, l.description, l.price, l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice,'; + } else { + print '  '; + } + + // Lignes de 3 colonnes + print ''.$langs->trans("AmountHT").''; + print ''.price($commande->total_ht).''; + print ''.$langs->trans("Currency".$conf->monnaie).''; + + + print ''.$langs->trans("GlobalDiscount").''; + + if ($commande->brouillon == 1 && $user->rights->commande->creer) + { + print '
'; + print ''; + print '%'; + print ''; + print '
'; + } + else + { + print $commande->remise_percent.'% '; + } + print ''; + + print ''.$langs->trans("VAT").''.price($commande->total_tva).''; + print ''.$langs->trans("Currency".$conf->monnaie).''; + print ''.$langs->trans("TotalTTC").''.price($commande->total_ttc).''; + print ''.$langs->trans("Currency".$conf->monnaie).''; + + print '
'; + if ($commande->brouillon == 1 && $user->rights->commande->creer) + { + print ''; + } + + /* + * Lignes de commandes + * + */ + $sql = 'SELECT l.fk_product, l.description, l.price, l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice,'; $sql.= ' p.label as product, p.ref, p.fk_product_type, p.rowid as prodid'; - $sql.= ' FROM '.MAIN_DB_PREFIX."commandedet as l"; + $sql.= ' FROM '.MAIN_DB_PREFIX."commandedet as l"; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product=p.rowid'; - $sql.= " WHERE l.fk_commande = ".$commande->id; - $sql.= " ORDER BY l.rowid"; - - $resql = $db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); - $i = 0; $total = 0; - + $sql.= " WHERE l.fk_commande = ".$commande->id; + $sql.= " ORDER BY l.rowid"; + + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; $total = 0; + print ''; - if ($num) - { - print ''; + if ($num) + { + print ''; print ''; print ''; print ''; print ''; print ''; print ''; - print ''; - print "\n"; - } - $var=true; - while ($i < $num) - { - $objp = $db->fetch_object($resql); - $var=!$var; - + print ''; + print "\n"; + } + $var=true; + while ($i < $num) + { + $objp = $db->fetch_object($resql); + $var=!$var; + // Affiche ligne de commande en mode non edit if ($_GET['action'] != 'editline' || $_GET['rowid'] != $objp->rowid) { print ''; - if ($objp->fk_product > 0) - { + if ($objp->fk_product > 0) + { print ''; - } - else - { - print '\n"; - } - print ''; - - print '\n"; - - print ''; - - if ($objp->remise_percent > 0) - { - print '\n"; - } - else - { - print ''; - } + } + else + { + print '\n"; + } + print ''; + + print '\n"; + + print ''; + + if ($objp->remise_percent > 0) + { + print '\n"; + } + else + { + print ''; + } print '\n"; - + // Icone d'edition et suppression - if ($commande->statut == 0 && $user->rights->commande->creer && $_GET["action"] == '') - { - print ''; - print ''; - } - else - { - print ''; - } + if ($commande->statut == 0 && $user->rights->commande->creer && $_GET["action"] == '') + { + print ''; + print ''; + } + else + { + print ''; + } print ''; - } - + } + // Affiche ligne de commande en mode non edit - if ($_GET["action"] == 'editline' && $_GET["rowid"] == $objp->rowid) - { - print ""; - print ''; - print ''; - print ""; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + if ($_GET["action"] == 'editline' && $_GET["rowid"] == $objp->rowid) + { + print ""; + print ''; + print ''; + print ""; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; print ''; - } + } $total = $total + ($objp->qty * $objp->price); - $i++; - } - $db->free($resql); - } - else - { - dolibarr_print_error($db); - } - - /* - * Ajouter une ligne - */ - if ($commande->statut == 0 && $user->rights->commande->creer && $_GET["action"] == '') - { + $i++; + } + $db->free($resql); + } + else + { + dolibarr_print_error($db); + } + + /* + * Ajouter une ligne + */ + if ($commande->statut == 0 && $user->rights->commande->creer && $_GET["action"] == '') + { print ''; print ''; print ''; @@ -728,32 +728,32 @@ else print ''; print ''; print "\n"; - + // Ajout produit produits/services personalisés - print ""; + print ""; print ''; - print ''; - - $var=true; + print ''; + + $var=true; print '\n"; print ' '; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; - + // Ajout de produits/services prédéfinis - print ""; - print ''; - print ''; - - $var=!$var; + print ""; + print ''; + print ''; + + $var=!$var; print ''; print ''; print ''; - print ''; - print ''; - print ''; - print "\n"; - + print ''; + print ''; + print ''; + print "\n"; + print ''; - } - - - print '
'.$langs->trans('Description').''.$langs->trans('VAT').''.$langs->trans('PriceUHT').''.$langs->trans('Qty').''.$langs->trans('Discount').''.$langs->trans('AmountHT').'  
  
'; if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service'); else print img_object($langs->trans('ShowProduct'),'product'); print ' '.$objp->ref.' - '.stripslashes(nl2br($objp->product)); print ($objp->description && $objp->description!=$objp->product)?'
'.$objp->description:''; print '
'.stripslashes(nl2br($objp->description)); - print "'.$objp->tva_tx.'%'.price($objp->subprice)."'.$objp->qty.''.$objp->remise_percent."% '.stripslashes(nl2br($objp->description)); + print "'.$objp->tva_tx.'%'.price($objp->subprice)."'.$objp->qty.''.$objp->remise_percent."% '.price($objp->subprice*$objp->qty*(100-$objp->remise_percent)/100)."'; - print img_edit(); - print ''; - print img_delete(); - print '  '; + print img_edit(); + print ''; + print img_delete(); + print '  
'; - if ($objp->fk_product > 0) - { - print ''; - if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service'); - else print img_object($langs->trans('ShowProduct'),'product'); - print ' '.$objp->ref.''; - print ' - '.stripslashes(nl2br($objp->product)); - print '
'; - } - print '
'; - //print $html->select_tva("tva_tx",$objp->tva_taux); - print $objp->tva_tx."%"; // Taux tva dépend du produit, donc on ne doit pas pouvoir le changer ici - print '%
'; + if ($objp->fk_product > 0) + { + print ''; + if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service'); + else print img_object($langs->trans('ShowProduct'),'product'); + print ' '.$objp->ref.''; + print ' - '.stripslashes(nl2br($objp->product)); + print '
'; + } + print '
'; + //print $html->select_tva("tva_tx",$objp->tva_taux); + print $objp->tva_tx."%"; // Taux tva dépend du produit, donc on ne doit pas pouvoir le changer ici + print '%
'.$langs->trans('Description').''.$langs->trans('VAT').'  
'; - print $html->select_tva("tva_tx",$conf->defaulttx); - print '%
'; + print $html->select_tva("tva_tx",$conf->defaulttx); + print '%
'; $html->select_produits('','p_idprod','',20); @@ -761,188 +761,188 @@ else print ''; print ' %
%
'; - - - print ''; - - - /* - * Boutons actions - */ - if ($user->societe_id == 0 && $commande->statut < 3 && $_GET["action"] == '') - { - print '
'; - - if ($conf->expedition->enabled && $commande->statut > 0 && $commande->statut < 3 && $user->rights->expedition->creer) - { - print ''.$langs->trans("Send").''; - } - - - if ($commande->statut == 0) - { - if ($user->rights->commande->valider) - { - print ''.$langs->trans("Valid").''; - } - } - - if ($commande->statut == 1 || $commande->statut == 2) - { - if ($user->rights->commande->creer) - { - print ''.$langs->trans("Close").''; - } - } - - if ($commande->statut == 0 && $user->rights->commande->supprimer) - { - print ''.$langs->trans("Delete").''; - } - - if ($commande->statut == 1) - { - $nb_expedition = $commande->nb_expedition(); - if ($user->rights->commande->valider && $nb_expedition == 0) - { - print ''.$langs->trans("CancelOrder").''; - } - } - - print "
"; - } - print "
\n"; - - - print '
'; - - /* - * Documents générés - * - */ - $file = $conf->commande->dir_output . "/" . $commande->ref . "/" . $commande->ref . ".pdf"; - $relativepath = $commande->ref."/".$commande->ref.".pdf"; - - $var=true; - - if (file_exists($file)) - { - - print_titre($langs->trans("Documents")); - print ''; - - print ""; - print ''; - print ''; - print ''; - print ''; - - print "
".$langs->trans("Order")." PDF'.$commande->ref.'.pdf'.filesize($file). ' bytes'.strftime("%d %b %Y %H:%M:%S",filemtime($file)).'
\n"; - - print '
'; - } - - /* - * Liste des factures - */ - $sql = "SELECT f.rowid,f.facnumber, f.total_ttc, ".$db->pdate("f.datef")." as df"; - $sql .= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."co_fa as cf"; - $sql .= " WHERE f.rowid = cf.fk_facture AND cf.fk_commande = ". $commande->id; - - $result = $db->query($sql); - if ($result) - { - $num = $db->num_rows($result); - if ($num) - { - print_titre($langs->trans("RelatedBills")); - $i = 0; $total = 0; - print ''; - print '"; - print ''; - print ''; - print "\n"; - - $var=True; - while ($i < $num) - { - $objp = $db->fetch_object($result); - $var=!$var; - print ""; - print ''; - print ''; - print ''; - $i++; - } - print "
'.$langs->trans("Ref")."'.$langs->trans("Date").''.$langs->trans("Price").'
'.img_object($langs->trans("ShowBill"),"bill").' '.$objp->facnumber.''.dolibarr_print_date($objp->df).''.$objp->total_ttc.'
"; - } - } - else - { - dolibarr_print_error($db); - } - - - print '
'; - - /* - * Liste des expéditions - */ - $sql = "SELECT e.rowid,e.ref,".$db->pdate("e.date_expedition")." as de"; - $sql .= " FROM ".MAIN_DB_PREFIX."expedition as e"; - $sql .= " WHERE e.fk_commande = ". $commande->id; - - $result = $db->query($sql); - if ($result) - { - $num = $db->num_rows($result); - if ($num) - { - print_titre($langs->trans("Sendings")); - $i = 0; $total = 0; - print ''; - print "\n"; - - $var=True; - while ($i < $num) - { - $objp = $db->fetch_object($result); - $var=!$var; - print ""; - print ''; - print "\n"; - $i++; - } - print "
".$langs->trans("Sendings")."".$langs->trans("Date")."
'.img_object($langs->trans("ShowSending"),"sending").' '.$objp->ref.'".dolibarr_print_date($objp->de)."
"; - } - } - else - { - dolibarr_print_error($db); - } - - print "
"; - - } - else - { - /* Commande non trouvée */ - print "Commande inexistante ou accés refusé"; - } - } -} - -$db->close(); - -llxFooter('$Date$ - $Revision$'); -?> + } + + + print ''; + + + print ''; + + + /* + * Boutons actions + */ + if ($user->societe_id == 0 && $commande->statut < 3 && $_GET["action"] == '') + { + print '
'; + + if ($conf->expedition->enabled && $commande->statut > 0 && $commande->statut < 3 && $user->rights->expedition->creer) + { + print ''.$langs->trans("Send").''; + } + + + if ($commande->statut == 0) + { + if ($user->rights->commande->valider) + { + print ''.$langs->trans("Valid").''; + } + } + + if ($commande->statut == 1 || $commande->statut == 2) + { + if ($user->rights->commande->creer) + { + print ''.$langs->trans("Close").''; + } + } + + if ($commande->statut == 0 && $user->rights->commande->supprimer) + { + print ''.$langs->trans("Delete").''; + } + + if ($commande->statut == 1) + { + $nb_expedition = $commande->nb_expedition(); + if ($user->rights->commande->valider && $nb_expedition == 0) + { + print ''.$langs->trans("CancelOrder").''; + } + } + + print "
"; + } + print "
\n"; + + + print '
'; + + /* + * Documents générés + * + */ + $file = $conf->commande->dir_output . "/" . $commande->ref . "/" . $commande->ref . ".pdf"; + $relativepath = $commande->ref."/".$commande->ref.".pdf"; + + $var=true; + + if (file_exists($file)) + { + + print_titre($langs->trans("Documents")); + print ''; + + print ""; + print ''; + print ''; + print ''; + print ''; + + print "
".$langs->trans("Order")." PDF'.$commande->ref.'.pdf'.filesize($file). ' bytes'.strftime("%d %b %Y %H:%M:%S",filemtime($file)).'
\n"; + + print '
'; + } + + /* + * Liste des factures + */ + $sql = "SELECT f.rowid,f.facnumber, f.total_ttc, ".$db->pdate("f.datef")." as df"; + $sql .= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."co_fa as cf"; + $sql .= " WHERE f.rowid = cf.fk_facture AND cf.fk_commande = ". $commande->id; + + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + if ($num) + { + print_titre($langs->trans("RelatedBills")); + $i = 0; $total = 0; + print ''; + print '"; + print ''; + print ''; + print "\n"; + + $var=True; + while ($i < $num) + { + $objp = $db->fetch_object($result); + $var=!$var; + print ""; + print ''; + print ''; + print ''; + $i++; + } + print "
'.$langs->trans("Ref")."'.$langs->trans("Date").''.$langs->trans("Price").'
'.img_object($langs->trans("ShowBill"),"bill").' '.$objp->facnumber.''.dolibarr_print_date($objp->df).''.$objp->total_ttc.'
"; + } + } + else + { + dolibarr_print_error($db); + } + + + print '
'; + + /* + * Liste des expéditions + */ + $sql = "SELECT e.rowid,e.ref,".$db->pdate("e.date_expedition")." as de"; + $sql .= " FROM ".MAIN_DB_PREFIX."expedition as e"; + $sql .= " WHERE e.fk_commande = ". $commande->id; + + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + if ($num) + { + print_titre($langs->trans("Sendings")); + $i = 0; $total = 0; + print ''; + print "\n"; + + $var=True; + while ($i < $num) + { + $objp = $db->fetch_object($result); + $var=!$var; + print ""; + print ''; + print "\n"; + $i++; + } + print "
".$langs->trans("Sendings")."".$langs->trans("Date")."
'.img_object($langs->trans("ShowSending"),"sending").' '.$objp->ref.'".dolibarr_print_date($objp->de)."
"; + } + } + else + { + dolibarr_print_error($db); + } + + print "
"; + + } + else + { + /* Commande non trouvée */ + print "Commande inexistante ou accés refusé"; + } + } +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); +?>