Пример #1
0
 public CalculadorDePrecos()
 {
     estDAO           = new EstacionamentoDAOImpl();
     clock            = new GeradorDeDataTM();
     cfg              = new CfgDAOImpl();
     intcfg           = new InteracaoEstacionamentoComCFG();
     horaEncerramento = cfg.GetConfiguracao().horaEncerrameto.Hour;
     horaAbertura     = cfg.GetConfiguracao().horaAbertura.Hour;
 }
Пример #2
0
        //ARRUMARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
        //public double calculaPreco(string cod)
        //{
        //    var ticketObj = estDAO.GetEstacionamentoByID(cod);
        //    if (ticketObj.CodEspecial != null)
        //    {

        //        return cfg.GetConfiguracao().valorFixoExtravio;
        //    }

        //    if (checaCortesia(cod) == true)
        //    {
        //        return 0;
        //    }

        //    double precoPagar = 0.0;
        //    var ticket = estDAO.GetEstacionamentoByID(cod).dt_hr_entrada;
        //    var preco3Horas = cfg.GetConfiguracao().valorFixo3Horas;
        //    var precoPernoite = cfg.GetConfiguracao().valorFixoPernoite;
        //    var precoFixoAcima3Horas = cfg.GetConfiguracao().valorFixoAcima3Horas;


        //    if (checaPernoite(cod) == false)
        //    {
        //        var minutos = clock.diferencaMinutos(DateTime.Now, ticket);

        //        if (minutos <= 180)//menor ou igual 3 horas
        //        {
        //            precoPagar = preco3Horas;
        //            return precoPagar;
        //        }
        //        precoPagar = precoFixoAcima3Horas;
        //        return precoPagar;
        //    }

        //    if(checaPernoite(cod) == true)
        //    {
        //        int dias = clock.diferencaDias(DateTime.Now, ticket);
        //        if(dias > 1)
        //        {
        //            precoPagar = precoPernoite * dias;
        //            return precoPagar;
        //        }
        //        precoPagar = precoPernoite;
        //        return precoPagar;

        //    }
        //        return -1;
        //}
        #endregion

        #region Métodos para calcular preço

        public double calculaPrecoDeTicketExtraviado(string cod)
        {
            double precoPagar        = 0;
            var    ticketObj         = estDAO.GetEstacionamentoByID(cod);
            var    precoFixoExtravio = cfg.GetConfiguracao().valorFixoExtravio;
            var    ticket            = ticketObj.dt_hr_entrada;

            if (checaPernoite(cod) == false)
            {
                return(precoFixoExtravio);
            }
            else
            {
                var precoPernoite = cfg.GetConfiguracao().valorFixoPernoite;
                int dias          = clock.diferencaDias(DateTime.Now, ticket);
                if (dias > 1)
                {
                    precoPagar = precoFixoExtravio + precoPernoite * dias;
                    return(precoPagar);
                }
                precoPagar = precoPernoite + precoFixoExtravio;
                return(precoPagar);
            }
        }
        public int getVagasDisponiveis()
        {
            int nVagasLimite = cfgDAO.GetConfiguracao().qtd_vagas;

            var vagas         = estDAO.getEstacionamentos();
            int vagasOcupadas = 0;

            foreach (Estacionamento vaga in vagas)
            {
                if (vaga.dt_hr_saida == null & vaga.CodEspecial == null)
                {
                    vagasOcupadas++;
                }
            }
            //pega o numero de tickets extraviados q sairam e adiciona no valor total de vagas, pois
            //existem tickets "fantasmas", que ficaram para tras e nunca vão sair, pois o "dono"
            //pegou um extraviado e saiu com ele.
            var vagasDisponiveis = nVagasLimite - vagasOcupadas + getExtraviadosQueSairam();

            return(vagasDisponiveis);
        }