private CadastroLoteProducaoViewModel CarregarModel(CadastroLoteProducaoViewModel dados) { var model = new CadastroLoteProducaoViewModel(); model.UsuarioAnalise = new Usuario(); try { if (dados != null) { model.QtdTotal = dados.QtdTotal; model.IdMaquina = dados.IdMaquina; } model.TipoCarta = new LimiteControle().TipoCarta; model.UsuarioAnalise = (Usuario)Session["usuario"]; model.TipoLote = TipoLote.Producao; model.LimiteControle = new LimiteDAL().ConsultarLimiteControle(true).FirstOrDefault(); } catch (Exception e) { TempData["Sucesso"] = false; TempData["Mensagem"] = "Erro: " + e.Message; } return(model); }
public ActionResult CadastroLotesProducao(CadastroLoteProducaoViewModel model) { try { if (ModelState.IsValid) { if (new LoteDAL().VerificarLoteExiste(model.IdLote)) { throw new Exception($"Um lote com a numeração {model.IdLote} já foi cadastrado no sistema"); } if (model.QtdReprovada > model.QtdTotal) { throw new Exception("A quantidade de itens reprovados não pode ser maior que a quantidade total de itens"); } var l = new Lote(); l.UsuarioAnalise = new Usuario(); l.UsuarioAprovacao = null; l.Maquina = new Maquina(); l.LimiteControle = new LimiteControle(); l.DataHora = DateTime.Now; l.TipoLote = model.TipoLote; l.Maquina.IdMaquina = model.IdMaquina; l.UsuarioAnalise = model.UsuarioAnalise; l.IdLote = model.IdLote; l.QtdTotal = model.QtdTotal; l.QtdReprovada = model.QtdReprovada; l.PercentualReprovado = Convert.ToDecimal(l.QtdReprovada) / Convert.ToDecimal(l.QtdTotal); l.Comentario = model.Comentario; l.LimiteControle = model.LimiteControle; if (l.PercentualReprovado >= model.LimiteControle.LIC && l.PercentualReprovado <= model.LimiteControle.LSC) { l.Status = Status.Aprovado; } else if (model.UsuarioAprovacao.Login != null && model.UsuarioAprovacao.Senha != null) { l.Status = Status.AprovadoSupervisao; Usuario u = new UsuarioController().Consulta(model.UsuarioAprovacao.Login, model.UsuarioAprovacao.Senha); if (u != null && (u.Perfil.Equals(PerfilUsuario.Supervisor) || u.Perfil.Equals(PerfilUsuario.Gerente) || u.Perfil.Equals(PerfilUsuario.Administrador))) { l.UsuarioAprovacao = u; } else { throw new Exception("As credênciais do usuário aprovação estão incorretas ou a conta não possui autorização para esta ação"); } } else { l.Status = Status.Reprovado; } new LoteDAL().CadastrarLoteProducao(l); TempData["Sucesso"] = true; TempData["Mensagem"] = $"Lote {model.IdLote} cadastrado com sucesso"; ModelState.Clear(); } } catch (Exception e) { TempData["Sucesso"] = false; TempData["Mensagem"] = $"Erro: {e.Message}"; } return(View(CarregarModel(model))); }