public List<Frete> getListFrete(parans_getListItensObra parans) { var lstFrete = new List<Frete>(); StringBuilder consultaSQL = new StringBuilder(); consultaSQL.AppendLine("select sum(i.toneladas) as Toneladas, round(avg(i.toneladas), 2) as MediaToneladasViagem, "); consultaSQL.AppendLine(" count(*) as Viagens, round((o.ValorPorToneladaFrete * sum(i.toneladas)), 2) As ValorBruto, CONCAT(CONCAT(m.nome, ' '), m.sobrenome) as Motorista "); consultaSQL.AppendLine("from itemaplicacao i "); consultaSQL.AppendLine(" inner join fasedaobra f on f.id = i.Fase_id "); consultaSQL.AppendLine(" inner join obra o on o.id = f.Obra_id "); consultaSQL.AppendLine(" inner join motorista m on i.Motorista_id = m.id "); consultaSQL.AppendLine("where "); if (parans.Fase_id != null) { consultaSQL.AppendLine(" i.Fase_id = @fase_id and "); } consultaSQL.AppendLine(" i.data between @periodoinicial and @periodofinal and f.Obra_id = @obra_id "); consultaSQL.AppendLine("group by i.Motorista_id "); consultaSQL.AppendLine("order by m.nome"); List<Frete> rowsFrete = db.Database.SqlQuery<Frete>(consultaSQL.ToString(), new MySqlParameter("@fase_id", parans.Fase_id), new MySqlParameter("@periodoinicial", parans.PeriodoInicial.ToString("yyyy-MM-dd HH:mm:ss")), new MySqlParameter("@periodofinal", parans.PeriodoFinal.ToString("yyyy-MM-dd HH:mm:ss")), new MySqlParameter("@obra_id", parans.Obra_id)) .ToList(); return rowsFrete; }
public List<AplicacaoMassa> getListAplicacao(parans_getListItensObra parans) { var lstAplicacao = new List<AplicacaoMassa>(); List<itemaplicacao> aplicacaoRows = null; aplicacaoRows = db.itemaplicacao.Where(ia => (parans.PeriodoFinal!=DateTime.MinValue?ia.data <= parans.PeriodoFinal:true) && (parans.PeriodoInicial!= DateTime.MinValue ? ia.data >= parans.PeriodoInicial:true) && (parans.Fase_id!=null?ia.Fase_id == parans.Fase_id:true) ).ToList(); foreach(var aplicacaoRow in aplicacaoRows) { var apl = new AplicacaoMassa(); apl.Comprimento = aplicacaoRow.comprimento; apl.data = aplicacaoRow.data; apl.Espessura = aplicacaoRow.espessura; apl.Estaca = aplicacaoRow.estaca; apl.Fase_id = aplicacaoRow.Fase_id; apl.HoraFim = aplicacaoRow.horaFim; apl.HoraInicio = aplicacaoRow.horaInicio; apl.id = aplicacaoRow.id; apl.Largura = aplicacaoRow.largura; apl.Motorista_id = aplicacaoRow.Motorista_id; apl.Nota = aplicacaoRow.nota; apl.Temperatura = aplicacaoRow.temperatura; apl.Toneladas = aplicacaoRow.toneladas; apl.usuarioId = aplicacaoRow.Apontador_CloudId; apl.Veiculo_id = aplicacaoRow.Veiculo_id; lstAplicacao.Add(apl); } return lstAplicacao; }
public List<Resumo> getResumo(parans_getListItensObra parans) { var lstResumo = new List<Resumo>(); StringBuilder consultaSQL = new StringBuilder(); consultaSQL.AppendLine("select COALESCE(round(sum(i.toneladas), 2), 0) as CargaAcumulada, COALESCE(round(avg(i.espessura), 2), 0) as EspessuraMedia, "); consultaSQL.AppendLine(" COALESCE(round(sum(i.comprimento * i.largura), 2), 0) As AreaTotal, "); consultaSQL.AppendLine(" count(*) as QuantidadeCaminhoes, COALESCE(avg(o.ValorPorToneladaFrete), 0) as ValorTonelada, "); consultaSQL.AppendLine(" COALESCE(round(sum(i.toneladas) * avg(o.ValorPorToneladaFrete), 2), 0) As ValorTotalBrutoFrete "); consultaSQL.AppendLine("from itemaplicacao i "); consultaSQL.AppendLine(" inner join fasedaobra f on f.id = i.Fase_id "); consultaSQL.AppendLine(" inner join obra o on o.id = f.Obra_id "); consultaSQL.AppendLine("where "); if(parans.Fase_id != null) { consultaSQL.AppendLine(" i.Fase_id = @fase_id and "); } consultaSQL.AppendLine(" i.data between @periodoinicial and @periodofinal and f.Obra_id = @obra_id "); List<Resumo> rowsResumo = db.Database.SqlQuery<Resumo>(consultaSQL.ToString(), new MySqlParameter("@fase_id", parans.Fase_id), new MySqlParameter("@periodoinicial", parans.PeriodoInicial.ToString("yyyy-MM-dd HH:mm:ss")), new MySqlParameter("@periodofinal", parans.PeriodoFinal.ToString("yyyy-MM-dd HH:mm:ss")), new MySqlParameter("@obra_id", parans.Obra_id)) .ToList(); return rowsResumo; }