public Voucher VoucherTrans(ChequePaymentSteps _ChequePaymentSteps,PaymentStepPosting StepPosting,ChequePaymentStatus _PaymentStatus)
{
LedgerVoucher voucherLedger;
LedgerVoucherObject voucherObj;
LedgerVoucherTransObject voucherTrObj1;
LedgerVoucherTransObject voucherTrObj2;
LedgerJournalACType LedgerJournalType,offSetType;// = this.JournalData(_PaymentStatus).AccountType;
DimensionDynamicAccount ledgerDimension,offsetledgerDimension;
CustVendPaymManPost CustVendPaymManPost;
;
voucherLedger = LedgerVoucher::newLedgerPost(DetailSummary::Detail,SysModule::Ledger,StepPosting.NumberSequenceCode);
voucherObj = LedgerVoucherObject::newVoucher(NumberSeq::newGetNumFromCode(StepPosting.NumberSequenceCode).num());
voucherLedger.addVoucher(voucherObj);
LedgerJournalType = StepPosting.AccountType;
offSetType = StepPosting.OffsetAccountType;
switch(LedgerJournalType)
{
case LedgerJournalACType::Ledger:
ledgerDimension = StepPosting.LedgerDimension;
voucherTrObj1 = LedgerVoucherTransObject::newBasicDefault(voucherObj,
LedgerPostingType::LedgerJournal,
ledgerDimension,
_ChequePaymentSteps.CurrencyCode,
_ChequePaymentSteps.ChequeAmountCur,
0,0);
break;
case LedgerJournalACType::Cust:
ledgerDimension = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(_ChequePaymentSteps.CustAccount,LedgerJournalACType::Cust);
voucherTrObj1 = LedgerVoucherTransObject::newBasicDefault(voucherObj,
LedgerPostingType::CustBalance,
ledgerDimension,
_ChequePaymentSteps.CurrencyCode,
_ChequePaymentSteps.ChequeAmountCur,
0,0);
break;
case LedgerJournalACType::Bank:
ledgerDimension = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(_ChequePaymentSteps.CustBankAccount,LedgerJournalACType::Bank);
voucherTrObj1 = LedgerVoucherTransObject::newBasicDefault(voucherObj,
LedgerPostingType::CustPayment,
ledgerDimension,
_ChequePaymentSteps.CurrencyCode,
_ChequePaymentSteps.ChequeAmountCur,
0,0);
break;
}
switch(offSetType)
{
case LedgerJournalACType::Ledger:
offsetledgerDimension = StepPosting.OffsetLedgerDimension;
voucherTrObj2 = LedgerVoucherTransObject::newBasicDefault(voucherObj,
LedgerPostingType::LedgerJournal,
offsetledgerDimension,
_ChequePaymentSteps.CurrencyCode,
-1 * _ChequePaymentSteps.ChequeAmountCur,
0,0);
break;
case LedgerJournalACType::Cust:
offsetledgerDimension = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(_ChequePaymentSteps.CustAccount,LedgerJournalACType::Cust);
voucherTrObj2 = LedgerVoucherTransObject::newBasicDefault(voucherObj,
LedgerPostingType::CustBalance,
offsetledgerDimension,
_ChequePaymentSteps.CurrencyCode,
-1 * _ChequePaymentSteps.ChequeAmountCur,
0,0);
break;
case LedgerJournalACType::Bank:
offsetledgerDimension = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(_ChequePaymentSteps.CustBankAccount,LedgerJournalACType::Bank);
voucherTrObj2 = LedgerVoucherTransObject::newBasicDefault(voucherObj,
LedgerPostingType::CustPayment,
offsetledgerDimension,
_ChequePaymentSteps.CurrencyCode,
-1 * _ChequePaymentSteps.ChequeAmountCur,
0,0);
break;
}
voucherLedger.addTrans(voucherTrObj1);
voucherLedger.addTrans(voucherTrObj2);
voucherLedger.end();
return voucherObj.parmVoucher();
}