public ActionResult ObterCliente(string documento) { if (string.IsNullOrEmpty(documento)) { return(RetornarErro("Informe o CPF ou CNPJ do Cliente")); } var dados = _clientesRepositorio.ObterClientePorDocumento(documento.ApenasNumeros()); if (dados == null) { return(RetornarErro($"Nenhum Cliente encontrado com o documento {documento}")); } return(Json(dados, JsonRequestBehavior.AllowGet)); }
public ActionResult Agendar([Bind(Include = "MotivoId, DataPrevista, CpfCnpj, NovaViagemId, ItensCargaSolta")] AgendamentoCargaSoltaViewModel viewModel) { var agendamento = new Agendamento( viewModel.MotivoId, viewModel.DataPrevista.ToDateTime(), viewModel.CpfCnpj, viewModel.NovaViagemId, TipoAgendamento.CargaSolta, User.ObterDespachanteId()); agendamento.AdicionarItensCargaSolta(viewModel.ItensCargaSolta); if (!Validar(agendamento)) { return(RetornarErros()); } var clienteBusca = _clientesRepositorio .ObterClientePorDocumento(viewModel.CpfCnpj.ApenasNumeros()); if (clienteBusca == null) { throw new Exception($"Nenhum Cliente foi encontrado com o documento {viewModel.CpfCnpj}"); } agendamento.SetarCliente(clienteBusca.Id); agendamento.Status = StatusPosicionamento.NaoIniciado; try { var protocolo = _agendamentoRepositorio.GravarPosicionamentoCargaSolta(agendamento); viewModel.ItensCargaSoltaAgendados = _agendamentoRepositorio .ObterItensCargaSoltaAgendamento(protocolo).ToList(); viewModel.ProtocoloUnificado = protocolo; return(PartialView("_Concluido", viewModel)); } catch (Exception ex) { throw new Exception($"Falha ao Gravar o Agendamento {ex.Message}"); } }
public ActionResult Agendar([Bind(Include = "MotivoId, DataPrevista, CpfCnpj, NovaViagemId, ConteineresSelecionados")] AgendamentoConteinerViewModel viewModel) { var agendamento = new Agendamento( viewModel.MotivoId, viewModel.DataPrevista.ToDateTime(), viewModel.CpfCnpj, viewModel.NovaViagemId, TipoAgendamento.Conteiner, User.ObterDespachanteId()); agendamento.AdicionarConteineres(viewModel.ConteineresSelecionados); if (!Validar(agendamento)) { return(RetornarErros()); } var clienteBusca = _clientesRepositorio .ObterClientePorDocumento(viewModel.CpfCnpj.ApenasNumeros()); if (clienteBusca == null) { throw new Exception($"Nenhum Cliente foi encontrado com o documento {viewModel.CpfCnpj}"); } agendamento.SetarCliente(clienteBusca.Id); agendamento.Status = StatusPosicionamento.NaoIniciado; try { foreach (var cntr in viewModel.ConteineresSelecionados) { var posicionamentoBusca = _agendamentoRepositorio.ExistePosicionamento(viewModel.MotivoId, viewModel.DataPrevista.ToDateTime(), cntr); if (posicionamentoBusca != null) { if (posicionamentoBusca != null) { ModelState.AddModelError(string.Empty, $"Já existe um Agendamento para a Unidade {posicionamentoBusca.Sigla} na Data {viewModel.DataPrevista} para {posicionamentoBusca.Motivo}"); } } } if (ModelState.Values.SelectMany(v => v.Errors).Any()) { return(RetornarErros()); } var protocolo = _agendamentoRepositorio.GravarPosicionamentoCntr(agendamento); viewModel.ConteineresAgendados = _agendamentoRepositorio .ObterConteineresAgendamento(protocolo).ToList(); viewModel.ProtocoloUnificado = protocolo; return(PartialView("_Concluido", viewModel)); } catch (Exception ex) { throw new Exception($"Falha ao Gravar o Agendamento {ex.Message}"); } }