// GET: /PettyCashVoucher/Create
        public ActionResult Create()
        {
            var errorViewModel = new ErrorViewModel();

            try
            {
                var userName = HttpContext.User.Identity.Name;


                var payTo       = _pettyCashVoucherInfoService.BMSUnit.UserInfoRepository.GetAll().Where(c => c.UserId == userName).ToList().FirstOrDefault().UserName;
                var staffId     = _pettyCashVoucherInfoService.BMSUnit.UserInfoRepository.GetAll().Where(c => c.UserId == userName).ToList().FirstOrDefault().StaffID;
                var companyCode = _pettyCashVoucherInfoService.BMSUnit.UserInfoRepository.GetAll().Where(c => c.UserId == userName).ToList().FirstOrDefault().CompanyCode;
                var busiNo      = _pettyCashVoucherInfoService.BMSUnit.UserInfoRepository.GetAll().Where(c => c.UserId == userName).ToList().FirstOrDefault().BusiNo;
                var dept        = _pettyCashVoucherInfoService.BMSUnit.UserInfoRepository.GetAll().Where(c => c.UserId == userName).ToList().FirstOrDefault().Dept;
                var userId      = _pettyCashVoucherInfoService.BMSUnit.UserInfoRepository.GetAll().Where(c => c.UserId == userName).ToList().FirstOrDefault().UserId;

                var model = new VoucherViewModel()
                {
                    PayTo       = payTo,
                    StaffID     = staffId,
                    CompanyCode = companyCode,
                    BusiNo      = busiNo,
                    Dept        = dept,
                    UserId      = userId,
                    VoucherDate = DateTime.Now
                };

                return(PartialView("_Create", model));
            }
            catch (Exception ex)
            {
                errorViewModel.ErrorMessage = CommonExceptionMessage.GetExceptionMessage(ex);
                return(PartialView("_ErrorPopUp", errorViewModel));
            }
        }
Пример #2
0
        /// <summary>
        /// 校验录入借贷是否平衡
        /// </summary>
        /// <param name="vmVoucher">凭证借贷额</param>
        /// <returns>空为校验通过,否则为出错原因</returns>
        public string IsVoucherBalance(VoucherViewModel vmVoucher)
        {
            decimal Debit = 0, Credit = 0;

            foreach (VoucherDetailViewModel d in vmVoucher.VoucherDetails)
            {
                Account acc = _account.GetAccount(d.AccId.Value);
                if (acc == null)
                {
                    return(string.Format("科目无效({1})。摘要:{0}", d.Abstract, d.AccId));
                }

                if (acc.Direction == "借")
                {
                    Debit += d.Debit;
                    Debit += d.Credit * (-1);
                }
                else
                {
                    Credit += d.Credit;
                    Credit += d.Debit * (-1);
                }
            }

            if (Debit != Credit)
            {
                return("录入借贷不平");
            }

            return(string.Empty);
        }
Пример #3
0
        public bool ValidVoucher(VoucherViewModel voucher, out string err)
        {
            err = string.Empty;

            //账期校验
            AccountBook accBook = _accountBook.GetCurrentBook();

            if (accBook.StartYear < voucher.VoucherDate.Year ||
                (accBook.StartYear == voucher.VoucherDate.Year && accBook.StartPeriod > voucher.VoucherDate.Month))
            {
                err = "凭证日期无效";
                return(false);
            }

            //验证凭证字号
            int maxSn = _voucher.GetMaxCertWordSn(voucher.VoucherDate, voucher.CwId);

            if (maxSn + 1 != voucher.CertWordSN)
            {
                voucher.CertWordSN = maxSn + 1;
            }

            //验证账是否平
            err = _voucher.IsVoucherBalance(voucher);

            return(err == string.Empty ? true : false);
        }
