Tuesday, 22 August 2017

Sales ValidateInvoiceAmtwithDiscount

public boolean validateInvoiceAmtwithDiscount()// calucalte the invocie amount with discount on 21-aug -17
{
    boolean         ret = true;
    container       displayFields;
    AmountCur       invocieAmt = 0.00, TotalSalesAmt = 0.00, TotalAmtWithDiscount = 0.00;
    salesLine       salesLine;
    smmParametersTable smmParametersTable;
    ;

    if(this && this.SalesType == salesType::Sales)

    {
        displayFields = SalesTotals::displayFieldsServer(this, salesUpdate::All, CompanyInfo::standardCurrency());

        invocieAmt    = conpeek(displayFields, TradeTotals::posTotalAmount());

        while select salesLine
                where salesLine.SalesId == this.SalesId
        {
            TotalSalesAmt += (salesLine.MSP * salesLine.SalesQty) ;
        }


        if(smmParametersTable::find().DiscountPercentage)
            TotalAmtWithDiscount = TotalSalesAmt - (TotalSalesAmt * (smmParametersTable::find().DiscountPercentage / 100));
        else
            TotalAmtWithDiscount = TotalSalesAmt;

        info(strFmt("discount percentage %1",smmParametersTable::find().DiscountPercentage));


        if(invocieAmt < TotalAmtWithDiscount)
             ret = checkFailed("Invocie Amount should not Less than the Sales Lines Amount. ");

    }

    return ret;
}