public double HoursPerDay(string DayYear, string Year) { TimeSpan DayTot = new TimeSpan(); DaysWorked day = ManageData.getDay(DayYear, Year); if (day != null) { var idDay = day.IdDaysWorked; var f = ManageData.getClosedDayHours(idDay.ToString()); if (f != null) { //fetch della lista foreach (var interval in f) { var start = interval.CheckIn; var end = interval.CheckOut; DateTime startDT = Convert.ToDateTime(start); DateTime endDT = Convert.ToDateTime(end); TimeSpan hours = endDT - startDT; DayTot = DayTot + hours; } // se c'è una pausa, verifico la durata minima if (f.Count == 2) { //Timespan della pausa DateTime CO1 = DateTime.Parse(f[0].CheckOut); DateTime CI2 = DateTime.Parse(f[1].CheckIn); TimeSpan BR = CI2 - CO1; //Timespan minimo richiesto dai settings TimeSpan MinReq = getMinBreak(); if (BR < MinReq) { DayTot = DayTot - (MinReq - BR); } } } } double Tot = DayTot.TotalHours; if (Tot < 0) { return(0); } else { return(DayTot.TotalHours); } }
public async void DelRow(DaysWorked p1) { var result = await UserDialogs.Instance.ConfirmAsync(new ConfirmConfig { Message = Traduzioni.Setting_confirmMessage, OkText = Traduzioni.Setting_confirm_yes, CancelText = Traduzioni.Setting_confirm_no }); if (result) { DaysWorked day = ManageData.getDay(p1.YearDay, p1.Year); ManageData.delDayHours(day.IdDaysWorked); UserDialogs.Instance.ShowSuccess(Traduzioni.Settings_SaveSetOk); functions.changePage(new MainPage()); } }
public async void insertWorkedDay() { await Task.Delay(2000); var message = Common.functions.idiotMessage(); UserDialogs.Instance.ShowLoading(message, MaskType.Black); DateTime weekStartDT = DateTime.Now.AddDays(-(DayOfWeek - 1)); DateTime weekEndDT = DateTime.Now.AddDays((7 - DayOfWeek)); //var t = ManageData.getAllDays(); //ManageData.delDays(); //TODO: vedere come gestire gli anni bisestili. O con il bool leap o meglio facendo il ciclo su un elemento datetime invece che int! for (DateTime i = weekStartDT; i <= weekEndDT; i = i.AddDays(1)) { string h = i.ToString(); int wstart = i.DayOfYear; string ws = wstart.ToString(); string y = i.Year.ToString(); var d = ManageData.getDay(ws, y); if (d == null) { DaysWorked dati = new DaysWorked(); int wdint = (int)i.DayOfWeek; dati.Datetime = i.ToString(); dati.WeekDay = wdint.ToString(); dati.YearDay = i.DayOfYear.ToString(); dati.Year = i.Year.ToString(); var ins = ManageData.InsertDay(dati); } } UserDialogs.Instance.HideLoading(); }
public vmEntryPage(DaysWorked day) { var iu = ManageData.getAllHours(); var i = ManageData.getDay(day.YearDay, day.Year); var p = ManageData.getDayHours(i.IdDaysWorked.ToString()); SelectedDay = day; if (p != null) { switch (p.Count) { case 1: DateTime in1D = DateTime.Parse(p[0].CheckIn); In1 = in1D.TimeOfDay; DateTime out1D; if (!DateTime.TryParse(p[0].CheckOut, out out1D)) { Out1 = TimeSpan.Zero; } else { Out1 = out1D.TimeOfDay; } break; case 2: in1D = DateTime.Parse(p[0].CheckIn); In1 = in1D.TimeOfDay; if (!DateTime.TryParse(p[0].CheckOut, out out1D)) { Out1 = TimeSpan.Zero; } else { Out1 = out1D.TimeOfDay; } DateTime in2D = DateTime.Parse(p[1].CheckIn); In2 = in2D.TimeOfDay; DateTime out2D; if (!DateTime.TryParse(p[1].CheckOut, out out2D)) { out2D = DateTime.Now; } else { Out2 = out2D.TimeOfDay; } break; default: break; } } }
public EntryPage(DaysWorked day) { InitializeComponent(); this.BindingContext = new ViewModel.vmEntryPage(day); }
public void EditRow(DaysWorked p1) { DaysWorked day = ManageData.getDay(p1.YearDay, p1.Year); functions.pageAsync(new EntryPage(day)); }