on 10-19-2015 9:33 PM
Hola a todos
Estoy intentando incorporar una nueva validación para la nota de crédito pero por aluna razón no está funcionando. La validación es muy simple y procura que el encargado de ventas sea incorporado al documento. Probé el mismo código para una factura de venta y funciona perfecto, pero por alguna razón no funciona en la nota de crédito. Ojalá alguien pudiera ayudarme. Desde ya muchas gracias
IF @object_type = '14' AND @transaction_type = 'A' AND @error = 0
BEGIN
DECLARE @OPERADORA2 INT
SET @OPERADORA2 = (SELECT TOP 1 T1.slpcode FROM BELENUS_PRUEBA..RIN1 T1 WHERE T1.DocEntry = @list_of_cols_val_tab_del)
IF @OPERADORA2 = -1
BEGIN
SET @error = 100
SET @error_message = 'Debe ingresar la Operadora'
END
END
select @error, @error_message
Pudiera ser porque tienes documentos con varias filas y la primera de ellas no tiene seleccionado "Ningún empleado" y el resto sí. Por como tienes tu query (con el TOP 1) no funcionaría siempre la restricción...
Intenta así:
IF @object_type = '14' AND @transaction_type = 'A' AND @error = 0
BEGIN
DECLARE @OPERADORA2 INT
SET @OPERADORA2 = (SELECT TOP 1 T1.slpcode FROM RIN1 T1 WHERE T1.DocEntry = @list_of_cols_val_tab_del and T1.SlpCode = -1)
IF @OPERADORA2 = -1
BEGIN
SET @error = 100
SET @error_message = 'Debe ingresar la Operadora'
END
END
select @error, @error_message
o así:
IF @object_type = '14' AND @transaction_type = 'A' AND @error = 0
BEGIN
DECLARE @OPERADORA2 INT
SET @OPERADORA2 = (SELECT count(T1.slpcode) FROM RIN1 T1 WHERE T1.DocEntry = @list_of_cols_val_tab_del and T1.SlpCode = -1)
IF @OPERADORA2 >= 1
BEGIN
SET @error = 100
SET @error_message = 'Debe ingresar la Operadora'
END
END
select @error, @error_message
Ojalá alguno te sirva...
Saludos,
JC
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Muchas gracias Juan por tu rápida respuesta.
La verdad es que la idea es que si el resultado es -1, es decir no hay encargado de ventas asociado, la idea es que la validación advierta de ello. Estoy trabajando en una base de pruebas y me da la impresión de que no está entrando al transaction, es como si el objeto 14 no correspondiera a la nota de crédito de clientes.
¿Cómo puedo asegurarme de ello?
Lo que pasa es que si dejas el TOP 1 y la primera fila del documento no es -1 (p. ej. 10, 15, 100, etc.) el TN no va advertir aún y cuando las filas de la 2 en delante sí sean igual a -1. Por eso en el primer TN que te propuse agregué un AND T1.SLPCODE = -1...
Estas intentando con generación de documentos solamente, sin considerar actualizaciones de documento? Te lo pregunto xq el TN lo estás limitando a nuevos documentos ( transaction_type = 'A'). Si quieres también actualizaciones agrega 'U'.
Has intentado poner tu tu código como primer validación de tus TN? O hay alguna limitante por la que necesitas primero evaluar el valor de @error antes de que llegue a la validación de la nota de crédito? Al poner @object_type = '14' es seguro que entre cuando sea nota de crédito, a menos que algo genere que @error no sea igual a cero al llegar a esa validación.
Saludos,
JC.
Hola Patricio.
En primer punto quiero pensar que esta validación viene después de alguna otra ya que de lo contrario "AND @error = 0" podría ser la causa.
Otro punto, ¿es correcto que lleve dos puntos?: BELENUS_PRUEBA..RIN1
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
95 | |
11 | |
10 | |
6 | |
5 | |
5 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.