Esempio n. 1
0
        public ActionResult Devolver(DevolucaoViewModel formModel)
        {
            var viewModelError = new ViewModelErrors();

            if (ModelState.IsValid)
            {
                var objeto = db.Emprestimo.FirstOrDefault(p => p.Id == formModel.Id);

                if (DevolucoesModel.ValidarObjeto(db, ref viewModelError, objeto, formModel))
                {
                    DevolucoesModel.Save(db, objeto, formModel);

                    this.AddNotification(string.Format(Constantes._SalvaComSucesso, GetModuleNameSingular()), NotificationType.SUCCESS);

                    return RedirectToAction("Search");
                }
            }

            ModelState.MergeErrors(viewModelError);

            this.AddNotification(Constantes.NaoFoiPossivelExecutarAOperacaoPorFavorVerifiqueAsMensagensDeValidacao, NotificationType.ERROR);

            formModel = DevolucoesModel.GetViewModel(db, formModel.Id.Value);

            ViewBag.Title = GetModuleNamePlural();
            ViewBag.Subtitle = string.Format("Incluir {0}", GetModuleNameSingular());

            return View("Devolver", formModel);
        }
Esempio n. 2
0
        public static DevolucaoViewModel GetViewModel(Emprestimo emprestimo)
        {
            var pessoa = emprestimo.Pessoa;

            var livros = new List<ItemEmprestimoViewModel>();

            var i = 1;

            foreach (var livro in emprestimo.ItensEmprestimo)
            {
                livros.Add(new ItemEmprestimoViewModel()
                {
                    Position = i,
                    LivroId = livro.Id_Livro,
                    LivroText = livro.Livro.Titulo
                });

                i++;
            }

            var livro1 = livros.FirstOrDefault(x => x.Position == 1);
            var livro2 = livros.FirstOrDefault(x => x.Position == 2);
            var livro3 = livros.FirstOrDefault(x => x.Position == 3);

            var currentDate = Genericos.GetDateTimeFromBrazil().Date;

            var situacao = (emprestimo.Status == (int)Enumerations.Emprestimo.StatusEmprestimo.Emprestado
                           && emprestimo.DtPrevisaoDevolucao < currentDate ? (int)Enumerations.Devolucao.SituacaoDevolucao.Atrasado :
                           (int)Enumerations.Devolucao.SituacaoDevolucao.NoPrazo);

            var viewModel = new DevolucaoViewModel
            {
                Id = emprestimo.Id,
                PessoaId = pessoa.Id,
                PessoaText = pessoa.Nome,
                Livro1Id = livro1.LivroId,
                Livro1Text = livro1.LivroText,
                Livro2Id = livro2 != null ? livro2.LivroId : (int?)null,
                Livro2Text = livro2 != null ? livro2.LivroText : string.Empty,
                Livro3Id = livro3 != null ? livro3.LivroId : (int?)null,
                Livro3Text = livro3 != null ? livro3.LivroText : string.Empty,
                StatusId = (int)emprestimo.Status,
                StatusText = EnumsHelper.GetText(typeof(Enumerations.Emprestimo.StatusEmprestimo), (int)emprestimo.Status),
                SituacaoId = situacao,
                SituacaoText = EnumsHelper.GetText(typeof(Enumerations.Devolucao.SituacaoDevolucao), situacao),
                DtEmprestimo = emprestimo.DtEmprestimo,
                DtEmprestimoText = emprestimo.DtEmprestimo.ToShortDateString(),
                DtPrevisaoDevolucao = emprestimo.DtPrevisaoDevolucao,
                DtPrevisaoDevolucaoText = emprestimo.DtPrevisaoDevolucao.HasValue ? emprestimo.DtPrevisaoDevolucao.Value.ToShortDateString() : string.Empty,
                DtCadastro = emprestimo.DtHrCadastro,
                DtCadastroText = emprestimo.DtHrCadastro.ToShortDateString(),
            };

            return viewModel;
        }
Esempio n. 3
0
        /// <summary>
        /// Valida o objeto
        /// </summary>
        /// <param name="db"></param>
        /// <param name="viewModelError"></param>
        /// <param name="objeto"></param>
        /// <param name="formModel"></param>
        /// <returns></returns>
        public static bool ValidarObjeto(SBSCEntities db, ref ViewModelErrors viewModelError, Emprestimo objeto, DevolucaoViewModel formModel)
        {
            if (formModel == null) throw new ArgumentNullException("formModel");

            if (objeto == null)
            {
                viewModelError.AddModelError(string.Empty, Constantes.ORegistroNaoFoiEncontrado);

                return false;
            }

            if (formModel.DtDevolucao.HasValue)
            {
                if (formModel.DtDevolucao.Value.Date < objeto.DtEmprestimo.Date)
                    viewModelError.AddModelError("DtDevolucao", "A data de devolução não deve ser menor do que a data de empréstimo.");

                if (formModel.DtDevolucao.Value.Date == objeto.DtEmprestimo.Date)
                    viewModelError.AddModelError("DtDevolucao", "A data de devolução não deve ser igual a data de empréstimo.");
            }

            return viewModelError.IsValid;
        }
Esempio n. 4
0
        public static void Save(SBSCEntities db, Emprestimo emprestimo, DevolucaoViewModel formModel)
        {
            if (emprestimo == null) throw new ArgumentNullException("pessoa");
            if (formModel == null) throw new ArgumentNullException("formModel");

            if (!formModel.DtDevolucao.HasValue)
                formModel.DtDevolucao = Genericos.GetDateTimeFromBrazil();

            emprestimo.Status = (byte)Enumerations.Emprestimo.StatusEmprestimo.Devolvido;

            foreach (var item in emprestimo.ItensEmprestimo)
            {
                item.DtDevolucao = formModel.DtDevolucao.Value;
            }

            db.SaveChanges();
        }