Buenos días.
Tengo instalado un ambiente de producción con la versión 10.0.1
Caso 1) Cuando se realiza la recepción de una orden de compra, donde todos los items son productos registrados (registrado en la base de datos como productos), la recepción se da sin problemas.
Caso 2) Cuando se realiza la recepción de una orden de compra, donde existen productos registrados y servicios (servicio libre) y cuando ese servicio libre se registra al final de la lista, la recepción SI da problemas.
Revisando el código reception/card.php
cuando se recorre cada uno de las lineas; se tiene (DESDE LA LINEA 301 de card.php:
$lineToTest = '';
foreach ($objectsrc->lines as $linesrc) {
if ($linesrc->id == GETPOST($idl, 'int')) $lineToTest = $linesrc;
En esta linea $lineToTest es la linea a revisar, pero nunca se utiliza
}
$linesrc llega al final de los lineas
$qty = "qtyl".$i;
Para el caso 2 siempre estara en la linea donde es un servicio libre con cantidad $qty > 0
$comment = "comment".$i;
$eatby = "dlc".$i;
$sellby = "dluo".$i;
$batch = "batch".$i;
$timeFormat = '%d/%m/%Y';
if (GETPOST($qty, 'int') > 0 || (GETPOST($qty, 'int') == 0 && $conf->global->RECEPTION_GETS_ALL_ORDER_PRODUCTS))
{
$ent = "entl".$i;
$idl = "idl".$i;
$entrepot_id = is_numeric(GETPOST($ent, 'int')) ? GETPOST($ent, 'int') : GETPOST('entrepot_id', 'int');
if ($entrepot_id < 0)
$entrepot_id = '';
if (!($linesrc->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
$entrepot_id = 0;
En esta validación la variable $linesrc->fk_product siempre estará en 0 ya que se movió hasta el final de los items(item servicio de la orden de compra), motivo por el cual en el caso 2, siempre me da error y para todos las items a recepcionar.
Error en recepción de productos orden de compra
-
- Novato
- Mensajes: 40
- Registrado: Jue, 13/12/2012, 14:13
- Ubicación: Bolivia
Error en recepción de productos orden de compra
- Adjuntos
-
- Captura de pantalla de 2020-10-14 11-33-51.png (33.75 KiB) Visto 3180 veces
-
- Novato
- Mensajes: 40
- Registrado: Jue, 13/12/2012, 14:13
- Ubicación: Bolivia
para dar solución a la misma realice este cambio
ORIGINAL
if (!($linesrc->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
$entrepot_id = 0;
MODIFICADO
if (!($lineToTest->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
$entrepot_id = 0;
ORIGINAL
if (!($linesrc->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
$entrepot_id = 0;
MODIFICADO
if (!($lineToTest->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
$entrepot_id = 0;