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)); }
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 })); }
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); }