public List <GalvanicaConsuntivoModel> EstraiConsutivoUltimoPeriodo(int NumeroGiorni) { List <GalvanicaConsuntivoModel> consuntivo = new List <GalvanicaConsuntivoModel>(); GalvanicaDS ds = new GalvanicaDS(); using (GalvanicaBusiness bGalvanica = new GalvanicaBusiness()) { bGalvanica.FillRW_GALV_CONSUNTIVO(ds); bGalvanica.FillRW_GALV_FERMI(ds); } DateTime fine = DateTime.Now; DateTime inizio = fine.AddDays(NumeroGiorni * -1); foreach (GalvanicaDS.RW_GALV_CONSUNTIVORow m in ds.RW_GALV_CONSUNTIVO.Where(X => X.INIZIO_TURNO >= inizio && X.INIZIO_TURNO <= fine).OrderByDescending(X => X.INIZIO_TURNO)) { GalvanicaConsuntivoModel model = CreaGalvanicaConsuntivo(m, ds); consuntivo.Add(model); } return(consuntivo); }
public GalvanicaReportModel EstraiConsutivo(DateTime dataInizio, DateTime dataFine) { List <GalvanicaConsuntivoModel> consuntivo = new List <GalvanicaConsuntivoModel>(); GalvanicaDS ds = new GalvanicaDS(); using (GalvanicaBusiness bGalvanica = new GalvanicaBusiness()) { bGalvanica.FillRW_GALV_CONSUNTIVO(ds); bGalvanica.FillRW_GALV_FERMI(ds); } List <GalvanicaDS.RW_GALV_CONSUNTIVORow> elementiTrovati = ds.RW_GALV_CONSUNTIVO.Where(X => X.INIZIO_TURNO >= dataInizio && X.INIZIO_TURNO < dataFine).ToList(); int barreTotali = 0; TimeSpan durataTotale = new TimeSpan(); TimeSpan fermoTotale = new TimeSpan(); foreach (GalvanicaDS.RW_GALV_CONSUNTIVORow m in elementiTrovati) { GalvanicaConsuntivoModel model = CreaGalvanicaConsuntivo(m, ds); consuntivo.Add(model); barreTotali += model.Barre; durataTotale = durataTotale.Add(model.Durata); fermoTotale = fermoTotale.Add(model.FermoTotale); } GalvanicaReportModel report = new GalvanicaReportModel(); report.Consuntivo = consuntivo; report.BarreTotali = barreTotali; report.FermoTotale = fermoTotale; report.TempoTotale = durataTotale; report.DurataEffettiva = report.TempoTotale.Subtract(report.FermoTotale); report.BarreHH = report.DurataEffettiva.TotalHours == 0 ? 0 : Math.Round((decimal)(report.BarreTotali / report.DurataEffettiva.TotalHours), 1); report.MinBarre = report.BarreTotali == 0 ? 0 : Math.Round((decimal)(report.DurataEffettiva.TotalMinutes / report.BarreTotali), 1); return(report); }