Ayuda SAP

Precio entrega con documento base

buen dia

agradzeco si me pueden indicar si se puede hacer algo para que no se haga el precio de entrega si este no es halado desde el documento que corresponda?

Quedo atenta.

Saludos,

Hola @diego1986
Puedes crear un SP.

hola andres como estas me puedes indicar por fa que campo y que valor del campo podria urilizar para el SP

gracias

Hola @diego1986

Por mi parte no me queda clara su consulta, agradeceré pueda brindar mayor información, se refiere a una entrega de salida proveniente de una venta? o una entrega entrante en MM. De preferencia enviar imágenes de un ejemplo. Gracias! :smiley:

hola argox

me refiero al precio entrega que se hace en las compras importadas o locales donde se les asigna costos a un pedido en especifico todo precio de entrega se hace posterior a una entrada de mercancia

Hola @diego1986 ,

Como te lo comentó @andresramirez tendrias que poner una validacion en el SP del transaction, si entiendo bien, el requerimiento es:
“Solo poder hacer un precio de entrega, cuando se este aplicando a una Entrada, si el precio de entrega se esta haciendo a otro documento o a ningun documento que no te permita.”

Si ese es el caso entonces en el SP haces una validacion al ObjType = 69 (este es el objeto de la tabla de precios de entrega) y en la validacion agregas las tablas OIPF e IPF1.

SELECT 
CASE WHEN IFNULL(T1."BaseType", 0) <> 20 THEN 'El documento no tiene una entrada como documento base' END
FROM OIPF T0
INNER JOIN IPF1 T1 ON T1."DocEntry" = T0."DocEntry"

El BaseType te indica cual es el objeto Base, el 20 corresponde a entradas.

Saludos.

hola jose

si perfecto asi es y mil gracias por la consulta

saludos

revisando el tema tengo es el problema que se hizo precio entrega de una entrada pero esta entrada de mercancía no venia de una factura reserva de proveedor y por eso la entrada de mercancía esta abierta ahí como amarrar que el precio entrega no se genere si la entrada de mercancia esta abierta

saludos

que tal @diego1986 , es asi como ya te la habia mandado, solo que falta agregues un Join a la OPDN.

SELECT CASE 
WHEN IFNULL(T1."BaseType", 0) <> 20 THEN 'El documento no tiene una entrada como documento base' 
WHEN T2."DocEstatus" = 'O' THEN 'El Documento base aun esta abierto'
END
FROM OIPF T0
INNER JOIN IPF1 T1 ON T1."DocEntry" = T0."DocEntry"
LEFT JOIN OPDN T2 ON T2."DocEntry" = T1."BaseEntry" AND T2."ObjType" = T1."BaseType"

:cowboy_hat_face: :+1:

muchas gracias por tu ayuda me sirvio mucho y el SP QUEDO ASI

IF((object_type = ‘69’) AND ( (transaction_type = ‘U’) or (transaction_type = ‘A’))) THEN
DECLARE PRECEN INT;

SELECT COUNT(*) INTO PRECEN FROM OIPF T0  INNER JOIN IPF1 T1 ON T0."DocEntry" = T1."DocEntry"
LEFT JOIN OPDN T2 ON T2."DocEntry" = T1."BaseEntry" AND T2."ObjType" = T1."BaseType"

WHERE T2.“DocStatus” = ‘O’ And T0.“DocEntry” = :list_of_cols_val_tab_del ;
IF :PRECEN > 0 THEN
error := ‘1’;
error_message := ‘El documento base esta abierto"’;
END IF;
END IF;