{
#define.recType('BD')
#define.cardNumLength('16')
#define.space(' ')
CustTable custTable;
CreditCardCust creditCardCust;
str 2 recordType = #recType;
str 20 userAccount;
str 2 lengthCardNumber = #cardNumLength;
str 16 creditCardNumber;// = ;
str 4 expiryDate;// = ;
str 10 transAmount;// = ;
str 3 transCurrency;// = ;
str 10 policyReference;// = ;
str 10 billingDate;// = ;
str 5 documentNumber = strRep(#space, 5);
container batchDetailRecord = connull();
custTable = CustTable::findByLedgerDimension(_ledgerJournaltrans.parmLedgerDimension());
userAccount = _ledgerJournaltrans.Voucher + custTable.AccountNum;
if (strLen(userAccount) < 20)
{
userAccount = userAccount + strRep(#space, (20 - strLen(userAccount)));
}
select firstOnly RecId, expiryDate from creditCardCust where creditCardCust.CustAccount == custTable.AccountNum;
creditCardNumber = CreditCardCustNumber::find(creditCardCust.RecId).CreditCardNumber;
expiryDate = creditCardCust.ExpiryDate;
transAmount = strLTrim(strRem(num2str(_ledgerJournaltrans.AmountCurCredit, 10, 2, 0, 0), '.'));
transAmount = this.convertStrPreZeros(transAmount);
transCurrency = _ledgerJournaltrans.CurrencyCode;
policyReference = custTable.name();
if (strLen(policyReference) < 10)
{
policyReference = policyReference + strRep(#space, (10 - strLen(policyReference)));
}
billingDate = date2str(_ledgerJournaltrans.TransDate, 123, 2, 3, 2, 3, 4, DateFlags::FormatAll);
//documentNumber =
batchDetailRecord = conIns(batchDetailRecord, 1, recordType +
userAccount +
lengthCardNumber +
creditCardNumber +
expiryDate +
transAmount +
transCurrency +
policyReference +
billingDate +
documentNumber);
file.write(batchDetailRecord);
}