Transaction para documento base

Buen día, requiero validar por línea que al copiar de OC a Factura preliminar, el centro de costos, cuenta, proyecto sean el mismo y además que el total sea menor o igual al de la OC.

Intenté con lo siguiente pero no me funciona:

---Validación Factura cuando viene de OC

IF @object_type = '112' AND @transaction_type IN ('A')

AND (SELECT ObjType FROM ODRF WHERE DOCENTRY = @list_of_cols_val_tab_del) in ('18')

BEGIN

--Tabla

Declare @U Table (Proy varchar(30), CC Varchar(3), Cta Varchar (30), Monto Numeric(19,6))

--Total de Línea

INSERT @U

Select T1.[Project],T1.[OcrCode],T1.U_Cta_Presupuestaria,ISNULL(-SUM(T1.linetotal+T1.[LineVat]),0)

from ODRF T0 INNER JOIN DRF1 T1 ON T0.[DocEntry] = T1.[DocEntry] where T1.[BaseType] ='22' and

T0.BaseEntry in (select distinct A.BaseEntry from PCH1 A where A.DocEntry=@list_of_cols_val_tab_del and A.BaseType='22')

Group By T1.[Project],T1.[OcrCode],t1.U_Cta_Presupuestaria

--Total OC

INSERT @U

Select T2.Project, T2.OcrCode, T2.U_Cta_Presupuestaria, ISNULL(SUM(T2.LineTotal+T2.LineVat),0)

From POR1 T2

WHERE

T2.BaseEntry in (select distinct A.BaseEntry from PCH1 A where A.DocEntry=@list_of_cols_val_tab_del and A.BaseType='22')

Group By T2.project,T2.[OcrCode],T2.U_Cta_Presupuestaria

DECLARE @RESPU VARCHAR(30)=''

SET @RESPU = (SELECT TOP 1 CTA FROM @U

GROUP BY Proy , CC , Cta

HAVING SUM(Monto)<0)

IF @RESPU <>''

BEGIN

set @error='1'

set @error_message = '*****Error *****' + @RESPU+ ' Total de línea diferente a la OC'

END

END

Les agradezco cualquier ayuda.

Saludos,

Estimado buen dia.
Te sugiero que hagas una por una tus validaciones. Es decir hagas primero la del totaFac Menor al TotalOc, la probes y verificar si funciona. Cuando ya la tengas seguis con otra.

Saludos.

Buen día, gracias pero por total no funciona, si tengo dos líneas por 100 c/u y lo hago por total, el sistema dejará hacerlo si pongo una por 125 y la otra por 75, al final el total sigue siendo el mismo

Por el campo doctotal tanto de la factura como de la Oc…hace inicialmente esa y verifica si te funciona…luego haces las demas…saludos…

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.