Qual: Improve suppliers orders manual receivings

This commit is contained in:
simnandez 2013-11-14 17:08:59 +01:00
parent 2e5320a532
commit b9c8852471
4 changed files with 63 additions and 61 deletions

View File

@ -81,6 +81,8 @@ if ($_POST["action"] == 'dispatch' && $user->rights->fournisseur->commande->rece
else
{
dol_syslog('No dispatch for line '.$key.' as no warehouse choosed');
$text = $langs->transnoentities('Warehouse').', '.$langs->transnoentities('Line').'' .($reg[1]-1);
setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
}
}
}
@ -190,8 +192,8 @@ if ($id > 0 || ! empty($ref))
print "</table>";
if ($mesg) print $mesg;
else print '<br>';
//if ($mesg) print $mesg;
print '<br>';
$disabled=1;
@ -271,41 +273,47 @@ if ($id > 0 || ! empty($ref))
}
else
{
$nbproduct++;
$remaintodispatch=($objp->qty - $products_dispatched[$objp->fk_product]); // Calculation of dispatched
if ($remaintodispatch < 0) $remaintodispatch=0;
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td>';
print '<a href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$objp->fk_product.'">'.img_object($langs->trans("ShowProduct"),'product').' '.$objp->ref.'</a>';
print ' - '.$objp->label;
// To show detail cref and description value, we must make calculation by cref
//print ($objp->cref?' ('.$objp->cref.')':'');
//if ($objp->description) print '<br>'.nl2br($objp->description);
print '<input name="product_'.$i.'" type="hidden" value="'.$objp->fk_product.'">';
print '<input name="pu_'.$i.'" type="hidden" value="'.$objp->subprice.'">';
print "</td>\n";
print '<td align="right">'.$objp->qty.'</td>';
print '<td align="right">'.$products_dispatched[$objp->fk_product].'</td>';
// Dispatch
print '<td align="right"><input name="qty_'.$i.'" type="text" size="8" value="'.($remaintodispatch).'"></td>';
// Warehouse
print '<td align="right">';
if (count($listwarehouses))
if ($remaintodispatch)
{
print $form->selectarray("entrepot_".$i, $listwarehouses, '', $disabled, 0, 0, '', 0, 0, $disabled);
$nbproduct++;
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td>';
print '<a href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$objp->fk_product.'">'.img_object($langs->trans("ShowProduct"),'product').' '.$objp->ref.'</a>';
print ' - '.$objp->label;
// To show detail cref and description value, we must make calculation by cref
//print ($objp->cref?' ('.$objp->cref.')':'');
//if ($objp->description) print '<br>'.nl2br($objp->description);
print '<input name="product_'.$i.'" type="hidden" value="'.$objp->fk_product.'">';
print '<input name="pu_'.$i.'" type="hidden" value="'.$objp->subprice.'">';
print "</td>\n";
print '<td align="right">'.$objp->qty.'</td>';
print '<td align="right">'.$products_dispatched[$objp->fk_product].'</td>';
// Dispatch
print '<td align="right"><input name="qty_'.$i.'" type="text" size="8" value="'.($remaintodispatch).'"></td>';
// Warehouse
print '<td align="right">';
if (count($listwarehouses)>1)
{
print $form->selectarray("entrepot_".$i, $listwarehouses, '', 1, 0, 0, '', 0, 0, $disabled);
}
elseif (count($listwarehouses)==1)
{
print $form->selectarray("entrepot_".$i, $listwarehouses, '', 0, 0, 0, '', 0, 0, $disabled);
}
else
{
print $langs->trans("NoWarehouseDefined");
}
print "</td>\n";
print "</tr>\n";
}
else
{
print $langs->trans("NoWarehouseDefined");
}
print "</td>\n";
print "</tr>\n";
}
$i++;
}
@ -338,6 +346,8 @@ if ($id > 0 || ! empty($ref))
print '</form>';
}
dol_fiche_end();
// List of already dispatching
$sql = "SELECT p.ref, p.label,";
@ -359,7 +369,9 @@ if ($id > 0 || ! empty($ref))
if ($num > 0)
{
print "<br/>\n";
print_titre($langs->trans("ReceivingForSameOrder"));
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
@ -399,19 +411,6 @@ if ($id > 0 || ! empty($ref))
{
dol_print_error($db);
}
dol_fiche_end();
/**
* Boutons actions
*/
if ($user->societe_id == 0 && $commande->statut < 3 && ($_GET["action"] <> 'valid' || $_GET['action'] == 'builddoc'))
{
//print '<div class="tabsAction">';
//print "</div>";
}
}
else
{

View File

@ -108,4 +108,5 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
MassStockMovement=Mass stock movement
SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s".
RecordMovement=Record transfert
RecordMovement=Record transfert
ReceivingForSameOrder=Receivings for this order

View File

@ -47,7 +47,7 @@ PMPValue=Valor (PMP)
PMPValueShort=PMP
EnhancedValueOfWarehouses=Valor de stocks
UserWarehouseAutoCreate=Crear automáticamente existencias/almacén propio del usuario en la creación del usuario
QtyDispatched=Cantidad desglosada
QtyDispatched=Cantidad recibida
OrderDispatch=Recepción de stocks
RuleForStockManagementDecrease=Regla de gestión de decrementos de stock
RuleForStockManagementIncrease=Regla de gestión de incrementos de stock
@ -61,7 +61,7 @@ ReStockOnDeleteInvoice=Incrementa los stocks físicos en la eliminación de fact
OrderStatusNotReadyToDispatch=El pedido aún no está o no tiene un estado que permita un desglose de stock.
StockDiffPhysicTeoric=Motivo de la diferencia entre valores físicos y teóricos
NoPredefinedProductToDispatch=No hay productos predefinidos en este objeto. Por lo tanto no se puede realizar un desglose de stock.
DispatchVerb=Desglosar
DispatchVerb=Validar recepción
StockLimitShort=Límite
StockLimit=Stock límite para alertas
PhysicalStock=Stock físico
@ -96,16 +96,17 @@ Replenishment=Reaprovisionamiento
ReplenishmentOrders=Ordenes de reaprovisionamiento
UseVirtualStock=Usar stock virtual en lugar de stock físico
RuleForStockReplenishment=Regla para el reaprovisionamiento de stock
SelectProductWithNotNullQty=Seleccione al menos un proveedor y un producto con una cantidad válida
AlertOnly= Sólo alertas
WarehouseForStockDecrease=El almacén <b>%s</b> será utilizado para el decremento de stock
WarehouseForStockIncrease=El almacén <b>%s</b> será utilizado para el incremento de stock
SelectProductWithNotNullQty=Seleccie al menos un producto con una cantidad distinta de cero y un proveedor
AlertOnly=Sólo alertas
WarehouseForStockDecrease=Para el decremento de stock se usará el almacén <b>%s</b>
WarehouseForStockIncrease=Para el incremento de stock se usará el almacén <b>%s</b>
ForThisWarehouse=Para este almacén
ReplenishmentStatusDesc=Esta es la lista de todos los productos con un stock físico menor que el stock deseado (o un valor de alerta si el checkbox "sólo alertas" está marcado) y que sugiere crear pedidos de proveedor para rellenar la diferencia.
ReplenishmentOrdersDesc=Esta es la lista de todos los pedidos de proveedor abiertos
Replenishments=Reaprovisionamientos
NbOfProductBeforePeriod=Cantidad de producto %s en stock antes del periodo seleccionado (< %s)
NbOfProductAfterPeriod=Cantidad de producto %s en stock después del periodo seleccionado (< %s)
MassStockMovement=Movimiento de stock masivo
SelectProductInAndOutWareHouse=Seleccione un producto, una cantidad, un almacén de origen y un almacén de destino, después pulse "%s". Una vez esto sea realizado para todos los movimientos requeridos, pulse en "%s".
ReplenishmentStatusDesc=Este listado le permite ver productos con un stock inferior a la cantidad mínima deseada (o valor de alerta si el checkbok "Sólo alertas" está activado) y le sugiere crear los pedidos a proveedores para completar la diferencia.
ReplenishmentOrdersDesc=Este es el listado de pedidos a proveedores en curso
Replenishments=Reaprovisionamiento
NbOfProductBeforePeriod=Cantidad del producto %s en stock antes del periodo seleccionado (< %s)
NbOfProductAfterPeriod=Cantidad del producto %s en stock después del periodo seleccionado (> %s)
MassStockMovement=Movimientos de stock en masa
SelectProductInAndOutWareHouse=Selecccione un producto, una cantidad, un almacén origen y un almacén destino, seguidamente haga clic "%s". Una vez seleccionados todos los movimientos, haga clic en "%s".
RecordMovement=Registrar transferencias
ReceivingForSameOrder=Recepciones de este pedido

View File

@ -109,3 +109,4 @@ NbOfProductAfterPeriod=Quantité du produit <b>%s</b> en stock après la périod
MassStockMovement=Mouvement de stock en masse
SelectProductInAndOutWareHouse=Sélectionner un produit, une quantité à transférer, un entrepôt source et destination et cliquer sur "%s". Une fois tous les mouvements choisis, cliquer sur "%s".
RecordMovement=Enregistrer transferts
ReceivingForSameOrder=Réceptions pour cette commande