diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index c917372c262cf5cbbe8305ecefa510889404b576..d0dd82a565a89154010a46b520aa52fb37a1875a 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -48,7 +48,7 @@ $active = 1; // Mettre ici tous les caract�ristiques des dictionnaires // Ordres d'affichage des dictionnaires (0 pour espace) -$taborder=array(9,0,4,3,2,0,1,8,16,0,5,11,0,6,0,10,12,13,0,14,0,7,17,0,15); +$taborder=array(9,0,4,3,2,0,1,8,16,0,5,11,0,6,0,10,12,13,0,14,0,7,17,0,18,0,15); // Nom des tables des dictionnaires $tabname[1] = MAIN_DB_PREFIX."c_forme_juridique"; @@ -68,8 +68,9 @@ $tabname[14]= MAIN_DB_PREFIX."c_ecotaxe"; $tabname[15]= MAIN_DB_PREFIX."c_paper_format"; $tabname[16]= MAIN_DB_PREFIX."c_prospectlevel"; $tabname[17]= MAIN_DB_PREFIX."c_type_fees"; +$tabname[18]= MAIN_DB_PREFIX."expedition_methode"; -// Libell� des dictionnaires +// Dictionary labels $tablib[1] = $langs->trans("DictionnaryCompanyJuridicalType"); $tablib[2] = $langs->trans("DictionnaryCanton"); $tablib[3] = $langs->trans("DictionnaryRegion"); @@ -87,8 +88,9 @@ $tablib[14]= $langs->trans("DictionnaryEcotaxe"); $tablib[15]= $langs->trans("DictionnaryPaperFormat"); $tablib[16]= $langs->trans("DictionnaryProspectLevel"); $tablib[17]= $langs->trans("DictionnaryFees"); +$tablib[18]= $langs->trans("DictionnarySendingMethods"); -// Requete pour extraction des donn�es des dictionnaires +// Requete pour extraction des donnees des dictionnaires $tabsql[1] = "SELECT f.rowid as rowid, f.code, f.libelle, p.libelle as pays, f.active FROM ".MAIN_DB_PREFIX."c_forme_juridique as f, ".MAIN_DB_PREFIX."c_pays as p WHERE f.fk_pays=p.rowid"; $tabsql[2] = "SELECT d.rowid as rowid, d.code_departement as code , d.nom as libelle, d.fk_region as region_id, r.nom as region, p.libelle as pays, d.active FROM ".MAIN_DB_PREFIX."c_departements as d, ".MAIN_DB_PREFIX."c_regions as r, ".MAIN_DB_PREFIX."c_pays as p WHERE d.fk_region=r.code_region and r.fk_pays=p.rowid and r.active=1 and p.active=1"; $tabsql[3] = "SELECT r.rowid as rowid, code_region as code , nom as libelle, r.fk_pays as pays_id, p.libelle as pays, r.active FROM ".MAIN_DB_PREFIX."c_regions as r, ".MAIN_DB_PREFIX."c_pays as p WHERE r.fk_pays=p.rowid and p.active=1"; @@ -106,6 +108,7 @@ $tabsql[14]= "SELECT e.rowid as rowid, e.code as code, e.libelle, e.price, e.org $tabsql[15]= "SELECT rowid as rowid, code, label as libelle, width, height, unit, active FROM ".MAIN_DB_PREFIX."c_paper_format"; $tabsql[16]= "SELECT code, label as libelle, active FROM ".MAIN_DB_PREFIX."c_prospectlevel"; $tabsql[17]= "SELECT id as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_type_fees"; +$tabsql[18]= "SELECT rowid as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."expedition_methode"; // Critere de tri du dictionnaire $tabsqlsort[1] ="pays, code ASC"; @@ -125,6 +128,7 @@ $tabsqlsort[14]="pays, e.organization ASC, code ASC"; $tabsqlsort[15]="rowid ASC"; $tabsqlsort[16]="sortorder ASC"; $tabsqlsort[17]="code ASC"; +$tabsqlsort[18]="code ASC, libelle ASC"; // Nom des champs en resultat de select pour affichage du dictionnaire $tabfield[1] = "code,libelle,pays"; @@ -144,6 +148,7 @@ $tabfield[14]= "code,libelle,price,organization,pays_id,pays"; $tabfield[15]= "code,libelle,width,height,unit"; $tabfield[16]= "code,libelle"; $tabfield[17]= "code,libelle"; +$tabfield[18]= "code,libelle"; // Nom des champs d'edition pour modification du dictionnaire $tabfieldvalue[1] = "code,libelle,pays"; @@ -163,6 +168,7 @@ $tabfieldvalue[14]= "code,libelle,price,organization,pays"; $tabfieldvalue[15]= "code,libelle,width,height,unit"; $tabfieldvalue[16]= "code,libelle"; $tabfieldvalue[17]= "code,libelle"; +$tabfieldvalue[18]= "code,libelle"; // Nom des champs dans la table pour insertion d'un enregistrement $tabfieldinsert[1] = "code,libelle,fk_pays"; @@ -182,8 +188,9 @@ $tabfieldinsert[14]= "code,libelle,price,organization,fk_pays"; $tabfieldinsert[15]= "code,label,width,height,unit"; $tabfieldinsert[16]= "code,label"; $tabfieldinsert[17]= "code,libelle"; +$tabfieldinsert[18]= "code,libelle"; -// Nom du rowid si le champ n'est pas de type autoincr�ment +// Nom du rowid si le champ n'est pas de type autoincrement $tabrowid[1] = ""; $tabrowid[2] = ""; $tabrowid[3] = ""; @@ -201,6 +208,7 @@ $tabrowid[14]= ""; $tabrowid[15]= ""; $tabrowid[16]= "code"; $tabrowid[17]= "id"; +$tabrowid[18]= "rowid"; // Condition to show dictionnary in setup page $tabcond[1] = true; @@ -220,6 +228,7 @@ $tabcond[14]= $conf->produit->enabled&&$conf->global->PRODUIT_USE_ECOTAXE; $tabcond[15]= true; $tabcond[16]= $conf->societe->enabled; $tabcond[17]= $conf->deplacement->enabled; +$tabcond[18]= $conf->expedition->enabled; $msg=''; @@ -542,6 +551,7 @@ if ($_GET["id"]) } // Affiche table des valeurs + dolibarr_syslog("htdocs/admin/dict sql=".$sql, LOG_DEBUG); $resql=$db->query($sql); if ($resql) { diff --git a/htdocs/expedition/expedition.class.php b/htdocs/expedition/expedition.class.php index 57732d7fe8e996aeee29aecd3e8a62d0b1c7b2f9..5b789cbd5bc4c18a140aa14dffb0f9d962c8f4c2 100644 --- a/htdocs/expedition/expedition.class.php +++ b/htdocs/expedition/expedition.class.php @@ -762,7 +762,7 @@ class Expedition extends CommonObject $sql = "SELECT em.rowid, em.libelle"; $sql.= " FROM ".MAIN_DB_PREFIX."expedition_methode as em"; - $sql.= " WHERE em.statut = 1 ORDER BY em.libelle ASC"; + $sql.= " WHERE em.active = 1 ORDER BY em.libelle ASC"; $resql = $this->db->query($sql); if ($resql) diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php index a50074ff9377fd028763a5e891b1f75c7257d786..6fd4b54c7d2c77304f07dac5aca9d7afd4a53393 100644 --- a/htdocs/expedition/fiche.php +++ b/htdocs/expedition/fiche.php @@ -370,6 +370,8 @@ if ($_GET["action"] == 'create') $ligne = $object->lignes[$indiceAsked]; $var=!$var; print "<tr ".$bc[$var].">\n"; + + // Desc if ($ligne->fk_product > 0) { $product->fetch($ligne->fk_product); @@ -384,9 +386,11 @@ if ($_GET["action"] == 'create') print "<td>".nl2br($ligne->desc)."</td>\n"; } + // Qty print '<td align="center">'.$ligne->qty.'</td>'; $qtyProdCom=$ligne->qty; + // Sendings print '<td align="center">'; $quantityDelivered = $object->expeditions[$ligne->id]; print $quantityDelivered; @@ -415,7 +419,8 @@ if ($_GET["action"] == 'create') // Stock if ($_GET["entrepot_id"]) { - print '<td align="right">'.$stock; + print '<td align="right">'; + print $stock; if ($stock < $quantityToBeDelivered) { print ' '.img_warning($langs->trans("StockTooLow")); @@ -468,7 +473,7 @@ if ($_GET["action"] == 'create') print "</tr>\n"; - // associations sous produits + // Show subproducts of product if ($ligne->fk_product > 0) { $product->get_sousproduits_arbo (); @@ -485,10 +490,6 @@ if ($_GET["action"] == 'create') $indiceAsked++; } - /* - * - */ - print '<tr><td align="center" colspan="5"><br><input type="submit" class="button" value="'.$langs->trans("Create").'"></td></tr>'; print "</table>"; print '</form>'; diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index 5561e0f63bb84dffc860c4e237443351029ec83b..b527aa78e20a3579520657e3fd2ed75a7a3a97d5 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -2384,33 +2384,36 @@ class Form print '<option value="-1"'.($id==-1?' selected="true"':'').'> </option>'."\n"; } - while (list($key, $value) = each ($array)) + if (is_array($array)) { - print '<option value="'.($value_as_key?$value:$key).'"'; - // Si il faut pr�-s�lectionner une valeur - if ($id != '' && ($id == $key || $id == $value)) + while (list($key, $value) = each ($array)) { - print ' selected="true"'; - } - - print '>'; - - if ($key_in_label) - { - $newval=($translate?$langs->trans($value):$value); - $selectOptionValue = $key.' - '.($maxlen?dolibarr_trunc($newval,$maxlen):$newval); - print $selectOptionValue; - } - else - { - $newval=($translate?$langs->trans($value):$value); - $selectOptionValue = ($maxlen?dolibarr_trunc($newval,$maxlen):$newval); - if ($value == '' || $value == '-') { $selectOptionValue=' '; } - print $selectOptionValue; + print '<option value="'.($value_as_key?$value:$key).'"'; + // Si il faut pr�-s�lectionner une valeur + if ($id != '' && ($id == $key || $id == $value)) + { + print ' selected="true"'; + } + + print '>'; + + if ($key_in_label) + { + $newval=($translate?$langs->trans($value):$value); + $selectOptionValue = $key.' - '.($maxlen?dolibarr_trunc($newval,$maxlen):$newval); + print $selectOptionValue; + } + else + { + $newval=($translate?$langs->trans($value):$value); + $selectOptionValue = ($maxlen?dolibarr_trunc($newval,$maxlen):$newval); + if ($value == '' || $value == '-') { $selectOptionValue=' '; } + print $selectOptionValue; + } + print "</option>\n"; } - print "</option>\n"; } - + print "</select>"; } diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index c1052435514b85f2d9cbaf06a2ef7c31f1477eaa..4490af700a178ee82018d1e204c42dcfdcb30fb8 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -475,6 +475,7 @@ DictionnaryTypeContact=Contact types DictionnaryEcotaxe=Ecotax (WEEE) DictionnaryPaperFormat=Paper formats DictionnaryFees=Type of fees +DictionnarySendingMethods=Sendings methods SetupSaved=Setup saved BackToModuleList=Back to modules list BackToDictionnaryList=Back to dictionaries list diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index e5a8cf3eb0f13115c6447f639257d08d4fade909..6333ca7427bba0bc2bdfd77f6e345fd6b3e1ff7d 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -42,11 +42,11 @@ QtyDispatched=Quantity dispatched OrderDispatch=Order dispatching RuleForStockManagementDecrease=Rule for stock management decrease RuleForStockManagementIncrease=Rule for stock management increase -DeStockOnBill=Decrease real stocks on invoices/credit notes (warning, in this version, it's only in warehouse number 1 that stock is modified) -DeStockOnValidateOrder=Decrease real stocks on orders notes (warning, in this version, it's only in warehouse number 1 that stock is modified) -DeStockOnShipment=Decrease real stocks on shipment (recommanded) -ReStockOnBill=Increase real stocks on invoices/credit notes (warning, in this version, it's only in warehouse number 1 that stock is modified) -ReStockOnValidateOrder=Increase real stocks on orders notes (warning, in this version, it's only in warehouse number 1 that stock is modified) +DeStockOnBill=Decrease real stocks on invoices/credit notes validation (warning, in this version, it's only in warehouse number 1 that stock is modified) +DeStockOnValidateOrder=Decrease real stocks on orders notes validation (warning, in this version, it's only in warehouse number 1 that stock is modified) +DeStockOnShipment=Decrease real stocks on shipment validation (recommanded) +ReStockOnBill=Increase real stocks on invoices/credit notes validation (warning, in this version, it's only in warehouse number 1 that stock is modified) +ReStockOnValidateOrder=Increase real stocks on orders notes validation (warning, in this version, it's only in warehouse number 1 that stock is modified) StockDiffPhysicTeoric=Reason for difference stock physical and theorical StockLimitShort=Limit StockLimit=Stock limit for alerts diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index ab25c4de3b5c1c43511bf2b2396a1efb30fe19fb..014286b02c9f0be627ddc1be5627305657739c4b 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -474,6 +474,7 @@ DictionnaryTypeContact=Types de contacts DictionnaryEcotaxe=Barèmes Eco-participation (DEEE) DictionnaryPaperFormat=Format papiers DictionnaryFees=Types de déplacement et notes de frais +DictionnarySendingMethods=Méthodes d'expéditions SetupSaved=Configuration sauvegardée BackToModuleList=Retour liste des modules BackToDictionnaryList=Retour liste des dictionnaires diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index 8480cab1d30a6c79d274dc16bf410af043c1833c..65c37802003919ab3e465d47e9241524c271a21a 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -42,11 +42,11 @@ QtyDispatched=Quantité ventilée OrderDispatch=Ventilation commande RuleForStockManagementDecrease=Règle de gestion des décrémentations de stock RuleForStockManagementIncrease=Règle de gestion des incrémentations de stock -DeStockOnBill=Décrémente les stocks physiques sur les factures/avoirs (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) -DeStockOnValidateOrder=Décrémente les stocks physiques sur les commandes (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) -DeStockOnShipment=Décrémente les stocks physiques sur les expéditions (recommandé) -ReStockOnBill=Incrémente les stocks physiques sur les factures/avoirs (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) -ReStockOnValidateOrder=Incrémente les stocks physiques sur les commandes (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) +DeStockOnBill=Décrémente les stocks physiques sur validation des factures/avoirs (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) +DeStockOnValidateOrder=Décrémente les stocks physiques sur validation des commandes (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) +DeStockOnShipment=Décrémente les stocks physiques sur validation des expéditions (recommandé) +ReStockOnBill=Incrémente les stocks physiques sur validation des factures/avoirs (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) +ReStockOnValidateOrder=Incrémente les stocks physiques sur validation des commandes (attention, dans cette version, c'est toujours dans le premier entrepot numero 1 que se fait l'ajustement) StockDiffPhysicTeoric=Raison écart stock physique-théorique StockLimitShort=Seuil StockLimit=Seuil alerte stock diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index 924069fff60f8d58cf5ad01f81025ef741b41851..9c3550db2c85af0b5969dbf4fc717aa66abe3d7f 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -47,7 +47,7 @@ function ValidEmail($address) if (eregi(".*<(.+)>", $address, $regs)) { $address = $regs[1]; } - if (eregi("^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|coop|aero|biz|com|edu|gov|info|int|mil|name|net|org)\$",$address)) + if (eregi("^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|asso|aero|biz|com|coop|edu|gov|info|int|mil|name|net|org|pro)\$",$address)) { return true; } diff --git a/mysql/data/data.sql b/mysql/data/data.sql index 801a725df3764f811b78070f8b6875d722ab8cab..326297d75af4da04a101b943e3362e0ecd0f68bf 100644 --- a/mysql/data/data.sql +++ b/mysql/data/data.sql @@ -1392,3 +1392,7 @@ INSERT INTO llx_const (name,value,type,visible,note) VALUES ('MAIN_AGENDA_ACTION INSERT INTO llx_const (name,value,type,visible,note) VALUES ('MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE','1','chaine',0,''); INSERT INTO llx_const (name,value,type,visible,note) VALUES ('MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE','1','chaine',0,''); + +INSERT INTO llx_expedition_methode (rowid,code,libelle,description,statut) VALUES (1,'CATCH','Catch','Catch by client',1); +INSERT INTO llx_expedition_methode (rowid,code,libelle,description,statut) VALUES (2,'TRANS','Transporter','Generic transporter',1); +INSERT INTO llx_expedition_methode (rowid,code,libelle,description,statut) VALUES (3,'COLSUI','Colissimo Suivi','Colissimo Suivi',0); diff --git a/mysql/migration/2.4.0-2.5.0.sql b/mysql/migration/2.4.0-2.5.0.sql index 5961c5ddc2e9d1a83ab3549018599a05779c8327..339a9b4627bb905ed19ef5b2ccab2059044aa064 100644 --- a/mysql/migration/2.4.0-2.5.0.sql +++ b/mysql/migration/2.4.0-2.5.0.sql @@ -104,4 +104,9 @@ insert into llx_c_type_contact(rowid, element, source, code, libelle, active ) v alter table llx_product_stock add column pmp double(24,8) default 0 NOT NULL; +alter table llx_expedition_methode change statut active tinyint DEFAULT 1; + +INSERT INTO llx_expedition_methode (rowid,code,libelle,description,active) VALUES (1,'CATCH','Catch','Catch by client',1); +INSERT INTO llx_expedition_methode (rowid,code,libelle,description,active) VALUES (2,'TRANS','Transporter','Generic transporter',1); +INSERT INTO llx_expedition_methode (rowid,code,libelle,description,active) VALUES (3,'COLSUI','Colissimo Suivi','Colissimo Suivi',0);