public IActionResult CadastrarHora(ViewModelCadastroHora viewModelCadastroHora) { TempData["CreateSucesso"] = null; try { if (ModelState.IsValid) { JornadaTrabalho jornadaTrabalhoNeogocio = new JornadaTrabalho(); jornadaTrabalhoNeogocio = _mapper.Map <JornadaTrabalho>(viewModelCadastroHora); jornadaTrabalhoNeogocio.ValidarJornadaTrabalhoSobreposta(_jornadaTrbServiceRepository.ObterListJornada()); viewModelCadastroHora.ValidaHorario(); viewModelCadastroHora.ValidaIntervalo(); viewModelCadastroHora.ValidaJornadaDiaria(); viewModelCadastroHora.ValidaData(); viewModelCadastroHora.ValidaJornadaMax(); var JornadaTrb = _mapper.Map <JornadaTrabalho>(viewModelCadastroHora); _jornadaTrbServiceRepository.SalvarJornada(JornadaTrb); TempData["JornadaCadastrada"] = true; return(RedirectToAction("Index", "JornadaTrabalho")); } return(View(viewModelCadastroHora)); } catch (Exception e) { TempData["Createfalse"] = e.Message; return(View()); } }
public RelatorioService(IPontoDiaRepository pontoRepository, FeriadoService feriadoService, IJornadaTrabalhoRepository jornadaRepository, IUnitOfWork unitOfWork) { this.pontoRepository = pontoRepository; this.feriadoService = feriadoService; this.jornadaRepository = jornadaRepository; this.jornadaAtiva = jornadaRepository.findJornadaAtiva(); this.unitOfWork = unitOfWork; }
public JornadaTrabalho FindByID(string codigo) { JornadaTrabalho jornadaTrabalho = new JornadaTrabalho(); using (OracleConnection dbConnection = new OracleConnection(ConnectionString)) { dbConnection.Open(); var sQuery = $@"Select LTRIM(RTRIM(ZYV_CODIGO)) AS Codigo, LTRIM(RTRIM(ZYV_FILIAL)) AS Filial, LTRIM(RTRIM(ZYV_DESCR)) AS DescJornada, LTRIM(RTRIM(ZYV_DTINI)) AS DataInicio, LTRIM(RTRIM(ZYV_DTFIN)) AS DataFim, LTRIM(RTRIM(ZYV_JORNAD)) AS JornadaDiaria, LTRIM(RTRIM(ZYV_HRINI)) AS HoraInicioDe, LTRIM(RTRIM(ZYV_HRIFIN)) AS HoraInicioAte, LTRIM(RTRIM(ZYV_HFINAL)) AS HoraFinal, LTRIM(RTRIM(ZYV_INTINI)) AS InterInicio, LTRIM(RTRIM(ZYV_INTFIN)) AS InterFim, LTRIM(RTRIM(ZYV_INTMIN)) AS InterMin, LTRIM(RTRIM(ZYV_INTMAX)) AS InterMax, LTRIM(RTRIM(ZYV_JORMAX)) AS JornadaMax, LTRIM(RTRIM(ZYV_JORMIN)) AS JornadaMin from ZYV010 WHERE ZYV_CODIGO = '{codigo}' AND D_E_L_E_T_ <> '*'"; var QueryResult = dbConnection.QueryFirstOrDefault <JornadaTrabalhoDb>(sQuery); jornadaTrabalho.Codigo = QueryResult.Codigo; jornadaTrabalho.DescJornada = QueryResult.DescJornada; jornadaTrabalho.DataInicio = Convert.ToDateTime(QueryResult.DataInicio.ToDateProtheusReverseformate()); jornadaTrabalho.DataFim = Convert.ToDateTime(QueryResult.DataFim.ToDateProtheusReverseformate()); jornadaTrabalho.HoraInicioDe = TimeSpan.Parse(QueryResult.HoraInicioDe); jornadaTrabalho.HoraInicioAte = TimeSpan.Parse(QueryResult.HoraInicioAte); jornadaTrabalho.HoraFinal = TimeSpan.Parse(QueryResult.HoraFinal); jornadaTrabalho.InterInicio = TimeSpan.Parse(QueryResult.InterInicio); jornadaTrabalho.InterFim = TimeSpan.Parse(QueryResult.InterFim); jornadaTrabalho.InterMin = TimeSpan.Parse(QueryResult.InterMin); jornadaTrabalho.InterMax = TimeSpan.Parse(QueryResult.InterMax); jornadaTrabalho.JornadaDiaria = TimeSpan.Parse(QueryResult.JornadaDiaria); if (QueryResult.JornadaMin == null) { jornadaTrabalho.JornadaMin = TimeSpan.Parse("00:00"); } else { jornadaTrabalho.JornadaMin = TimeSpan.Parse(QueryResult.JornadaMin); } if (QueryResult.JornadaMax == null) { jornadaTrabalho.JornadaMax = TimeSpan.Parse("00:00"); } else { jornadaTrabalho.JornadaMax = TimeSpan.Parse(QueryResult.JornadaMax); } jornadaTrabalho.Filial = QueryResult.Filial; return(jornadaTrabalho); } }
public DiaPonto(PontoDia pontoDia, JornadaTrabalho jornadaAtiva) : base(pontoDia.Data) { Check.Require(pontoDia.Tipo != ETipoPonto.FERIADO_TRABALHADO, "Feriado trabalhado não deve ser criado desta forma."); Check.Require(pontoDia != null, "O ponto deve ser válido"); this.PontoDia = pontoDia; this.JornadaTrabalhoAtiva = jornadaAtiva; }
protected internal DiaJornadaViewModel(JornadaTrabalho jornada, DayOfWeek day) { this.jornada = jornada; this.dia = jornada.getDia(day); this.Entrada = dia.EntradaEsperada; this.Saida = dia.SaidaEsperada; this.Folga = dia.FolgaEsperada; this._diaDeTrabalho = !nenhumHorarioFoiDefinido(); }
public JornadaTrabalhoViewModel(IJornadaTrabalhoRepository repository) { this.repository = repository; this.jornada = repository.findJornadaAtiva(); criarDias(); this.DiaJornadaSelecionado = Dias[1]; //Segunda-feira _salvarCommand = new RelayCommand(salvar, podeSalvar); _fecharCommand = new RelayCommand(fechar); }
public uint save(JornadaTrabalho jornada) { using (ISession session = NHibernateHelper.openSession()) using (ITransaction trans = session.BeginTransaction()) { session.SaveOrUpdate(jornada); trans.Commit(); return(jornada.Id); } }
private void defineHorariosDoDia() { //if (batidasDoDia.Count == 1) //{ //Define a jornada que será assumida no comportamento do ponto a partir da primeira batida jornada = JsonConvert.DeserializeObject <JornadaTrabalho>( c.GetAsync(String.Format("servico/IdentificarJornadaTrabalho/{0}?horario={1:hh\\:mm\\:ss}", funcionario.Id, batidasDoDia.Any() ? batidasDoDia.First().Hora : hora.TimeOfDay)) .Result.Content.ReadAsStringAsync() .Result); funcionario.IdJornada = jornada.Id; //} }
public DiaFeriadoTrabalhado(PontoDia pontoDia, Feriado feriado, JornadaTrabalho jornadaAtiva) : base(pontoDia.Data) { Check.Require(pontoDia.Data == feriado.getData(), "O dia do feriado deve ser o mesmo do dia de trabalho"); Check.Require(feriado != null, "O feriado deve ser válido"); Check.Require(pontoDia != null, "O ponto deve ser válido"); this.PontoDia = pontoDia; this.Feriado = feriado; this.JornadaTrabalhoAtiva = jornadaAtiva; }
public double CalcularAtraso(IOrderedEnumerable <Lancamento> lancamentoList, JornadaTrabalho jornada) { TimeSpan TotalAtraso = TimeSpan.Parse("00:00:00"); foreach (Lancamento LancamentoResult in lancamentoList) { if (LancamentoResult.HoraInicio > jornada.HoraInicioDe) { TotalAtraso += LancamentoResult.HoraInicio - jornada.HoraInicioDe; } } return(TotalAtraso.TotalHours); }
public override TimeSpan calcularHorasDevedoras(JornadaTrabalho jornada) { DiaJornada diaJornada = jornada.getDia(Data.DayOfWeek); var trabalhado = calcularHorasTrabalhadas(); var esperado = diaJornada.calcularHorasTrabalhoEsperado(); var resultado = esperado.Subtract(trabalhado); if (resultado > new TimeSpan(0, 10, 59)) { return(resultado); } return(new TimeSpan(0, 0, 0)); }
public ActionResult Edit(ViewModelMacacao marcacao) { try { if (ModelState.IsValid) { ViewModelLancamento lancamentoAliplication = new ViewModelLancamento(); Marcacao aberturaMarcacao = new Marcacao(); JornadaTrabalho jornada = new JornadaTrabalho(); CodDivergenciaViewModel codiv = new CodDivergenciaViewModel(); if (marcacao.Lancamento != null) { marcacao.Lancamento.ValidaHoraLancamento(); marcacao.Lancamento.Observacao = marcacao.Lancamento.Observacao.ReplaceSaveObservacaoProthues(); var codiviergencia = _prothuesService.ObterCodigoDivergenciaPorCodigo(Convert.ToString(marcacao.Lancamento.CodDivergencia)); if (marcacao.Lancamento.CodDivergencia != null && marcacao.Lancamento.CodDivergencia != 0) { codiv.ValidaCodigoDivergencia(codiviergencia); codiv.ValidaCodigoDivergenciaConstante(codiviergencia.Constant, marcacao.Lancamento.CodDivergencia); } lancamentoAliplication = marcacao.Lancamento; if (marcacao.DataDialancamento != null) { marcacao.DataDia = marcacao.DataDialancamento?.ToString("yyyy-MM-dd"); } lancamentoAliplication.ValidaHorasLancamentoOutraMarcacao(_lancamentoerviceRepository.ObterLancamento(marcacao.DataDia.ToDateProtheus(), User.GetDados("Matricula"))); marcacao.Lancamento.codEmpredimento = marcacao.Lancamento.EmpreendimentoIds[0].Substring(0, marcacao.Lancamento.EmpreendimentoIds[0].IndexOf('-')); marcacao.Lancamento.Fase = marcacao.Lancamento.EmpreendimentoIds[0].Substring(marcacao.Lancamento.EmpreendimentoIds[0].IndexOf('-') + 1); _lancamentoerviceRepository.AtualizarLancamento(_mapper.Map <Lancamento>(marcacao.Lancamento)); } return(Json(new { sucesso = "Lançamento atualizado com sucesso!" })); } return(Json(new { msg = string.Join("; ", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)), erro = true })); } catch (Exception e) { return(Json(new { msg = e.Message, erro = true })); } }
public async Task <IActionResult> AdicionarJornada([FromBody] JornadaTrabalhoDTO jornadaTrabalho) { if (!ModelState.IsValid) { return(CustomResponse(ModelState)); } var jd = jornadaTrabalho; var jornada = new JornadaTrabalho(jd.IdFuncionario, jd.DiaInicio, jd.DiaFim, jd.HoraInicio, jd.HoraFim); _funcionarioRepository.AdicionarJornada(jornada); var success = await _funcionarioRepository.UnitOfWork.Commit(); return(CustomResponse(success)); }
public JornadaTrabalho ObterListaJornadaPorData(string data) { JornadaTrabalho jornadaTrb = new JornadaTrabalho(); var listaJornadaTrabalho = _jornadaTrbServiceRepository.ObterListJornada(); foreach (JornadaTrabalho jornada in listaJornadaTrabalho) { if (Convert.ToDateTime(data.ToDateProtheusReverseformate()) >= jornada.DataInicio && Convert.ToDateTime(data.ToDateProtheusReverseformate()) <= jornada.DataFim) { jornada.JornadaDia = jornada.JornadaDiaria.ToString(@"hh\:mm"); return(jornada); } } return(jornadaTrb); }
public RelatorioPonto(Funcionario funcionario, DateTime inicio, DateTime fim, JornadaTrabalho jornadaAtiva, List <DiaRelatorio> todosDias) { this.Funcionario = funcionario; this.PeriodoInicio = inicio; this.PeriodoFim = fim; this.jornadaAtiva = jornadaAtiva; this.Dias = todosDias; int difDias = (fim - inicio).Days + 1; Check.Ensure(Dias.Count == difDias, string.Format( "Uma quantidade errada de dias foi gerada para o período: {0} e {1}. Esperado: {2} Encontrado: {3}", inicio.ToShortDateString(), fim.ToShortDateString(), difDias, Dias.Count)); }
public void Add(JornadaTrabalho item) { try { using (OracleConnection dbConnection = new OracleConnection(ConnectionString)) { string sQuery = $@"INSERT INTO ZYV010 (ZYV_FILIAL,ZYV_DESCR, ZYV_DTINI, ZYV_DTFIN, ZYV_JORNAD, ZYV_HRINI, ZYV_HRIFIN,ZYV_HFINAL, ZYV_INTINI,ZYV_INTFIN, ZYV_INTMIN,ZYV_INTMAX,ZYV_JORMAX, ZYV_JORMIN, R_E_C_N_O_, R_E_C_D_E_L_) VALUES('{item.Filial}','{item.DescJornada}', '{Convert.ToString(item.DataInicio).ToDateProtheusConvert()}', '{Convert.ToString(item.DataFim).ToDateProtheusConvert()}', '{item.JornadaDiaria}', '{item.HoraInicioDe}','{item.HoraInicioAte}', '{item.HoraFinal}','{item.InterInicio}', '{item.InterFim}','{item.InterMin}', '{item.InterMax}','{item.JornadaMax}','{item.JornadaMin}',(SELECT NVL(MAX(X.R_E_C_N_O_),0)+1 FROM ZYV010 X),0)"; dbConnection.Open(); dbConnection.Execute(sQuery); } } catch (Exception ex) { throw ex; } }
public void Update(JornadaTrabalho item) { try { using (OracleConnection dbConnection = new OracleConnection(ConnectionString)) { string sQuery = $@"UPDATE ZYV010 SET ZYV_DESCR = '{item.DescJornada}' , ZYV_DTINI = '{Convert.ToString(item.DataInicio).ToDateProtheusConvert()}', ZYV_DTFIN = '{Convert.ToString(item.DataFim).ToDateProtheusConvert()}', ZYV_JORNAD = '{item.JornadaDiaria}', ZYV_HRINI = '{item.HoraInicioDe}', ZYV_HRIFIN = '{item.HoraInicioAte}', ZYV_HFINAL = '{item.HoraFinal}', ZYV_INTINI= '{item.InterInicio}', ZYV_INTFIN = '{item.InterFim}', ZYV_INTMIN = '{item.InterMin}', ZYV_INTMAX = '{item.InterMax}', ZYV_FILIAL = '{item.Filial}', ZYV_JORMAX = '{item.JornadaMax}', ZYV_JORMIN = '{item.JornadaMin}' WHERE ZYV_CODIGO ='{item.Codigo}'"; dbConnection.Open(); dbConnection.Execute(sQuery); } } catch (Exception ex) { throw ex; } }
public void AdicionarJornada(JornadaTrabalho jornada) { _context.Jornadas.Add(jornada); }
public List <JornadaTrabalho> FindAll() { try { List <JornadaTrabalho> listJornadaTrabalho = new List <JornadaTrabalho>(); JornadaTrabalho jornadaTrabalho; using (OracleConnection dbConnection = new OracleConnection(ConnectionString)) { string sQuery = $@"Select LTRIM(RTRIM(ZYV_CODIGO)) AS Codigo, LTRIM(RTRIM(ZYV_FILIAL)) AS Filial, LTRIM(RTRIM(ZYV_DESCR)) AS DescJornada, LTRIM(RTRIM(ZYV_DTINI)) AS DataInicio, LTRIM(RTRIM(ZYV_DTFIN)) AS DataFim, LTRIM(RTRIM(ZYV_JORNAD)) AS JornadaDiaria, LTRIM(RTRIM(ZYV_HRINI)) AS HoraInicioDe, LTRIM(RTRIM(ZYV_HRIFIN)) AS HoraInicioAte, LTRIM(RTRIM(ZYV_HFINAL)) AS HoraFinal, LTRIM(RTRIM(ZYV_INTINI)) AS InterInicio, LTRIM(RTRIM(ZYV_INTFIN)) AS InterFim, LTRIM(RTRIM(ZYV_INTMIN)) AS InterMin, LTRIM(RTRIM(ZYV_INTMAX)) AS InterMax, LTRIM(RTRIM(ZYV_JORMAX)) AS JornadaMax, LTRIM(RTRIM(ZYV_JORMIN)) AS JornadaMin from ZYV010 WHERE D_E_L_E_T_ <> '*'"; dbConnection.Open(); var jtResult = dbConnection.Query <JornadaTrabalhoDb>(sQuery); foreach (JornadaTrabalhoDb QueryResult in jtResult) { jornadaTrabalho = new JornadaTrabalho(); jornadaTrabalho.Codigo = QueryResult.Codigo; jornadaTrabalho.DescJornada = QueryResult.DescJornada; jornadaTrabalho.DataInicio = Convert.ToDateTime(QueryResult.DataInicio.ToDateProtheusReverseformate()); jornadaTrabalho.DataFim = Convert.ToDateTime(QueryResult.DataFim.ToDateProtheusReverseformate()); jornadaTrabalho.HoraInicioDe = TimeSpan.Parse(QueryResult.HoraInicioDe); jornadaTrabalho.HoraInicioAte = TimeSpan.Parse(QueryResult.HoraInicioAte); jornadaTrabalho.InterInicio = TimeSpan.Parse(QueryResult.InterInicio); jornadaTrabalho.HoraInicioAte = TimeSpan.Parse(QueryResult.HoraInicioAte); jornadaTrabalho.InterInicio = TimeSpan.Parse(QueryResult.InterInicio); jornadaTrabalho.InterFim = TimeSpan.Parse(QueryResult.InterFim); jornadaTrabalho.InterMin = TimeSpan.Parse(QueryResult.InterMin); jornadaTrabalho.InterMax = TimeSpan.Parse(QueryResult.InterMax); jornadaTrabalho.JornadaDiaria = TimeSpan.Parse(QueryResult.JornadaDiaria); if (QueryResult.JornadaMin == null) { jornadaTrabalho.JornadaMin = TimeSpan.Parse("00:00"); } else { jornadaTrabalho.JornadaMin = TimeSpan.Parse(QueryResult.JornadaMin); } jornadaTrabalho.Filial = QueryResult.Filial; if (QueryResult.JornadaMax == null) { jornadaTrabalho.JornadaMax = TimeSpan.Parse("00:00"); } else { jornadaTrabalho.JornadaMax = TimeSpan.Parse(QueryResult.JornadaMax); } listJornadaTrabalho.Add(jornadaTrabalho); } return(listJornadaTrabalho); } } catch (Exception ex) { throw ex; } }
public List <Fechamento> CalcularTotalLancamentoPorProjeto(List <Lancamento> listlancamentoDiario, string matricula, JornadaTrabalho jornada, Configuracao config, string filial, string codmarcacao) { double totalLancamento = 0; double totalHoraExedente = 0; double totalAbono = 0; string datalancamento = "0"; var jrDiaria = jornada.JornadaDiaria; List <Fechamento> Fechamento = new List <Fechamento>(); string codEmprendimento = "0"; string data = ""; double totalHorasLancamento = 0; foreach (Lancamento LancamentoResult in listlancamentoDiario) { var listaPorEmprendimentoDia = _lancamentoerviceRepository.ObterListaLancamentoPorCodProjeto(LancamentoResult.DateLancamento, matricula, LancamentoResult.codEmpredimento); if (listaPorEmprendimentoDia.Count > 0) { totalLancamento += CalcularTotalHorasLancamentoPorProjeto(listaPorEmprendimentoDia); Fechamento novo = new Fechamento(); novo.DataLancamento = LancamentoResult.DateLancamento; novo.CodigoProjeto = LancamentoResult.codEmpredimento; novo.CodigoMarcacao = codmarcacao; novo.Fase = LancamentoResult.Fase; novo.TotalAbono = 0; novo.TotalHoraExedente = 0; novo.TotalFaltaAtraso = 0; novo.TotalHora = totalLancamento; codEmprendimento = LancamentoResult.codEmpredimento; datalancamento = LancamentoResult.DateLancamento; totalAbono = 0; totalLancamento = 0; totalHoraExedente = 0; if (!Fechamento.Any(x => x.CodigoProjeto == LancamentoResult.codEmpredimento && x.DataLancamento == LancamentoResult.DateLancamento)) { Fechamento.Add(novo); } } } var listlancamentosSemMarcaco = ObterDiasSemLancamento(listlancamentoDiario.ToList(), _marcacao.ObterMarcacao(codmarcacao), filial, jornada); foreach (Fechamento fechamento in listlancamentosSemMarcaco) { fechamento.CodigoMarcacao = codmarcacao; fechamento.Filial = filial; fechamento.TotalAbono = 0; fechamento.TotalAtraso = 0; fechamento.TotalFalta = 0; fechamento.TotalFaltaAtraso = 0; fechamento.TotalHoraExedente = 0; fechamento.CodigoProjeto = "00000"; fechamento.Fase = "0"; fechamento.TotalHora = 0; fechamento.Divergencia = "0"; Fechamento.Add(fechamento); } return(Fechamento); }
public ActionResult Create(ViewModelMacacao marcacao) { try { if (ModelState.IsValid) { Marcacao aberturaMarcacao = new Marcacao(); ViewModelLancamento lancamento = new ViewModelLancamento(); JornadaTrabalho jornada = new JornadaTrabalho(); CodDivergenciaViewModel codiv = new CodDivergenciaViewModel(); if (marcacao.DataDialancamento != null) { marcacao.DataDia = marcacao.DataDialancamento?.ToString("yyyy-MM-dd"); } string codigoAbertura = aberturaMarcacao.AbeturaExiste(_marcacao.ObterListMarcacaoPorMatUser(User.GetDados("Matricula")), marcacao.DataDia.ToDia(), marcacao.DataDia.ToAno()); string codJornadaTrabalho = jornada.ValidarJornadaTrabalhoExisteParaLancamento(_jornadaTrbServiceRepository.ObterListJornada(), marcacao.DataDia.ToDateProtheusReverse()); if (codigoAbertura == "0") { var configuracao = _configuracao.ObterConfiguracao(); marcacao.DataInicio = ObterPrimeiroDia(configuracao, marcacao); marcacao.DataFim = ObterDiaFim(configuracao, marcacao); marcacao.AnoMes = marcacao.DataDia.ToShortDateProtheus(); marcacao.MatUsuario = User.GetDados("Matricula"); marcacao.Filial = User.GetDados("Filial"); marcacao.Status = Constantes.ABERTO; marcacao.codigojornada = codJornadaTrabalho; _marcacao.SalvarMarcacao(_mapper.Map <Marcacao>(marcacao)); } if (marcacao.Lancamento != null) { marcacao.Lancamento.ValidaHoraLancamento(); marcacao.Lancamento.Observacao = marcacao.Lancamento.Observacao.ReplaceSaveObservacaoProthues(); var codiviergencia = _prothuesService.ObterCodigoDivergenciaPorCodigo(Convert.ToString(marcacao.Lancamento.CodDivergencia)); if (marcacao.Lancamento.CodDivergencia != null && marcacao.Lancamento.CodDivergencia != 0) { codiv.ValidaCodigoDivergencia(codiviergencia); codiv.ValidaCodigoDivergenciaConstante(codiviergencia.Constant, marcacao.Lancamento.CodDivergencia); } lancamento = marcacao.Lancamento; lancamento.ValidaHorasLancamentoOutraMarcacao(_lancamentoerviceRepository.ObterLancamento(marcacao.DataDia.ToDateProtheus(), User.GetDados("Matricula"))); marcacao.Lancamento.Codigo = aberturaMarcacao.AbeturaExiste(_marcacao.ObterListMarcacaoPorMatUser(User.GetDados("Matricula")), marcacao.DataDia.ToDia(), marcacao.DataDia.ToAno()); marcacao.Lancamento.codEmpredimento = marcacao.Lancamento.EmpreendimentoIds[0].Substring(0, marcacao.Lancamento.EmpreendimentoIds[0].IndexOf('-')); marcacao.Lancamento.Fase = marcacao.Lancamento.EmpreendimentoIds[0].Substring(marcacao.Lancamento.EmpreendimentoIds[0].IndexOf('-') + 1); _lancamentoerviceRepository.SalvarLancamento(_mapper.Map <Lancamento>(marcacao.Lancamento), User.GetDados("Filial"), marcacao.DataDia.ToDateProtheus()); } return(Json(new { sucesso = "Lançamento cadastrado com sucesso!" })); } return(Json(new { msg = string.Join("\n", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)), erro = true })); } catch (Exception e) { return(Json(new { msg = e.Message, erro = true })); } }
public int CalcularQuantidadeDeDiaSemApontamento(IOrderedEnumerable <Lancamento> lancamentoList, JornadaTrabalho jornada) { DateTime initialDate = jornada.DataInicio; DateTime finalDate = jornada.DataFim; string datalancamento = "0"; int countDiasDiasDiferenteLancamento = 0; int countDiasInguasLancamento = 0; var days = 0; var daysCount = 0; days = initialDate.Subtract(finalDate).Days; if (days < 0) { days = days * -1; } for (int i = 1; i <= days; i++) { initialDate = initialDate.AddDays(1); if (initialDate.DayOfWeek != DayOfWeek.Sunday && initialDate.DayOfWeek != DayOfWeek.Saturday) { daysCount++; } } foreach (Lancamento LancamentoResult in lancamentoList) { if (datalancamento != LancamentoResult.DateLancamento && datalancamento != "0") { countDiasDiasDiferenteLancamento++; } else { countDiasInguasLancamento++; } datalancamento = LancamentoResult.DateLancamento; } if (countDiasInguasLancamento > 1) { countDiasInguasLancamento = 1; } return(daysCount - (countDiasDiasDiferenteLancamento + countDiasInguasLancamento)); }
public DiaFalta(DateTime date, JornadaTrabalho jornadaAtiva) : base(date) { this.JornadaTrabalhoAtiva = jornadaAtiva; }
public List <Fechamento> CalcularLancamentoPorData(IEnumerable <Lancamento> orderedlistalancamento, JornadaTrabalho jornadaTrabalho, Configuracao configura, string matricula, string filial, string codmarcacao) { List <Fechamento> listaFechamentoPorData = new List <Fechamento>(); listaFechamentoPorData = CalcularTotalHoraExedenteETrabalhadaEabonoeFalta(orderedlistalancamento.OrderBy(x => x.DateLancamento), jornadaTrabalho, configura, matricula, filial, codmarcacao); return(listaFechamentoPorData); }
public List <Fechamento> CalcularTotalHoraExedenteETrabalhadaEabonoeFalta(IEnumerable <Lancamento> lancamentoList, JornadaTrabalho jornada, Configuracao config, string matricula, string filial, string codmarcacao) { List <Fechamento> listFechamentoCalculada = new List <Fechamento>(); var listFechamento = _fechamentoServiceRepository.ObterListFechamentoMensalPorDia(matricula, codmarcacao); var marcacao = _marcacao.ObterMarcacao(codmarcacao); if (marcacao.Status == Constantes.FECHADO | marcacao.Status == Constantes.APROVADO | marcacao.Status == Constantes.CONTABILIZADO) { foreach (Fechamento FechamentoResult in listFechamento) { Fechamento novo = new Fechamento(); novo.DataLancamento = FechamentoResult.DataLancamento; novo.CodigoProjeto = FechamentoResult.CodigoProjeto; novo.CodigoMarcacao = FechamentoResult.CodigoMarcacao; novo.TotalHora = FechamentoResult.TotalHora; novo.TotalFaltaAtraso = FechamentoResult.TotalFaltaAtraso; novo.TotalHoraExedente = FechamentoResult.TotalHoraExedente; novo.TotalAbono = FechamentoResult.TotalAbono; listFechamentoCalculada.Add(novo); } } else { foreach (Lancamento LancamentoAberto in lancamentoList.ToList()) { Fechamento novo = new Fechamento(); novo.DataLancamento = LancamentoAberto.DateLancamento; novo.TotalHora = 0; novo.TotalFaltaAtraso = 0; novo.TotalHoraExedente = 0; novo.TotalAbono = 0; listFechamentoCalculada.Add(novo); } var listlancamentosSemMarcaco = ObterDiasSemLancamento(lancamentoList.ToList(), _marcacao.ObterMarcacao(codmarcacao), filial, jornada); foreach (Fechamento fechamento in listlancamentosSemMarcaco) { fechamento.CodigoMarcacao = codmarcacao; fechamento.Filial = filial; fechamento.TotalAbono = 0; fechamento.TotalAtraso = 0; fechamento.TotalFalta = Math.Round(Convert.ToDouble(jornada.JornadaDiaria.Hours), 2); fechamento.TotalFaltaAtraso = 0; fechamento.TotalHoraExedente = 0; fechamento.CodigoProjeto = "0"; fechamento.Fase = "0"; fechamento.TotalHora = 0; fechamento.Divergencia = "0"; listFechamentoCalculada.Add(fechamento); } } return(listFechamentoCalculada); }
public List <Fechamento> ValidaIntervaloMinimoEMaximo(List <Lancamento> lancamentoDiario, JornadaTrabalho jornada) { List <Fechamento> listFechamento = new List <Fechamento>(); double jornadaDiaria = Math.Round(jornada.JornadaDiaria.TotalHours, 2); double minimo = Math.Round(jornada.InterMin.TotalHours, 2); double maximo = Math.Round(jornada.InterMax.TotalHours, 2); TimeSpan totalHorasIntervalo; string datalancamento = "0"; int count = 0; bool existe = false; bool eFeriadoSabadoEdomingo = false; if (lancamentoDiario.Count > 0) { for (int i = 0; i < lancamentoDiario.Count; i++) { datalancamento = lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate(); if (!ValidaEferiado(lancamentoDiario[i].DateLancamento, jornada.Filial) & !ESabadoOuDomingo(Convert.ToDateTime(lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate()))) { count++; if (lancamentoDiario[i].HoraFim >= jornada.InterInicio && lancamentoDiario[i].HoraFim <= jornada.InterFim) { if (count < lancamentoDiario.Count) { totalHorasIntervalo = lancamentoDiario[i + 1].HoraInicio - lancamentoDiario[i].HoraFim; if (Math.Round(totalHorasIntervalo.TotalHours, 2) >= minimo && Math.Round(totalHorasIntervalo.TotalHours, 2) <= maximo) { if (lancamentoDiario[i].HoraFim >= jornada.InterInicio && lancamentoDiario[i + 1].HoraInicio <= jornada.InterFim) { Fechamento novo = new Fechamento(); listFechamento.Add(novo); break; } if (lancamentoDiario[i + 1].CodDivergencia == 0 | lancamentoDiario[i].CodDivergencia == 0) { Fechamento novo = new Fechamento(); novo.Divergencia = "Divergência justificada"; novo.DataLancamento = lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate(); novo.Descricao = "Dia onde intervalo se encontra fora do horário padrão de almoço."; listFechamento.Add(novo); break; } if (lancamentoDiario[i].CodDivergencia == 0 | lancamentoDiario[i + 1].CodDivergencia == 0) { Fechamento novo = new Fechamento(); novo.Divergencia = "Divergência justificada"; novo.DataLancamento = lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate(); novo.Descricao = "Dia onde intervalo se encontra fora do horário padrão de almoço."; listFechamento.Add(novo); break; } } else if (!(lancamentoDiario[i].HoraFim >= jornada.InterInicio && lancamentoDiario[i].HoraFim <= jornada.InterFim)) { if (lancamentoDiario[i].CodDivergencia == 0) { Fechamento novo = new Fechamento(); novo.Divergencia = "Divergência justificada"; novo.DataLancamento = lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate(); novo.Descricao = "Dia onde intervalo se encontra fora do horário padrão de almoço."; listFechamento.Add(novo); break; } else if (lancamentoDiario[i].CodDivergencia == 0) { Fechamento novo = new Fechamento(); novo.Divergencia = "Divergência justificada"; novo.DataLancamento = lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate(); novo.Descricao = "Dia onde intervalo se encontra fora do horário padrão de almoço."; listFechamento.Add(novo); break; } } else if (!(lancamentoDiario[i + 1].HoraFim >= jornada.InterInicio && lancamentoDiario[i + 1].HoraFim <= jornada.InterFim)) { if (lancamentoDiario[i + 1].CodDivergencia == 0) { Fechamento novo = new Fechamento(); novo.Divergencia = "Divergência justificada"; novo.DataLancamento = lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate(); novo.Descricao = "Dia onde intervalo se encontra fora do horário padrão de almoço."; listFechamento.Add(novo); break; } else if (lancamentoDiario[i + 1].CodDivergencia == 0) { Fechamento novo = new Fechamento(); novo.Divergencia = "Divergência justificada"; novo.DataLancamento = lancamentoDiario[i].DateLancamento.ToDateProtheusReverseformate(); novo.Descricao = "Dia onde intervalo se encontra fora do horário padrão de almoço."; listFechamento.Add(novo); break; } } } } } else { eFeriadoSabadoEdomingo = true; } } } return(listFechamento); }
public List <Fechamento> ObterDiasSemLancamento(List <Lancamento> lancamentolist, Marcacao marcacao, string filial, JornadaTrabalho jornada) { List <Fechamento> novalistFechamento = new List <Fechamento>(); List <Fechamento> fechamentoSemLancamento = new List <Fechamento>(); var jrDiaria = jornada.JornadaDiaria; Fechamento dataSemLancamento; DateTime initialDate = Convert.ToDateTime(marcacao.DataInicio.ToDateProtheusReverseformate()); DateTime finalDate = Convert.ToDateTime(marcacao.DataFim.ToDateProtheusReverseformate()); var days = 0; days = initialDate.Subtract(finalDate).Days; if (days < 0) { days = days * -1; } for (int i = 1; i <= days; i++) { initialDate = initialDate.AddDays(1); dataSemLancamento = new Fechamento(); if (initialDate.DayOfWeek != DayOfWeek.Sunday && initialDate.DayOfWeek != DayOfWeek.Saturday) { if (!DataLancamentoExiste(initialDate, lancamentolist)) { if (!ValidaEferiado(initialDate.ToString("dd/MM/yyyy").ToDateProtheusConvert(), filial)) { dataSemLancamento.DataLancamento = initialDate.ToString("dd/MM/yyyy").ToDateProtheusConvert(); dataSemLancamento.TotalAbono = 0; dataSemLancamento.TotalHoraExedente = 0; dataSemLancamento.TotalFalta = Math.Round(Convert.ToDouble((jrDiaria).TotalHours), 2); dataSemLancamento.TotalAtraso = 0; dataSemLancamento.TotalHora = 0; fechamentoSemLancamento.Add(dataSemLancamento); } } } } return(fechamentoSemLancamento); }
public void horarioDeSaidaNaoDeveSerAntesDoDeEntrada() { var jornada = new JornadaTrabalho(); jornada.cadastrarDia(DayOfWeek.Monday, new TimeSpan(9, 0, 0), new TimeSpan(8, 0, 0), new TimeSpan(1, 0, 0)); }
public override TimeSpan calcularHorasExtras(JornadaTrabalho jornada) { return(new TimeSpan(0)); }
public override TimeSpan calcularHorasDevedoras(JornadaTrabalho jornada) { DiaJornada diaJornada = jornada.getDia(Data.DayOfWeek); return(diaJornada.calcularHorasTrabalhoEsperado()); }