Skip to Content

Transaction Proveedor por Defecto

Buenas tardes, tengo un problema con una TN para que no permita crear OC a otros proveedores que no sean los de por defecto, sin embargo en el momento de probarlo me permite crear solo para los que no se encuentran en la lista, les agradezco su ayuda.

El código es el siguiente:

IF (@object_type = '22')

  BEGIN

  IF  EXISTS

  (select t0.DocEntry from OPOR T0

  inner join POR1 t1 On t0.DocEntry = t1.DocEntry

  inner join OITM T2 on t1.itemcode = t2.itemcode

  inner join ITM2 t3 on T2.itemcode = T3.itemcode

  where T0.DocEntry = CAST(@list_of_cols_val_tab_del AS NVARCHAR(15)) and (T0.CardCode = t3.VendorCode))

  BEGIN

  SET @error_message = 'No puede registrar una Orden de Compra a diferente proveedor'

  SET @error = 2122

  END

  END

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • avatar image
    Former Member
    Nov 02, 2015 at 10:19 PM

    Oscar,

    Intenta con alguna de estas 2 opciones:

    /* Inicio - Opción 1 */
    IF (@object_type = '22')
    BEGIN
      IF not EXISTS
      (select T0.DocEntry
      from OPOR T0
      inner join POR1 T1 On T0.DocEntry = T1.DocEntry
      inner join OITM T2 on T1.itemcode = T2.itemcode and T0.CardCode = T2.CardCode
      where T0.DocEntry = CAST(@list_of_cols_val_tab_del AS NVARCHAR(15)))
      BEGIN
      SET @error_message = 'No puede registrar una Orden de Compra a diferente proveedor'
      SET @error = 2122
      END
    END
    /* Fin - Opción 1 */
    

    o esta otra:

    /* Inicio - Opción 2 */
    IF (@object_type = '22')
    BEGIN
      IF not EXISTS
      (select T0.DocEntry
      from OPOR T0
      inner join POR1 T1 On T0.DocEntry = T1.DocEntry
      inner join OITM T2 on T1.itemcode = T2.itemcode
      inner join ITM2 T3 on T2.itemcode = T3.itemcode and T0.CardCode = T3.CardCode
      where T0.DocEntry = CAST(@list_of_cols_val_tab_del AS NVARCHAR(15)))
      BEGIN
      SET @error_message = 'No puede registrar una Orden de Compra a diferente proveedor'
      SET @error = 2122
      END
    END
    /* Fin - Opción 2 */
    

    Te pongo dos opciones porque tengo la duda de porqué lo buscas en la tabla ITM2 si el proveedor por defecto está en OITM.

    Saludos y suerte,

    JC.

    Add comment
    10|10000 characters needed characters exceeded