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,