Add weight and size in sendings

This commit is contained in:
Laurent Destailleur
2008-10-28 21:39:47 +00:00
parent e3ea7caf7d
commit 156cf92cbb
9 changed files with 142 additions and 42 deletions

View File

@@ -89,11 +89,11 @@ class Expedition extends CommonObject
$this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expedition (ref, date_creation, fk_user_author, date_expedition";
$sql.= ", fk_soc, fk_expedition_methode, tracking_number";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expedition (ref, date_creation, fk_user_author, date_expedition,";
$sql.= " fk_soc, fk_expedition_methode, tracking_number, weight, size, width, height, weight_units, size_units";
$sql.= ")";
$sql.= " VALUES ('(PROV)', ".$this->db->idate(mktime()).", $user->id, ".$this->db->idate($this->date_expedition);
$sql.= ", ".$this->socid.",'". $this->expedition_method_id."','". $this->tracking_number."'";
$sql.= " VALUES ('(PROV)', now(), $user->id, ".$this->db->idate($this->date_expedition);
$sql.= ", ".$this->socid.",'". $this->expedition_method_id."','". $this->tracking_number."',".$this->weight.",".$this->sizeS.",".$this->sizeW.",".$this->sizeH.",".$this->weight_units.",".$this->size_units;
$sql.= ")";
$resql=$this->db->query($sql);
@@ -205,6 +205,7 @@ class Expedition extends CommonObject
global $conf;
$sql = "SELECT e.rowid, e.fk_soc as socid, e.date_creation, e.ref, e.fk_user_author, e.fk_statut";
$sql.= ", weight, weight_units, size, size_units, width, height";
$sql.= ", ".$this->db->pdate("e.date_expedition")." as date_expedition, e.model_pdf, e.fk_adresse_livraison";
$sql.= ", e.fk_expedition_methode, e.tracking_number";
if ($conf->commande->enabled)
@@ -250,6 +251,10 @@ class Expedition extends CommonObject
$this->modelpdf = $obj->model_pdf;
$this->expedition_method_id = $obj->fk_expedition_methode;
$this->tracking_number = $obj->tracking_number;
$this->trueWeight = $obj->weight;
$this->weight_units = $obj->weight_units;
$this->trueSize = $obj->size."x".$obj->width."x".$obj->height;
$this->size_units = $obj->size_units;
if ($conf->commande->enabled)
{

View File

@@ -71,9 +71,15 @@ if ($_POST["action"] == 'add')
$expedition->note = $_POST["note"];
$expedition->origin = $origin;
$expedition->origin_id = $origin_id;
$expedition->weight = $_POST["weight"]==""?"NULL":$_POST["weight"];
$expedition->sizeH = $_POST["sizeH"]==""?"NULL":$_POST["sizeH"];
$expedition->sizeW = $_POST["sizeW"]==""?"NULL":$_POST["sizeW"];
$expedition->sizeS = $_POST["sizeS"]==""?"NULL":$_POST["sizeS"];
$expedition->size_units = $_POST["size_units"];
$expedition->weight_units = $_POST["weight_units"];
// On boucle sur chaque ligne du document d'origine pour compl<EFBFBD>ter objet expedition
// avec qt<EFBFBD> <20> livrer
// On boucle sur chaque ligne du document d'origine pour completer objet expedition
// avec qte a livrer
$class = ucfirst($expedition->origin);
$object = new $class($db);
$object->fetch($expedition->origin_id);
@@ -284,6 +290,26 @@ if ($_GET["action"] == 'create')
{
print '<tr><td colspan="3">'.$langs->trans("NotePrivate").': '.nl2br($object->note)."</td></tr>";
}
print "</table>";
print '<table><tr><td>';
print $langs->trans("Weight");
print '</td><td><input name="weight" size="4" value=""></td><td>';
print $html->select_measuring_units("weight_units","weight");
print '</td></tr><tr><td>';
print $langs->trans("width");
print ' </td><td><input name="sizeW" size="4" value=""></td>';
print '<td>&nbsp;</td></tr><tr><td>';
print $langs->trans("height");
print '</td><td><input name="sizeH" size="4" value=""></td><td>';
print $html->select_measuring_units("size_units","size");
print '</td></tr><tr><td>';
print $langs->trans("depth");
print '</td><td><input name="sizeS" size="4" value=""></td>';
print '<td>&nbsp;</td></tr></table>';
print '<table>';
// Delivery method
print "<tr><td>".$langs->trans("DeliveryMethod")."</td>";
@@ -297,6 +323,7 @@ if ($_GET["action"] == 'create')
print '<td colspan="3">';
print '<input name="tracking_number" size="20">';
print "</td></tr>\n";
print "</table>";
/*
@@ -547,17 +574,21 @@ else
print '<br>';
}
// calcul du poids total et du volume total des produits
//TODO: ajouter conversion pour le poids et le volume et selection de l'unit<69> de mesure la plus utilis<69>e
// Calcul du poids total et du volume total des produits
$totalWeight = '';
$totalVolume = '';
for ($i = 0 ; $i < $num_prod ; $i++)
{
$totalWeight += $lignes[$i]->weight*$lignes[$i]->qty_shipped;
$weightUnit = $lignes[$i]->weight_units;
$totalVolume += $lignes[$i]->volume*$lignes[$i]->qty_shipped;
$volumeUnit = $lignes[$i]->volume_units;
$weightUnit=0;
$volumeUnit=0;
if (! empty($lignes[$i]->weight_units)) $weightUnit = $lignes[$i]->weight_units;
$trueWeightUnit=pow(10,$weightUnit);
$totalWeight += $lignes[$i]->weight*$lignes[$i]->qty_shipped*$trueWeightUnit;
if (! empty($lignes[$i]->volume_units)) $volumeUnit = $lignes[$i]->volume_units;
$trueVolumeUnit=pow(10,$volumeUnit);
$totalVolume += $lignes[$i]->volume*$lignes[$i]->qty_shipped*$trueVolumeUnit;
}
$totalVolume=$totalVolume;
print '<table class="border" width="100%">';
@@ -592,7 +623,7 @@ else
}
print '</tr>';
// Ref client
// Ref customer
print '<tr><td>'.$langs->trans("RefCustomer").'</td>';
print '<td colspan="3">'.$object->ref_client."</a></td>\n";
print '</tr>';
@@ -602,14 +633,51 @@ else
print '<td colspan="3">'.dolibarr_print_date($expedition->date,"daytext")."</td>\n";
print '</tr>';
// Poids Total
// Weight
print '<tr><td>'.$langs->trans("TotalWeight").'</td>';
print '<td colspan="3">'.$totalWeight.' '.measuring_units_string($weightUnit,"weight")."</td>\n";
print '</tr>';
print '<td colspan="3">';
if ($expedition->trueWeight)
{
// If sending weigth defined
print $expedition->trueWeight.' '.measuring_units_string($expedition->weight_units,"weight");
}
else
{
// If sending Weight not defined we use sum of products
// TODO Show in best unit
if ($totalWeight > 0) print $totalWeight.' '.measuring_units_string(0,"weight");
else print '&nbsp;';
}
print '</td></tr>';
// Volume Total
print '<tr><td>'.$langs->trans("TotalVolume").'</td>';
print '<td colspan="3">'.$totalVolume.' '.measuring_units_string($volumeUnit,"volume")."</td>\n";
print '<td colspan="3">';
if ($expedition->trueVolume)
{
// If sending volume defined
print $expedition->trueVolume.' '.measuring_units_string($expedition->volumeUnit,"volume");
}
else
{
// If sending volume not defined we use sum of products
// TODO Show in best unit
if ($totalVolume > 0) print $totalVolume.' '.measuring_units_string(0,"volume");
else print '&nbsp;';
}
print "</td>\n";
print '</tr>';
// Taille
print '<tr><td>'.$langs->trans("Size").'</td>';
print '<td colspan="3">';
if ($expedition->trueSize != 'xx' || measuring_units_string($expedition->size_units,"size"))
{
// If sending size defined
print $expedition->trueSize.' '.measuring_units_string($expedition->size_units,"size");
}
else print '&nbsp;';
print "</td>\n";
print '</tr>';
// Status

View File

@@ -76,10 +76,10 @@ WeightUnitg=g
WeightUnitmg=mg
Volume=Volume
TotalVolume=Total volume
VolumeUnitm3=m<SUP>3</SUP>
VolumeUnitdm3=dm<SUP>3</SUP>
VolumeUnitcm3=cm<SUP>3</SUP>
VolumeUnitmm3=mm<SUP>3</SUP>
VolumeUnitm3=m3
VolumeUnitdm3=dm3
VolumeUnitcm3=cm3
VolumeUnitmm3=mm3
BugTracker=Bug tracker
SendNewPasswordDesc=This form allows you to request a new passord. It will be send to your email address.<br>Change will be effective only after clicking on confirmation link inside this email.<br>Check your email reader software.
BackToLoginPage=Back to login page

View File

@@ -77,10 +77,10 @@ WeightUnitg=g
WeightUnitmg=mg
Volume=Volumen
TotalVolume=Volumen total
VolumeUnitm3=m<SUP>3</SUP>
VolumeUnitdm3=dm<SUP>3</SUP>
VolumeUnitcm3=cm<SUP>3</SUP>
VolumeUnitmm3=mm<SUP>3</SUP>
VolumeUnitm3=m3
VolumeUnitdm3=dm3
VolumeUnitcm3=cm3
VolumeUnitmm3=mm3
BugTracker=Bug tracker
SendNewPasswordDesc=Este formulario permite enviar una nueva contrase<73>a. Se enviar<61> al e-mail del usuario<br>La modificaci<63>n de la contrase<73>a no ser<65> efectiva hasta que el usario haga click en el link de confirmaci<63>n incluido en este e-mail.<br>Supervise su correo.
BackToLoginPage=Volver a la p<>gina de conexi<78>n

View File

@@ -78,10 +78,18 @@ WeightUnitg=g
WeightUnitmg=mg
Volume=Volume
TotalVolume=Volume total
VolumeUnitm3=m<SUP>3</SUP>
VolumeUnitdm3=dm<SUP>3</SUP>
VolumeUnitcm3=cm<SUP>3</SUP>
VolumeUnitmm3=mm<SUP>3</SUP>
VolumeUnitm3=m3
VolumeUnitdm3=dm3
VolumeUnitcm3=cm3
VolumeUnitmm3=mm3
height=hauteur
width=largeur
depth=profondeur
size=taille
SizeUnitm=m
SizeUnitdm=dm
SizeUnitcm=cm
SizeUnitmm=mm
BugTracker=Bug tracker
SendNewPasswordDesc=Ce formulaire permet d'envoyer un nouveau mot de passe. Il sera envoy<6F> <20> l'adresse email de votre user.<br>La modification du mot de passe ne sera effective qu'apr<70>s clic par le destinataire du lien de confirmation inclut dans ce mail.<br>Surveillez votre messagerie.
BackToLoginPage=Retour page de connexion

View File

@@ -75,10 +75,10 @@ WeightUnitg =g
WeightUnitmg =mg
Volume =Volume
TotalVolume =Volume totale
VolumeUnitm3 =m<sup>3</ SUP>
VolumeUnitdm3 =dm<sup>3</ SUP>
VolumeUnitcm3 =cm <sup>3</ SUP>
VolumeUnitmm3 =mm <sup>3</ SUP>
VolumeUnitm3 =m3
VolumeUnitdm3 =dm3
VolumeUnitcm3 =cm3
VolumeUnitmm3 =mm3
BugTracker =Bug tracker
SendNewPasswordDesc =Questo modulo consente di richiedere una nuova passord. Sar<61> inviare al tuo indirizzo email. <br> Cambiamento sar<61> effettivo solo dopo aver fatto clic sul link di conferma all'interno di questa e-mail. <br> Controlla la tua email lettore software.
BackToLoginPage =Torna alla pagina di accesso

View File

@@ -2554,6 +2554,13 @@ function measuring_units_string($unit,$measuring_style='')
$measuring_units[-6] = $langs->trans("VolumeUnitcm3");
$measuring_units[-9] = $langs->trans("VolumeUnitmm3");
}
else if ($measuring_style == 'size')
{
$measuring_units[0] = $langs->trans("SizeUnitm");
$measuring_units[-1] = $langs->trans("SizeUnitdm");
$measuring_units[-2] = $langs->trans("SizeUnitcm");
$measuring_units[-3] = $langs->trans("SizeUnitmm");
}
return $measuring_units[$unit];
}

View File

@@ -53,3 +53,9 @@ update llx_c_prospectlevel set code='PL_NONE', label='None' where code='PL_UNKOW
update llx_societe set fk_prospectlevel=null where fk_prospectlevel='PL_UNKOWN';
alter table llx_expedition add height integer;
alter table llx_expedition add width integer;
alter table llx_expedition add size_units integer;
alter table llx_expedition add size integer;
alter table llx_expedition add weight_units integer;
alter table llx_expedition add weight integer;

View File

@@ -34,6 +34,12 @@ create table llx_expedition
fk_expedition_methode integer,
tracking_number varchar(50),
fk_statut smallint DEFAULT 0,
height integer,
width integer,
size_units integer,
size integer,
weight_units integer,
weight integer,
note text,
model_pdf varchar(50)
)type=innodb;