/// <summary> /// Incluir um Diaria /// </summary> /// <returns>ResumoModel</returns> public void IncluirDiaria(DiariaAvulsaFiltroDTO model) { this.Post(new Uri($"{ServicoRotas.Base}{ServicoRotas.Diaria.PostDiaria}"), model); }
public ActionResult CadastroDiariaAvulsa(DiariaModel modelo) { try { #region Validacoes if (modelo.HorarioInicial == null) { ModelState.AddModelError("", "Hora inicio do expediente."); return(View(modelo)); } else if (modelo.HorarioFim == null) { ModelState.AddModelError("", "Hora Fim do expediente."); return(View(modelo)); } else if (modelo.HorarioFim < modelo.HorarioFim) { ModelState.AddModelError("", "Hora Fim do expediente não pode ser menor que o horario inicial."); return(View(modelo)); } if (modelo.PeriodoFinal.ToString().ToDate() < modelo.PeriodoInicial.ToString().ToDate()) { ModelState.AddModelError("", "A data de expediente final deve ser maior que a inicial."); return(View(modelo)); } else if (modelo.ClienteSelecionado == null) { ModelState.AddModelError("", "Favor selecionar um cliente na lista."); return(View(modelo)); } #endregion // Entrada var diariaAvulsa = new DiariaAvulsaFiltroDTO(); if (UsuarioLogado.Instance.BhjTpUsu != null && UsuarioLogado.Instance.BhjTpUsu == TipoUsuario.FuncionarioCliente) { // Busca Tarifa do Cliente Interno da BHJET var entidade = tarifaServico.BuscaTaritaCliente(UsuarioLogado.Instance.bhIdCli, modelo.TipoVeiculoSelecionado); var profissional = profissionalServico.BuscaComissaoProfissional(modelo.ProfissionalSelecionado ?? default(int)); // Validacoes if (entidade.ValorContrato == null || entidade.FranquiaKM == null || entidade.ValorKMAdicional == null) { ModelState.AddModelError("", "Não foi possível buscar informações para seu contrato de diaria, favor entrar em contato com a Administração da BHJet."); return(View(modelo)); } // Modelo Diaria diariaAvulsa = new DiariaAvulsaFiltroDTO() { IDCliente = modelo.ClienteSelecionado ?? 0, IDColaboradorEmpresa = modelo.ProfissionalSelecionado ?? 0, DataInicioExpediente = modelo.PeriodoInicial.ToDate() ?? new DateTime(), DataFimExpediente = modelo.PeriodoFinal.ToDate() ?? new DateTime(), HoraInicioExpediente = modelo.HorarioInicial ?? new TimeSpan(), HoraFimExpediente = modelo.HorarioFim ?? new TimeSpan(), ValorDiariaNegociado = entidade.ValorContrato ?? 0, ValorDiariaComissaoNegociado = profissional.decPercentualComissao, FranquiaKMDiaria = entidade.FranquiaKM ?? 0, ValorKMAdicionalNegociado = entidade.ValorKMAdicional ?? 0 }; } else { diariaAvulsa = new DiariaAvulsaFiltroDTO() { IDCliente = modelo.ClienteSelecionado ?? 0, IDColaboradorEmpresa = modelo.ProfissionalSelecionado ?? 0, DataInicioExpediente = modelo.PeriodoInicial.ToDate() ?? new DateTime(), DataFimExpediente = modelo.PeriodoFinal.ToDate() ?? new DateTime(), HoraInicioExpediente = modelo.HorarioInicial ?? new TimeSpan(), HoraFimExpediente = modelo.HorarioFim ?? new TimeSpan(), ValorDiariaNegociado = modelo.ValorDiaria.ToDecimalCurrency(), ValorDiariaComissaoNegociado = modelo.ValorComissao.ToDecimalCurrency(), FranquiaKMDiaria = modelo.FranquiaKMDiaria.ToString().ToDecimalCurrency(), ValorKMAdicionalNegociado = modelo.ValorKMAdicional.ToDecimalCurrency() }; } if (ModelState.IsValid) { // Incluir diaria diariaServico.IncluirDiaria(diariaAvulsa); this.MensagemSucesso("Diaria avulsa cadastrada com sucesso."); ModelState.Clear(); return(View()); } return(RedirectToAction("CadastroDiariaAvulsa")); } catch (Exception e) { this.TrataErro(e); return(RedirectToAction("Index", "Home")); } }
public IHttpActionResult PostDiariaAvulsa([FromBody] DiariaAvulsaFiltroDTO model) { // Busca Tarifa Cliente //var tarifa = new TarifaRepositorio().BuscaTarificaPorCliente(model.IDCliente, model.tipo); // Verifica periodo informado contem varios dias if (model.DataFimExpediente.Date > model.DataInicioExpediente) { // Quantos dias de diarias solicitados double qtdDias = (model.DataFimExpediente.Date - model.DataInicioExpediente).TotalDays; // Monta diarias por dia for (int i = 0; i <= qtdDias; i++) { // Monta periodos var dataRegistro = model.DataInicioExpediente.AddDays(i); // Inicio var horaInicio = model.HoraInicioExpediente < new System.TimeSpan(00, 00, 00) ? new System.TimeSpan(00, 00, 00) : model.HoraInicioExpediente; var dataInicio = new System.DateTime(dataRegistro.Year, dataRegistro.Month, dataRegistro.Day, horaInicio.Hours, horaInicio.Minutes, horaInicio.Seconds); // Fim var horaFim = model.HoraFimExpediente < new System.TimeSpan(00, 00, 00) ? new System.TimeSpan(00, 00, 00) : model.HoraFimExpediente; var dataFim = new System.DateTime(dataRegistro.Year, dataRegistro.Month, dataRegistro.Day, horaFim.Hours, horaFim.Minutes, horaFim.Seconds); // Busca Dados detalhados da corrida/OS new DiariaRepositorio().IncluirDiariaAvulsa(new BHJet_Repositorio.Admin.Filtro.NovaDiariaAvulsaFiltro() { IDCliente = model.IDCliente, IDColaboradorEmpresa = model.IDColaboradorEmpresa, IDUsuarioSolicitacao = UsuarioAutenticado.LoginID.ToLong(), DataHoraFimExpediente = dataInicio, DataHoraInicioExpediente = dataFim, FranquiaKMDiaria = model.FranquiaKMDiaria, ValorDiariaComissaoNegociado = model.ValorDiariaComissaoNegociado, ValorDiariaNegociado = model.ValorDiariaNegociado, ValorKMAdicionalNegociado = model.ValorKMAdicionalNegociado }); } } else { // Monta periodos model.DataInicioExpediente = new System.DateTime(model.DataInicioExpediente.Year, model.DataInicioExpediente.Month, model.DataInicioExpediente.Day, model.HoraInicioExpediente.Hours, model.HoraInicioExpediente.Minutes, model.HoraInicioExpediente.Seconds); model.DataFimExpediente = new System.DateTime(model.DataFimExpediente.Year, model.DataFimExpediente.Month, model.DataFimExpediente.Day, model.HoraFimExpediente.Hours, model.HoraFimExpediente.Minutes, model.HoraFimExpediente.Seconds); // Busca Dados detalhados da corrida/OS new DiariaRepositorio().IncluirDiariaAvulsa(new BHJet_Repositorio.Admin.Filtro.NovaDiariaAvulsaFiltro() { IDCliente = model.IDCliente, IDColaboradorEmpresa = model.IDColaboradorEmpresa, IDUsuarioSolicitacao = UsuarioAutenticado.LoginID.ToLong(), DataHoraFimExpediente = model.DataFimExpediente, DataHoraInicioExpediente = model.DataInicioExpediente, FranquiaKMDiaria = model.FranquiaKMDiaria, ValorDiariaComissaoNegociado = model.ValorDiariaComissaoNegociado, ValorDiariaNegociado = model.ValorDiariaNegociado, ValorKMAdicionalNegociado = model.ValorKMAdicionalNegociado }); } // Return return(Ok()); }