Customer aging in D365fo x++

Customer aging in D365fo x++

//call

container con0To5 = this.calculateAging(monthToDate - 5, monthToDate, hcmworker.PersonnelNumber, salestable.InventSiteId, DefaultDimensionView.DisplayValue); container con6To15 = this.calculateAging(monthToDate - 15, monthToDate - 6, hcmworker.PersonnelNumber, salestable.InventSiteId, DefaultDimensionView.DisplayValue); container con15To31 = this.calculateAging(monthToDate - 30, monthToDate - 16, hcmworker.PersonnelNumber, salestable.InventSiteId, DefaultDimensionView.DisplayValue); container con31To60 = this.calculateAging(monthToDate - 60, monthToDate - 31, hcmworker.PersonnelNumber, salestable.InventSiteId, DefaultDimensionView.DisplayValue); container con61To90 = this.calculateAging(monthToDate - 90, monthToDate - 61, hcmworker.PersonnelNumber, salestable.InventSiteId, DefaultDimensionView.DisplayValue); container con95ToAbov = this.calculateAging(dateMax() ,monthToDate - 90, hcmworker.PersonnelNumber, salestable.InventSiteId, DefaultDimensionView.DisplayValue);




public container calculateAging(TransDate _fromDate, TransDate _toDate, str _empId, inventSiteId _inventSite, str _division) { CustTrans custtrans; HcmWorker HcmWorker; SalesTable salesTable; CustInvoiceJour CustInvoiceJour; CustPaymModeTable CustPaymModeTable; CustSettlement CustSettlement; DefaultDimensionView DefaultDimensionView; real customerSettleAmount, customerAmount, balance; int customer; select count(RecId) , sum(REPORTINGCURRENCYAMOUNT) from custtrans WHERE (custtrans.TRANSDATE >= _fromDate && custtrans.TRANSDATE <= _toDate) exists join custinvoicejour where custinvoicejour.LedgerVoucher == custtrans.voucher && custinvoicejour.InvoiceAccount == custtrans.AccountNum && custinvoicejour.InvoiceId == custtrans.Invoice && custinvoicejour.InvoiceDate == custtrans.TransDate exists join salesTable where salesTable.SalesId == CustInvoiceJour.salesid && salesTable.InventSiteId == _inventSite exists join DefaultDimensionView where DefaultDimensionView.DefaultDimension == salesTable.DefaultDimension && DefaultDimensionView.Name == 'Division' && DefaultDimensionView.DisplayValue == _division exists join HcmWorker group by custtrans.AccountNum where HcmWorker.RecId == salesTable.WorkerSalesResponsible && HcmWorker.PersonnelNumber == _empId; customerAmount = custtrans.REPORTINGCURRENCYAMOUNT; customer = custtrans.RecId; custtrans.clear(); HcmWorker.clear(); salesTable.clear(); CustInvoiceJour.clear(); CustPaymModeTable.clear(); CustSettlement.clear(); DefaultDimensionView.clear(); SELECT SUM(SETTLEAMOUNTMST) FROM CustSettlement where (CustSettlement.TRANSDATE >= _fromDate && CustSettlement.TRANSDATE <= _toDate) join sum(REPORTINGCURRENCYAMOUNT) from custtrans WHERE CustSettlement.TRANSRECID == custtrans.RecId exists join custinvoicejour where custinvoicejour.LedgerVoucher == custtrans.voucher && custinvoicejour.InvoiceAccount == custtrans.AccountNum && custinvoicejour.InvoiceId == custtrans.Invoice && custinvoicejour.InvoiceDate == custtrans.TransDate exists join salesTable where salesTable.SalesId == CustInvoiceJour.salesid && salesTable.InventSiteId == _inventSite exists join DefaultDimensionView where DefaultDimensionView.DefaultDimension == salesTable.DefaultDimension && DefaultDimensionView.Name == 'Division' && DefaultDimensionView.DisplayValue == _division exists join HcmWorker where HcmWorker.RecId == salesTable.WorkerSalesResponsible && HcmWorker.PersonnelNumber == _empId; customerSettleAmount = CustSettlement.SettleAmountMST; balance = customerAmount - customerSettleAmount; return [balance, customer]; }

Comments

Popular posts from this blog

D365FO – AX – X++ –Refresh, Reread, Research, and ExecuteQuery

Create Inventory Journal through Code in D365FO X++

SalesLine Reservation in D365fo x++