Пример #4
0
        public async Task <object> Post(int userId, [FromBody] VoucherViewModel model)
        {
            MessageBase2 result = new MessageBase2();
            await _voucherService.ExchangeAsync(userId, model.Code);

            return(result);
        }
        public ActionResult Edit(VoucherViewModel viewModel)
        {
            var strMessage = string.Empty;

            try
            {
                if (ModelState.IsValid)
                {
                    List <VoucherDetailEntityModel> list = new List <VoucherDetailEntityModel>();

                    if (Session["lstPettyCashVoucherDetails"] != null)
                    {
                        list = (List <VoucherDetailEntityModel>)Session["lstPettyCashVoucherDetails"];
                    }


                    //var model = _pettyCashVoucherInfoService.BMSUnit.WebVoucherMasterRepository.GetByID(viewModel.Id);
                    viewModel.Posted    = "N";
                    viewModel.TransDate = DateTime.Now;
                    viewModel.JVNo      = "";
                    viewModel.Period    = 0;
                    var entity = viewModel.ToEntity();


                    // Get previous detail list
                    var lst = _pettyCashVoucherInfoService.BMSUnit.WebVoucherDetailsRepository.GetAll().Where(
                        q => q.VoucherNo == entity.Id);


                    foreach (var dt in lst)
                    {
                        _pettyCashVoucherInfoService.BMSUnit.WebVoucherDetailsRepository.Delete_64Bit(Convert.ToInt64(dt.Id));
                    }

                    foreach (VoucherDetailEntityModel detail in list)
                    {
                        detail.VoucherNo = Convert.ToInt64(entity.Id);
                        detail.ASCode    = "";
                        var detailEntity = detail.ToEntity();

                        _pettyCashVoucherInfoService.BMSUnit.WebVoucherDetailsRepository.Add(detailEntity);
                        _pettyCashVoucherInfoService.BMSUnit.WebVoucherDetailsRepository.SaveChanges();
                    }


                    _pettyCashVoucherInfoService.BMSUnit.WebVoucherMasterRepository.Update(entity);
                    _pettyCashVoucherInfoService.BMSUnit.WebVoucherMasterRepository.SaveChanges();

                    return(Content(Boolean.TrueString));
                }

                strMessage = Common.GetModelStateErrorMessage(ModelState);
            }
            catch (Exception ex)
            {
                strMessage = CommonExceptionMessage.GetExceptionMessage(ex, CommonAction.Update);
            }

            return(Content(strMessage));
        }
Пример #6
0
        public VoucherViewModel GetVoucherViewModel(int Id)
        {
            //Using Repository
            VoucherViewModel model = rep.GetVoucher(Id);

            return(model);
        }
Пример #7
0
        public IActionResult Create(VoucherViewModel viewModel)
        {
            // Check for valid FiscalYearId
            if (_fiscalYearData.GetFiscalYearById(viewModel.FiscalYearId) == null)
            {
                ModelState.AddModelError("FiscalYearId", $"Fiscal Year does not exist.");
            }

            // Check for valid AccountId
            if (_accountData.GetAccountById(viewModel.AccountId) == null)
            {
                ModelState.AddModelError("AccountId", $"Account ID does not exist.");
            }

            // Check for valid Ledger: (FISCAL_YEAR_ID, ACCOUNT_ID, LEDGER_NO)
            if (_accountLedgerData
                .GetAccountLedger(viewModel.FiscalYearId, viewModel.AccountId, viewModel.LedgerNo) == null)
            {
                ModelState.AddModelError("LedgerNo", $"Ledger does not exist.");
            }

            if (ModelState.IsValid)
            {
                var voucher = new Voucher
                {
                    VoucherId       = viewModel.VoucherId,
                    VoucherDate     = viewModel.VoucherDate,
                    VoucherStatusId = viewModel.VoucherStatusId,
                    VoucherTotal    = viewModel.VoucherTotal,
                    FiscalYearId    = viewModel.FiscalYearId,
                    AccountId       = viewModel.AccountId,
                    LedgerNo        = viewModel.LedgerNo,
                    Remarks         = viewModel.Remarks,
                    SystemDate      = viewModel.SystemDate,
                    UserId          = viewModel.UserId
                };

                try
                {
                    _voucherData.AddVoucher(voucher);
                    _voucherData.Save();
                }
                catch (Exception e)
                {
                    // TODO: Log this exception
                    ModelState.AddModelError(string.Empty, $"ERROR: Unable to save data. Please review your input and try again.");

                    ViewData["FiscalYearId"] = new SelectList(_fiscalYearData.GetFiscalYears(), "FiscalYearId", "YearDescription", viewModel.FiscalYearId);
                    return(View(viewModel));
                }

                return(RedirectToAction(nameof(Index)));
            }

            ViewData["NextId"]       = _voucherData.GetMaxVoucherId() + 1;
            ViewData["FiscalYearId"] = new SelectList(_fiscalYearData.GetFiscalYears(), "FiscalYearId", "YearDescription", viewModel.FiscalYearId);
            return(View(viewModel));
        }
