tengo el siguiente proceso de facturacion en el TN
El problema es que al momento de facturas me detecta como que todos los articulos estan por debajo del costo, nuestros precios estan en dolares por eso lo multiplico por el tipo de cambio.,
@cristiano.herlee cómo usar el foro, en cuanto a códigos para saber cómo pegar correctamente el mismo y no tener que modificar nada. Ahí te lo he editado, pero no sé que cambios habrás hecho.
El codigo a simple vista se ve bien, aunque no hace falta recorrer todas las lineas de la factura con el WHILE, ya que SAP ejecuta el TN por cada linea que va guardando. Hay que verificar si los datos registrados en las tablas estan correctos, pudiera ser que en alguno no este guardando el costo correctamente (OITW) o el DocRate de OINV sea incorrecto.
Yo usualmnete he usado este codigo y funciona perfecto:
IF @object_type = '13' AND @transaction_type in ('A')
BEGIN
If exists (Select b.ItemCode
From OINV a join INV1 b on a.DocEntry=b.DocEntry
Where a.DocEntry = @list_of_cols_val_tab_del
and b.StockPrice > b.Price)
BEGIN
set @error =1
set @error_message = 'Precio de Venta Inferior a Costo'
END
END
Tambien esta este otro ejemplo usando lista de precios, que tambien sirve de base para ver como funcionan estas validaciones:
IF (@transaction_type = 'A' or @transaction_type = 'U') AND @object_type = '17'
BEGIN
if exists (Select Distinct (T1.ItemCode) from RDR1 T1 INNER JOIN ORDR T0
ON T0.DocEntry = T1.DocEntry
where (select t3.price
from ITM1 t3
where T3.ITEMCODE=T1.ITEMCODE and t3.pricelist=2) > t1.price
and (T0.docentry = @list_of_cols_val_tab_del))
begin
SELECT @error = 1
SET @error_message = 'No se permite un precio por debajo de lista'
end
END