public static VoucherInfoBatch MatchVouchers(iVoucherInfoBatch voucherInfoBatch, IEnumerable<IECLRecord> ECLItemsResult) { VoucherInfoBatch updatedMatchedVoucher = new VoucherInfoBatch(); updatedMatchedVoucher.JobIdentifier = voucherInfoBatch.JobIdentifier; if (voucherInfoBatch.VoucherInformation != null) { IECLRecordVoucherInfo[] vouchers = voucherInfoBatch.VoucherInformation .Where(a => a.SkippedForNextProcessing == false) .ToArray<IECLRecordVoucherInfo>(); var MatchedVouchers = vouchers.Where (voucherInfo => ECLItemsResult.Any (eclItems => eclItems.Amount == voucherInfo.Voucher.voucher.amount.PadLeft(10, '0') && eclItems.ChequeSerialNumber == voucherInfo.Voucher.voucher.auxDom.PadLeft(9, '0') && eclItems.DrawerAccountNumber == voucherInfo.Voucher.voucher.accountNumber.PadLeft(10, ' ') && eclItems.LedgerBSBCode == voucherInfo.Voucher.voucher.bsbNumber)).Distinct().ToArray<IECLRecordVoucherInfo>(); var updatedMatchedVouchers = MatchedVouchers.Select(f => GetMatchingECLRecord(f.Voucher, ECLItemsResult)).ToArray<IECLRecordVoucherInfo>(); updatedMatchedVoucher.VoucherInformation = updatedMatchedVouchers.ToList<IECLRecordVoucherInfo>(); } return updatedMatchedVoucher; }
public static VoucherInfoBatch UnMatchVouchers(iVoucherInfoBatch voucherInfoBatch, VoucherInformation[] MatchedVouchers) { var unMatchedVoucher = new VoucherInfoBatch(); if (voucherInfoBatch.VoucherInformation != null) { var vouchers = voucherInfoBatch.VoucherInformation.Select(a => a.Voucher).ToArray<VoucherInformation>(); unMatchedVoucher.JobIdentifier = voucherInfoBatch.JobIdentifier; if (vouchers.Length != 0) { var newQuery = vouchers.Except(MatchedVouchers).Select(a => new ECLRecordVoucherInfo { Voucher = a }) .ToList<IECLRecordVoucherInfo>(); unMatchedVoucher.VoucherInformation = newQuery; } } return unMatchedVoucher; }