public JsonResult AddComissao(NovoMotoristaModel data) { try { // Validação if (data.Comissao != null && data.Comissao.Where(c => c.ValorComissao == null || c.VigenciaFim == null || c.VigenciaInicio == null).Any()) { throw new Exception("Favor preencher todos os campos da comissão anterior antes de incluir uma nova."); } var listaNovaComissao = data.Comissao?.ToList() ?? new List <NovoMotoristaComissaoModel>(); listaNovaComissao.Add(MontaComissaoPadrao()); data.Comissao = listaNovaComissao.ToArray(); var json = Newtonsoft.Json.JsonConvert.SerializeObject(data); TempData["ModelAtual"] = json; return(Json(json)); } catch (Exception e) { this.TrataErro(e); var json = Newtonsoft.Json.JsonConvert.SerializeObject(data); TempData["ModelAtual"] = json; return(Json(json)); } }
public JsonResult ExcluirComissao(NovoMotoristaModel data, int numeroComissao) { try { if (data.Comissao.Count() == 1) { data.Comissao[0] = new NovoMotoristaComissaoModel() { }; } else { var teste = data.Comissao.ToList(); teste.RemoveAt(numeroComissao); data.Comissao = teste.ToArray(); } var json = Newtonsoft.Json.JsonConvert.SerializeObject(data); TempData["ModelAtual"] = json; return(Json(json)); } catch (Exception e) { this.TrataErro(e); var json = Newtonsoft.Json.JsonConvert.SerializeObject(data); TempData["ModelAtual"] = json; return(Json(json)); } }
public ActionResult Novo(bool?Edicao, long?ID, NovoMotoristaModel model, bool?alteraComissao = false) { try { if (alteraComissao == true && TempData["ModelAtual"] != null) { ModelState.Clear(); var results = Newtonsoft.Json.JsonConvert.DeserializeObject <NovoMotoristaModel>(TempData["ModelAtual"].ToString()); return(View(results)); } if (ID != null) { ModelState.Clear(); // Tipo de Execução ViewBag.TipoAlteracao = "Editar"; // Busca dados do profissional var profissional = profissionalServico.BuscaProfissional(ID ?? 0); // Return return(View(new NovoMotoristaModel() { ID = profissional.ID, TipoVeiculos = string.Join(",", profissional.TipoVeiculos), VeiculoSelecionado = profissional.TipoVeiculos, NomeCompleto = profissional.NomeCompleto, TipoRegimeContratacao = profissional.TipoRegime, CelularWhatsapp = profissional.CelularWpp, CNH = profissional.CNH, CpfCnpj = profissional.CPF, Email = profissional.Email, Observacao = profissional.Observacao, TelefoneCelular = profissional.TelefoneCelular, TelefoneResidencial = profissional.TelefoneResidencial, TipoCarteiraMotorista = profissional.TipoCNH, Cep = profissional.Cep, Rua = profissional.Rua, Bairro = profissional.Bairro, Cidade = profissional.Cidade, Complemento = profissional.Complemento, EnderecoPrincipal = profissional.EnderecoPrincipal, PontoReferencia = profissional.PontoReferencia, RuaNumero = profissional.RuaNumero, UF = profissional.UF, EdicaoCadastro = true, DocumentoRG = profissional.DocumentoRG, Senha = "", Situacao = profissional.Status, ValorComissao = "% " + profissional.Comissoes.OrderBy(c => c.dtDataInicioVigencia).FirstOrDefault().decPercentualComissao.ToString(), Comissao = profissional.Comissoes != null ? profissional.Comissoes.Select(c => new NovoMotoristaComissaoModel() { ID = c.ID, ValorComissao = c.decPercentualComissao.ToString(), VigenciaInicio = c.dtDataInicioVigencia.ToShortDateString(), VigenciaFim = c.dtDataFimVigencia.ToShortDateString(), Observacao = c.Observacao }).ToArray() : new NovoMotoristaComissaoModel[] { } })); } else { ModelState.Clear(); // Tipo de Execução ViewBag.TipoAlteracao = "Novo"; // Return return(View(new NovoMotoristaModel() { EdicaoCadastro = false, ID = 0, Bairro = "", Situacao = true, Senha = "", Email = "", Comissao = new NovoMotoristaComissaoModel[] { MontaComissaoPadrao() } })); } } catch (Exception e) { this.TrataErro(e); // Return return(View(new NovoMotoristaModel() { EdicaoCadastro = false })); } }
public ActionResult Novo(NovoMotoristaModel model) { try { // Validacoes //if (model.Comissao != null && model.Comissao.Any()) //{ // model.Comissao.All(x => // { // if (!DateTime.TryParse(x.VigenciaInicio, out DateTime ini) || !DateTime.TryParse(x.VigenciaFim, out DateTime fim)) // throw new Exception($"Preencha datá válida para vigência da comissão."); // else if (DateTime.Parse(x.VigenciaFim) <= DateTime.Now.Date || DateTime.Parse(x.VigenciaFim) < DateTime.Parse(x.VigenciaInicio)) // throw new Exception($"A comissão {x.ID} está com a data de vigência final menor que a data atual ou que a vigência inicial, favor atualizar."); // else if (x.ValorComissao == null || x.VigenciaInicio == null || x.VigenciaFim == null) // throw new Exception($"Preencha ao menos uma comissão para o profissional."); // return true; // }); //} //else //{ // model.Comissao = new NovoMotoristaComissaoModel[] { }; // throw new Exception($"Preencha ao menos uma comissão para o profissional."); //} if (model.VeiculoSelecionado == null || !model.VeiculoSelecionado.Any() || (model.VeiculoSelecionado.Count() == 1 && model.VeiculoSelecionado.FirstOrDefault() == 0)) { throw new Exception($"Preencha ao menos um tipo de veiculo que o motorista possui ou irá utilizar."); } // Modelo entidade var entidade = new ProfissionalCompletoModel() { ID = model.ID, NomeCompleto = model.NomeCompleto, Email = model.Email, CelularWpp = model.CelularWhatsapp, CPF = model.CpfCnpj, TelefoneResidencial = model.TelefoneResidencial, TipoVeiculos = model.VeiculoSelecionado.ToArray(), TelefoneCelular = model.TelefoneCelular, CNH = model.CNH, ContratoCLT = model.TipoRegimeContratacao == RegimeContratacao.CLT ? true : false, Observacao = model.Observacao, TipoCNH = model.TipoCarteiraMotorista, TipoRegime = model.TipoRegimeContratacao, Cep = model.Cep, Rua = model.Rua, Bairro = model.Bairro, Cidade = model.Cidade, Complemento = model.Complemento, EnderecoPrincipal = model.EnderecoPrincipal, PontoReferencia = model.PontoReferencia, RuaNumero = model.RuaNumero, UF = model.UF, DocumentoRG = model.DocumentoRG, Senha = model.Senha != null?CriptografiaUtil.Criptografa(model.Senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r") : null, Status = model.Situacao, Comissoes = new ProfissionalComissaoModel[] { new ProfissionalComissaoModel() { ID = 1, Observacao = "", decPercentualComissao = model.ValorComissao.ToDecimalCurrency(), dtDataFimVigencia = DateTime.Now, dtDataInicioVigencia = DateTime.Now.AddYears(3000) } } }; // Alteração if (model.EdicaoCadastro) { profissionalServico.AtualizaDadosProfissional(entidade); // Atualiza dados do profissional } else { if (string.IsNullOrWhiteSpace(model.Senha)) { throw new Exception($"Na inclusão de um motorista, o campo SENHA é de preenchimento obrigatório."); } profissionalServico.IncluirProfissional(entidade); // Atualiza dados do profissional } this.MensagemSucesso("Profissional atualizado com sucesso."); // Return return(View(new NovoMotoristaModel() { EdicaoCadastro = false, ID = 0, Bairro = "", Senha = "", Email = "", Comissao = new NovoMotoristaComissaoModel[] { MontaComissaoPadrao() } })); } catch (Exception e) { this.TrataErro(e); return(View(model)); } }