Beispiel #1
0
        public double ApurarMetasPorMes(int ano, int mes, Funcionario funcionario, Projeto projeto, Indicador indicador)
        {
            OrdemServico ordemFiltro = new OrdemServico();
            ordemFiltro.DataDe = "01/" + mes + "/" + ano;
            ordemFiltro.DataAte = new DateTime(ano, mes, DateTime.DaysInMonth(ano, mes)).ToString("dd/MM/yyy");
            ordemFiltro.Projeto = projeto;
            ordemFiltro.Funcionario = funcionario;
            ordemFiltro.Cliente = new Cliente();

            OrdemServicoBUS umaOrdemServicoBUS = new OrdemServicoBUS(this._conexao, this._empresa, this._filial);
            List<OrdemServico> listaOrdens = umaOrdemServicoBUS.Pesquisar(ordemFiltro);

            double total = 0;

            switch (indicador.Codigo)
            {
                case 1: //HORA
                    foreach (var os in listaOrdens)
                    {
                        double horas = 0;

                        if ((os.Inicio == "00:00") && (os.Fim == "00:00"))
                        {
                            OrdemServicoRemoto osr = new OrdemServicoRemotoBUS(this._conexao, this._empresa, this._filial).Consultar(os.Codigo);
                            DateTime horasAcimaDeCem = new DateTime();
                            horasAcimaDeCem = horasAcimaDeCem.AddHours(Convert.ToInt32(osr.Total.Split(':')[0]));
                            horasAcimaDeCem = horasAcimaDeCem.AddMinutes(Convert.ToInt32(osr.Total.Split(':')[1]));
                            TimeSpan ticks = new TimeSpan(horasAcimaDeCem.Ticks);
                            total += ticks.TotalHours;
                        }
                        else
                        {
                            horas = TimeSpan.Parse(os.Total).TotalHours;
                        }
                        total += horas;
                    }
                    break;
                case 2: //PROSPECÇÕES                              
                    total = listaOrdens.Count;
                    break;
            }

            return total;
        }