public IActionResult PartialConveyance()
        {
            ViewData["AccountSubLedgerName"] = new SelectList(_work.AccountSubLedger.GetAll(), "Id", "AccountSubLedgerName");

            Voucher voucher = _work.Voucher.FindByVoucherType(VoucherTypes.Contra);

            VoucherNumber lastVoucherNumber = _work.VoucherNumber.GetVoucherTypeWiseLastOrDefault(voucher.Id);

            if (lastVoucherNumber == null)
            {
                lastVoucherNumber = new VoucherNumber();
            }

            VoucherNumber unsavedVoucherNumber = _work.VoucherNumber.GetVoucherTypeWiseUnsavedVoucher(voucher.Id);

            TempVoucherHead tempVoucherHead = new TempVoucherHead();

            if (unsavedVoucherNumber == null)
            {
                tempVoucherHead.SetVoucherNumber(VoucherTypes.Contra, lastVoucherNumber.Number);

                tempVoucherHead.VoucherId = voucher.Id;

                tempVoucherHead.VoucherType = voucher.VoucherType;

                tempVoucherHead.VoucherSaveState = VoucherSaveStates.Unsaved;

                _work.TempVoucherHead.Add(tempVoucherHead);

                // === voucher number === //

                VoucherNumber voucherNumber = new VoucherNumber
                {
                    Number    = tempVoucherHead.VoucherNumber,
                    State     = tempVoucherHead.VoucherSaveState,
                    VoucherId = voucher.Id
                };

                _work.VoucherNumber.Add(voucherNumber);

                // === === === //

                bool isSaved = _work.Save() > 0;

                if (isSaved)
                {
                    return(PartialView("_Conveyance", tempVoucherHead));
                }
            }
            else
            {
                TempVoucherHead unsavedVoucher = _work.TempVoucherHead.GetVoucherNumberWiseVoucher(unsavedVoucherNumber.Number);

                return(PartialView("_Conveyance", unsavedVoucher));
            }

            return(PartialView("_Conveyance", tempVoucherHead));
        }
        public IActionResult PartialJournal()
        {
            Voucher voucher = _work.Voucher.FindByVoucherType(VoucherTypes.Contra);

            VoucherNumber lastVoucherNumber = _work.VoucherNumber.GetVoucherTypeWiseLastOrDefault(voucher.Id);

            if (lastVoucherNumber == null)
            {
                lastVoucherNumber = new VoucherNumber();
            }

            VoucherNumber unsavedVoucherNumber = _work.VoucherNumber.GetVoucherTypeWiseUnsavedVoucher(voucher.Id);

            TempVoucherHead tempVoucherHead = new TempVoucherHead();

            if (unsavedVoucherNumber == null)
            {
                tempVoucherHead.SetVoucherNumber(VoucherTypes.Contra, lastVoucherNumber.Number);

                tempVoucherHead.VoucherId = voucher.Id;

                tempVoucherHead.VoucherType = voucher.VoucherType;

                tempVoucherHead.VoucherSaveState = VoucherSaveStates.Unsaved;

                _work.TempVoucherHead.Add(tempVoucherHead);

                // === voucher number === //

                VoucherNumber voucherNumber = new VoucherNumber
                {
                    Number    = tempVoucherHead.VoucherNumber,
                    State     = tempVoucherHead.VoucherSaveState,
                    VoucherId = voucher.Id
                };

                _work.VoucherNumber.Add(voucherNumber);

                // === === === //

                bool isSaved = _work.Save() > 0;

                if (isSaved)
                {
                    return(PartialView("_Journal", tempVoucherHead));
                }
            }
            else
            {
                TempVoucherHead unsavedVoucher = _work.TempVoucherHead.GetVoucherNumberWiseVoucher(unsavedVoucherNumber.Number);

                return(PartialView("_Journal", unsavedVoucher));
            }

            return(PartialView("_Journal", tempVoucherHead));
        }
        public IActionResult LoadDebitVoucher(string voucherNumber)
        {
            var voucher = _work.VoucherHead.GetAllWithDetails(voucherNumber);

            TempVoucherHead tempVoucherHead = _mapper.Map <TempVoucherHead>(voucher);

            tempVoucherHead.VoucherSaveState = VoucherSaveStates.Loading;

            return(PartialView("_DebitVoucher", tempVoucherHead));
        }