From ba95251ea2c302394b800e62b8ddab16748a96c5 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 29 Sep 2014 20:31:48 +0200 Subject: [PATCH 1/5] Fix: uniformize code --- htdocs/livraison/card.php | 182 ++++++++++++++++++-------------------- 1 file changed, 84 insertions(+), 98 deletions(-) diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php index 34380c8843c..7f9c4130284 100644 --- a/htdocs/livraison/card.php +++ b/htdocs/livraison/card.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003-2005 Rodolphe Quiedeville * Copyright (C) 2005-2010 Laurent Destailleur * Copyright (C) 2005 Simon TOSSER - * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2007 Franky Van Liedekerke * Copyright (C) 2013 Florian Henry * @@ -53,22 +53,33 @@ $id = GETPOST('id', 'int'); if ($user->societe_id) $socid=$user->societe_id; $result=restrictedArea($user,'expedition',$id,'livraison','livraison'); +$object = new Livraison($db); +// Load object +if ($id > 0 || ! empty($ref)) { + $ret = $object->fetch($id, $ref); + if ($ret > 0) + $ret = $object->fetch_thirdparty(); + if ($ret < 0) + dol_print_error('', $object->error); +} + +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +$hookmanager->initHooks(array('deliverycard')); /* * Actions */ +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks if ($action == 'add') { $db->begin(); - // Creation de l'objet livraison - $delivery = new Livraison($db); - - $delivery->date_livraison = time(); - $delivery->note = $_POST["note"]; - $delivery->commande_id = $_POST["commande_id"]; + $object->date_livraison = time(); + $object->note = $_POST["note"]; + $object->commande_id = $_POST["commande_id"]; if (!$conf->expedition_bon->enabled && ! empty($conf->stock->enabled)) { @@ -78,7 +89,7 @@ if ($action == 'add') // On boucle sur chaque ligne de commande pour completer objet livraison // avec qte a livrer $commande = new Commande($db); - $commande->fetch($delivery->commande_id); + $commande->fetch($object->commande_id); $commande->fetch_lines(); $num=count($commande->lines); for ($i = 0; $i < $num; $i++) @@ -87,20 +98,20 @@ if ($action == 'add') $idl = "idl".$i; if ($_POST[$qty] > 0) { - $delivery->addline($_POST[$idl],$_POST[$qty]); + $object->addline($_POST[$idl],$_POST[$qty]); } } - $ret=$delivery->create($user); + $ret=$object->create($user); if ($ret > 0) { $db->commit(); - header("Location: ".$_SERVER['PHP_SELF']."?id=".$delivery->id); + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); exit; } else { - setEventMessage($delivery->error, 'errors'); + setEventMessage($object->error, 'errors'); $db->rollback(); $_GET["commande_id"]=$_POST["commande_id"]; @@ -110,10 +121,6 @@ if ($action == 'add') else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->expedition->livraison->valider) { - $object = new Livraison($db); - $object->fetch($id); - $object->fetch_thirdparty(); - $result = $object->valid($user); // Define output language @@ -140,10 +147,6 @@ else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->exped if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->expedition->livraison->supprimer) { - $object = new Livraison($db); - $object->fetch($id); - $object->fetch_thirdparty(); - $db->begin(); $result=$object->delete(); @@ -162,14 +165,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->expeditio if ($action == 'setdate_livraison' && $user->rights->expedition->livraison->creer) { - $object = new Livraison($db); - $object->fetch($id); - $object->fetch_thirdparty(); - - //print "x ".$_POST['liv_month'].", ".$_POST['liv_day'].", ".$_POST['liv_year']; $datedelivery=dol_mktime(GETPOST('liv_hour','int'), GETPOST('liv_min','int'), 0, GETPOST('liv_month','int'), GETPOST('liv_day','int'), GETPOST('liv_year','int')); - - $object->fetch($id); $result=$object->set_date_livraison($user,$datedelivery); if ($result < 0) { @@ -182,10 +178,6 @@ if ($action == 'setdate_livraison' && $user->rights->expedition->livraison->cree */ if ($action == 'builddoc') // En get ou en post { - $object = new Livraison($db); - $object->fetch($id); - $object->fetch_thirdparty(); - // Save last template used to generate document if (GETPOST('model')) $object->setDocModel($user, GETPOST('model','alpha')); @@ -216,16 +208,11 @@ elseif ($action == 'remove_file') { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $object = new Livraison($db); - if ($object->fetch($id)) - { - $object->fetch_thirdparty(); - $upload_dir = $conf->expedition->dir_output . "/receipt"; - $file = $upload_dir . '/' . GETPOST('file'); - $ret=dol_delete_file($file,0,0,0,$object); - if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile'))); - else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors'); - } + $upload_dir = $conf->expedition->dir_output . "/receipt"; + $file = $upload_dir . '/' . GETPOST('file'); + $ret=dol_delete_file($file,0,0,0,$object); + if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile'))); + else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors'); } @@ -256,7 +243,7 @@ if ($action == 'create') $commande = new Commande($db); $commande->livraison_array(); - if ($commande->fetch($_GET["commande_id"])) + if ($commande->fetch(GETPOST("commande_id"))) { $soc = new Societe($db); $soc->fetch($commande->socid); @@ -271,7 +258,7 @@ if ($action == 'create') /* * Commande */ - print '
'; + print ''; print ''; print ''; print ''; @@ -461,29 +448,29 @@ else /* */ /* *************************************************************************** */ { - if ($id > 0) + if ($object->id > 0) { - $delivery = new Livraison($db); - $result = $delivery->fetch($id); - $delivery->fetch_thirdparty(); - // Origin of a 'livraison' (delivery) is ALWAYS 'expedition' (shipment). // However, origin of shipment in future may differs (commande, proposal, ...) + // TODO REGIS: + // Je ne suis pas d'accord, beaucoup entreprises n'utilisent pas les bons d'expéditions car ces derniers sont gérés par le transporteur, + // donc les bons de livraisons peuvent avoir une origine différente de 'expedition' + // les bons de livraisons et d'expéditions devraient être considérés comme des objets à part entière, voir des modules différents comme une propal ou autres. $expedition=new Expedition($db); - $result = $expedition->fetch($delivery->origin_id); + $result = $expedition->fetch($object->origin_id); $typeobject = $expedition->origin; // example: commande - if ($delivery->origin_id > 0) + if ($object->origin_id > 0) { - $delivery->fetch_origin(); + $object->fetch_origin(); } - if ($delivery->id > 0) + if ($object->id > 0) { $soc = new Societe($db); - $soc->fetch($delivery->socid); + $soc->fetch($object->socid); - $head=delivery_prepare_head($delivery); + $head=delivery_prepare_head($object); dol_fiche_head($head, 'delivery', $langs->trans("Shipment"), 0, 'sending'); /* @@ -493,7 +480,7 @@ else if ($action == 'delete') { $expedition_id = GETPOST("expid"); - print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$delivery->id.'&expid='.$expedition_id.'&backtopage='.urlencode($backtopage),$langs->trans("DeleteDeliveryReceipt"),$langs->trans("DeleteDeliveryReceiptConfirm",$delivery->ref),'confirm_delete','','',1); + print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id.'&expid='.$expedition_id.'&backtopage='.urlencode($backtopage),$langs->trans("DeleteDeliveryReceipt"),$langs->trans("DeleteDeliveryReceiptConfirm",$object->ref),'confirm_delete','','',1); } @@ -502,7 +489,7 @@ else */ if ($action == 'valid') { - print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$delivery->id,$langs->trans("ValidateDeliveryReceipt"),$langs->trans("ValidateDeliveryReceiptConfirm",$delivery->ref),'confirm_valid','','',1); + print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans("ValidateDeliveryReceipt"),$langs->trans("ValidateDeliveryReceiptConfirm",$object->ref),'confirm_valid','','',1); } @@ -513,7 +500,7 @@ else print ''; // Shipment - if (($delivery->origin == 'shipment' || $delivery->origin == 'expedition') && $delivery->origin_id > 0) + if (($object->origin == 'shipment' || $object->origin == 'expedition') && $object->origin_id > 0) { $linkback = ''.$langs->trans("BackToList").''; @@ -528,7 +515,7 @@ else // Ref print ''; - print ''; + print ''; // Client print ''; @@ -559,12 +546,12 @@ else // Ref client print ''; - print '\n"; + print '\n"; print ''; // Date print ''; - print '\n"; + print '\n"; print ''; // Date delivery real / Received @@ -573,21 +560,21 @@ else print $langs->trans('DateReceived'); print ''; - if ($action != 'editdate_livraison') print ''; + if ($action != 'editdate_livraison') print ''; print '
'.$langs->trans("Ref").''.$delivery->ref.'
'.$object->ref.'
'.$langs->trans("Customer").'
'.$langs->trans("RefCustomer").''.$delivery->ref_customer."'.$object->ref_customer."
'.$langs->trans("DateCreation").''.dol_print_date($delivery->date_creation,'daytext')."'.dol_print_date($object->date_creation,'daytext')."
id.'">'.img_edit($langs->trans('SetDeliveryDate'),1).'id.'">'.img_edit($langs->trans('SetDeliveryDate'),1).'
'; print ''; if ($action == 'editdate_livraison') { - print ''; + print ''; print ''; print ''; - $form->select_date($delivery->date_delivery?$delivery->date_delivery:-1,'liv_',1,1,'',"setdate_livraison"); + $form->select_date($object->date_delivery?$object->date_delivery:-1,'liv_',1,1,'',"setdate_livraison"); print ''; print '
'; } else { - print $delivery->date_delivery ? dol_print_date($delivery->date_delivery,'dayhourtext') : ' '; + print $object->date_delivery ? dol_print_date($object->date_delivery,'dayhourtext') : ' '; } print ''; print ''; @@ -595,7 +582,7 @@ else // Note Public print ''.$langs->trans("NotePublic").''; print ''; - print nl2br($delivery->note_public); + print nl2br($object->note_public); /*$doleditor = new DolEditor('note_public', $object->note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); print $doleditor->Create(1);*/ print ""; @@ -603,7 +590,7 @@ else // Note Private print ''.$langs->trans("NotePrivate").''; print ''; - print nl2br($delivery->note_private); + print nl2br($object->note_private); /*$doleditor = new DolEditor('note_pprivate', $object->note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); print $doleditor->Create(1);*/ print ""; @@ -611,14 +598,14 @@ else // Statut print ''.$langs->trans("Status").''; - print ''.$delivery->getLibStatut(4)."\n"; + print ''.$object->getLibStatut(4)."\n"; print ''; if (!$conf->expedition_bon->enabled && ! empty($conf->stock->enabled)) { // Entrepot $entrepot = new Entrepot($db); - $entrepot->fetch($delivery->entrepot_id); + $entrepot->fetch($object->entrepot_id); print ''.$langs->trans("Warehouse").''; print ''.$entrepot->libelle.''; print ''; @@ -630,7 +617,7 @@ else * Lignes produits */ - $num_prod = count($delivery->lines); + $num_prod = count($object->lines); $i = 0; $total = 0; print ''; @@ -651,66 +638,65 @@ else $var=!$var; print ""; - if ($delivery->lines[$i]->fk_product > 0) + if ($object->lines[$i]->fk_product > 0) { $product = new Product($db); - $product->fetch($delivery->lines[$i]->fk_product); + $product->fetch($object->lines[$i]->fk_product); // Define output language if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $delivery->fetch_thirdparty(); $outputlangs = $langs; $newlang=''; if (empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; - if (empty($newlang)) $newlang=$delivery->client->default_lang; + if (empty($newlang)) $newlang=$object->client->default_lang; if (! empty($newlang)) { $outputlangs = new Translate("",$conf); $outputlangs->setDefaultLang($newlang); } - $label = (! empty($product->multilangs[$outputlangs->defaultlang]["label"])) ? $product->multilangs[$outputlangs->defaultlang]["label"] : $delivery->lines[$i]->product_label; + $label = (! empty($product->multilangs[$outputlangs->defaultlang]["label"])) ? $product->multilangs[$outputlangs->defaultlang]["label"] : $object->lines[$i]->product_label; } else - $label = ( ! empty($delivery->lines[$i]->label)?$delivery->lines[$i]->label:$delivery->lines[$i]->product_label); + $label = ( ! empty($object->lines[$i]->label)?$object->lines[$i]->label:$object->lines[$i]->product_label); print '\n"; } - print ''; - print ''; + print ''; + print ''; print ""; @@ -730,20 +716,20 @@ else { print '
'; - if ($delivery->statut == 0 && $user->rights->expedition->livraison->valider && $num_prod > 0) + if ($object->statut == 0 && $user->rights->expedition->livraison->valider && $num_prod > 0) { - print ''.$langs->trans("Validate").''; + print ''.$langs->trans("Validate").''; } if ($user->rights->expedition->livraison->supprimer) { if ($conf->expedition_bon->enabled) { - print ''.$langs->trans("Delete").''; + print ''.$langs->trans("Delete").''; } else { - print ''.$langs->trans("Delete").''; + print ''.$langs->trans("Delete").''; } } @@ -757,22 +743,22 @@ else * Documents generated */ - $deliveryref = dol_sanitizeFileName($delivery->ref); - $filedir = $conf->expedition->dir_output . "/receipt/" . $deliveryref; - $urlsource = $_SERVER["PHP_SELF"]."?id=".$delivery->id; + $objectref = dol_sanitizeFileName($object->ref); + $filedir = $conf->expedition->dir_output . "/receipt/" . $objectref; + $urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id; $genallowed=$user->rights->expedition->livraison->creer; $delallowed=$user->rights->expedition->livraison->supprimer; - $somethingshown=$formfile->show_documents('livraison',$deliveryref,$filedir,$urlsource,$genallowed,$delallowed,$delivery->modelpdf,1,0,0,28,0,'','','',$soc->default_lang); + $somethingshown=$formfile->show_documents('livraison',$objectref,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'','','',$soc->default_lang); /* * Linked object block (of linked shipment) */ - if ($delivery->origin == 'expedition') + if ($object->origin == 'expedition') { $shipment = new Expedition($db); - $shipment->fetch($delivery->origin_id); + $shipment->fetch($object->origin_id); $somethingshown=$shipment->showLinkedObjectBlock(); } From 1541be879039f013748e65e6d34721e80b53ff3c Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 2 Oct 2014 08:40:51 +0200 Subject: [PATCH 2/5] FIXME $key is not defined (strict mode) --- htdocs/core/modules/modProduct.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 87dbc3e6dde..5a2053f85ff 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -210,7 +210,8 @@ class modProduct extends DolibarrModules { // Exports product multiprice $r++; - $this->export_code[$r]=$this->rights_class.'_'.$key; + //$this->export_code[$r]=$this->rights_class.'_'.$key; // FIXME $key is not defined + $this->export_code[$r]=$this->rights_class; $this->export_label[$r]="ProductsMultiPrice"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("produit","export")); $this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref", From 2425fdfadd6bd93dedff94e21d5979c01d81ee98 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 2 Oct 2014 08:44:49 +0200 Subject: [PATCH 3/5] FIXME $socid is not defined (strict mode) --- htdocs/compta/hrm.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/hrm.php b/htdocs/compta/hrm.php index cd2d2b60f7e..c0b2afd38c8 100644 --- a/htdocs/compta/hrm.php +++ b/htdocs/compta/hrm.php @@ -1,7 +1,7 @@ - * Copyright (C) 2013-2014 Laurent Destailleur - * Copyright (C) 2012 Regis Houssin +/* Copyright (C) 2011 Dimitri Mouillard + * Copyright (C) 2013-2014 Laurent Destailleur + * Copyright (C) 2012-2014 Regis Houssin * * 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 @@ -117,7 +117,7 @@ if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAI $sql.= " WHERE u.rowid = d.fk_user"; $sql.= " AND d.entity = ".$conf->entity; if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND d.fk_soc = s. rowid AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; -if ($socid) $sql.= " AND d.fk_soc = ".$socid; +if (!empty($socid)) $sql.= " AND d.fk_soc = ".$socid; // FIXME $socid is not defined $sql.= $db->order("d.tms","DESC"); $sql.= $db->plimit($max, 0); From 30221ae8cfa4361181f5badcb2c5903063989ff8 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 2 Oct 2014 09:00:40 +0200 Subject: [PATCH 4/5] Fix: missing fields --- htdocs/fourn/class/fournisseur.product.class.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index bbb6dbdb33a..eff9e7e4275 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -1,9 +1,9 @@ * Copyright (C) 2006-2011 Laurent Destailleur - * Copyright (C) 2009-2012 Regis Houssin + * Copyright (C) 2009-2014 Regis Houssin * Copyright (C) 2011 Juanjo Menent - * Copyright (C) 2012 Christophe Battarel + * Copyright (C) 2012 Christophe Battarel * * 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 @@ -205,7 +205,7 @@ class ProductFournisseur extends Product { // Call trigger $result=$this->call_trigger('SUPPLIER_PRODUCT_BUYPRICE_UPDATE',$user); - if ($result < 0) $error++; + if ($result < 0) $error++; // End call triggers if (empty($error)) @@ -281,13 +281,13 @@ class ProductFournisseur extends Product $error++; } } - + if (! $error) { // Call trigger $result=$this->call_trigger('SUPPLIER_PRODUCT_BUYPRICE_CREATE',$user); - if ($result < 0) $error++; + if ($result < 0) $error++; // End call triggers if (empty($error)) @@ -468,6 +468,7 @@ class ProductFournisseur extends Product $sql = "SELECT s.nom as supplier_name, s.rowid as fourn_id,"; $sql.= " pfp.rowid as product_fourn_price_id, pfp.ref_fourn,"; $sql.= " pfp.price, pfp.quantity, pfp.unitprice, pfp.tva_tx, pfp.charges, pfp.unitcharges"; + $sql.= " pfp.remise, pfp.remise_percent"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."product_fournisseur_price as pfp"; $sql.= " WHERE s.entity IN (".getEntity('societe', 1).")"; $sql.= " AND pfp.fk_product = ".$prodid; From 4248c7bed26b809bc980789df43b065edcafbc0e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 2 Oct 2014 09:30:31 +0200 Subject: [PATCH 5/5] Fix: strict mode paradise --- htdocs/categories/card.php | 15 +++--- htdocs/product/card.php | 28 +++++----- htdocs/product/class/product.class.php | 24 ++++----- htdocs/product/index.php | 11 ++-- htdocs/product/stock/card.php | 65 ++++++++++++------------ htdocs/product/stock/list.php | 8 +-- htdocs/product/stock/massstockmove.php | 7 ++- htdocs/product/stock/mouvement.php | 10 ++-- htdocs/product/stock/replenish.php | 12 +++-- htdocs/product/stock/replenishorders.php | 8 +-- 10 files changed, 99 insertions(+), 89 deletions(-) diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php index 3b5fa5d3189..f09a526b327 100644 --- a/htdocs/categories/card.php +++ b/htdocs/categories/card.php @@ -1,9 +1,9 @@ - * Copyright (C) 2006-2011 Laurent Destailleur - * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2007 Patrick Raguin - * Copyright (C) 2013 Florian Henry +/* Copyright (C) 2005 Matthieu Valleton + * Copyright (C) 2006-2011 Laurent Destailleur + * Copyright (C) 2005-2014 Regis Houssin + * Copyright (C) 2007 Patrick Raguin + * Copyright (C) 2013 Florian Henry * * 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 @@ -116,7 +116,7 @@ if ($action == 'add' && $user->rights->categorie->creer) } } - + $object->label = $label; $object->description = dol_htmlcleanlastbr($description); @@ -125,7 +125,7 @@ if ($action == 'add' && $user->rights->categorie->creer) $object->type = $type; if ($parent != "-1") $object->fk_parent = $parent; - + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); if (! $object->label) @@ -243,6 +243,7 @@ if ($user->rights->categorie->creer) print $form->select_all_categories($type, $catorigin); print ''; + $parameters=array(); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook if (empty($reshook)) { diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 28b0db5efe9..856d4a477fb 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -1,16 +1,16 @@ - * Copyright (C) 2004-2014 Laurent Destailleur - * Copyright (C) 2005 Eric Seigne - * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2006 Auguria SARL - * Copyright (C) 2010-2014 Juanjo Menent - * Copyright (C) 2013-2014 Marcos García - * Copyright (C) 2013 Cédric Salvador - * Copyright (C) 2011-2014 Alexandre Spangaro - * Copyright (C) 2014 Cédric Gross - * Copyright (C) 2014 Ferran Marcet +/* Copyright (C) 2001-2007 Rodolphe Quiedeville + * Copyright (C) 2004-2014 Laurent Destailleur + * Copyright (C) 2005 Eric Seigne + * Copyright (C) 2005-2014 Regis Houssin + * Copyright (C) 2006 Andre Cianfarani + * Copyright (C) 2006 Auguria SARL + * Copyright (C) 2010-2014 Juanjo Menent + * Copyright (C) 2013-2014 Marcos García + * Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2011-2014 Alexandre Spangaro + * Copyright (C) 2014 Cédric Gross + * Copyright (C) 2014 Ferran Marcet * * 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 @@ -48,7 +48,7 @@ $langs->load("products"); $langs->load("other"); if (! empty($conf->stock->enabled)) $langs->load("stocks"); if (! empty($conf->facture->enabled)) $langs->load("bills"); -if ($conf->productbatch->enabled) $langs->load("productbatch"); +if (! empty($conf->productbatch->enabled)) $langs->load("productbatch"); $mesg=''; $error=0; $errors=array(); $_error=0; @@ -863,7 +863,7 @@ else print ''; // Batch number management - if ($conf->productbatch->enabled) + if (! empty($conf->productbatch->enabled)) { print '
'; // Affiche ligne produit - $text = ''; - if ($delivery->lines[$i]->fk_product_type==1) $text.= img_object($langs->trans('ShowService'),'service'); + $text = ''; + if ($object->lines[$i]->fk_product_type==1) $text.= img_object($langs->trans('ShowService'),'service'); else $text.= img_object($langs->trans('ShowProduct'),'product'); - $text.= ' '.$delivery->lines[$i]->product_ref.''; + $text.= ' '.$object->lines[$i]->product_ref.''; $text.= ' - '.$label; - $description=(! empty($conf->global->PRODUIT_DESC_IN_FORM)?'':dol_htmlentitiesbr($delivery->lines[$i]->description)); + $description=(! empty($conf->global->PRODUIT_DESC_IN_FORM)?'':dol_htmlentitiesbr($object->lines[$i]->description)); //print $description; print $form->textwithtooltip($text,$description,3,'','',$i); - print_date_range($delivery->lines[$i]->date_start,$delivery->lines[$i]->date_end); + print_date_range($object->lines[$i]->date_start,$object->lines[$i]->date_end); if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) { - print (! empty($delivery->lines[$i]->description) && $delivery->lines[$i]->description!=$delivery->lines[$i]->product_label)?'
'.dol_htmlentitiesbr($delivery->lines[$i]->description):''; + print (! empty($object->lines[$i]->description) && $object->lines[$i]->description!=$object->lines[$i]->product_label)?'
'.dol_htmlentitiesbr($object->lines[$i]->description):''; } } else { print "
"; - if ($delivery->lines[$i]->fk_product_type==1) $text = img_object($langs->trans('Service'),'service'); + if ($object->lines[$i]->fk_product_type==1) $text = img_object($langs->trans('Service'),'service'); else $text = img_object($langs->trans('Product'),'product'); - if (! empty($delivery->lines[$i]->label)) { - $text.= ' '.$delivery->lines[$i]->label.''; - print $form->textwithtooltip($text,$delivery->lines[$i]->description,3,'','',$i); + if (! empty($object->lines[$i]->label)) { + $text.= ' '.$object->lines[$i]->label.''; + print $form->textwithtooltip($text,$object->lines[$i]->description,3,'','',$i); } else { - print $text.' '.nl2br($delivery->lines[$i]->description); + print $text.' '.nl2br($object->lines[$i]->description); } print_date_range($objp->date_start,$objp->date_end); print "'.$delivery->lines[$i]->qty_asked.''.$delivery->lines[$i]->qty_shipped.''.$object->lines[$i]->qty_asked.''.$object->lines[$i]->qty_shipped.'
'.$langs->trans("Status").' ('.$langs->trans("Batch").')'; $statutarray=array('0' => $langs->trans("ProductStatusNotOnBatch"), '1' => $langs->trans("ProductStatusOnBatch")); diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 13a6d1dfa41..e78daeba631 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -1,15 +1,15 @@ - * Copyright (C) 2004-2014 Laurent Destailleur - * Copyright (C) 2005-2013 Regis Houssin - * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2007-2011 Jean Heimburger - * Copyright (C) 2010-2013 Juanjo Menent - * Copyright (C) 2013-2014 Cedric GROSS - * Copyright (C) 2013-2014 Marcos García - * Copyright (C) 2011-2014 Alexandre Spangaro - * Copyright (C) 2014 Henry Florian - * Copyright (C) 2014 Philippe Grand +/* Copyright (C) 2001-2007 Rodolphe Quiedeville + * Copyright (C) 2004-2014 Laurent Destailleur + * Copyright (C) 2005-2014 Regis Houssin + * Copyright (C) 2006 Andre Cianfarani + * Copyright (C) 2007-2011 Jean Heimburger + * Copyright (C) 2010-2013 Juanjo Menent + * Copyright (C) 2013-2014 Cedric GROSS + * Copyright (C) 2013-2014 Marcos García + * Copyright (C) 2011-2014 Alexandre Spangaro + * Copyright (C) 2014 Henry Florian + * Copyright (C) 2014 Philippe Grand * * 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 @@ -2856,7 +2856,7 @@ class Product extends CommonObject { global $langs; $langs->load('products'); - if ($conf->productbatch->enabled) $langs->load("productbatch"); + if (!empty($conf->productbatch->enabled)) $langs->load("productbatch"); if ($type == 2) { diff --git a/htdocs/product/index.php b/htdocs/product/index.php index fb2830e9e57..3e18cc5d042 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -1,8 +1,8 @@ - * Copyright (C) 2004-2011 Laurent Destailleur - * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2014 Charles-Fr BENKE +/* Copyright (C) 2001-2006 Rodolphe Quiedeville + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2005-2014 Regis Houssin + * Copyright (C) 2014 Charles-Fr BENKE * * 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 @@ -367,7 +367,8 @@ function activitytrim($product_type) $result = $db->query($sql); if ($result) { - $tmpyear=$beginyear; + //$tmpyear=$beginyear; // FIXME $beginyear is not defined + $tmpyear=0; $trim1=0; $trim2=0; $trim3=0; diff --git a/htdocs/product/stock/card.php b/htdocs/product/stock/card.php index 01d5516a480..b95fe58d752 100644 --- a/htdocs/product/stock/card.php +++ b/htdocs/product/stock/card.php @@ -1,8 +1,8 @@ - * Copyright (C) 2004-2011 Laurent Destailleur - * Copyright (C) 2005 Simon Tosser - * Copyright (C) 2005-2009 Regis Houssin +/* Copyright (C) 2003-2006 Rodolphe Quiedeville + * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2005 Simon Tosser + * Copyright (C) 2005-2014 Regis Houssin * * 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 @@ -36,6 +36,8 @@ $langs->load("stocks"); $langs->load("companies"); $action=GETPOST('action'); +$cancel=GETPOST('cancel'); +$confirm=GETPOST('confirm'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); @@ -59,17 +61,17 @@ if ($action == 'add' && $user->rights->stock->creer) { $object = new Entrepot($db); - $object->ref = $_POST["ref"]; - $object->libelle = $_POST["libelle"]; - $object->description = $_POST["desc"]; - $object->statut = $_POST["statut"]; - $object->lieu = $_POST["lieu"]; - $object->address = $_POST["address"]; - $object->zip = $_POST["zipcode"]; - $object->town = $_POST["town"]; - $object->country_id = $_POST["country_id"]; + $object->ref = GETPOST("ref"); + $object->libelle = GETPOST("libelle"); + $object->description = GETPOST("desc"); + $object->statut = GETPOST("statut"); + $object->lieu = GETPOST("lieu"); + $object->address = GETPOST("address"); + $object->zip = GETPOST("zipcode"); + $object->town = GETPOST("town"); + $object->country_id = GETPOST("country_id"); - if ($object->libelle) { + if (! empty($object->libelle)) { $id = $object->create($user); if ($id > 0) { @@ -87,7 +89,7 @@ if ($action == 'add' && $user->rights->stock->creer) } // Delete warehouse -if ($action == 'confirm_delete' && $_REQUEST["confirm"] == 'yes' && $user->rights->stock->supprimer) +if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->stock->supprimer) { $object = new Entrepot($db); $object->fetch($_REQUEST["id"]); @@ -105,19 +107,19 @@ if ($action == 'confirm_delete' && $_REQUEST["confirm"] == 'yes' && $user->right } // Modification entrepot -if ($action == 'update' && $_POST["cancel"] <> $langs->trans("Cancel")) +if ($action == 'update' && $cancel <> $langs->trans("Cancel")) { $object = new Entrepot($db); if ($object->fetch($id)) { - $object->libelle = $_POST["libelle"]; - $object->description = $_POST["desc"]; - $object->statut = $_POST["statut"]; - $object->lieu = $_POST["lieu"]; - $object->address = $_POST["address"]; - $object->zip = $_POST["zipcode"]; - $object->town = $_POST["town"]; - $object->country_id = $_POST["country_id"]; + $object->libelle = GETPOST("libelle"); + $object->description = GETPOST("desc"); + $object->statut = GETPOST("statut"); + $object->lieu = GETPOST("lieu"); + $object->address = GETPOST("address"); + $object->zip = GETPOST("zipcode"); + $object->town = GETPOST("town"); + $object->country_id = GETPOST("country_id"); if ( $object->update($id, $user) > 0) { @@ -136,7 +138,7 @@ if ($action == 'update' && $_POST["cancel"] <> $langs->trans("Cancel")) } } -if ($_POST["cancel"] == $langs->trans("Cancel")) +if ($cancel == $langs->trans("Cancel")) { $action = ''; } @@ -162,37 +164,36 @@ if ($action == 'create') print "
\n"; print ''; print ''; - print ''."\n"; print ''; // Ref print ''; - print ''; + print ''; // Description print ''; print ''; // Zip / Town print ''; // Country print ''; diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php index 0d7b3c60c23..85fb7c1896d 100644 --- a/htdocs/product/stock/list.php +++ b/htdocs/product/stock/list.php @@ -1,7 +1,7 @@ - * Copyright (C) 2004-2014 Laurent Destailleur - * Copyright (C) 2005-2009 Regis Houssin +/* Copyright (C) 2001-2004 Rodolphe Quiedeville + * Copyright (C) 2004-2014 Laurent Destailleur + * Copyright (C) 2005-2014 Regis Houssin * * 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 @@ -39,7 +39,7 @@ $sortfield = GETPOST("sortfield"); $sortorder = GETPOST("sortorder"); if (! $sortfield) $sortfield="e.label"; if (! $sortorder) $sortorder="ASC"; -$page = $_GET["page"]; +$page = GETPOST("page"); if ($page < 0) $page = 0; $limit = $conf->liste_limit; $offset = $limit * $page; diff --git a/htdocs/product/stock/massstockmove.php b/htdocs/product/stock/massstockmove.php index 87fec698274..8a0b7297e2f 100644 --- a/htdocs/product/stock/massstockmove.php +++ b/htdocs/product/stock/massstockmove.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2013 Laurent Destaileur + * Copyright (C) 2014 Regis Houssin * * 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 @@ -228,7 +229,7 @@ $warehousestatict = new Entrepot($db); $title = $langs->trans('MassMovement'); -llxHeader('', $title, $helpurl, ''); +llxHeader('', $title); print_fiche_titre($langs->trans("MassStockMovement")).'