Пример #8
0
 public async Task<VoucherViewModel> GetVoucherViewModelAsync(int ID)
 {
     VoucherViewModel result = new VoucherViewModel
     {
         CurrentVoucher = ID == 0 ? null : await ctx.Vouchers.Include(v => v.Details).FirstOrDefaultAsync(f => f.ID == ID),
         Accounts = await ctx.BalanceAccounts.ToListAsync()
     };
     return result;
 }
        public ViewResult Create()
        {
            VoucherViewModel model = new VoucherViewModel();

            // předvyplnění dat platnosti podle současného data
            model.ValidFrom  = DateTime.Now;
            model.ValidUntil = DateTime.Now;
            //model.VoucherTypes = GetVoucherTypesToList(true);

            return(View(model));
        }
Пример #10
0
        public async Task YourMethodName(VoucherViewModel model)
        {
            string requestURL = "/path/{Parameter}";
            var    httpMethod = BaseNetworkAccessEnum.Get;
            var    parameters = new Dictionary <string, ParameterTypedValue>()
            {
                //{"Parameter", model.Property},
            };

            await _NetworkInterface(requestURL, parameters, httpMethod);
        }
Пример #11
0
        public ActionResult Rendering()
        {
            var voucherViewModel = new VoucherViewModel()
            {
                VoucherUrl          = Url.Action("AddVoucher"),
                InputClassSelector  = "js-voucher-input-" + Guid.NewGuid(),
                ButtonClassSelector = "js-voucher-button-" + Guid.NewGuid()
            };

            return(View(voucherViewModel));
        }
Пример #12
0
        public async Task <ActionResult> EditarVoucher(VoucherViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (await this._service.AtualizarVoucher(AutoMapper.Mapper.Map <Voucher>(model)))
            {
                return(RedirectToAction("ListarVouchers"));
            }

            return(View(model));
        }
