Пример #1
0
        public ConsumoInfo GetConsumoAnual(DateTime dtAtual, Veiculo veiculo)
        {
            ConsumoInfo consumo = new ConsumoInfo();
            List <DGridAbastecimentoInfo> abastecimento;
            Combustivel combustivelVeiculo;

            //TODO: Refatorar esse switch
            using (var context = new Context())
            {
                combustivelVeiculo = combustivelDAL.Get(veiculo.Combustivel);

                //busca o abastecimento do veiculo conforme range de data
                abastecimento = context.Abastecimentos.Where(w => w.Data.Year.Equals(dtAtual.Year) &&
                                                             w.Veiculo.Placa.Equals(veiculo.Placa)).
                                Select(s => new DGridAbastecimentoInfo
                {
                    Data        = s.Data,
                    Combustivel = context.Combustiveis.Where(w2 => w2.Id.Equals(s.CombustivelId)).Select(s2 => s2.Tipo).FirstOrDefault(),
                    KM          = s.KM,
                    Quantidade  = s.Quantidade,
                    Valor       = s.Valor
                }).OrderBy(or => or.Data).ToList();
            }

            return(ExtratificaConsumo(veiculo, combustivelVeiculo, abastecimento));
        }
Пример #2
0
        public JsonResult GenerateConsumo(string consumo)
        {
            if (!String.IsNullOrEmpty(consumo))
            {
                ConsumoInfo consumoJson = JsonConvert.DeserializeObject <ConsumoInfo>(consumo);

                ConsumoWorker cWorker = new ConsumoWorker(Server.MapPath("~/"));

                if (consumoJson.autoGenerate)
                {
                    DealershipInfo dealership = cWorker.RandomDealership();
                    consumoJson.segment = dealership.segment;
                    consumoJson.code    = dealership.code;

                    consumoJson.value = cWorker.RandomValue(consumoJson.valueStart, consumoJson.valueEnd);

                    CodebarResult consumoResult = cWorker.GenerateConsumo(consumoJson.segment, consumoJson.code, consumoJson.value.ToString());

                    consumoJson.line          = consumoResult.Line;
                    consumoJson.lineFormatted = consumoResult.LineFormatted;
                    consumoJson.barcodeBase64 = consumoResult.BarcodeBase64;

                    return(Json(JsonConvert.SerializeObject(consumoJson)));
                }
                else
                {
                    consumoJson.value = consumoJson.value.Replace(".", ",");
                    Double v;
                    Double.TryParse(consumoJson.value, out v);
                    consumoJson.value = v.ToString("N");

                    CodebarResult consumoResult = cWorker.GenerateConsumo(consumoJson.segment, consumoJson.code, consumoJson.value.ToString());

                    consumoJson.line          = consumoResult.Line;
                    consumoJson.lineFormatted = consumoResult.LineFormatted;
                    consumoJson.barcodeBase64 = consumoResult.BarcodeBase64;

                    return(Json(JsonConvert.SerializeObject(consumoJson)));
                }
            }

            return(Json(new { consumo = consumo }));
        }
