Como restringuir la creacion de OINV

Saludos cordiales a la comunidad mi pregunta como restrínguir la creación de OINV sino viene de un ODLN Y/O ORDR.

Gracias por su apoyo.

Hola Fernando
Valida mediante un SP que INV1.BaseType sea diferente a -1 es decir no tenga documento base


    SELECT COUNT(detfac."LineNum")
	FROM OINV fac -- Factura
	INNER JOIN INV1 detfac ON (fac."DocEntry" = detfac."DocEntry") -- Detalle factura	
	WHERE detfac."BaseType" = -1 -- No posee documento base
	AND detfac."DocEntry" = :list_of_cols_val_tab_del;

Andres Ramirez Jaramillo :colombia:

10 Me gusta

Hola quise ejecutar esta instrucion pero me manda este mensaje.
Msg 102, Level 15, State 1, Procedure SP_VERIFICACIONI, Line 7
Incorrect syntax near ‘:’.
y la instrucion fue esta
CREATE PROCEDURE SP_VERIFICACIONI
AS
SELECT COUNT(detfac.“LineNum”)
FROM OINV fac – Factura
INNER JOIN INV1 detfac ON (fac.“DocEntry” = detfac.“DocEntry”) – Detalle factura
WHERE detfac.“BaseType” =-1 – No posee documentio base
AND detfac.“DocEntry” = :list_of_cols_val_tab_del;

Yo hice algo parecido pero para otros documentos, este código lo agregé en el TransactionNotification:
if @object_type = ‘13’ and @transaction_type = ‘A’
begin
if exists(select itemcode from dbo.INV1 T0 where (T0.BaseEntry is null or T0.BaseType not in(13, 17, 23)) and T0.DocEntry = @list_of_cols_val_tab_del)
begin
if exists(select DocEntry FROM dbo.OINV where CANCELED = ‘N’ and DocEntry = @list_of_cols_val_tab_del and Year(DocDate) > 2017)
begin
select @error = -1001, @error_message = ‘Una factura solo puede ser generada desde una oferta de venta, pedido de cliente o por cancelación de otra factura.’
end
end
end

Puedes ignorar lo del Year>2017, esa fue una validación necesaria debido al proceso que tenia antes la empresa.

Saludos puse esta instrucion paro no me bloquea el documento lo procesa, que estare haciendo mal.
if @object_type = ‘13’ and @transaction_type = ‘A’
begin
if exists(select itemcode from dbo.INV1 T0 where (T0.BaseEntry is null or T0.BaseType not in( 15, 17)) and T0.DocEntry = @list_of_cols_val_tab_del)
begin
select @error = 2018, @error_message = ‘Una factura solo puede ser generada desde una orden de venta y/o entrega’
end
end

Si entre todo esto, pasas por presentaciones y nos cuentas algo … mejor

Buen dia, yo le cambiaria lo siguiente:
Begin
set @error = 2018
set @error_message = ‘Una factura solo puede ser generada desde una orden de venta y/o
entrega’
goto FIN
End

y una linea antes del end (ultimo del procedure) pongo FIN:
espero te sirva sino nos cuentas.

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.