Example #1
0
        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);
        }