class TRG_SalesQuotationTableWriteEventHandler
{
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[FormDataSourceEventHandler(formDataSourceStr(SalesQuotationTable, SalesQuotationLine), FormDataSourceEventType::Written)]
public static void SalesQuotationLine_OnWriting(FormDataSource sender, FormDataSourceEventArgs e)
{
SalesQuotationTable salesQuotationTable;
SalesQuotationLine salesQuotationLine,salesQuotationLineLoc;
CustTransOpenSum custTransOpenSum;
salesQuotationLineLoc = sender.cursor();
salesQuotationTable = salesQuotationTable::find(salesQuotationLineLoc.QuotationId);
if(smmParametersTable::find().CheckCreditLimitOnQuotation == NoYes::Yes)
{
Amount creditLimit = CustTable::find(salesQuotationLineLoc.CustAccount).CreditMax;
select sum(LineAmount) from salesQuotationLine
group by QuotationId
where salesQuotationLine.QuotationId == salesQuotationTable.QuotationId;
select AccountNum,AmountMST from custTransOpenSum
where custTransOpenSum.AccountNum == salesQuotationTable.CustAccount;
Amount newBalance = custTransOpenSum.AmountMST + salesQuotationLine.LineAmount;
Amount creditExcess = newBalance - creditLimit;
if(newBalance > creditLimit)
{
warning(strFmt("Quotation:%1 Creit limit exedded Opening balance %2 Current order:%3 New balance:%4 Credit limit:%5 Credit excess:%6 ",
salesQuotationLineLoc.QuotationId,
custTransOpenSum.AmountMST,
salesQuotationLine.LineAmount,
newBalance,
creditLimit,
creditExcess));
}
}
}
}
No comments:
Post a Comment
Give me the commetns and solutions