Buen día
He colocado un código en el TN para el bloqueo de la creación de una factura de ventas si la misma en sus lineas no tiene centro de costo, me funciona bien siempre y cuando la factura sea de una sola linea, si agrego 2 lineas y a una de esas lineas le quito el centro de costo me envía un error.
Como puedo hacer para que aplique a las demás lineas?
if (@object_type = '13') and (@transaction_type = 'A') --No se permite la creacion de factura de venta sin centro de costo
begin
declare @Sucursal as nvarchar(40)
set @Sucursal = (select isnull(T0.OcrCode,0) from INV1 T0 where T0.DocEntry = @list_of_cols_val_tab_del)
IF (@Sucursal = '0')
begin
select @error = 1
set @error_message = 'No es posible crear factura sin Centro de Costo, por favor seleccione un Centro de Costo'
end
end
Hola @Lsanders,
Tu consulta que pones valor en @Sucursal, esta devolviendo mas de un valor, podrias cambiarlo asi:
declare @Sucursal as integer
set @Sucursal = (select count(*) from INV1 T0 where T0.DocEntry = @list_of_cols_val_tab_del
and isnull(T0.OcrCode,"0") = "0"
)
IF (@Sucursal > 0)
Espero te sirva.
Saludos,
1 me gusta
Buenos dias Lsanders puedes usar este Transact SQL:
DECLARE @Centro_VACIO VARCHAR(MAX)
IF @OBJECT_TYPE IN ('13') AND @TRANSACTION_TYPE IN ('A')
BEGIN
SET @Centro_VACIO=(SELECT COUNT(*) FROM OINV A FULL JOIN INV1 B ON A.DOCENTRY=B.DOCENTRY
WHERE (B.OcrCode IS NULL OR B.OcrCode='')AND A.DOCENTRY=@LIST_OF_COLS_VAL_TAB_DEL )
IF (@Centro_VACIO > 0) --AND ( @GRUPO_ARTICULO > 0)
BEGIN
SET @ERROR = 13
SET @ERROR_MESSAGE ='NO ES POSIBLE CREAR FACTURA SIN CENTRO DE COSTO'
END
END
1 me gusta
Gracias, me funciono de maravilla