DYNAMICS GP - Formula para determinar si una orden de compra sobrepasa el presupuesto

Hola,

Recientemente tuvimos un caso donde nos preguntaban como es que hace el sistema la validación de presupuesto al momento de captuar ordenes de compra.

Esta es la formula general que considera el sistema.
/***************************************************************************************************************************
IsOverBudget
{Calculate variance}
lVariance = lTotalBudget + lVarianceAllowed - (lTotalActual + lTotalCommitted + lPOAmount);
if (lVariance<0) then oOverBudget= true;

Donde
lBudgetVariance: Monto de la variacion al presupuesto, si es negativo entonces sobrepasa el presupuesto.
lTotalBudget: Monto total del presupuesto configurado para la cuenta especificada
lBudgetVarianceAllowed: Monto de variación al presupuesto que se indico en la ventana de "Configuracion de compromisos de OC"
lTotalGL: Saldo acumulado de la cuenta contable para los periodos del año tomados en cuenta de acuerdo a la configuración de compromisos (Anual,Periodo,Año Actual)
 lTotalGL = lTotalGLOpen+lTotalGLHist+lTotalGLUnposted
lTotalCommitted: Monto total del presupuesto actualmente comprometido.
lPOAmount: Monto total de la orden de compra a validar.
--***************************************************************************************************************************/

En esta ocasion queremos compartir con ustedes un script (anexo) a manera de codigo ejemplo que les puede ayudar a ver mas a detalle como es que se estan haciendo los calculos
para cada una de las variables mencionadas y asi poder determinar si el monto de una línea de orden de compra sobrepasaría o no el monto presupuestado
para una determinada cuenta.

Una vez instalado el script, este es un ejemplo de como ejecutarlo asi como de los parametros que recibe.
DECLARE @IsOverBudget SMALLINT, @BudgetId CHAR(21) , @PurchaseAccountIdx AS INTEGER, @I_POAmount AS NUMERIC(19,5)
SET @BUDGETID = 'BUDGET 2016' --Especificar el BUDGET ID a validar
SET @PurchaseAccountIdx = 18 --Especificar el indice de la cuenta a validar
SET @I_POAmount = 10000 --Especificar el monto de la compra a validar
EXEC spMs_Util_IsOverBudgetPOAmount @BudgetId,@PurchaseAccountIdx,@I_POAmount,@IsOverBudget OUTPUT
SELECT @IsOverBudget AS [IsOverBudget]

 

Importante:

  • Este “código de ejemplo” se proporciona con fines ilustrativos únicamente y es entregado sin garantía alguna por parte de Microsoft. 

 

Esperamos que esta información les sea de utilidad.

Saludos JABA

spMs_Util_IsOverBudgetPOAmount.sql