'; @@ -249,6 +250,8 @@ print ''; print '
'.$langs->trans("Ref").'
'.$langs->trans("LocationSummary").'
'.$langs->trans("LocationSummary").'
'.$langs->trans("Description").''; // Editeur wysiwyg require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor('desc',$object->description,'',180,'dolibarr_notes','In',false,true,$conf->fckeditor->enabled,5,70); + $doleditor=new DolEditor('desc',(!empty($object->description)?$object->description:''),'',180,'dolibarr_notes','In',false,true,$conf->fckeditor->enabled,5,70); $doleditor->Create(); print '
'.$langs->trans('Address').'
'.$langs->trans('Zip').''; - print $formcompany->select_ziptown($object->zip,'zipcode',array('town','selectcountry_id','state_id'),6); + print $formcompany->select_ziptown((!empty($object->zip)?$object->zip:''),'zipcode',array('town','selectcountry_id','state_id'),6); print ''.$langs->trans('Town').''; - print $formcompany->select_ziptown($object->town,'town',array('zipcode','selectcountry_id','state_id')); + print $formcompany->select_ziptown((!empty($object->town)?$object->town:''),'town',array('zipcode','selectcountry_id','state_id')); print '
'.$langs->trans('Country').''; - print $form->select_country($object->country_id?$object->country_id:$mysoc->country_code,'country_id'); + print $form->select_country((!empty($object->country_id)?$object->country_id:$mysoc->country_code),'country_id'); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); print '
'; //print '
'; +$param=''; + print '
'; print getTitleFieldOfList($langs->trans('ProductRef'),0,$_SERVER["PHP_SELF"],'',$param,'','class="tagtd"',$sortfield,$sortorder); print getTitleFieldOfList($langs->trans('WarehouseSource'),0,$_SERVER["PHP_SELF"],'',$param,'','class="tagtd"',$sortfield,$sortorder); diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index 2feeee7aa2d..50b46c7003f 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -1,7 +1,7 @@ - * Copyright (C) 2004-2013 Laurent Destailleur - * Copyright (C) 2005-2009 Regis Houssin +/* Copyright (C) 2001-2006 Rodolphe Quiedeville + * Copyright (C) 2004-2013 Laurent Destailleur + * Copyright (C) 2005-2014 Regis Houssin * * 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 @@ -406,8 +406,8 @@ if ($resql) if ($search_product_ref) $param.='&search_product_ref='.urlencode($search_product_ref); if ($search_product) $param.='&search_product='.urlencode($search_product); if ($search_warehouse) $param.='&search_warehouse='.urlencode($search_warehouse); - if ($sref) $param.='&sref='.urlencode($sref); - if ($snom) $param.='&snom='.urlencode($snom); + if (!empty($sref)) $param.='&sref='.urlencode($sref); // FIXME $sref is not defined + if (!empty($snom)) $param.='&snom='.urlencode($snom); // FIXME $snom is not defined if ($search_user) $param.='&search_user='.urlencode($search_user); if ($idproduct > 0) $param.='&idproduct='.$idproduct; if ($id) print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num,0,''); diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index 04a1cf32e60..6482413a6a7 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -1,6 +1,7 @@ - * Copyright (C) 2013-2014 Laurent Destaileur +/* Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2013-2014 Laurent Destaileur + * Copyright (C) 2014 Regis Houssin * * 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 @@ -50,6 +51,9 @@ $tobuy = GETPOST('tobuy', 'int'); $salert = GETPOST('salert', 'alpha'); $mode = GETPOST('mode','alpha'); +$fourn_id = GETPOST('mode','int'); // FIXME $fourn_id is not defined +$texte = ''; // FIXME $texte is not defined + $sortfield = GETPOST('sortfield','alpha'); $sortorder = GETPOST('sortorder','alpha'); $page = GETPOST('page','int'); @@ -197,7 +201,7 @@ if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global $usevirtualstock=-1; if ($virtualdiffersfromphysical) { - $usevirtualstock=($conf->global->STOCK_USE_VIRTUAL_STOCK?1:0); + $usevirtualstock=(! empty($conf->global->STOCK_USE_VIRTUAL_STOCK)?1:0); if ($mode=='virtual') $usevirtualstock=1; if ($mode=='physical') $usevirtualstock=0; } @@ -426,7 +430,7 @@ print ''. if (!empty($conf->service->enabled) && $type == 1) print ''; print ''. ''. - ''. + ''. ''. ''. '
   ' . $langs->trans('AlertOnly') . ' ' . $langs->trans('AlertOnly') . '   '. diff --git a/htdocs/product/stock/replenishorders.php b/htdocs/product/stock/replenishorders.php index d0b0d5d4f53..07aa68a7a98 100644 --- a/htdocs/product/stock/replenishorders.php +++ b/htdocs/product/stock/replenishorders.php @@ -1,6 +1,7 @@ + * Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2014 Regis Houssin * * 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 @@ -44,8 +45,7 @@ $result=restrictedArea($user,'produit|service'); * View */ -$helpurl = 'EN:Module_Stocks_En|FR:Module_Stock|'; -$helpurl .= 'ES:Módulo_Stocks'; +$helpurl = 'EN:Module_Stocks_En|FR:Module_Stock|ES:Módulo_Stocks'; $texte = $langs->trans('ReplenishmentOrders'); llxHeader('', $texte, $helpurl, ''); @@ -132,7 +132,7 @@ if ($sall) { $sql .= ' AND (cf.ref LIKE "%' . $db->escape($sall) . '%" '; $sql .= 'OR cf.note LIKE "%' . $db->escape($sall) . '%")'; } -if ($socid) { +if (!empty($socid)) { $sql .= ' AND s.rowid = ' . $socid; }