public static CashInVm GetCashReceiptForExpense(int receiptId = 0)
        {
            CashInVm cashVm;

            if (receiptId != 0)
            {
                cashVm = CashOutHelper.FillCashVmForReceiptView(receiptId);
                return(cashVm);
            }
            cashVm               = new CashInVm();
            cashVm.CashType      = "cashout";
            cashVm.ReceiptCode   = AdminHelper.GeneratePrefixCode(PrefixForEnum.CashOut, false);
            cashVm.PaymentTermId = 1;
            cashVm.CurrencyId    = 1;

            CashOutExpense cashOutExpense = new CashOutExpense();

            cashVm.CashOutReceiptExpenses.Add(cashOutExpense);


            return(cashVm);
        }
        public static List <CashOutExpense> GetExpensesListForReceipt(int receiptId)
        {
            AccountingEntities db = new AccountingEntities();

            List <CashOutExpense> cashOutExpenseList = new List <CashOutExpense>();
            CashOutExpense        cashOutExpense;
            var receiptExp = db.CashOutReceiptExpenses.Include("ExpenseLib").Include("CashOutReceipt")
                             .Where(x => x.ReceiptId == receiptId)
                             .Select(x => new { x.ExpenseLib.ExpenseNameEn, x.PaidAmount, x.CashOutReceipt.Currency.CurrencySign }).ToList();

            foreach (var item in receiptExp)
            {
                cashOutExpense = new CashOutExpense();
                cashOutExpense.CurrencySign = item.CurrencySign;
                cashOutExpense.ExpenseName  = item.ExpenseNameEn;
                cashOutExpense.PaidAmount   = item.PaidAmount;

                cashOutExpenseList.Add(cashOutExpense);
            }

            return(cashOutExpenseList);
        }
示例#3
0
        internal static CashInVm FillCashVmForReceiptView(int receiptId)
        {
            CashInVm            cashVm = new CashInVm();
            AccountingEntities  db     = new AccountingEntities();
            EasyFreightEntities db1    = new EasyFreightEntities();
            var cashDb = db.CashOutReceipts
                         .Include("PaymentTerm")
                         .Include("Currency").Where(x => x.ReceiptId == receiptId).FirstOrDefault();

            Mapper.CreateMap <CashOutReceipt, CashInVm>()
            .ForMember(x => x.CashInReceiptChecks, y => y.Ignore())
            .ForMember(x => x.CashInReceiptInvs, y => y.Ignore())
            .ForMember(x => x.CashOutReceiptExpenses, y => y.Ignore())
            .IgnoreAllNonExisting();

            Mapper.Map(cashDb, cashVm);

            cashVm.CurrencySign    = cashDb.Currency.CurrencySign;
            cashVm.PaymentTermName = cashDb.PaymentTerm.PaymentTermEn;
            //Get customer Name
            int custId;

            if (cashVm.CarrierId != null)
            {
                custId = cashVm.CarrierId.Value;
                cashVm.CustomerName = db1.Carriers.Where(x => x.CarrierId == custId).FirstOrDefault().CarrierNameEn;
            }
            else if (cashVm.ContractorId != null)
            {
                custId = cashVm.ConsigneeId.Value;
                cashVm.CustomerName = db1.Contractors.Where(x => x.ContractorId == custId).FirstOrDefault().ContractorNameEn;
            }
            else if (cashVm.AgentId != null)
            {
                custId = cashVm.AgentId.Value;
                cashVm.CustomerName = db1.Agents.Where(x => x.AgentId == custId).FirstOrDefault().AgentNameEn;
            }

            //for bank
            if (cashVm.PaymentTermId == (byte)PaymentTermEnum.BankCashDeposit)
            {
                if (cashVm.BankAccId != null)
                {
                    int bankAccId = cashVm.BankAccId.Value;
                    var bankInfo  = db.BankAccounts.Include("Bank").Where(x => x.BankAccId == bankAccId).FirstOrDefault();
                    cashVm.BankDetailsVm = new BankDetailsVm()
                    {
                        AccountName   = bankInfo.AccountName,
                        AccountNumber = bankInfo.AccountNumber,
                        BankNameEn    = bankInfo.Bank.BankNameEn,
                        BankAddressEn = bankInfo.Bank.BankAddressEn
                    };
                }
            }

            else if (cashVm.PaymentTermId == (byte)PaymentTermEnum.Check)
            {
                CashInCheckVm cashCheckVm = new CashInCheckVm();
                var           cashCheckDb = db.CashOutReceiptChecks.Where(x => x.ReceiptId == receiptId).FirstOrDefault();
                Mapper.CreateMap <CashOutReceiptCheck, CashInCheckVm>().IgnoreAllNonExisting();
                Mapper.Map(cashCheckDb, cashCheckVm);
                cashVm.CashInReceiptChecks.Add(cashCheckVm);
            }

            //kamal
            else if (cashVm.PaymentTermId == (byte)PaymentTermEnum.CashToBank)
            {
                CashInCheckVm cashCheckVm = new CashInCheckVm();
                var           cashCheckDb = db.CashOutReceiptChecks.Where(x => x.ReceiptId == receiptId).FirstOrDefault();
                Mapper.CreateMap <CashOutReceiptCheck, CashInCheckVm>().IgnoreAllNonExisting();
                Mapper.Map(cashCheckDb, cashCheckVm);
                cashVm.CashInReceiptChecks.Add(cashCheckVm);
            }



            //Get Invoice or agent notes codes list
            if (cashVm.AgentId != null)
            {
            }
            else
            {
                var invlist = db.CashOutReceiptInvs.Include("InvoiceAP")
                              .Where(x => x.ReceiptId == receiptId).Select(x => x.InvoiceAP.InvoiceCode).ToArray();

                cashVm.InvCodeListString = string.Join(" - ", invlist);
            }

            //Check if for expenses
            var cashOutExp = db.CashOutReceiptExpenses.Include("ExpenseLib").Where(x => x.ReceiptId == receiptId).ToList();

            if (cashOutExp.Count() > 0)
            {
                List <CashOutExpense> cashOutExpenseList = new List <CashOutExpense>();
                CashOutExpense        cashOutExpense;
                foreach (var item in cashOutExp)
                {
                    cashOutExpense = new CashOutExpense();
                    cashOutExpense.CurrencySign = cashVm.CurrencySign;
                    cashOutExpense.ExpenseName  = item.ExpenseLib.ExpenseNameEn;
                    cashOutExpense.PaidAmount   = item.PaidAmount;

                    cashOutExpenseList.Add(cashOutExpense);
                }
                cashVm.CashOutReceiptExpenses = cashOutExpenseList;
            }

            cashVm.CashType = "cashout";
            //Get Created by user name


            return(cashVm);
        }