Пример #13
0
        public async Task <ActionResult> NovoVoucher(VoucherViewModel model, string NroVoucher, HttpPostedFileBase file)
        {
            if (UsuarioLogado.UsuarioAutenticado().Perfil == Domain.Enumeradores.EnumPerfil.AdministradorEmpresa)
            {
                var enquetes = await this.serviceEnquete.RetornarTodasEnquetes();

                var filtro = enquetes.Where(e => e.Id == UsuarioLogado.UsuarioAutenticado().EmpresaId&&
                                            e.Tipo == Domain.Enumeradores.EnumTipoEnquete.Publica).ToList();
                ViewData.Add("EnqueteForSelectList", PreparaParaListaDeEnquetes(filtro, null));
            }
            else
            {
                var enquetes = (await this.serviceEnquete.RetornarTodasEnquetes()).Where(e => e.Tipo == Domain.Enumeradores.EnumTipoEnquete.Publica).ToList();
                ViewData.Add("EnqueteForSelectList", PreparaParaListaDeEnquetes(enquetes, null));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (file.ContentLength > 0)
            {
                model.ImagemEmail = file.FileName;

                Util.SalvarImagem(file);
            }

            foreach (var item in NroVoucher.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
            {
                var v = new Voucher {
                    DataValidade = model.DataValidade, Identificador = item, Status = Domain.Enumeradores.EnumStatusVoucher.Disponivel, Usado = false, ImagemEmail = file.ContentLength > 0 ? file.FileName : string.Empty
                };
                var voucher = await this._service.InserirRetornarVoucher(v);

                if (voucher != null)
                {
                    await this._service.AssociaVoucherEnquete(model.EnqueteId, voucher.Id);
                }
            }

            var enquente = await this.serviceEnquete.RetornarEnquetePorId(model.EnqueteId);

            enquente.TemVoucher = true;
            await this.serviceEnquete.AtualizarEnquete(enquente);

            return(RedirectToAction("ListarVouchers"));
        }
Пример #14
0
        public VoucherViewModel CopyNew(long vid)
        {
            Voucher voucher = GetMyVoucher(vid);

            VoucherViewModel vmVoucher = Mapper.Map <VoucherViewModel>(voucher);

            vmVoucher.VId = 0;
            foreach (VoucherDetail vd in voucher.VoucherDetails)
            {
                VoucherDetailViewModel vmDetail = Mapper.Map <VoucherDetailViewModel>(vd);
                vmDetail.VdId = 0;
                vmVoucher.VoucherDetails.Add(vmDetail);
            }

            return(vmVoucher);
        }
Пример #15
0
        public IHttpActionResult SaveVoucher(VoucherViewModel voucher)
        {
            string err;

            //校验借贷是否平衡、凭证字号是否最新、科目是否有效等
            if (!_modelValid.ValidVoucher(voucher, out err))
            {
                ResMessage.Fail(err);
            }

            Voucher v = _voucher.Save(voucher);

            ResMessageContent rmContent = ResMessage.Success();

            rmContent.State = Mapper.Map <VoucherViewModel>(v);

            return(Ok(rmContent));
        }
        public IActionResult Edit(int id)
        {
            // získání vouceru z DB
            Voucher voucher = voucherRepository.GetVoucher(id);

            VoucherViewModel voucherViewModel = new VoucherViewModel
            {
                Id          = voucher.Id,
                ValidFrom   = voucher.ValidFrom,
                ValidUntil  = voucher.ValidUntil,
                Title       = voucher.Title,
                Description = voucher.Description,
                Value       = voucher.Value,
                //VoucherTypeId = voucher.VoucherTypeId,
                //VoucherTypes = GetVoucherTypesToList(false),
            };

            return(View(voucherViewModel));
        }
        public async Task <IActionResult> Create(VoucherViewModel model)
        {
            // získání přihlášeného uživatele
            var user = await userManager.FindByNameAsync(model.ApplicationUserName);

            // zobrazení chyby v případě, že se uživatele nepodařilo získat
            if (user == null)
            {
                ModelState.AddModelError("ApplicationUserName", "Chyba při zjískávání Id uživatele");
            }
            // kontrola datumů začátku a konce platnosti
            if (model.ValidFrom > model.ValidUntil)
            {
                ModelState.AddModelError("ValidFrom", "Datum začátku platnosti musí být dříve než datum konce platnosti");
                ModelState.AddModelError("ValidUntil", "Datum konce platnosti musí být později než datum začátku platnosti");
            }

            // kontrola platnosti předaného modelu
            if (ModelState.IsValid)
            {
                Voucher newVoucher = new Voucher
                {
                    ValidFrom   = model.ValidFrom,
                    ValidUntil  = model.ValidUntil,
                    Title       = model.Title,
                    Description = model.Description,
                    Value       = model.Value,
                    //VoucherTypeId = model.VoucherTypeId.Value,
                    // vygenerování pseoudonáhodného kódu voucheru
                    Code              = (DateTime.Now.Ticks - new DateTime(2016, 1, 1).Ticks).ToString("x"),
                    CreationDate      = DateTime.Now,
                    IsValid           = true,
                    ApplicationUserId = user.Id
                };
                // uložení voucheru do DB
                voucherRepository.Add(newVoucher);
                return(RedirectToAction("details", new { id = newVoucher.Id }));
            }

            //model.VoucherTypes = GetVoucherTypesToList(true);
            return(View(model));
        }
Пример #18
0
        public ActionResult ConfirmDelete(int id)
        {
            var voucherContext = context.Vouchers.Include(p => p.Hotel).Include(p => p.TypeRest).Include(p => p.Client).Include(p => p.Employee)
                                 .Include(o => o.ServiceList).ThenInclude(i => i.Service);
            var items    = voucherContext.Where(p => p.ID == id).ToList();
            var hotel    = new SelectList(context.Hotels, "ID", "Name");
            var typerest = new SelectList(context.TypeRests, "ID", "Name");
            var client   = new SelectList(context.Clients, "ID", "FullName");
            var employee = new SelectList(context.Employees, "ID", "Fullname");
            var service  = new SelectList(context._Services, "ID", "Name");
            VoucherViewModel voucherView = new VoucherViewModel
            {
                ID               = items.First().ID,
                DateBeginning    = items.First().DateBeginning,
                ExpirationDate   = items.First().ExpirationDate,
                HotelName        = items.First().Hotel.Name,
                TypeRestName     = items.First().TypeRest.Name,
                ClientFullName   = items.First().Client.FullName,
                EmployeeFullName = items.First().Employee.Fullname,
                BookingNote      = items.First().BookingNote,
                PaymentNote      = items.First().PaymentNote
            };
            IndexViewModel voucher = new IndexViewModel
            {
                Vouchers         = items,
                HotelList        = hotel,
                TypeRestList     = typerest,
                ClientList       = client,
                EmployeeList     = employee,
                VoucherViewModel = voucherView,
                ServiceList      = service
            };

            if (items == null)
            {
                return(View("NotFound"));
            }
            else
            {
                return(View(voucher));
            }
        }
        public ActionResult Delete(long id)
        {
            var errorViewModel = new ErrorViewModel();

            if (Session["MasterId"] != null)
            {
                Session["MasterId"] = null;
            }
            // Clear detail list
            if (Session["lstPettyCashVoucherDetails"] != null)
            {
                Session["lstPettyCashVoucherDetails"] = null;
            }

            try
            {
                var model = _pettyCashVoucherInfoService.BMSUnit.WebVoucherMasterRepository.GetByID(id);

                if (model != null)
                {
                    VoucherViewModel viewModel = new VoucherViewModel
                    {
                        Id = Convert.ToInt32(model.Id)
                    };

                    return(PartialView("_Delete", viewModel));
                }
                else
                {
                    errorViewModel.ErrorMessage = CommonMessage.ErrorOccurred;
                    return(PartialView("_ErrorPopUp", errorViewModel));
                }
            }
            catch (Exception ex)
            {
                errorViewModel.ErrorMessage = CommonExceptionMessage.GetExceptionMessage(ex);
                return(PartialView("_ErrorPopUp", errorViewModel));
            }
        }
        public IActionResult Edit(VoucherViewModel model)
        {
            // kontrola platnosti předaného modelu
            if (ModelState.IsValid)
            {
                Voucher voucher = voucherRepository.GetVoucher(model.Id);

                voucher.ValidFrom   = model.ValidFrom;
                voucher.ValidUntil  = model.ValidUntil;
                voucher.Title       = model.Title;
                voucher.Description = model.Description;
                voucher.Value       = model.Value;
                //voucher.VoucherTypeId = model.VoucherTypeId.Value;

                // uložení upraveného voucheru do DB
                voucherRepository.Update(voucher);
                return(RedirectToAction("index"));
            }

            //model.VoucherTypes = GetVoucherTypesToList(false);
            return(View(model));
        }
        // GET: /PettyCashVoucher/Edit/By ID
        public ActionResult Edit(long id)
        {
            var errorViewModel = new ErrorViewModel();

            try
            {
                var model = _pettyCashVoucherInfoService.BMSUnit.WebVoucherMasterRepository.GetByID(id);

                Session["VoucherNo"] = model.Id;

                if (model != null)
                {
                    VoucherViewModel viewModel = new VoucherViewModel {
                        Id = Convert.ToInt64(model.Id),
                        //VoucherNo = model.VoucherNo,
                        CompanyCode = model.CompanyCode,
                        PayTo       = model.PayTo,
                        StaffID     = model.StaffID,
                        VoucherDate = model.VoucherDate,
                        UserId      = model.UserId,
                        Posted      = model.Posted,
                        Period      = model.Period,
                        JVNo        = model.JVNo
                    };
                    return(PartialView("_Edit", viewModel));
                }
                else
                {
                    errorViewModel.ErrorMessage = CommonMessage.ErrorOccurred;
                    return(PartialView("_ErrorPopUp", errorViewModel));
                }
            }
            catch (Exception ex)
            {
                errorViewModel.ErrorMessage = CommonExceptionMessage.GetExceptionMessage(ex);
                return(PartialView("_ErrorPopUp", errorViewModel));
            }
        }
        public async Task <IHttpActionResult> PostVoucher(VoucherViewModel vm, string id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var voucherFile = db.BlobUploadModels.Find(new Guid(id));
            LinkedList <VoucherBulkInsertViewModel> temp = new LinkedList <VoucherBulkInsertViewModel>();

            for (int i = 0; i < vm.VoucherAmount; i++)
            {
                var voucher = new VoucherBulkInsertViewModel();

                voucher.VoucherId                = Guid.NewGuid();
                voucher.VoucherCode              = voucher.VoucherId.ToString().Substring(0, 8);
                voucher.VoucherCreationDate      = DateTime.Now;
                voucher.VoucherRedeemed          = false;
                voucher.VoucherRedemptionDate    = null;
                voucher.VoucherFileId_FileId     = voucherFile.FileId;
                voucher.VoucherRedemptionCounter = 0;

                temp.AddFirst(voucher);
            }

            var reader = ToDataTable <VoucherBulkInsertViewModel>(temp);

            try
            {
                await DoBulkCopy(false, reader, "Vouchers");
            }
            catch (DbUpdateException)
            {
                throw;
            }

            return(StatusCode(HttpStatusCode.Created));
        }
        public IHttpActionResult Put(VoucherViewModel voucher)
        {
            //if (!ModelState.IsValid)
            //    return BadRequest("Not a valid model");

            using (var ctx = new dbInventoryEntities())
            {
                try
                {
                    var existingVoucher = ctx.tblVouchers.Where(s => s.intVoucherNo == voucher.intVoucherNo)
                                          .FirstOrDefault <tblVoucher>();

                    if (existingVoucher != null)
                    {
                        //existingVoucher.dtDate = voucher.dtDate;
                        existingVoucher.intZoneName = voucher.intZoneName;
                        existingVoucher.intSOName   = voucher.intSOName;

                        ctx.SaveChanges();
                    }

                    int id = 0;
                    foreach (var detail in voucher.voucherDTL)
                    {
                        int id1 = voucher.voucherDTL[id].intId;
                        var existingVoucherDTL = ctx.tblVoucherDTLs.Where(s => s.intId == id1)
                                                 .FirstOrDefault <tblVoucherDTL>();
                        if (existingVoucherDTL != null)
                        {
                            existingVoucherDTL.intCategory     = detail.intCategory;
                            existingVoucherDTL.intItemCode     = detail.intItemCode;
                            existingVoucherDTL.intPieces       = detail.intPieces;
                            existingVoucherDTL.floatRate       = detail.floatRate;
                            existingVoucherDTL.floatCommission = detail.floatCommission;
                            existingVoucherDTL.floatAmount     = detail.floatAmount;

                            ctx.SaveChanges();
                        }
                        id++;
                    }

                    int _intId = 1;
                    var obj1   = ctx.tblVoucherDTLs.OrderByDescending(t => t.intId).FirstOrDefault();
                    if (obj1 != null)
                    {
                        _intId = obj1.intId + 1;
                    }
                    foreach (var detail1 in voucher.voucherDTL1)
                    {
                        var detailVoucher1 = new tblVoucherDTL
                        {
                            intId           = _intId,
                            intCategory     = detail1.intCategory,
                            intVNo          = voucher.intVoucherNo,
                            intItemCode     = detail1.intItemCode,
                            intPieces       = detail1.intPieces,
                            floatRate       = detail1.floatRate,
                            floatCommission = detail1.floatCommission,
                            floatAmount     = detail1.floatAmount
                        };
                        ctx.tblVoucherDTLs.Add(detailVoucher1);
                        _intId++;

                        ctx.SaveChanges();
                    }
                    //else
                    //{
                    //    return NotFound();
                    //}
                }
                catch (DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                          eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                              ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                    throw;
                }
            }

            return(Ok());
        }
        public async Task YourMethodName(VoucherViewModel model, Action completeAction)
        {
            await _Service.YourMethodName(model);

            completeAction();
        }
Пример #25
0
        public Voucher Save(VoucherViewModel vmVoucher)
        {
            Voucher voucher = new Voucher();

            if (vmVoucher.VId > 0)
            {
                //修改凭证
                voucher = this.GetMyVoucher(vmVoucher.VId);
                if (voucher == null)
                {
                    return(null);
                }

                voucher.CertificateWord = _ledger.CertificateWords.Where(cw => cw.CwId == vmVoucher.CwId).FirstOrDefault();
                voucher.CertWordSN      = vmVoucher.CertWordSN;
                voucher.VoucherYear     = vmVoucher.VoucherDate.Year;
                voucher.VoucherMonth    = vmVoucher.VoucherDate.Month;
                voucher.VoucherDate     = vmVoucher.VoucherDate;
                voucher.PaymentTerms    = string.Format("{0}{1:D2}", voucher.VoucherYear, voucher.VoucherMonth);
                voucher.InvoiceCount    = vmVoucher.InvoiceCount;

                foreach (VoucherDetailViewModel vd in vmVoucher.VoucherDetails)
                {
                    VoucherDetail vDetail = new VoucherDetail();

                    if (vd.VdId > 0)
                    {
                        vDetail = voucher.VoucherDetails.Where(d => d.VdId == vd.VdId).FirstOrDefault();
                    }
                    else
                    {
                        voucher.VoucherDetails.Add(vDetail);
                    }

                    vDetail.Abstract    = vd.Abstract;
                    vDetail.Account     = _account.GetAccount(vd.AccId.Value);
                    vDetail.AccountCode = vDetail.Account.AccCode;
                    vDetail.AccountName = vDetail.Account.AccName;
                    vDetail.Quantity    = vd.Quantity;
                    vDetail.Price       = vd.Price;
                    if (vDetail.Account.Direction == "借")
                    {
                        vDetail.Debit  = vd.Debit;
                        vDetail.Credit = vd.Credit * (-1);
                    }
                    else
                    {
                        vDetail.Debit  = vd.Debit * (-1);
                        vDetail.Credit = vd.Credit;
                    }

                    vDetail.InitialBalance          = vDetail.Account.InitialBalance;
                    vDetail.InitialQuantity         = vDetail.Account.InitialQuantity;
                    vDetail.YtdBeginBalance         = vDetail.Account.YtdBeginBalance;
                    vDetail.YtdBeginBalanceQuantity = vDetail.Account.YtdBeginBalanceQuantity;
                    if (vDetail.Account.Direction == "借")
                    {
                        vDetail.YtdDebit         = vDetail.Account.YtdDebit + vDetail.Debit;
                        vDetail.YtdDebitQuantity = vDetail.Account.YtdDebitQuantity + vDetail.Quantity;
                    }
                    else
                    {
                        vDetail.YtdCredit         = vDetail.Account.YtdCredit + vDetail.Credit;
                        vDetail.YtdCreditQuantity = vDetail.Account.YtdCreditQuantity + vDetail.Quantity;
                    }
                }
            }
            else
            {
                //新增凭证
                voucher.CertificateWord = _ledger.CertificateWords.Where(cw => cw.CwId == vmVoucher.CwId).FirstOrDefault();
                voucher.CertWordSN      = vmVoucher.CertWordSN;
                voucher.VoucherYear     = vmVoucher.VoucherDate.Year;
                voucher.VoucherMonth    = vmVoucher.VoucherDate.Month;
                voucher.VoucherDate     = vmVoucher.VoucherDate;
                voucher.PaymentTerms    = string.Format("{0}{1:D2}", voucher.VoucherYear, voucher.VoucherMonth);
                voucher.InvoiceCount    = vmVoucher.InvoiceCount;
                voucher.State           = VoucherState.PaddingAudit;
                voucher.AccountBook     = _acctBook.GetCurrentBook();
                voucher.Creator         = ((ClaimsIdentity)_context.User.Identity).Claims.Where(c => c.Type == "name").FirstOrDefault().Value;
                voucher.CreateTime      = DateTime.Now;
                voucher.VoucherDetails  = new List <VoucherDetail>();

                foreach (VoucherDetailViewModel vd in vmVoucher.VoucherDetails)
                {
                    VoucherDetail vDetail = new VoucherDetail();
                    vDetail.Abstract    = vd.Abstract;
                    vDetail.Account     = _account.GetAccount(vd.AccId.Value);
                    vDetail.AccountCode = vDetail.Account.AccCode;
                    vDetail.AccountName = vDetail.Account.AccName;
                    vDetail.Quantity    = vd.Quantity;
                    vDetail.Price       = vd.Price;
                    //vDetail.Debit = vd.Debit;
                    //vDetail.Credit = vd.Credit;
                    if (vDetail.Account.Direction == "借")
                    {
                        vDetail.Debit  = vd.Debit;
                        vDetail.Credit = vd.Credit * (-1);
                    }
                    else
                    {
                        vDetail.Debit  = vd.Debit * (-1);
                        vDetail.Credit = vd.Credit;
                    }

                    vDetail.InitialBalance          = vDetail.Account.InitialBalance;
                    vDetail.InitialQuantity         = vDetail.Account.InitialQuantity;
                    vDetail.YtdBeginBalance         = vDetail.Account.YtdBeginBalance;
                    vDetail.YtdBeginBalanceQuantity = vDetail.Account.YtdBeginBalanceQuantity;
                    if (vDetail.Account.Direction == "借")
                    {
                        vDetail.YtdDebit         = vDetail.Account.YtdDebit + vDetail.Debit;
                        vDetail.YtdDebitQuantity = vDetail.Account.YtdDebitQuantity + vDetail.Quantity;
                    }
                    else
                    {
                        vDetail.YtdCredit         = vDetail.Account.YtdCredit + vDetail.Credit;
                        vDetail.YtdCreditQuantity = vDetail.Account.YtdCreditQuantity + vDetail.Quantity;
                    }

                    voucher.VoucherDetails.Add(vDetail);
                }

                _ledger.Vouchers.Add(voucher);
            }

            if (_ledger.SaveChanges() > 0)
            {
                //科目统计数据
                this.RecalculateAllAccount();

                return(voucher);
            }

            return(null);
        }
        public ActionResult Create(VoucherViewModel viewModel)
        {
            var strMessage = string.Empty;

            try
            {
                if (ModelState.IsValid)
                {
                    #region Current User

                    var userName = HttpContext.User.Identity.Name;
                    viewModel.IUser     = userName;
                    viewModel.IDate     = DateTime.Now;
                    viewModel.EDate     = DateTime.Now;
                    viewModel.TransDate = DateTime.Now;
                    viewModel.Posted    = "N";
                    viewModel.Period    = 0;
                    viewModel.JVNo      = "";

                    #endregion

                    List <VoucherDetailEntityModel> list = new List <VoucherDetailEntityModel>();

                    if (Session["lstPettyCashVoucherDetails"] != null)
                    {
                        list = (List <VoucherDetailEntityModel>)Session["lstPettyCashVoucherDetails"];
                    }


                    var entity = viewModel.ToEntity();
                    _pettyCashVoucherInfoService.BMSUnit.WebVoucherMasterRepository.Add(entity);
                    _pettyCashVoucherInfoService.BMSUnit.WebVoucherMasterRepository.SaveChanges();

                    Session["DailyBreakdownMasterId"] = entity.Id;

                    #region Save Detail

                    if (list != null && list.Count > 0)
                    {
                        foreach (VoucherDetailEntityModel detail in list)
                        {
                            detail.VoucherNo = Convert.ToInt32(entity.Id);
                            //detail.VoucherNo = Convert.ToInt32(entity.VoucherNo);
                            detail.ASCode = "";
                            var detailEntity = detail.ToEntity();
                            _pettyCashVoucherInfoService.BMSUnit.WebVoucherDetailsRepository.Add(detailEntity);
                            _pettyCashVoucherInfoService.BMSUnit.WebVoucherDetailsRepository.SaveChanges();
                        }
                    }

                    #endregion

                    return(Content(Boolean.TrueString));
                    //return Content("Information has been saved successfully");
                }

                strMessage = Common.GetModelStateErrorMessage(ModelState);
            }
            catch (Exception ex)
            {
                strMessage = CommonExceptionMessage.GetExceptionMessage(ex, CommonAction.Save);
            }

            return(Content(strMessage));
        }
Пример #27
0
        public IHttpActionResult GetMyVoucher(long vid)
        {
            VoucherViewModel voucher = Mapper.Map <VoucherViewModel>(_voucher.GetMyVoucher(vid));

            return(Ok(voucher));
        }
Пример #28
0
 public VoucherViewUC()
 {
     InitializeComponent();
     _vm         = new VoucherViewModel();
     DataContext = _vm;
 }
        public IHttpActionResult PostNewVoucher(VoucherViewModel voucher)
        {
            //if (!ModelState.IsValid)
            //    return BadRequest("Invalid data.");

            using (var ctx = new dbInventoryEntities())
            {
                int _intVoucherNo = 1;
                var obj           = ctx.tblVouchers.OrderByDescending(t => t.intVoucherNo).FirstOrDefault();
                if (obj != null)
                {
                    _intVoucherNo = obj.intVoucherNo + 1;
                }

                ctx.tblVouchers.Add(new tblVoucher()
                {
                    intVoucherNo = _intVoucherNo,
                    dtDate       = voucher.dtDate,
                    intZoneName  = voucher.intZoneName,
                    intSOName    = voucher.intSOName
                });
                int _intId = 1;
                var obj1   = ctx.tblVoucherDTLs.OrderByDescending(t => t.intId).FirstOrDefault();
                if (obj1 != null)
                {
                    _intId = obj1.intId + 1;
                }
                foreach (var detail in voucher.voucherDTL)
                {
                    var detailVoucher = new tblVoucherDTL
                    {
                        intId           = _intId,
                        intCategory     = detail.intCategory,
                        intVNo          = _intVoucherNo,
                        intItemCode     = detail.intItemCode,
                        intPieces       = detail.intPieces,
                        floatRate       = detail.floatRate,
                        floatCommission = detail.floatCommission,
                        floatAmount     = detail.floatAmount
                    };
                    ctx.tblVoucherDTLs.Add(detailVoucher);
                    _intId++;
                }
                try
                {
                    ctx.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    // Retrieve the error messages as a list of strings.
                    var errorMessages = ex.EntityValidationErrors
                                        .SelectMany(x => x.ValidationErrors)
                                        .Select(x => x.ErrorMessage);

                    // Join the list to a single string.
                    var fullErrorMessage = string.Join("; ", errorMessages);

                    // Combine the original exception message with the new one.
                    var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                    // Throw a new DbEntityValidationException with the improved exception message.
                    throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
                }
            }

            return(Ok());
        }
Пример #30
0
 public static WebVoucherMaster ToEntity(this VoucherViewModel entity)
 {
     return(Mapper.Map <VoucherViewModel, WebVoucherMaster>(entity));
 }