Create Sales Agreement Cash flow Report ??
DP Class
public void processReport()
{
AgreementHeader agreementHeader;
SalesAgreementHeader salesAgreementHeader;
AgreementLine agreementLine;
AgreementLineQuantityCommitment agreementLineQuentatityCommitment;
WRE_SalesAgreementTempTable salesAgreementTempTable;
real qty, checkQty, checkPeroid, noOfMonths;
TransDate transDate;
date Pd;
Query query = new Query();
QueryBuildDataSource qbdsAgreementHeader,qbdsSalesAgreementHeader,qbdsAgreementLine,qbdsAgreementLineQuantityCommitment;
QueryBuildRange qbrAgreementHeader,qbrSalesAgreementHeader,qbrAgreementLine,qbrAgreementLinrQuantityCommitent;
QueryRun qRun;
WRESalesAgreementContract contract;
contract =this.parmDataContract();
fromDate = contract.parmFormDate();
toDate = contract.parmToDate();
qbdsAgreementHeader = query.addDataSource(tableNum(AgreementHeader));
qbdsSalesAgreementHeader = qbdsAgreementHeader.addDataSource(tableNum(SalesAgreementHeader));
qbdsSalesAgreementHeader.relations(true);
qbdsAgreementLine = qbdsSalesAgreementHeader.addDataSource(tableNum(AgreementLine));
qbdsAgreementLine.relations(true);
qbdsAgreementLineQuantityCommitment = qbdsAgreementLine.addDataSource(tableNum(AgreementLineQuantityCommitment));
qbdsAgreementLineQuantityCommitment.relations(true);
qbrAgreementHeader = qbdsAgreementHeader.addRange(fieldNum(AgreementHeader,DefaultAgreementLineExpirationDate));
qbrAgreementHeader.value(queryRange(fromDate, toDate));
qRun = new QueryRun(query);
while(qRun.next())
{
agreementHeader = qRun.get(tableNum(AgreementHeader));
salesAgreementHeader = qRun.get(tableNum(SalesAgreementHeader));
agreementLine = qRun.get(tableNum(AgreementLine));
agreementLineQuentatityCommitment = qRun.get(tableNum(AgreementLineQuantityCommitment));
qty = 0;
checkQty = 0;
qty = agreementLineQuentatityCommitment.CommitedQuantity;
transDate = fromDate;
noOfMonths = intvNo(toDate, fromDate, intvScale::YearMonth);
checkQty =0;
for(checkPeroid =0;checkPeroid<=noOfMonths;checkPeroid++)
{
// wRE_SalesAgreementTempTable.clear();
wRE_SalesAgreementTempTable.ContractId = salesAgreementHeader.SalesNumberSequence;
wRE_SalesAgreementTempTable.CustomerAccount = salesAgreementHeader.CustAccount;
wRE_SalesAgreementTempTable.LineNumber = agreementLine.LineNumber;
wRE_SalesAgreementTempTable.FromDate = agreementHeader.DefaultAgreementLineEffectiveDate;
wRE_SalesAgreementTempTable.ToDate = agreementHeader.DefaultAgreementLineExpirationDate;
if(checkQty < qty && agreementHeader.DefaultAgreementLineEffectiveDate <= transDate)
// &&agreementHeader.DefaultAgreementLineExpirationDate >= transDate)
{
wRE_SalesAgreementTempTable.ProjectionValue = agreementLineQuentatityCommitment.PricePerUnit;
checkQty++;
}
else
{
wRE_SalesAgreementTempTable.ProjectionValue = 0;
}
wRE_SalesAgreementTempTable.Year = int2str(year(transDate));
wRE_SalesAgreementTempTable.MonthName = mthName(mthOfYr(transDate));
wRE_SalesAgreementTempTable.insert();
transDate = nextMth(transDate);
}
}
}