Skip to content

Instantly share code, notes, and snippets.

Created August 5, 2016 19:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/8cb0508dcc64decf154ce24a6313ca2b to your computer and use it in GitHub Desktop.
Save anonymous/8cb0508dcc64decf154ce24a6313ca2b to your computer and use it in GitHub Desktop.
------------------------FACTURAS--------------------------------
IF @object_type = '13' and (@transaction_type = 'U' or @transaction_type = 'A')
BEGIN
DECLARE @IndexFac INT
DECLARE @RowsFac INT
SET @RowsFac = (SELECT DISTINCT COUNT(T1.LineNum) FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry=@list_of_cols_val_tab_del)
SET @IndexFac = 0
WHILE(@IndexFac<@RowsFac)
BEGIN
-- --Declaración de variables
DECLARE @CodigoAF NVARCHAR(8) -- Código de almacén factura
DECLARE @ArticuloF NVARCHAR(20) -- Código del artículo
DECLARE @PrecioF NUMERIC(19,6) -- Precio del artículo
DECLARE @TreeTypeF CHAR(1) -- Artículo componente de un código E
DECLARE @MonedaF NVARCHAR(3) -- Moneda factura
DECLARE @BaseTypeF INT -- Documento base factura
DECLARE @Reserva CHAR(1) -- Indicador de factura reserva
DECLARE @TipoDeCamF NUMERIC(19,6) -- Tipo de Cambio Documento
DECLARE @VendedorF SMALLINT -- Vendedor
DECLARE @TotalF NUMERIC(19,6) -- Total Factura
DECLARE @NotadeDebit NVARCHAR(2) --Si es Nota de Debito
-- --Asignación de valores a variables
SET @CodigoAF = (SELECT T1.WhsCode FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry = @list_of_cols_val_tab_del and T1.LineNum=@IndexFac)
SET @ArticuloF = (SELECT T1.ItemCode FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry = @list_of_cols_val_tab_del and T1.LineNum=@IndexFac)
SET @PrecioF = (SELECT T1.Price FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry = @list_of_cols_val_tab_del and T1.LineNum=@IndexFac)
SET @TreeTypeF = (SELECT T1.TreeType FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry = @list_of_cols_val_tab_del and T1.LineNum=@IndexFac)
SET @MonedaF = (SELECT T0.DocCur FROM OINV T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del)
SET @BaseTypeF = (SELECT T1.BaseType FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry = @list_of_cols_val_tab_del and T1.LineNum=@IndexFac)
SET @Reserva = (SELECT T0.IsIns FROM OINV T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del)
SET @TipoDeCamF = (SELECT T0.DocRate FROM OINV T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del)
SET @VendedorF = (SELECT T1.SlpCode FROM OINV T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode WHERE T0.DocEntry = @list_of_cols_val_tab_del)
SET @TotalF = (SELECT T0.DocTotal FROM OINV T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del)
SET @NotadeDebit = (SELECT T0.DocSubType FROM OINV T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del)
SET @error =
CASE
--(1) Precio Bajo el Costo
--WHEN (@PrecioF*@TipoDeCamF) <= (SELECT t4.AvgPrice FROM OITW t4 WHERE t4.ItemCode=@ArticuloF AND t4.WhsCode = @CodigoAF) THEN 1301
--(2) Facturación desde Cotización Bloqueada
WHEN @Reserva = 'N' AND @BaseTypeF = '23' THEN 1302
--(3) Vendedor Invalido
WHEN @TotalF > '0' AND @VendedorF NOT IN ('22','20','14','23','36','2','41') AND @NotadeDebit <> 'DN'THEN 1303
ELSE 0
END
SET @error_message =
CASE
WHEN @error=1301 THEN N'Precio abajo del costo para el articulo '
WHEN @error=1302 THEN N'No se pueden crear facturas desde una cotizacion.'
WHEN @error=1303 THEN N'Vendor Invalido para Facturar'
END
IF @error>0
BREAK
SET @IndexFac = @IndexFac+1
END
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment