示例#1
0
        public void ImportExcelData(BankAccountModel.AccountModel model)
        {
            using (var session = usersSessionFactory.CreateContext(true))
            {
                var account =
                    session.BankAccounts.SingleOrDefault(a => a.AccountNo == model.AccountNo);
                if (account == null)
                {
                    account = new BankAccount()
                    {
                        AccountNo = model.AccountNo.Trim()
                    };
                    session.BankAccounts.Add(account);
                }

                account.Balance = (decimal)model.Balance;

                var lastDbDate = account.BankAccountItems.Any() ? account.BankAccountItems.Max(i => i.Date) : DateTime.MinValue;

                foreach (var item in model.Items)
                {
                    if (item.Date > lastDbDate)
                    {
                        var operation = item.Operation;
                        var cutAt     = ", mok. įm. / a. k.";
                        if (operation.Contains(cutAt))
                        {
                            operation = operation.Substring(0, operation.IndexOf(cutAt));
                        }

                        cutAt = ", gav. įm. / a. k.";
                        if (operation.Contains(cutAt))
                        {
                            operation = operation.Substring(0, operation.IndexOf(cutAt));
                        }

                        account.BankAccountItems.Add(new BankAccountItem()
                        {
                            Date      = item.Date,
                            Operation = operation,
                            Expense   = item.ExpenseDecimal,
                            Income    = item.IncomeDecimal
                        });
                    }
                }
            }
        }
示例#2
0
        public virtual ActionResult ImportBankAccountExcel(string userObjectId, HttpPostedFileBase hpf)
        {
            if (CurrentUser.Role != UserRoles.Admin)
            {
                return(RedirectToAction(MVC.Sponsor.Index()));
            }

            if (hpf.ContentLength == 0)
            {
                return(Index());
            }

            using (var package = new ExcelPackage(hpf.InputStream))
            {
                var sheet = package.Workbook.Worksheets.First();
                var model = new BankAccountModel.AccountModel();
                var list  = new List <BankAccountItemModel>();
                for (int row = 18; row < sheet.Dimension.End.Row; row++)
                {
                    if (sheet.Cells[row, 1].Value == null)
                    {
                        continue;
                    }

                    long     serialDate = long.Parse(sheet.Cells[row, 1].Value.ToString());
                    DateTime date       = DateTime.FromOADate(serialDate);

                    list.Add(new BankAccountItemModel()
                    {
                        Date      = date,
                        Operation = sheet.Cells[row, 2].Value.ToString(),
                        Expense   = (double?)sheet.Cells[row, 3].Value,
                        Income    = (double?)sheet.Cells[row, 4].Value
                    });
                }

                model.Items     = list;
                model.AccountNo = sheet.Cells[13, 1].Value.ToString();
                model.Balance   = (double)sheet.Cells[sheet.Dimension.End.Row, 4].Value;

                Service.ImportExcelData(model);
            }

            return(RedirectToAction(MVC.Sponsor.Index()));
        }