on 11-02-2015 9:34 PM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Juan Carlos, muchas gracias por tu pronta ayuda.
Lo busco en ITM2 para que en caso de que un proveedor no pueda suplir, lo haga otro de la lista ITM2 y permita crear la OC.
El único cambio que hice es en el último inner join al final la T3 no es CardCode sino VendorCode, el código final sería el siguiente por si le sirve a alguien más:
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.VendorCode
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
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
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.