Tengo una consultas me gustaría hacer un bloqueo al momento de hacer una entrega y en el campo cantidad la persona elimina la cantidad y cuando intente hacer la entrega le salte un mensaje que diga . La cantidad No deberia estar en cero ’ ,
Realice la consulta
IF @object_type = '15' and (@transaction_type = 'A')
BEGIN if exists (SELECT ItemCode FROM DLN1 WHERE DocEntry = @list_of_cols_val_tab_del AND Quantity <=0)
begin
set @error_message ='ERROR: La cantidad No deberia estar en cero '
set @error = 1
end
END
sin embargo me esta tomando las entregas por servicios y en este caso si deberia psar la entrega
Que deberia hacer para que este bloqueo o tome la entrega (Ventas)
Buenos días, y que tiene de diferente las entregas de ventas con respecto a las entregas de servicio? Se me ocurre que utilices diferentes series de numeración y excluyas las que son de servicio.
Saludos.
Este codigo solamente te valida cuando son entregas DocType = ‘I’ (Items) articulos de venta.
IF @object_type = '15' and (@transaction_type = 'A')
BEGIN
if exists (SELECT 'X' FROM DLN1 T0
INNER JOIN ODLN T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.DocEntry = @list_of_cols_val_tab_del
AND Quantity <=0
AND T1.DocType = 'I' )
begin
set @error_message ='ERROR: La cantidad No deberia estar en cero '
set @error = 1
GOTO fin
end
END
el campo que te comento es de la tabla de cabecera, en este caso de ODLN. Si quieres hacerlo directamente contra DLN1, puedes comprobar que el campo ITEMCODE tiene valor, en los documentos de servicio está vacío. @jhernandez te plantea una consulta que funciona y como tú quieres.
Es correcto la consulta de @jhernandez debe funcionar sin problemas, yo había entendido que quería bloquear las entregas provenientes de “Llamadas de Servicio” que tuvieran documentos relacionados, creo que andaba por otros rumbos.