class BWP_FieldValidations
{
[DataEventHandler(tableStr(PurchLine), DataEventType::ValidatedField)]
public static void PurchLine_onValidatedField(Common sender, DataEventArgs e)
{
PurchLine purchLineLocal;
InventTable inventTable, inventTableLocal;
ItemGroupId itemGroupId, lineItemGroupId;
BWBudgetDetail budgetDetail;
InventItemGroupItem itemGroupItem;
LineAmount lineAmount;
PurchId purchId;
ValidateFieldEventArgs event = e as ValidateFieldEventArgs;
PurchLine purchLine = sender as PurchLine;
boolean result = event.parmValidateResult();
LineAmount lineSum;
lineAmount = purchLine.PurchQty*purchLine.PurchPrice;
inventTable = InventTable::find(purchLine.ItemId);
itemGroupId = inventTable.itemGroupId();
purchId = purchLine.PurchId;
while select purchLineLocal where purchLineLocal.PurchId == purchId
{
inventTableLocal = InventTable::find(purchLineLocal.ItemId);
lineItemGroupId = inventTableLocal.itemGroupId();
if(lineItemGroupId == itemGroupId)
{
lineSum += purchLineLocal.LineAmount;
}
}
select budgetDetail where budgetDetail.ItemGroupId == itemGroupId
&& budgetDetail.FromDate <= today()
&& budgetDetail.ToDate >= today();
//&& budgetDetail.DimensionDefault == purchLine.DefaultDimension
{
if(budgetDetail)
{
if (lineAmount > (budgetDetail.amount - lineSum))
{
result = false;
warning(strFmt("Actual budget : %1, Remain budget : %2, line amount : %3 (Please raise a budget adjustment request for item group - %4)", budgetDetail.Amount, (budgetDetail.amount - lineSum), lineAmount, itemGroupId));
}
else
{
result = true;
}
}
}
event.parmValidateResult(result);
}
}
{
[DataEventHandler(tableStr(PurchLine), DataEventType::ValidatedField)]
public static void PurchLine_onValidatedField(Common sender, DataEventArgs e)
{
PurchLine purchLineLocal;
InventTable inventTable, inventTableLocal;
ItemGroupId itemGroupId, lineItemGroupId;
BWBudgetDetail budgetDetail;
InventItemGroupItem itemGroupItem;
LineAmount lineAmount;
PurchId purchId;
ValidateFieldEventArgs event = e as ValidateFieldEventArgs;
PurchLine purchLine = sender as PurchLine;
boolean result = event.parmValidateResult();
LineAmount lineSum;
lineAmount = purchLine.PurchQty*purchLine.PurchPrice;
inventTable = InventTable::find(purchLine.ItemId);
itemGroupId = inventTable.itemGroupId();
purchId = purchLine.PurchId;
while select purchLineLocal where purchLineLocal.PurchId == purchId
{
inventTableLocal = InventTable::find(purchLineLocal.ItemId);
lineItemGroupId = inventTableLocal.itemGroupId();
if(lineItemGroupId == itemGroupId)
{
lineSum += purchLineLocal.LineAmount;
}
}
select budgetDetail where budgetDetail.ItemGroupId == itemGroupId
&& budgetDetail.FromDate <= today()
&& budgetDetail.ToDate >= today();
//&& budgetDetail.DimensionDefault == purchLine.DefaultDimension
{
if(budgetDetail)
{
if (lineAmount > (budgetDetail.amount - lineSum))
{
result = false;
warning(strFmt("Actual budget : %1, Remain budget : %2, line amount : %3 (Please raise a budget adjustment request for item group - %4)", budgetDetail.Amount, (budgetDetail.amount - lineSum), lineAmount, itemGroupId));
}
else
{
result = true;
}
}
}
event.parmValidateResult(result);
}
}
No comments:
Post a Comment