private TransactionInCash GetTransactionInCash(double debit, double credit)
        {
            TransactionInCash transactionInCash = new TransactionInCash(_recordRepository)
            {
                ProjectHead     = _projectHead,
                Date            = _massVoucher.VoucherDate,
                Narration       = _massVoucher.Narration,
                Tag             = _massVoucher.Tag,
                VoucherSerialNo = _massVoucher.VoucherSerialNo,
                Link            = _massVoucher.LinkedVoucherNo,
                VoucherType     = _massVoucher.VoucherType,
                Debit           = debit,
                Credit          = credit,
                IsActive        = true
            };

            return(transactionInCash);
        }
 public bool InsertCashBookRow(TransactionInCash cashRecord)
 {
     return InsertLedgerRecord(cashRecord) > 0;
 }
        private bool SetEntryableRecords()
        {
            bool           isValid = true;
            IList <Record> records = new List <Record>();

            if (_massVoucher.VoucherType.Equals("DV", StringComparison.OrdinalIgnoreCase))
            {
                DebitVoucher debitVoucher = GetDebitVoucher();
                Record       transaction  = _massVoucher.IsCheque
                                         ? (Record)GetTransactionInCheque(0, _massVoucher.Amount)
                                         : (Record)GetTransactionInCash(0, _massVoucher.Amount);
                records.Add(debitVoucher);
                records.Add(transaction);
            }
            else if (_massVoucher.VoucherType.Equals("CV", StringComparison.OrdinalIgnoreCase))
            {
                CreditVoucher creditVoucher = GetCreditVoucher();
                Record        transaction   = _massVoucher.IsCheque
                                         ? (Record)GetTransactionInCheque(_massVoucher.Amount, 0)
                                         : (Record)GetTransactionInCash(_massVoucher.Amount, 0);
                records.Add(creditVoucher);
                records.Add(transaction);
            }
            else if (_massVoucher.VoucherType.Equals("JV", StringComparison.OrdinalIgnoreCase))
            {
                JournalVoucher journalVoucher = GetJournalVoucher();
                records.Add(journalVoucher);
            }
            else if (_massVoucher.VoucherType.Equals("Contra", StringComparison.OrdinalIgnoreCase))
            {
                double cashDebit = _massVoucher.ContraType.Equals("bank to cash", StringComparison.OrdinalIgnoreCase)
                                       ? _massVoucher.Amount
                                       : 0;
                double cashCredit = _massVoucher.ContraType.Equals("cash to bank", StringComparison.OrdinalIgnoreCase)
                                        ? _massVoucher.Amount
                                        : 0;

                Head bankBook = _headRepository.GetSingle(h => h.Name.Equals("Bank Book", StringComparison.OrdinalIgnoreCase));
                Head cashBook = _headRepository.GetSingle(h => h.Name.Equals("Cash Book", StringComparison.OrdinalIgnoreCase));

                ProjectHead bankBookProjectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == _massVoucher.Project.ID && ph.Head.ID == bankBook.ID);
                ProjectHead cashBookProjectHead = _projectHeadRepository.GetSingle(ph => ph.Project.ID == _massVoucher.Project.ID && ph.Head.ID == cashBook.ID);

                TransactionInCash cashTransaction = GetTransactionInCash(cashDebit, cashCredit);
                cashTransaction.ProjectHead = cashBookProjectHead;

                TransactionInCheque chequeTransaction = GetTransactionInCheque(cashCredit, cashDebit);
                chequeTransaction.ProjectHead = bankBookProjectHead;

                records.Add(cashTransaction);
                records.Add(chequeTransaction);
            }

            if (records.Count > 0)
            {
                _entryableRecords = records;
            }
            else
            {
                isValid = false;
            }

            return(isValid);
        }
 public bool InsertCashBookRow(TransactionInCash cashRecord)
 {
     return(InsertLedgerRecord(cashRecord) > 0);
 }