Пример #3
0
        private ConsumoInfo ExtratificaConsumo(Veiculo veiculo, Combustivel combustivel, List <DGridAbastecimentoInfo> abastecimento)
        {
            ConsumoInfo consumo = new ConsumoInfo();

            //TODO: Refatorar esse switch
            switch (combustivel.Tipo)
            {
            case "Gasolina":
                if (abastecimento.Count() >= 2)
                {
                    consumo.QuantidadeGasolina = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGasolina      = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Valor).Sum();
                    consumo.KM = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Last().KM - abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).First().KM;
                }
                break;

            case "Alcool":
                if (abastecimento.Count() >= 2)
                {
                    consumo.QuantidadeAlcool = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Quantidade).Sum();
                    consumo.ValorAlcool      = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Valor).Sum();
                    consumo.KM = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Last().KM - abastecimento.Where(w => w.Combustivel.Equals("Alcool")).First().KM;
                }
                break;

            case "Flex":
                if (abastecimento.Count() >= 2)
                {
                    //Gasolina
                    consumo.QuantidadeGasolina = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGasolina      = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Valor).Sum();
                    //Alcool
                    consumo.QuantidadeAlcool = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Quantidade).Sum();
                    consumo.ValorAlcool      = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Valor).Sum();
                    consumo.KM = abastecimento.Last().KM - abastecimento.First().KM;
                }
                break;

            case "GNV":
                if (abastecimento.Count() >= 2)
                {
                    consumo.QuantidadeGNV = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGNV      = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Valor).Sum();
                    consumo.KM            = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Last().KM - abastecimento.Where(w => w.Combustivel.Equals("GNV")).First().KM;
                }
                break;

            case "Gasolina/GNV":
                if (abastecimento.Count() >= 2)
                {
                    //Gasolina
                    consumo.QuantidadeGasolina = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGasolina      = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Valor).Sum();
                    //GNV
                    consumo.QuantidadeGNV = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGNV      = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Valor).Sum();
                    consumo.KM            = abastecimento.Last().KM - abastecimento.First().KM;
                }
                break;

            case "Flex/GNV":
                if (abastecimento.Count() >= 2)
                {
                    //Gasolina
                    consumo.QuantidadeGasolina = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGasolina      = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Valor).Sum();
                    //Alcool
                    consumo.QuantidadeAlcool = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Quantidade).Sum();
                    consumo.ValorAlcool      = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Valor).Sum();
                    //GNV
                    consumo.QuantidadeGNV = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGNV      = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Valor).Sum();
                    consumo.KM            = abastecimento.Last().KM - abastecimento.First().KM;
                }
                break;

            case "Diesel":
                if (abastecimento.Count() >= 2)
                {
                    consumo.QuantidadeDiesel = abastecimento.Where(w => w.Combustivel.Equals("Diesel")).Select(s => s.Quantidade).Sum();
                    consumo.ValorDiesel      = abastecimento.Where(w => w.Combustivel.Equals("Diesel")).Select(s => s.Valor).Sum();
                    consumo.KM = abastecimento.Where(w => w.Combustivel.Equals("Diesel")).Last().KM - abastecimento.Where(w => w.Combustivel.Equals("Diesel")).First().KM;
                }
                break;

            case "Tri-Combustivel":
                if (abastecimento.Count() >= 2)
                {
                    //Gasolina
                    consumo.QuantidadeGasolina = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGasolina      = abastecimento.Where(w => w.Combustivel.Equals("Gasolina")).Select(s => s.Valor).Sum();
                    //Alcool
                    consumo.QuantidadeAlcool = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Quantidade).Sum();
                    consumo.ValorAlcool      = abastecimento.Where(w => w.Combustivel.Equals("Alcool")).Select(s => s.Valor).Sum();
                    //GNV
                    consumo.QuantidadeGNV = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGNV      = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Valor).Sum();
                    consumo.KM            = abastecimento.Last().KM - abastecimento.First().KM;
                }
                break;

            case "Diesel/GNV":
                if (abastecimento.Count() >= 2)
                {
                    //Diesel
                    consumo.QuantidadeDiesel = abastecimento.Where(w => w.Combustivel.Equals("Diesel")).Select(s => s.Quantidade).Sum();
                    consumo.ValorDiesel      = abastecimento.Where(w => w.Combustivel.Equals("Diesel")).Select(s => s.Valor).Sum();
                    //GNV
                    consumo.QuantidadeGNV = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Quantidade).Sum();
                    consumo.ValorGNV      = abastecimento.Where(w => w.Combustivel.Equals("GNV")).Select(s => s.Valor).Sum();
                    consumo.KM            = abastecimento.Last().KM - abastecimento.First().KM;
                }
                break;

            default:
                break;
            }

            return(consumo);
        }