Buenos dias, existe la posibilidad que cuando se agregue en datos maestros de socios de negocios el limite de credito, al momento de hacer la orden de venta si ya esta pasado de limite no permita hacerlo?
Actualmente arroja un cartel dando aviso al momento de hacer la factura pero se puede continuar igual. Se podria poner algo que trabe al momento de hacer la orden de venta directamente?
Hola buen día, una forma es generar la restricción a nivel de Notification Transaction, donde valides que si el limite de crédito excede al balance no permita crear el documento.
Por si te vale este el el nuestro (SAP B1 Hana). a lo mejor lo tienes que ajustar a tus preferencias
if :object_type = '17' AND ( :transaction_type = 'A' OR :transaction_type = 'U' ) THEN
declare LimiteCredito double;
declare RiesgoAcumulado double;
select IFNULL(T1."CreditLine", 0), IFNULL(T1."Balance", 0) + IFNULL(T1."DNotesBal", 0) + IFNULL(T1."OrdersBal", 0)
into LimiteCredito, RiesgoAcumulado
frOM "ORDR" T0
INNER JOIN "OCRD" T1 ON T0."CardCode" = T1."CardCode" where T0."DocEntry" = :list_of_cols_val_tab_del;
if :RiesgoAcumulado > :LimiteCredito then
error := 1;
error_message := 'El cliente ha supero el riego máximo considerando los pedidos';
end if;
end if;
if :object_type = '15' AND ( :transaction_type = 'A' OR :transaction_type = 'U' ) THEN
declare LimiteCredito double;
declare RiesgoAcumulado double;
select IFNULL(T1."CreditLine", 0), IFNULL(T1."Balance", 0) + IFNULL(T1."DNotesBal", 0) + IFNULL(T1."OrdersBal", 0)
into LimiteCredito, RiesgoAcumulado
frOM "ODLN" T0
INNER JOIN "OCRD" T1 ON T0."CardCode" = T1."CardCode" where T0."DocEntry" = :list_of_cols_val_tab_del;
if :RiesgoAcumulado > :LimiteCredito then
error := 1;
error_message := 'El cliente ha supero el riego máximo considerando los pedidos';
end if;
end if;
if :object_type = '13' AND ( :transaction_type = 'A' OR :transaction_type = 'U' ) THEN
declare LimiteCredito double;
declare RiesgoAcumulado double;
select IFNULL(T1."CreditLine", 0), IFNULL(T1."Balance", 0) + IFNULL(T1."DNotesBal", 0) + IFNULL(T1."OrdersBal", 0)
into LimiteCredito, RiesgoAcumulado
frOM "OINV" T0
INNER JOIN "OCRD" T1 ON T0."CardCode" = T1."CardCode" where T0."DocEntry" = :list_of_cols_val_tab_del;
if :RiesgoAcumulado > :LimiteCredito then
error := 1;
error_message := 'El cliente ha supero el riego máximo considerando los pedidos';
end if;
end if;
Este código en SAP HANA SQLScript dentro del procedimiento SBO_SP_TransactionNotification valida el límite de crédito del cliente en tres documentos distintos: