Skip to Content

Transaction notification para la Nota de Crédito

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

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Oct 19, 2015 at 08:38 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

    • Hola Gerardo

      Respecto de tus comentarios:

      1) Ya tengo otras validaciones en que @error = 0 funciona. lo quité y el problema persiste.

      2) ¿es correcto que lleve dos puntos?: BELENUS_PRUEBA..RIN1  (si es correcto)

      Saludos

      PGR

  • avatar image
    Former Member
    Oct 19, 2015 at 08:46 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Patricio Godoy

      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.