Hola Felipe, el precio de venta esta en el dato maestro del item
En cuanto al bloqueo de la columna Precio, en este momento lo tengo así, pero pasa lo siguiente, tengo una SP donde me aplica una regla para el campo descuento que no sea mayor al 20%.
Entonces cuando el valor total es menor al 20% el porcentaje de descuento sale como negativo.
Ej. Aplicando descuento
Ej. Aplicando Total (ML)
Esta es mi Query de Porcentaje:
IF @OBJECT_TYPE IN ('13') AND @TRANSACTION_TYPE IN ('A', 'U') /*Factura*/
BEGIN
DECLARE @TIPOF CHAR(1);
SET @TIPOF = (SELECT DISTINCT A.DocType FROM OINV AS A INNER JOIN INV1 AS B ON A.DocEntry = B.DocEntry WHERE @list_of_cols_val_tab_del = A.DocEntry );
DECLARE @TOTALF DECIMAL(19,6);
DECLARE @TOTALBF DECIMAL(19,6);
DECLARE @DESCF DECIMAL(19,6);
IF @TIPOF='I' BEGIN
SET @TOTALBF=(SELECT SUM(B.PriceBefDi*B.Quantity) FROM OINV AS A INNER JOIN INV1 AS B ON A.DocEntry = B.DocEntry WHERE @list_of_cols_val_tab_del = A.DocEntry) ;SET @TOTALF=(SELECT SUM(B.LineTotal) FROM OINV AS A INNER JOIN INV1 AS B ON A.DocEntry = B.DocEntry WHERE @list_of_cols_val_tab_del = A.DocEntry)
END
ELSE
BEGIN
SET @TOTALBF=(SELECT SUM(B.LineTotal) FROM OINV AS A INNER JOIN INV1 AS B ON A.DocEntry = B.DocEntry WHERE @list_of_cols_val_tab_del = A.DocEntry) ;SET @TOTALF=(SELECT SUM(B.LineTotal) FROM OINV AS A INNER JOIN INV1 AS B ON A.DocEntry = B.DocEntry WHERE @list_of_cols_val_tab_del = A.DocEntry)
END
SET @DESC1 = (1-(@TOTALF/@TOTALBF))*100;
IF @DESC1 > 10 AND (SELECT COUNT(*) FROM OINV T0 WHERE @list_of_cols_val_tab_del = T0.DocEntry AND T0.U_HBTI_Autoriza1='NO')>0
BEGIN
SET @error= 20
SET @error_message = '** La Factura tiene un descuento mayor al 20%, debe autorizarse'
END
END
Saludos,