/// <summary>
/// Extension of <c>CustVendBalanceList</c> class
/// </summary>
[ExtensionOf(classStr(CustVendBalanceList))]
final class CustVendBalanceList_CustomerAging_Extension
{
/// <summary>
/// numOfBalanceAge
/// </summary>
/// <returns></returns>
public static Counter numOfBalanceAge()
{
next numOfBalanceAge();
const Counter MaximumNumberOfAgingBalances = 9 ;
return MaximumNumberOfAgingBalances;
}
}
/// <summary>
/// Extension of <c>CustPostInvoice</c> class
/// </summary>
[ExtensionOf(classStr(CustBalanceList))]
final class CustBalanceList_CustomerAging_Extension
{
public AccountSumMap_CustomerAging tmpAccountSum_CustomerAging;
/// <summary>
/// Constructs the contract that maps aging buckets to their corresponding fields in the <c>CustTmpAccountSum</c> table buffer.
/// </summary>
/// <returns>The <c>CustVendBalanceListBucketToBalanceFieldReturn</c> instance with the map of bucket to fields.</returns>
[Wrappable]
protected final CustVendBalanceListBucketToBalanceFieldReturn buildBucketToBalanceFieldsMap()
{
CustVendBalanceListBucketToBalanceFieldReturn bucketsToFields = next buildBucketToBalanceFieldsMap();
bucketsToFields.addBucket(7,
this.constructCustVendBalanceListBalanceFieldsParameters_CustomerAging(fieldNum(CustTmpAccountSum, CustAgingBalance08),
fieldNum(CustTmpAccountSum, CustAgingBalance08Cur),
fieldNum(CustTmpAccountSum, CustAgingBalance08ReportingCurrency)));
bucketsToFields.addBucket(8,
this.constructCustVendBalanceListBalanceFieldsParameters_CustomerAging(fieldNum(CustTmpAccountSum, CustAgingBalance09),
fieldNum(CustTmpAccountSum, CustAgingBalance09Cur),
fieldNum(CustTmpAccountSum, CustAgingBalance09ReportingCurrency)));
return bucketsToFields;
}
/// <summary>
/// constructCustVendBalanceListBalanceFieldsParameters_CustomerAging
/// </summary>
/// <param name = "_balanceAmountMSTField"></param>
/// <param name = "_balanceAmountCurField"></param>
/// <param name = "_balanceReportingAmountField"></param>
/// <returns></returns>
private CustVendBalanceListBalanceFieldsParameters constructCustVendBalanceListBalanceFieldsParameters_CustomerAging(FieldId _balanceAmountMSTField, FieldId _balanceAmountCurField, FieldId _balanceReportingAmountField)
{
CustVendBalanceListBalanceFieldsParameters param = CustVendBalanceListBalanceFieldsParameters::construct();
param.balanceMSTField = _balanceAmountMSTField;
param.balanceCurField = _balanceAmountCurField;
param.balanceReportingCurrencyField = _balanceReportingAmountField;
return param;
}
/// <summary>
/// COC for insertIntoTmpAccountSumV2
/// </summary>
/// <param name = "_agingCalculation"></param>
/// <param name = "_withAmountCur"></param>
/// <param name = "_withAmountMST"></param>
/// <param name = "_withAmountMSTSecondary"></param>
/// <param name = "_toCustVendTable"></param>
protected void insertIntoTmpAccountSumV2(CustVendAgingCalculation _agingCalculation, boolean _withAmountCur, boolean _withAmountMST, boolean _withAmountMSTSecondary, CustVendTable _toCustVendTable)
{
next insertIntoTmpAccountSumV2(_agingCalculation, _withAmountCur, _withAmountMST, _withAmountMSTSecondary, _toCustVendTable);
tmpAccountSum_CustomerAging = custTmpAccountSum;
}
/// <summary>
/// getSpecificSourceCurrency
/// </summary>
/// <param name = "_accountNum"></param>
/// <param name = "_currencyCode"></param>
/// <param name = "_isSourceCurrency"></param>
/// <returns></returns>
public container getSpecificSourceCurrency(AccountNum _accountNum, CurrencyCode _currencyCode, boolean _isSourceCurrency)
{
next getSpecificSourceCurrency(_accountNum, _currencyCode, _isSourceCurrency);
if (_isSourceCurrency)
{
select sum(Balance02Cur),
sum(Balance03Cur),
sum(Balance04Cur),
sum(Balance05Cur),
sum(Balance06Cur),
sum(Balance07Cur),
sum(CustAgingBalance08Cur),
sum(CustAgingBalance09Cur)
from tmpAccountSum_CustomerAging
where tmpAccountSum_CustomerAging.AccountNum == _accountNum
&& tmpAccountSum_CustomerAging.CurrencyCode == _currencyCode;
return [tmpAccountSum_CustomerAging.Balance02Cur, tmpAccountSum_CustomerAging.Balance03Cur, tmpAccountSum_CustomerAging.Balance04Cur, tmpAccountSum_CustomerAging.Balance05Cur, tmpAccountSum_CustomerAging.Balance06Cur, tmpAccountSum_CustomerAging.Balance07Cur, tmpAccountSum_CustomerAging.CustAgingBalance08Cur, tmpAccountSum_CustomerAging.CustAgingBalance09Cur];
}
else
{
select sum(Balance02),
sum(Balance03),
sum(Balance04),
sum(Balance05),
sum(Balance06),
sum(Balance07),
sum(CustAgingBalance08),
sum(CustAgingBalance09)
from tmpAccountSum_CustomerAging
where tmpAccountSum_CustomerAging.AccountNum == _accountNum
&& tmpAccountSum_CustomerAging.CurrencyCode != _currencyCode;
return [tmpAccountSum_CustomerAging.Balance02, tmpAccountSum_CustomerAging.Balance03, tmpAccountSum_CustomerAging.Balance04, tmpAccountSum_CustomerAging.Balance05, tmpAccountSum_CustomerAging.Balance06, tmpAccountSum_CustomerAging.Balance07, tmpAccountSum_CustomerAging.CustAgingBalance08, tmpAccountSum_CustomerAging.CustAgingBalance09];
}
}
}
/// <summary>
/// Extension of <c>CustAgingSnapshot</c> class
/// </summary>
[ExtensionOf(classStr(CustAgingSnapshot))]
final class CustAgingSnapshot_CustomerAging_Extension
{
/// <summary>
/// Populates the aging period fields on the <c>CustAging</c> table buffer.
/// </summary>
/// <param name = "_custAging">The <c>CustAging</c> table buffer to populate.</param>
/// <param name = "_columnToAgingPeriodArray">The array storing values for aging period values.</param>
/// <param name = "_columnToAgingPeriodReportingArray">The array storing values for the reporting currency period values.</param>
[Wrappable(true)]
protected final void populateAgingPeriodFieldsForSnapShot(CustAging _custAging,
Array _columnToAgingPeriodArray,
Array _columnToAgingPeriodReportingArray)
{
next populateAgingPeriodFieldsForSnapShot(_custAging, _columnToAgingPeriodArray, _columnToAgingPeriodReportingArray);
_custAging.AgingPeriod7 += _columnToAgingPeriodArray.value(7);
_custAging.AgingPeriod8 += _columnToAgingPeriodArray.value(8);
}
}
/// <summary>
/// CustAgingReportDP_CustomerAging_Extension
/// </summary>
[ExtensionOf(ClassStr(CustAgingReportTmpFromCustTmpAccountSum))]
final class CustAgingReportTmpFromCustTmpAccountSum_CustomerAging_Extension
{
private static CustAgingReportDPParameters CustAgingReportDPParameters_CustomerAging;
private static CustAgingReportTmpFromCustTmpAccountSum instance_CustomerAging;
/// <summary>
/// Creates a new instance of the <c>VendTmpAccountSumFromVendAgingReportTmp</c> class.
/// </summary>
/// <param name = "_custAgingReportDPParameters">
/// An instance of <c>CustAgingReportDPParameters</c> object.
/// </param>
/// <returns>
/// The instantiated <c>CustTmpAccountSumFromCustAgingReportTmp</c> object.
/// </returns>
public static CustAgingReportTmpFromCustTmpAccountSum newFromCustAgingReportDP(CustAgingReportDPParameters _custAgingReportDPParameters)
{
instance_CustomerAging = next newFromCustAgingReportDP(_custAgingReportDPParameters);
CustAgingReportDPParameters_CustomerAging=_custAgingReportDPParameters;
return instance_CustomerAging;
}
/// <summary>
/// initFieldMapping method
/// </summary>
protected void initFieldMapping()
{
int custTmpAccountSumDataSourceId = this.getCustTmpAccountSumDataSourceId();
if (CustAgingReportDPParameters_CustomerAging.reverseAmountsAndHeadings)
{
if (CustAgingReportDPParameters_CustomerAging.ledgerCurrencySelection == LedgerCurrencySelection::Accounting)
{
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance08), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging1));
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance09), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging2));
}
else if (CustAgingReportDPParameters_CustomerAging.ledgerCurrencySelection == LedgerCurrencySelection::Reporting)
{
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance08ReportingCurrency), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging1));
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance09ReportingCurrency), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging2));
}
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance08Cur), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging1Cur));
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance09Cur), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging2Cur));
}
else
{
if (CustAgingReportDPParameters_CustomerAging.ledgerCurrencySelection == LedgerCurrencySelection::Accounting)
{
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance08), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging1));
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance09), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging2));
}
else if (CustAgingReportDPParameters_CustomerAging.ledgerCurrencySelection == LedgerCurrencySelection::Reporting)
{
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance08ReportingCurrency), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging1));
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance09ReportingCurrency), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging2));
}
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance08Cur), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging1Cur));
this.insertFieldMap(custTmpAccountSumDataSourceId, tableNum(CustTmpAccountSum), fieldNum(CustTmpAccountSum, CustAgingBalance09Cur), tableNum(CustAgingReportTmp), fieldNum(CustAgingReportTmp, BalanceCustomerAging2Cur));
}
next initFieldMapping();
}
}
/// <summary>
/// CustAgingReportDP_CustomerAging_Extension
/// </summary>
[ExtensionOf(ClassStr(CustAgingReportDP))]
final class CustAgingReportDP_CustomerAging_Extension
{
public TransDate HeadingCustomerAging1;
public TransDate HeadingCustomerAging2;
public TransDate HeadingCustomerAging4;
public TransDate HeadingCustomerAging3;
public TransTxt HeadingAgingBucketDescriptionCustomerAging1;
public TransTxt HeadingAgingBucketDescriptionCustomerAging2;
public TransDate tempHeadingCustomerAging3;
#define.emptyString(' ')
/// <summary>
/// Inserts records into the temporary <c>CustAgingReportTmp</c> table.
/// </summary>
/// <param name="_reverseAmountsAndHeadings">
/// A Boolean value that indicates whether the column values should be reversed.
/// </param>
/// <returns>
/// The custAgingReportTmp transaction that needs to be inserted.
/// </returns>
protected CustAgingReportTmp insertCustAgingReportTmp(boolean _reverseAmountsAndHeadings)
{
HeadingAgingBucketDescriptionCustomerAging1=this.headingAgingBucketDescription(8);
HeadingAgingBucketDescriptionCustomerAging2=this.headingAgingBucketDescription(9);
HeadingCustomerAging1=this.custVendBalanceList.startdate(8);
HeadingCustomerAging2=this.custVendBalanceList.enddate(8);
tempHeadingCustomerAging3=this.custVendBalanceList.startdate(9);
if(tempHeadingCustomerAging3 != Global::DateNull())
{
HeadingCustomerAging3=tempHeadingCustomerAging3;
}
HeadingCustomerAging4=this.custVendBalanceList.enddate(9);
CustAgingReportTmp custAgingReportTmp= next insertCustAgingReportTmp(_reverseAmountsAndHeadings);
this.onExecuted(custAgingReportTmp,_reverseAmountsAndHeadings);
return custAgingReportTmp;
}
/// <summary>
///
/// </summary>
/// <param name = "custAgingReportTmp"></param>
/// <param name = "_reverseAmountsAndHeadings"></param>
public void onExecuted(CustAgingReportTmp custAgingReportTmp, boolean _reverseAmountsAndHeadings)
{
update_recordset custAgingReportTmp
setting HeadingCustomerAging1=this.HeadingCustomerAging1,
HeadingCustomerAging2=this.HeadingCustomerAging2,
HeadingCustomerAging3=this.HeadingCustomerAging3,
HeadingCustomerAging4=this.HeadingCustomerAging4,
HeadingAgingBucketDescriptionCustomerAging1=this.HeadingAgingBucketDescriptionCustomerAging1,
HeadingAgingBucketDescriptionCustomerAging2=this.HeadingAgingBucketDescriptionCustomerAging2;
}
/// <summary>
/// Gets the heading description.
/// </summary>
/// <returns>
/// The heading text.
/// </returns>
[Wrappable(true)]
public final TransTxt headingAgingBucketDescription(int HeadingNumber)
{
if (contract.parmAgingBuckets() && contract.parmPrintAgingBucketDescription())
{
return strFmt('%1', custVendBalanceList.getDescription(HeadingNumber));
}
else
{
return #emptyString;
}
}
}
/// <summary>
/// CustAgingReportControllerCustomerAgingExtension
/// </summary>
class CustAgingReportControllerCustomerAgingExtension extends CustAgingReportController
{
/// <summary>
/// construct method for CustAgingReportControllerCustomerAgingExtension class
/// </summary>
/// <returns></returns>
public static CustAgingReportControllerCustomerAgingExtension construct()
{
return new CustAgingReportControllerCustomerAgingExtension();
}
/// <summary>
/// main method
/// </summary>
/// <param name = "_args"></param>
public static void main(Args _args)
{
SrsReportRunController formLetterController = CustAgingReportControllerCustomerAgingExtension::construct();
CustAgingReportControllerCustomerAgingExtension controller = formLetterController;
controller.parmReportName(ssrsReportStr(CustAgingReport_CustomerAging, DesignWithNoDetailAndNoTransactionCur));
controller.parmArgs(_args);
controller.startOperation();
}
/// <summary>
/// getReportName method
/// </summary>
/// <param name = "_contract"></param>
/// <returns></returns>
protected str getReportName(CustAgingReportContract _contract)
{
str reportNameLocal;
if (_contract.parmDetailed())
{
if (_contract.parmIncludeAmountCur())
{
reportNameLocal = ssrsReportStr(CustAgingReport_CustomerAging, DesignWithDetailAndWithTransactionCur);
}
else
{
reportNameLocal = ssrsReportStr(CustAgingReport_CustomerAging, DesignWithDetailAndNoTransactionCur);
}
}
else
{
if (_contract.parmIncludeAmountCur())
{
reportNameLocal = ssrsReportStr(CustAgingReport_CustomerAging, DesignWithNoDetailAndWithTransactionCur);
}
else
{
reportNameLocal = ssrsReportStr(CustAgingReport_CustomerAging, DesignWithNoDetailAndNoTransactionCur);
}
}
return reportNameLocal;
}
}