///<summary></summary> public static long Insert(TimeAdjust timeAdjust) { if(RemotingClient.RemotingRole==RemotingRole.ClientWeb) { timeAdjust.TimeAdjustNum=Meth.GetLong(MethodBase.GetCurrentMethod(),timeAdjust); return timeAdjust.TimeAdjustNum; } return Crud.TimeAdjustCrud.Insert(timeAdjust); }
///<summary></summary> public static void Update(TimeAdjust timeAdjust) { if(RemotingClient.RemotingRole==RemotingRole.ClientWeb) { Meth.GetVoid(MethodBase.GetCurrentMethod(),timeAdjust); return; } Crud.TimeAdjustCrud.Update(timeAdjust); }
///<summary></summary> public FormTimeAdjustEdit(TimeAdjust timeAdjustCur){ // // Required for Windows Form Designer support // InitializeComponent(); Lan.F(this); TimeAdjustCur=timeAdjustCur.Copy(); }
///<summary></summary> public static void Update(TimeAdjust timeAdjust) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { Meth.GetVoid(MethodBase.GetCurrentMethod(), timeAdjust); return; } Crud.TimeAdjustCrud.Update(timeAdjust); }
///<summary></summary> public static long Insert(TimeAdjust timeAdjust) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { timeAdjust.TimeAdjustNum = Meth.GetLong(MethodBase.GetCurrentMethod(), timeAdjust); return(timeAdjust.TimeAdjustNum); } return(Crud.TimeAdjustCrud.Insert(timeAdjust)); }
///<summary></summary> public static void Delete(TimeAdjust adj) { if(RemotingClient.RemotingRole==RemotingRole.ClientWeb) { Meth.GetVoid(MethodBase.GetCurrentMethod(),adj); return; } string command= "DELETE FROM timeadjust WHERE TimeAdjustNum = "+POut.Long(adj.TimeAdjustNum); Db.NonQ(command); }
///<summary></summary> public static void Delete(TimeAdjust adj) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { Meth.GetVoid(MethodBase.GetCurrentMethod(), adj); return; } string command = "DELETE FROM timeadjust WHERE TimeAdjustNum = " + POut.Long(adj.TimeAdjustNum); Db.NonQ(command); }
///<summary></summary> public TimeAdjust Copy() { TimeAdjust t = new TimeAdjust(); t.TimeAdjustNum = TimeAdjustNum; t.EmployeeNum = EmployeeNum; t.TimeEntry = TimeEntry; t.RegHours = RegHours; t.OTimeHours = OTimeHours; t.Note = Note; return(t); }
private void butCompute_Click(object sender,EventArgs e) { if(!Security.IsAuthorized(Permissions.TimecardsEditAll)) { return; } //first, delete all existing overtime entries for(int i=0;i<TimeAdjustList.Count;i++) { if(TimeAdjustList[i].OTimeHours==TimeSpan.Zero) { continue; } if(!TimeAdjustList[i].IsAuto) { continue; } TimeAdjusts.Delete(TimeAdjustList[i]); } //then, fill grid FillMain(true); Calendar cal=CultureInfo.CurrentCulture.Calendar; CalendarWeekRule rule=CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule; //loop through all rows for(int i=0;i<mergedAL.Count;i++){ //ignore rows that aren't weekly totals if(i<mergedAL.Count-1//if not the last row //if the next row has the same week as this row && cal.GetWeekOfYear(GetDateForRow(i+1),rule,(DayOfWeek)PrefC.GetInt(PrefName.TimeCardOvertimeFirstDayOfWeek))//Default is 0-Sunday == cal.GetWeekOfYear(GetDateForRow(i),rule,(DayOfWeek)PrefC.GetInt(PrefName.TimeCardOvertimeFirstDayOfWeek))) { continue; } if(WeeklyTotals[i]<=TimeSpan.FromHours(40)){ continue; } //found a weekly total over 40 hours TimeAdjust adjust=new TimeAdjust(); adjust.IsAuto=true; adjust.EmployeeNum=EmployeeCur.EmployeeNum; adjust.TimeEntry=GetDateForRow(i).AddHours(20);//puts it at 8pm on the same day. adjust.OTimeHours=WeeklyTotals[i]-TimeSpan.FromHours(40); adjust.RegHours=-adjust.OTimeHours; TimeAdjusts.Insert(adjust); } FillMain(true); }
private void butAdj_Click(object sender,EventArgs e) { if(!Security.IsAuthorized(Permissions.TimecardsEditAll)) { return; } TimeAdjust adjust=new TimeAdjust(); adjust.EmployeeNum=EmployeeCur.EmployeeNum; DateTime dateStop=PIn.Date(textDateStop.Text); if(DateTime.Today<=dateStop && DateTime.Today>=PIn.Date(textDateStart.Text)) { adjust.TimeEntry=DateTime.Now; } else { adjust.TimeEntry=new DateTime(dateStop.Year,dateStop.Month,dateStop.Day, DateTime.Now.Hour,DateTime.Now.Minute,DateTime.Now.Second); } FormTimeAdjustEdit FormT=new FormTimeAdjustEdit(adjust); FormT.IsNew=true; FormT.ShowDialog(); if(FormT.DialogResult==DialogResult.Cancel) { return; } FillMain(true); }
///<summary>Calculates weekly overtime and inserts TimeAdjustments accordingly.</summary> public static void CalculateWeeklyOvertime(Employee EmployeeCur,DateTime StartDate,DateTime StopDate) { List<ClockEvent> listClockEvent=new List<ClockEvent>(); List<TimeAdjust> listTimeAdjust=new List<TimeAdjust>(); string errors=""; string clockErrors=""; string timeAdjustErrors=""; //Fill lists and catch validation error messages------------------------------------------------------------------------------------------------------------ try{listClockEvent=ClockEvents.GetValidList(EmployeeCur.EmployeeNum,StartDate,StopDate,false) ;}catch(Exception ex) {clockErrors+=ex.Message;} try{listTimeAdjust=TimeAdjusts.GetValidList(EmployeeCur.EmployeeNum,StartDate,StopDate) ;}catch(Exception ex) {timeAdjustErrors+=ex.Message;} //Report Errors--------------------------------------------------------------------------------------------------------------------------------------------- errors=clockErrors+timeAdjustErrors; if(errors!="") { throw new Exception(Employees.GetNameFL(EmployeeCur)+" has the following errors:\r\n"+errors); } //first, delete all existing non manual overtime entries for(int i=0;i<listTimeAdjust.Count;i++) { if(listTimeAdjust[i].IsAuto) { TimeAdjusts.Delete(listTimeAdjust[i]); } } //refresh list after it has been cleaned up. listTimeAdjust=TimeAdjusts.Refresh(EmployeeCur.EmployeeNum,StartDate,StopDate); ArrayList mergedAL = new ArrayList(); foreach(ClockEvent clockEvent in listClockEvent) { mergedAL.Add(clockEvent); } foreach(TimeAdjust timeAdjust in listTimeAdjust) { mergedAL.Add(timeAdjust); } //then, fill grid Calendar cal=CultureInfo.CurrentCulture.Calendar; CalendarWeekRule rule=CalendarWeekRule.FirstFullWeek;//CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule; //rule=CalendarWeekRule.FirstFullWeek;//CalendarWeekRule is an Enum. For these calculations, we want to use FirstFullWeek, not FirstDay; List<TimeSpan> WeeklyTotals = new List<TimeSpan>(); WeeklyTotals = FillWeeklyTotalsHelper(true,EmployeeCur,mergedAL); //loop through all rows for(int i=0;i<mergedAL.Count;i++) { //ignore rows that aren't weekly totals if(i<mergedAL.Count-1//if not the last row //if the next row has the same week as this row && cal.GetWeekOfYear(GetDateForRowHelper(mergedAL[i+1]),rule,(DayOfWeek)PrefC.GetInt(PrefName.TimeCardOvertimeFirstDayOfWeek))//Default is 0-Sunday == cal.GetWeekOfYear(GetDateForRowHelper(mergedAL[i]),rule,(DayOfWeek)PrefC.GetInt(PrefName.TimeCardOvertimeFirstDayOfWeek))) { continue; } if(WeeklyTotals[i]<=TimeSpan.FromHours(40)) { continue; } //found a weekly total over 40 hours TimeAdjust adjust=new TimeAdjust(); adjust.IsAuto=true; adjust.EmployeeNum=EmployeeCur.EmployeeNum; adjust.TimeEntry=GetDateForRowHelper(mergedAL[i]).AddHours(20);//puts it at 8pm on the same day. adjust.OTimeHours=WeeklyTotals[i]-TimeSpan.FromHours(40); adjust.RegHours=-adjust.OTimeHours; TimeAdjusts.Insert(adjust); } }
///<summary>Calculates weekly overtime and inserts TimeAdjustments accordingly.</summary> public static void CalculateWeeklyOvertime_Old(Employee EmployeeCur,DateTime StartDate,DateTime StopDate) { List<TimeAdjust> TimeAdjustList=TimeAdjusts.Refresh(EmployeeCur.EmployeeNum,StartDate,StopDate); List<ClockEvent> ClockEventList=ClockEvents.Refresh(EmployeeCur.EmployeeNum,StartDate,StopDate,false); //first, delete all existing overtime entries for(int i=0;i<TimeAdjustList.Count;i++) { if(TimeAdjustList[i].OTimeHours==TimeSpan.Zero) { continue; } if(!TimeAdjustList[i].IsAuto) { continue; } TimeAdjusts.Delete(TimeAdjustList[i]); } //refresh list after it has been cleaned up. TimeAdjustList=TimeAdjusts.Refresh(EmployeeCur.EmployeeNum,StartDate,StopDate); ArrayList mergedAL = new ArrayList(); foreach(ClockEvent clockEvent in ClockEventList) { mergedAL.Add(clockEvent); } foreach(TimeAdjust timeAdjust in TimeAdjustList) { mergedAL.Add(timeAdjust); } //then, fill grid Calendar cal=CultureInfo.CurrentCulture.Calendar; CalendarWeekRule rule=CalendarWeekRule.FirstFullWeek;//CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule; //rule=CalendarWeekRule.FirstFullWeek;//CalendarWeekRule is an Enum. For these calculations, we want to use FirstFullWeek, not FirstDay; List<TimeSpan> WeeklyTotals = new List<TimeSpan>(); WeeklyTotals = FillWeeklyTotalsHelper(true,EmployeeCur,mergedAL); //loop through all rows for(int i=0;i<mergedAL.Count;i++) { //ignore rows that aren't weekly totals if(i<mergedAL.Count-1//if not the last row //if the next row has the same week as this row && cal.GetWeekOfYear(GetDateForRowHelper(mergedAL[i+1]),rule,(DayOfWeek)PrefC.GetInt(PrefName.TimeCardOvertimeFirstDayOfWeek))//Default is 0-Sunday == cal.GetWeekOfYear(GetDateForRowHelper(mergedAL[i]),rule,(DayOfWeek)PrefC.GetInt(PrefName.TimeCardOvertimeFirstDayOfWeek))) { continue; } if(WeeklyTotals[i]<=TimeSpan.FromHours(40)) { continue; } //found a weekly total over 40 hours TimeAdjust adjust=new TimeAdjust(); adjust.IsAuto=true; adjust.EmployeeNum=EmployeeCur.EmployeeNum; adjust.TimeEntry=GetDateForRowHelper(mergedAL[i]).AddHours(20);//puts it at 8pm on the same day. adjust.OTimeHours=WeeklyTotals[i]-TimeSpan.FromHours(40); adjust.RegHours=-adjust.OTimeHours; TimeAdjusts.Insert(adjust); } }