private string GetWorkingCalendarName(int workingCalendarID) { if (workingCalendarID <= 0) { return(""); } if (_htbWorkingCalendar.Contains(workingCalendarID)) { return(_htbWorkingCalendar[workingCalendarID].ToString()); } else { WorkingCalendar workingCalendar = _dtCtrl.GetWorkingCalendar(workingCalendarID); if (workingCalendar != null) { _htbWorkingCalendar.Add(workingCalendarID, workingCalendar.Name); return(workingCalendar.Name); } else { throw new NullReferenceException(); } } }
private String GetWorkOnStr(WorkingCalendar workingCalendar) { string workOnStr = ""; if (workingCalendar.WorkOnMonday) { workOnStr += "Mon"; } if (workingCalendar.WorkOnTuesday) { workOnStr += "Tue"; } if (workingCalendar.WorkOnWednesday) { workOnStr += "Wed"; } if (workingCalendar.WorkOnThursday) { workOnStr += "Thu"; } if (workingCalendar.WorkOnFriday) { workOnStr += "Fri"; } if (workingCalendar.WorkOnSaturday) { workOnStr += "Sat"; } if (workingCalendar.WorkOnSunday) { workOnStr += "Sun"; } return(workOnStr); }
protected void addCalendar(object sender, DirectEventArgs e) { if (string.IsNullOrEmpty(caId.Text)) { return; } WorkingCalendar dept = new WorkingCalendar(); dept.name = caId.Text; PostRequest <WorkingCalendar> depReq = new PostRequest <WorkingCalendar>(); depReq.entity = dept; PostResponse <WorkingCalendar> response = _timeAttendanceService.ChildAddOrUpdate <WorkingCalendar>(depReq); if (response.Success) { dept.recordId = response.recordId; FillCalendars(); caId.Select(dept.recordId); } else { X.MessageBox.ButtonText.Ok = Resources.Common.Ok; Common.errorMessage(response); return; } }
public void AddWorkingDays_Add1Day_NextDayIsWorkday() { var today = new DateTime(2018, 01, 01); var workingCalendar = new WorkingCalendar(new Dictionary <DateTime, DayType>()); var nextWorkingDay = workingCalendar.AddWorkingDays(today, 1); Assert.AreEqual(new DateTime(2018, 01, 02), nextWorkingDay); }
public void AddWorkingDays_Subtract1Day_PreviousDayIsWorkday() { var today = new DateTime(2018, 01, 03); var workingCalendar = new WorkingCalendar(new Dictionary <DateTime, DayType>()); var previousWorkingDay = workingCalendar.AddWorkingDays(today, -1); Assert.AreEqual(new DateTime(2018, 01, 02), previousWorkingDay); }
public void CountWorkingDaysInPeriod_FromFriday(int endDay, int expected) { var calendar = new WorkingCalendar(new RussianWorkingDaysExceptionsProvider()); var startDateTime = new DateTime(2020, 12, 18); var endDateTime = new DateTime(2020, 12, endDay); var workingDays = calendar.CountWorkingDaysInPeriod(startDateTime, endDateTime); Assert.AreEqual(expected, workingDays); }
public void CountWorkingDaysInPeriod_ForRussia_IncludingTwoYears() { var calendar = new WorkingCalendar(new RussianWorkingDaysExceptionsProvider()); var startDateTime = new DateTime(2018, 12, 28); var endDateTime = new DateTime(2019, 01, 10); var workingDays = calendar.CountWorkingDaysInPeriod(startDateTime, endDateTime); Assert.AreEqual(3, workingDays); }
public void DeleteRecord(string index) { try { WorkingCalendar c = new WorkingCalendar(); c.name = ""; c.recordId = index; PostRequest <WorkingCalendar> req = new PostRequest <WorkingCalendar>(); req.entity = c; PostResponse <WorkingCalendar> response = _branchService.ChildDelete <WorkingCalendar>(req); if (!response.Success) { X.MessageBox.ButtonText.Ok = Resources.Common.Ok; Common.errorMessage(response); return; } else { //Step 1 Code to delete the object from the database if (_systemService.SessionHelper.GetCalendarId().ToString() == index) { List <KeyValuePair <string, string> > submittedValues = new List <KeyValuePair <string, string> >(); submittedValues.Add(new KeyValuePair <string, string>("caId", index)); KeyValuePair <string, string>[] valArr = submittedValues.ToArray(); PostRequest <KeyValuePair <string, string>[]> reqDef = new PostRequest <KeyValuePair <string, string>[]>(); reqDef.entity = valArr; PostResponse <KeyValuePair <string, string>[]> resp = _systemService.ChildAddOrUpdate <KeyValuePair <string, string>[]>(reqDef); if (!resp.Success) { X.MessageBox.ButtonText.Ok = Resources.Common.Ok; Common.errorMessage(resp); return; } } //Step 2 : remove the object from the store Store1.Remove(index); //Step 3 : Showing a notification for the user Notification.Show(new NotificationConfig { Title = Resources.Common.Notification, Icon = Icon.Information, Html = Resources.Common.RecordDeletedSucc }); } } catch (Exception ex) { //In case of error, showing a message box to the user X.MessageBox.ButtonText.Ok = Resources.Common.Ok; X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorDeletingRecord).Show(); } }
private void BindWorkCalendar() { List <WorkingCalendar> workingCalendarList = _dtCtrl.GetWorkingCalendarList(); WorkingCalendar workingCalendar = new WorkingCalendar(); workingCalendar.ID = -1; workingCalendar.Name = "All Working Calendar"; workingCalendarList.Insert(0, workingCalendar); cbxWorkingCalendar.DataSource = workingCalendarList; }
private void AddPayPeriod() { payPeriod.CustomPeriod = 5; payPeriod.PayPeriodTypeID = 5; //custom payPeriod.StartFrom = DateTime.Today; payPeriod.ID = _dtCtrl.AddPayPeriod(payPeriod); wCal = _dtCtrl.GetWorkingCalendarList()[0]; originalPayPeriodID = wCal.PayPeriodID; wCal.PayPeriodID = payPeriod.ID; _dtCtrl.UpdateWorkingCalendar(wCal); }
private void LoadData() { int companyID = (int)cbxCompany.SelectedValue; int departmentID = -1; if (cbxDepartment.Enabled) { departmentID = (int)cbxDepartment.SelectedValue; } int workingCalendarID = (int)cbxWorkingCalendar.SelectedValue; List <Employee> employeeList = _dtCtrl.GetEmployeeList(companyID, departmentID); List <WorkingCalendar> workingCalendarList = _dtCtrl.GetWorkingCalendarList(); DataTable dt = new DataTable(); dt.Columns.Add("EmployeeNumber"); dt.Columns.Add("EmployeeName"); dt.Columns.Add("WorkingCalendar"); foreach (Employee employee in employeeList) { if (workingCalendarID != -1 && employee.WorkingCalendarID != workingCalendarID) { continue; } DataRow dr = dt.NewRow(); dr["EmployeeNumber"] = employee.EmployeeNumber; dr["EmployeeName"] = string.Format("{0}, {1}", employee.LastName, employee.FirstName); WorkingCalendar workingCalendar = workingCalendarList.Find(delegate(WorkingCalendar wCal) { return(wCal.ID == employee.WorkingCalendarID); }); if (workingCalendar != null) { dr["WorkingCalendar"] = workingCalendar.Name; } dt.Rows.Add(dr); } dgvEmployee.AutoGenerateColumns = false; dgvEmployee.DataSource = dt; dgvEmployee.ClearSelection(); }
/// <summary> /// Executes the specified param. /// </summary> /// <param name="param">The param.</param> /// <returns></returns> public override object Execute(Interval param) { AbstractContourBucket bucket = base.CountourGenerator.CurrentBucket; Interval interval = param; if (bucket != null) { double bucketDuration = WorkingCalendar.SubstractDates(interval.End, interval.Start, false); double workValue = bucket.GetEffectiveUnits(base.AssignmentUnits) * bucketDuration; _regularValue += workValue; _overTimeValue += _overTimeUnits * bucketDuration; this.Value = _regularValue + _overTimeValue; #if DEBUG DebugInterval(interval, (long)bucketDuration, (long)workValue); #endif } return(this); }
public void DeleteRecord(string index) { try { WorkingCalendar c = new WorkingCalendar(); c.name = ""; c.recordId = index; PostRequest <WorkingCalendar> req = new PostRequest <WorkingCalendar>(); req.entity = c; PostResponse <WorkingCalendar> response = _branchService.ChildDelete <WorkingCalendar>(req); if (!response.Success) { X.MessageBox.ButtonText.Ok = Resources.Common.Ok; X.Msg.Alert(Resources.Common.Error, response.Summary).Show(); return; } else { //Step 1 Code to delete the object from the database //Step 2 : remove the object from the store Store1.Remove(index); //Step 3 : Showing a notification for the user Notification.Show(new NotificationConfig { Title = Resources.Common.Notification, Icon = Icon.Information, Html = Resources.Common.RecordDeletedSucc }); } } catch (Exception ex) { //In case of error, showing a message box to the user X.MessageBox.ButtonText.Ok = Resources.Common.Ok; X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorDeletingRecord).Show(); } }
/// <summary> /// Executes the specified param. /// </summary> /// <param name="param">The param.</param> /// <returns></returns> public override object Execute(Interval param) { Interval interval = param; //Execute aggregated functor _assignmentFunctor.Execute(param); double sum = _assignmentFunctor.Value; if (this.Value == 0 && sum >= _workValue) { if (_workValue == 0.0 || interval.Start == interval.End) { // take care of degenerate case this.Value = param.Start; } double workIntervalDuration = sum - _prevSum; double fractionOfDuration = (workIntervalDuration - (sum - _workValue)) / workIntervalDuration; long duration = WorkingCalendar.SubstractDates(interval.End, interval.Start, false); this.Value = WorkingCalendar.AddDuration(interval.Start, (long)(duration * fractionOfDuration), true); } _prevSum = sum; return(this); }
public DateTime ThirdWorkingDay(Shedule shed, DateTime beg, WorkingCalendar cal) { int i; switch (shed.SpecificDayType) { case RecurrenceSpecificDayType.anyDay: if (shed.SpecificDayNumber < RecurrenceSpecificDayNumber.nextToLast) beg = beg.AddDays((double)shed.SpecificDayNumber); else { beg = new DateTime(beg.Year, beg.Month, 1).AddMonths(1) .AddDays(-1); if (shed.SpecificDayNumber == RecurrenceSpecificDayNumber.nextToLast) beg = beg.AddDays(-1); } break; case RecurrenceSpecificDayType.weekDay: if (shed.SpecificDayNumber < RecurrenceSpecificDayNumber.nextToLast) { var shift = (int)shed.SpecificDayNumber; for (i = 0; i <= shift; i++) if (!cal.IsWorkingDay(beg.AddDays(i))) shift++; beg = beg.AddDays(shift); } else { beg = new DateTime(beg.Year, beg.Month, 1).AddMonths(1); int shift = shed.SpecificDayNumber == RecurrenceSpecificDayNumber.last ? -1 : -2; for (i = -1; i >= shift; i--) if (!cal.IsWorkingDay(beg.AddDays(i))) shift--; beg = beg.AddDays(shift); } break; case RecurrenceSpecificDayType.weekendDay: if (shed.SpecificDayNumber < RecurrenceSpecificDayNumber.nextToLast) { var shift = (int)shed.SpecificDayNumber; for (i = 0; i <= shift; i++) { if (cal.IsWorkingDay(beg.AddDays(i))) shift++; } beg = beg.AddDays(shift); } else { beg = new DateTime(beg.Year, beg.Month, 1).AddMonths(1); int shift = shed.SpecificDayNumber == RecurrenceSpecificDayNumber.last ? -1 : -2; for (i = -1; i >= shift; i--) if (cal.IsWorkingDay(beg.AddDays(i))) shift--; beg = beg.AddDays(shift); } break; default: if (shed.SpecificDayNumber < RecurrenceSpecificDayNumber.nextToLast) { beg = beg.AddDays(shed.SpecificDayType - RecurrenceSpecificDayType.monday - ((int)beg.DayOfWeek + 6) % 7); beg = beg.AddDays(7 * (double)shed.SpecificDayNumber); } else { beg = new DateTime(beg.Year, beg.Month, 1).AddMonths(1); beg = beg.AddDays(shed.SpecificDayType - RecurrenceSpecificDayType.monday - ((int)beg.DayOfWeek + 6) % 7 - 7); if (shed.SpecificDayNumber == RecurrenceSpecificDayNumber.nextToLast) beg = beg.AddDays(-7); } break; } return beg; }
private void BindWorkingCalendar(int workingCalendarID) { _workingCalendar = _dtCtrl.GetWorkingCalendar(workingCalendarID); if (_workingCalendar == null) { MessageBox.Show("Working Calendar not found or has been deleted."); this.Close(); } //set shift List <Shift> shiftList = _dtCtrl.GetShiftListByWorkingCalendar(workingCalendarID); if (shiftList.Count == 0) { MessageBox.Show("Invalid Working Calendar."); this.Close(); } else { lblNumberOfShift.Text = shiftList.Count.ToString(); } lblWorkFrom.Text = GetTimeString(shiftList[0].From); lblWorkTo.Text = GetTimeString(shiftList[shiftList.Count - 1].To); //set payment rate PaymentRate workDayPaymentRate = _dtCtrl.GetWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); if (workDayPaymentRate == null) { //TODO } else { ucWorkingDayPaymentRate.SetPaymentRate(workDayPaymentRate); } if (_workingCalendar.ApplyFlexiHours == false) { PaymentRate nonWorkDayPaymentRate = _dtCtrl.GetNonWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); if (nonWorkDayPaymentRate == null) { //TODO } else { ucNonWorkingDayPaymentRate.SetPaymentRate(nonWorkDayPaymentRate); } PaymentRate holidayRate = _dtCtrl.GetHolidayPaymentRateByWorkingCalendar(workingCalendarID); if (holidayRate == null) { //TODO } else { ucHolidayPaymentRate.SetPaymentRate(holidayRate); } } else { tabControl1.TabPages.Remove(tpgNonWorkingDayPaymentRate); tabControl1.TabPages.Remove(tpgHolidayPaymentRate); tpgWorkingDayPaymentRate.Text = "Flexi Hours Payment Rate"; } //set break List <Break> breakList = _dtCtrl.GetBreakListByWorkingCalendar(workingCalendarID); if (breakList.Count >= 1) { lblBreak1.Text = GetTimeString(breakList[0].From) + " - " + GetTimeString(breakList[0].To); } else { lblBreak1.Text = ""; } if (breakList.Count >= 2) { lblBreak2.Text = GetTimeString(breakList[1].From) + " - " + GetTimeString(breakList[0].To); } else { lblBreak2.Text = ""; } if (breakList.Count >= 3) { lblBreak3.Text = GetTimeString(breakList[2].From) + " - " + GetTimeString(breakList[0].To); } else { lblBreak3.Text = ""; } //set pay period PayPeriod payPeriod = _dtCtrl.GetPayPeriod(_workingCalendar.PayPeriodID); if (payPeriod == null) { //TODO } else { PayPeriodType payPeriodType = _dtCtrl.GetPayPeriodType(payPeriod.PayPeriodTypeID); if (payPeriodType == null) { //TODO } else if (payPeriodType.ID == 5) //custom { lblPayPeriod.Text = "Every " + payPeriod.CustomPeriod + " day(s)"; } else { lblPayPeriod.Text = payPeriodType.Name; } lblPayPeriodStartFrom.Text = payPeriod.StartFrom.ToShortDateString(); //set calendar _holidayList = _dtCtrl.GetHolidayListByWorkingCalendar(workingCalendarID); FormatCalendar(DateTime.Today.Year, DateTime.Today.Month); } }
protected void SaveNewRecord(object sender, DirectEventArgs e) { //Getting the id to check if it is an Add or an edit as they are managed within the same form. string id = e.ExtraParams["id"]; string obj = e.ExtraParams["calendar"]; WorkingCalendar b = JsonConvert.DeserializeObject <WorkingCalendar>(obj); b.recordId = id; // Define the object to add or edit as null if (string.IsNullOrEmpty(id)) { try { //New Mode //Step 1 : Fill The object and insert in the store PostRequest <WorkingCalendar> request = new PostRequest <WorkingCalendar>(); request.entity = b; PostResponse <WorkingCalendar> r = _branchService.ChildAddOrUpdate <WorkingCalendar>(request); b.recordId = r.recordId; //check if the insert failed if (!r.Success)//it maybe be another condition { //Show an error saving... X.MessageBox.ButtonText.Ok = Resources.Common.Ok; Common.errorMessage(r); return; } else { CurrentCalendar.Text = b.recordId; recordId.Text = b.recordId; //Add this record to the store this.Store1.Insert(0, b); //Display successful notification Notification.Show(new NotificationConfig { Title = Resources.Common.Notification, Icon = Icon.Information, Html = Resources.Common.RecordSavingSucc }); X.Call("SetVisible"); RowSelectionModel sm = this.GridPanel1.GetSelectionModel() as RowSelectionModel; sm.DeselectAll(); sm.Select(b.recordId.ToString()); } } catch (Exception ex) { //Error exception displaying a messsage box X.MessageBox.ButtonText.Ok = Resources.Common.Ok; X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorSavingRecord).Show(); } } else { //Update Mode try { int index = Convert.ToInt32(id);//getting the id of the record PostRequest <WorkingCalendar> modifyHeaderRequest = new PostRequest <WorkingCalendar>(); modifyHeaderRequest.entity = b; PostResponse <WorkingCalendar> r = _branchService.ChildAddOrUpdate <WorkingCalendar>(modifyHeaderRequest); //Step 1 Selecting the object or building up the object for update purpose if (!r.Success) //it maybe another check { X.MessageBox.ButtonText.Ok = Resources.Common.Ok; X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorUpdatingRecord).Show(); return; } //Step 2 : saving to store else { ModelProxy record = this.Store1.GetById(index); BasicInfoTab.UpdateRecord(record); record.Commit(); Notification.Show(new NotificationConfig { Title = Resources.Common.Notification, Icon = Icon.Information, Html = Resources.Common.RecordUpdatedSucc }); this.EditCalendarWindow.Close(); } } catch (Exception ex) { X.MessageBox.ButtonText.Ok = Resources.Common.Ok; X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorUpdatingRecord).Show(); } } }
public bool CreateCal(WorkingCalendar cal) { Calendar_func func = new Calendar_func(); return(func.CreateCal(cal)); }
private void SetWorkingCalendarProperties(ref WorkingCalendar workingCalendar, ref List <Shift> shiftList, ref List <Break> breakList, ref List <Holiday> holidayList, ref PaymentRate workDayPaymentRate, ref PaymentRate nonWorkDayPaymentRate, ref PaymentRate holidayPaymentRate, ref PayPeriod payPeriod) { workingCalendar.Name = txtName.Text; #region Flexi Hours workingCalendar.ApplyFlexiHours = chbApplyFlexiHours.Checked; if (workingCalendar.ApplyFlexiHours) { workingCalendar.FlexiHours = (int)nudFlexiHours.Value; workingCalendar.WeekStartsOn = cbxWeekStartsOn.SelectedIndex; } #endregion #region Get Working Days workingCalendar.WorkOnMonday = chbMonday.Checked; workingCalendar.WorkOnTuesday = chbTuesday.Checked; workingCalendar.WorkOnWednesday = chbWednesday.Checked; workingCalendar.WorkOnThursday = chbThursday.Checked; workingCalendar.WorkOnFriday = chbFriday.Checked; workingCalendar.WorkOnSaturday = chbSaturday.Checked; workingCalendar.WorkOnSunday = chbSunday.Checked; workingCalendar.GraceForwardToEntry = (int)nudGraceForwardToEntry.Value; workingCalendar.GraceBackwardToExit = (int)nudGraceBackwardToExit.Value; workingCalendar.EarliestBeforeEntry = (int)nudEarliestBeforeEntry.Value; workingCalendar.LastestAfterExit = (int)nudLastestAfterExit.Value; #endregion #region Shift if (rbtOneShift.Checked) { Shift shift = new Shift(); shift.From = dtpRegularWorkFrom.Value; shift.To = dtpRegularWorkTo.Value; shiftList.Add(shift); } else //multi-shifts { shiftList = _shiftList; } #endregion #region Get Break Times if (chbBreak1.Checked) { Break break1 = new Break(); break1.Name = txtBreakName1.Text; break1.From = dtpBreakFrom1.Value; break1.To = dtpBreakTo1.Value; break1.Paid = chbBreakPaid1.Checked; breakList.Add(break1); } if (chbBreak2.Checked) { Break break2 = new Break(); break2.Name = txtBreakName2.Text; break2.From = dtpBreakFrom2.Value; break2.To = dtpBreakTo2.Value; break2.Paid = chbBreakPaid2.Checked; breakList.Add(break2); } if (chbBreak3.Checked) { Break break3 = new Break(); break3.Name = txtBreakName3.Text; break3.From = dtpBreakFrom3.Value; break3.To = dtpBreakTo3.Value; break3.Paid = chbBreakPaid3.Checked; breakList.Add(break3); } #endregion #region Get Payment Rates if (workingCalendar.ApplyFlexiHours) { workDayPaymentRate.NumberOfRegularHours = (int)nudFlexiHourRegularHour.Value; workDayPaymentRate.NumberOfOvertime1 = (int)nudFlexiHourOvertimeHour1.Value; workDayPaymentRate.NumberOfOvertime2 = (int)nudFlexiHourOvertimeHour2.Value; workDayPaymentRate.NumberOfOvertime3 = (int)nudFlexiHourOvertimeHour3.Value; workDayPaymentRate.NumberOfOvertime4 = (int)nudFlexiHourOvertimeHour4.Value; workDayPaymentRate.RegularRate = ((Rate)cbxFlexiHourWorkingDayRegularRate.SelectedItem).Value; workDayPaymentRate.OvertimeRate1 = ((Rate)cbxHolidayOvertimeRate1.SelectedItem).Value; workDayPaymentRate.OvertimeRate2 = ((Rate)cbxHolidayOvertimeRate2.SelectedItem).Value; workDayPaymentRate.OvertimeRate3 = ((Rate)cbxHolidayOvertimeRate3.SelectedItem).Value; workDayPaymentRate.OvertimeRate4 = ((Rate)cbxHolidayOvertimeRate4.SelectedItem).Value; nonWorkDayPaymentRate.RegularRate = ((Rate)cbxFlexiHourNonWorkingDayRegularRate.SelectedItem).Value; holidayPaymentRate.RegularRate = ((Rate)cbxFlexiHourHolidayRegularRate.SelectedItem).Value; } else { workDayPaymentRate.NumberOfRegularHours = (int)nudWorkDayRegularHour.Value; workDayPaymentRate.NumberOfOvertime1 = (int)nudWorkDayOvertimeHour1.Value; workDayPaymentRate.NumberOfOvertime2 = (int)nudWorkDayOvertimeHour2.Value; workDayPaymentRate.NumberOfOvertime3 = (int)nudWorkDayOvertimeHour3.Value; workDayPaymentRate.NumberOfOvertime4 = (int)nudWorkDayOvertimeHour4.Value; workDayPaymentRate.RegularRate = ((Rate)cbxWorkDayRegularRate.SelectedItem).Value; workDayPaymentRate.OvertimeRate1 = ((Rate)cbxWorkDayOvertimeRate1.SelectedItem).Value; workDayPaymentRate.OvertimeRate2 = ((Rate)cbxWorkDayOvertimeRate2.SelectedItem).Value; workDayPaymentRate.OvertimeRate3 = ((Rate)cbxWorkDayOvertimeRate3.SelectedItem).Value; workDayPaymentRate.OvertimeRate4 = ((Rate)cbxWorkDayOvertimeRate4.SelectedItem).Value; nonWorkDayPaymentRate.NumberOfRegularHours = (int)nudNonWorkDayRegularHour.Value; nonWorkDayPaymentRate.NumberOfOvertime1 = (int)nudNonWorkDayOvertimeHour1.Value; nonWorkDayPaymentRate.NumberOfOvertime2 = (int)nudNonWorkDayOvertimeHour2.Value; nonWorkDayPaymentRate.NumberOfOvertime3 = (int)nudNonWorkDayOvertimeHour3.Value; nonWorkDayPaymentRate.NumberOfOvertime4 = (int)nudNonWorkDayOvertimeHour4.Value; nonWorkDayPaymentRate.RegularRate = ((Rate)cbxNonWorkDayRegularRate.SelectedItem).Value; nonWorkDayPaymentRate.OvertimeRate1 = ((Rate)cbxNonWorkDayOvertimeRate1.SelectedItem).Value; nonWorkDayPaymentRate.OvertimeRate2 = ((Rate)cbxNonWorkDayOvertimeRate2.SelectedItem).Value; nonWorkDayPaymentRate.OvertimeRate3 = ((Rate)cbxNonWorkDayOvertimeRate3.SelectedItem).Value; nonWorkDayPaymentRate.OvertimeRate4 = ((Rate)cbxNonWorkDayOvertimeRate4.SelectedItem).Value; holidayPaymentRate.NumberOfRegularHours = (int)nudHolidayRegularHour.Value; holidayPaymentRate.NumberOfOvertime1 = (int)nudHolidayOvertimeHour1.Value; holidayPaymentRate.NumberOfOvertime2 = (int)nudHolidayOvertimeHour2.Value; holidayPaymentRate.NumberOfOvertime3 = (int)nudHolidayOvertimeHour3.Value; holidayPaymentRate.NumberOfOvertime4 = (int)nudHolidayOvertimeHour4.Value; holidayPaymentRate.RegularRate = ((Rate)cbxHolidayRegularRate.SelectedItem).Value; holidayPaymentRate.OvertimeRate1 = ((Rate)cbxHolidayOvertimeRate1.SelectedItem).Value; holidayPaymentRate.OvertimeRate2 = ((Rate)cbxHolidayOvertimeRate2.SelectedItem).Value; holidayPaymentRate.OvertimeRate3 = ((Rate)cbxHolidayOvertimeRate3.SelectedItem).Value; holidayPaymentRate.OvertimeRate4 = ((Rate)cbxHolidayOvertimeRate4.SelectedItem).Value; } #endregion #region Get Holidays holidayList = _holidayList; #endregion #region Get Pay Period if (rbtPayPeriodCustom.Checked)//custom Pay Period { payPeriod.PayPeriodTypeID = 5; payPeriod.CustomPeriod = (int)nudCustomPayPeriod.Value; } else { if (rbtPayPeriodWeekly.Checked) { payPeriod.PayPeriodTypeID = 1; } else if (rbtPayPeriodBiweekly.Checked) { payPeriod.PayPeriodTypeID = 2; } else if (rbtPayPeriodMonthly.Checked) { payPeriod.PayPeriodTypeID = 3; } else if (rbtPayPeriodHalfmonthly.Checked) { payPeriod.PayPeriodTypeID = 4; } } payPeriod.StartFrom = dtpPayPeriodStartFrom.Value; #endregion }
private void AddUpdateWorkingCalendar() { #region Validate inputs if (ValidateName() == false) { tabAddUpdateWorkingCalendar.SelectedTab = tabPage1; return; } if (ValidateWorkingHour() == false) { tabAddUpdateWorkingCalendar.SelectedTab = tabPage2; return; } if (ValidateBreaks() == false) { tabAddUpdateWorkingCalendar.SelectedTab = tabPage3; return; } if (ValidateWorkingDayRate() == false) { tabAddUpdateWorkingCalendar.SelectedTab = tabPage4; return; } if (ValidateNonWorkingDayRate() == false) { tabAddUpdateWorkingCalendar.SelectedTab = tabPage4; return; } if (ValidateHolidayRate() == false) { tabAddUpdateWorkingCalendar.SelectedTab = tabPage4; return; } if (ValidateHoliday() == false) { tabAddUpdateWorkingCalendar.SelectedTab = tabPage5; return; } if (ValidatePayPeriod() == false) { return; } #endregion #region Create object and set properties WorkingCalendar workingCalendar = null; List <Shift> shiftList = new List <Shift>(); List <Break> breakList = new List <Break>(); List <Holiday> holidayList = new List <Holiday>(); PaymentRate workingDayPaymentRate = new PaymentRate(); PaymentRate nonWorkingDayPaymentRate = new PaymentRate(); PaymentRate holidayPaymentRate = new PaymentRate(); PayPeriod payPeriod = new PayPeriod(); if (_workingCalendarID < 0) //add { workingCalendar = new WorkingCalendar(); } else //update { workingCalendar = _dtCtrl.GetWorkingCalendar(_workingCalendarID); if (workingCalendar == null) { throw new NullReferenceException(); } } SetWorkingCalendarProperties(ref workingCalendar, ref shiftList, ref breakList, ref holidayList, ref workingDayPaymentRate, ref nonWorkingDayPaymentRate, ref holidayPaymentRate, ref payPeriod); #endregion #region insert/update in database if (_workingCalendarID < 0) //add { int workingCalendarID = _dtCtrl.AddWorkingCalendar(workingCalendar, shiftList, breakList, holidayList, workingDayPaymentRate, nonWorkingDayPaymentRate, holidayPaymentRate, payPeriod); if (workingCalendarID < 0) { throw new Exception("Working Calendar could not be added."); } MessageBox.Show("Working Calendar added."); this.Close(); } else //update { bool result = _dtCtrl.UpdateWorkingCalendar(workingCalendar, shiftList, breakList, holidayList, workingDayPaymentRate, nonWorkingDayPaymentRate, holidayPaymentRate, payPeriod); if (result != true) { throw new Exception("Working Calendar could not be updated."); } MessageBox.Show("Working Calendar updated."); this.Close(); } #endregion }
private void BindWorkingCalendarData(int workingCalendarID) { WorkingCalendar workingCalendar = _dtCtrl.GetWorkingCalendar(workingCalendarID); try { txtName.Text = workingCalendar.Name; #region Flexi Hours chbApplyFlexiHours.Checked = workingCalendar.ApplyFlexiHours; if (workingCalendar.ApplyFlexiHours) { nudFlexiHours.Value = workingCalendar.FlexiHours; cbxWeekStartsOn.SelectedIndex = workingCalendar.WeekStartsOn; } #endregion #region Set Working Days chbMonday.Checked = workingCalendar.WorkOnMonday; chbTuesday.Checked = workingCalendar.WorkOnTuesday; chbWednesday.Checked = workingCalendar.WorkOnWednesday; chbThursday.Checked = workingCalendar.WorkOnThursday; chbFriday.Checked = workingCalendar.WorkOnFriday; chbSaturday.Checked = workingCalendar.WorkOnSaturday; chbSunday.Checked = workingCalendar.WorkOnSunday; nudGraceForwardToEntry.Value = workingCalendar.GraceForwardToEntry; nudGraceBackwardToExit.Value = workingCalendar.GraceBackwardToExit; nudEarliestBeforeEntry.Value = workingCalendar.EarliestBeforeEntry; nudLastestAfterExit.Value = workingCalendar.LastestAfterExit; #endregion #region Set Shifts List <Shift> shiftList = _dtCtrl.GetShiftListByWorkingCalendar(workingCalendarID); if (shiftList.Count == 1) //one shift { rbtOneShift.Checked = true; dtpRegularWorkFrom.Value = shiftList[0].From; dtpRegularWorkTo.Value = shiftList[0].To; } else //multi shifts { rbtMultiShifts.Checked = true; _shiftList = shiftList; BindShift(); } #endregion #region Set Break Times List <Break> breaks = _dtCtrl.GetBreakListByWorkingCalendar(workingCalendarID); if (breaks.Count >= 1) { Break break1 = breaks[0]; EnableBreakControls1(true); chbBreak1.Checked = true; txtBreakName1.Text = break1.Name; dtpBreakFrom1.Value = break1.From; dtpBreakTo1.Value = break1.To; chbBreakPaid1.Checked = break1.Paid; } if (breaks.Count >= 2) { Break break2 = breaks[1]; EnableBreakControls2(true); chbBreak2.Checked = true; txtBreakName2.Text = break2.Name; dtpBreakFrom2.Value = break2.From; dtpBreakTo2.Value = break2.To; chbBreakPaid2.Checked = break2.Paid; } if (breaks.Count >= 3) { Break break3 = breaks[2]; EnableBreakControls3(true); chbBreak3.Checked = true; txtBreakName3.Text = break3.Name; dtpBreakFrom3.Value = break3.From; dtpBreakTo3.Value = break3.To; chbBreakPaid3.Checked = break3.Paid; } #endregion #region Set Payment Rates if (workingCalendar.ApplyFlexiHours) { PaymentRate workingDayPaymentRate = _dtCtrl.GetWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); ImplementCustomRates(workingDayPaymentRate); nudFlexiHourRegularHour.Value = (int)workingDayPaymentRate.NumberOfRegularHours; nudFlexiHourOvertimeHour1.Value = (int)workingDayPaymentRate.NumberOfOvertime1; nudFlexiHourOvertimeHour2.Value = (int)workingDayPaymentRate.NumberOfOvertime2; nudFlexiHourOvertimeHour3.Value = (int)workingDayPaymentRate.NumberOfOvertime3; nudFlexiHourOvertimeHour4.Value = (int)workingDayPaymentRate.NumberOfOvertime4; PaymentRate nonWorkingDayPaymentRate = _dtCtrl.GetNonWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); ImplementCustomRates(nonWorkingDayPaymentRate); PaymentRate holidayPaymentRate = _dtCtrl.GetHolidayPaymentRateByWorkingCalendar(workingCalendarID); ImplementCustomRates(holidayPaymentRate); Util.SetComboboxSelectedByValue(cbxFlexiHourWorkingDayRegularRate, workingDayPaymentRate.RegularRate); Util.SetComboboxSelectedByValue(cbxFlexiHourNonWorkingDayRegularRate, nonWorkingDayPaymentRate.RegularRate); Util.SetComboboxSelectedByValue(cbxFlexiHourHolidayRegularRate, holidayPaymentRate.RegularRate); Util.SetComboboxSelectedByValue(cbxFlexiHourOvertimeRate1, workingDayPaymentRate.OvertimeRate3); Util.SetComboboxSelectedByValue(cbxFlexiHourOvertimeRate2, workingDayPaymentRate.OvertimeRate4); Util.SetComboboxSelectedByValue(cbxFlexiHourOvertimeRate3, workingDayPaymentRate.OvertimeRate4); Util.SetComboboxSelectedByValue(cbxFlexiHourOvertimeRate4, workingDayPaymentRate.OvertimeRate4); } else { PaymentRate workingDayPaymentRate = _dtCtrl.GetWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); ImplementCustomRates(workingDayPaymentRate); nudWorkDayRegularHour.Value = (int)workingDayPaymentRate.NumberOfRegularHours; nudWorkDayOvertimeHour1.Value = (int)workingDayPaymentRate.NumberOfOvertime1; nudWorkDayOvertimeHour2.Value = (int)workingDayPaymentRate.NumberOfOvertime2; nudWorkDayOvertimeHour3.Value = (int)workingDayPaymentRate.NumberOfOvertime3; nudWorkDayOvertimeHour4.Value = (int)workingDayPaymentRate.NumberOfOvertime4; Util.SetComboboxSelectedByValue(cbxWorkDayRegularRate, workingDayPaymentRate.RegularRate); Util.SetComboboxSelectedByValue(cbxWorkDayOvertimeRate1, workingDayPaymentRate.OvertimeRate1); Util.SetComboboxSelectedByValue(cbxWorkDayOvertimeRate2, workingDayPaymentRate.OvertimeRate2); Util.SetComboboxSelectedByValue(cbxWorkDayOvertimeRate3, workingDayPaymentRate.OvertimeRate3); Util.SetComboboxSelectedByValue(cbxWorkDayOvertimeRate4, workingDayPaymentRate.OvertimeRate4); PaymentRate nonWorkingDayPaymentRate = _dtCtrl.GetNonWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); ImplementCustomRates(nonWorkingDayPaymentRate); nudNonWorkDayRegularHour.Value = (int)nonWorkingDayPaymentRate.NumberOfRegularHours; nudNonWorkDayOvertimeHour1.Value = (int)nonWorkingDayPaymentRate.NumberOfOvertime1; nudNonWorkDayOvertimeHour2.Value = (int)nonWorkingDayPaymentRate.NumberOfOvertime2; nudNonWorkDayOvertimeHour3.Value = (int)nonWorkingDayPaymentRate.NumberOfOvertime3; nudNonWorkDayOvertimeHour4.Value = (int)nonWorkingDayPaymentRate.NumberOfOvertime4; Util.SetComboboxSelectedByValue(cbxNonWorkDayRegularRate, nonWorkingDayPaymentRate.RegularRate); Util.SetComboboxSelectedByValue(cbxNonWorkDayOvertimeRate1, nonWorkingDayPaymentRate.OvertimeRate1); Util.SetComboboxSelectedByValue(cbxNonWorkDayOvertimeRate2, nonWorkingDayPaymentRate.OvertimeRate2); Util.SetComboboxSelectedByValue(cbxNonWorkDayOvertimeRate3, nonWorkingDayPaymentRate.OvertimeRate3); Util.SetComboboxSelectedByValue(cbxNonWorkDayOvertimeRate4, nonWorkingDayPaymentRate.OvertimeRate4); PaymentRate holidayPaymentRate = _dtCtrl.GetHolidayPaymentRateByWorkingCalendar(workingCalendarID); ImplementCustomRates(holidayPaymentRate); nudHolidayRegularHour.Value = (int)holidayPaymentRate.NumberOfRegularHours; nudHolidayOvertimeHour1.Value = (int)holidayPaymentRate.NumberOfOvertime1; nudHolidayOvertimeHour2.Value = (int)holidayPaymentRate.NumberOfOvertime2; nudHolidayOvertimeHour3.Value = (int)holidayPaymentRate.NumberOfOvertime3; nudHolidayOvertimeHour4.Value = (int)holidayPaymentRate.NumberOfOvertime4; Util.SetComboboxSelectedByValue(cbxHolidayRegularRate, holidayPaymentRate.RegularRate); Util.SetComboboxSelectedByValue(cbxHolidayOvertimeRate1, holidayPaymentRate.OvertimeRate1); Util.SetComboboxSelectedByValue(cbxHolidayOvertimeRate2, holidayPaymentRate.OvertimeRate2); Util.SetComboboxSelectedByValue(cbxHolidayOvertimeRate3, holidayPaymentRate.OvertimeRate3); Util.SetComboboxSelectedByValue(cbxHolidayOvertimeRate4, holidayPaymentRate.OvertimeRate4); } #endregion #region Set Holidays _holidayList = _dtCtrl.GetHolidayListByWorkingCalendar(workingCalendarID); BindHoliday(); #endregion #region Set Pay Period PayPeriod payPeriod = _dtCtrl.GetPayPeriod(workingCalendar.PayPeriodID); PayPeriodType payPeriodType = _dtCtrl.GetPayPeriodType(payPeriod.PayPeriodTypeID); if (payPeriodType.ID == 5)//custom Pay Period { rbtPayPeriodCustom.Checked = true; nudCustomPayPeriod.Value = payPeriod.CustomPeriod; } else { rbtPayPeriodWeekly.Checked = payPeriodType.ID == 1; rbtPayPeriodBiweekly.Checked = payPeriodType.ID == 2; rbtPayPeriodMonthly.Checked = payPeriodType.ID == 3; rbtPayPeriodHalfmonthly.Checked = payPeriodType.ID == 4; } dtpPayPeriodStartFrom.Value = payPeriod.StartFrom; #endregion } catch (NullReferenceException) { MessageBox.Show("Faulty Working Calendar. Please delete it and add a new one."); } }
private void BindWorkingCalendar(int workingCalendarID) { _workingCalendar = _dtCtrl.GetWorkingCalendar(workingCalendarID); if (_workingCalendar == null) { MessageBox.Show("Working Calendar not found or has been deleted."); this.Close(); } lblWorkFrom.Text = GetTimeString(_workingCalendar.RegularWorkingFrom); lblWorkTo.Text = GetTimeString(_workingCalendar.RegularWorkingTo); //set payment rate PaymentRate workDayPaymentRate = _dtCtrl.GetWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); if (workDayPaymentRate == null) { //TODO } else { ucWorkingDayPaymentRate.SetPaymentRate(workDayPaymentRate); } PaymentRate nonWorkDayPaymentRate = _dtCtrl.GetNonWorkingDayPaymentRateByWorkingCalendar(workingCalendarID); if (nonWorkDayPaymentRate == null) { //TODO } else { ucNonWorkingDayPaymentRate.SetPaymentRate(nonWorkDayPaymentRate); } PaymentRate holidayRate = _dtCtrl.GetHolidayPaymentRateByWorkingCalendar(workingCalendarID); if (holidayRate == null) { //TODO } else { ucHolidayPaymentRate.SetPaymentRate(holidayRate); } //set break List <Break> breakList = _dtCtrl.GetBreakListByWorkingCalendar(workingCalendarID); if (breakList.Count >= 1) { lblBreak1.Text = GetTimeString(breakList[0].From) + " - " + GetTimeString(breakList[0].To); } else { lblBreak1.Text = ""; } if (breakList.Count >= 2) { lblBreak2.Text = GetTimeString(breakList[1].From) + " - " + GetTimeString(breakList[0].To); } else { lblBreak2.Text = ""; } if (breakList.Count >= 3) { lblBreak3.Text = GetTimeString(breakList[2].From) + " - " + GetTimeString(breakList[0].To); } else { lblBreak3.Text = ""; } //set pay period PayPeriod payPeriod = _dtCtrl.GetPayPeriod(_workingCalendar.PayPeriodID); if (payPeriod == null) { //TODO } else { PayPeriodType payPeriodType = _dtCtrl.GetPayPeriodType(payPeriod.PayPeriodTypeID); if (payPeriodType == null) { //TODO } else if (payPeriodType.ID == 5) //custom { lblPayPeriod.Text = "Every " + payPeriod.CustomPeriod + " day(s)"; } else { lblPayPeriod.Text = payPeriodType.Name; } lblPayPeriodStartFrom.Text = payPeriod.StartFrom.ToShortDateString(); //set calendar _holidayList = _dtCtrl.GetHolidayListByWorkingCalendar(workingCalendarID); FormatCalendar(DateTime.Today.Year, DateTime.Today.Month); } }
public ActionResult Edit(WorkingCalendar workingCalendar, int? id) { try { WorkingCalendar oldWorkingCalendarById = new WorkingCalendar(); if (!id.HasValue) { return HttpNotFound(); } else { oldWorkingCalendarById = this.genericMgr.FindById<WorkingCalendar>(id); } workingCalendar.Region = oldWorkingCalendarById.Region; if (ModelState.IsValid) { bool isExist = false; if (workingCalendar.DayOfWeek != oldWorkingCalendarById.DayOfWeek) { //if (workingCalendar.Region == null) //{ // if (this.genericMgr.FindAll<long>(isExistNullDayOfWeekDuiplicateVerifyStatement, new object[] { workingCalendar.DayOfWeek })[0] > 0) // { // isExist = true; // } //} //else //{ // if (this.genericMgr.FindAll<long>(isExistDayOfWeekDuiplicateVerifyStatement, new object[] { workingCalendar.Region, workingCalendar.DayOfWeek })[0] > 0) // { // isExist = true; // } //} //"select count(*) from WorkingCalendar as w where w.Region = ? and w.DayOfWeek=?"; string hql = "select count(*) from WorkingCalendar as w where w.DayOfWeek=?"; IList<object> obj = new List<object>(); obj.Add(workingCalendar.DayOfWeek); workingCalendar.Region = oldWorkingCalendarById.Region; if (!string.IsNullOrEmpty(workingCalendar.Region)) { hql += "and w.Region = ?"; obj.Add(workingCalendar.DayOfWeek); } if (!string.IsNullOrEmpty(workingCalendar.Flow)) { hql += "and w.Flow = ?"; obj.Add(workingCalendar.Flow); } if (this.genericMgr.FindAll<long>(hql, obj.ToArray())[0] > 0) { isExist = true; } } if (isExist) { SaveErrorMessage(Resources.MD.WorkingCalendar.Errors_Existing_RegionAndDayOfWeek); } else { string code = string.Empty; if (this.Request.Params["Code[]"] != null) { code = this.Request.Params["Code[]"].ToString(); IList<string> shiftList = (code.Split(',')).ToList<string>(); this.WorkingCalendarMgr.UpdateWorkingCalendar(workingCalendar, shiftList); } else { this.WorkingCalendarMgr.UpdateWorkingCalendar(workingCalendar, null); } SaveSuccessMessage(Resources.MD.WorkingCalendar.WorkingCalendar_Updated); } ViewBag.AssignedShift = this.genericMgr.FindAll<ShiftMaster>(selectShift, id); ViewBag.UnAssignedShift = this.genericMgr.FindAll<ShiftMaster>(selectShiftNotWithWorkingCalendar, id); } } catch (Exception ex) { SaveErrorMessage((ex.InnerException).InnerException.ToString()); ViewBag.AssignedShift = this.genericMgr.FindAll<ShiftMaster>(selectShift, id); ViewBag.UnAssignedShift = this.genericMgr.FindAll<ShiftMaster>(selectShiftNotWithWorkingCalendar, id); return PartialView(workingCalendar); } return PartialView(workingCalendar); }
private void AddTestOneShiftFlexi(ref IDataController _dtCtrl) { #region add test company Company com = new Company(); com.Name = DateTime.Now.Ticks.ToString(); com.ID = _dtCtrl.AddCompany(com); #endregion #region add test department Department dep = new Department(); dep.CompanyID = com.ID; dep.Name = DateTime.Now.Ticks.ToString(); dep.SupDepartmentID = 0; //root dep.ID = _dtCtrl.AddDepartment(dep); #endregion #region add test working calendar List <Break> breakList = new List <Break>(); Break break1 = new Break(); break1.From = new DateTime(2000, 2, 2, 12, 0, 0); break1.To = new DateTime(2000, 2, 2, 13, 0, 0); break1.Name = "break1"; break1.Paid = true; breakList.Add(break1); List <Holiday> holidayList = new List <Holiday>(); PaymentRate workingDayPaymentRate = new PaymentRate(); workingDayPaymentRate.NumberOfRegularHours = 7; workingDayPaymentRate.RegularRate = 100; workingDayPaymentRate.NumberOfOvertime1 = 8; workingDayPaymentRate.OvertimeRate1 = 200; PaymentRate nonWorkingDayPaymentRate = workingDayPaymentRate; PaymentRate holidayPaymentRate = workingDayPaymentRate; PayPeriod payPeriod = new PayPeriod(); payPeriod.CustomPeriod = 5; payPeriod.PayPeriodTypeID = 5; //custom payPeriod.StartFrom = new DateTime(2010, 1, 1); WorkingCalendar wCal = new WorkingCalendar(); wCal.Name = DateTime.Now.Ticks.ToString(); wCal.ApplyFlexiHours = true; wCal.FlexiHours = 40; wCal.WeekStartsOn = 3; //Thursday List <Shift> shiftList = new List <Shift>(); Shift shift1 = new Shift(); shift1.From = new DateTime(2000, 2, 2, 9, 0, 0); shift1.To = new DateTime(2000, 2, 2, 18, 0, 0); shiftList.Add(shift1); wCal.WorkOnMonday = true; wCal.WorkOnTuesday = true; wCal.WorkOnWednesday = true; wCal.WorkOnThursday = true; wCal.WorkOnFriday = true; wCal.GraceForwardToEntry = 30; wCal.GraceBackwardToExit = 30; wCal.EarliestBeforeEntry = 60; wCal.LastestAfterExit = 180; wCal.ID = _dtCtrl.AddWorkingCalendar(wCal, shiftList, new List <Break>(), holidayList, workingDayPaymentRate, nonWorkingDayPaymentRate, holidayPaymentRate, payPeriod); #endregion #region add test employee Employee emp = new Employee(); emp.Active = true; emp.ActiveFrom = DateTime.Today; emp.ActiveTo = DateTime.Today.AddDays(1); emp.Address = DateTime.Now.Ticks.ToString(); emp.Birthday = DateTime.Today.AddYears(-20); emp.DepartmentID = dep.ID; emp.EmployeeNumber = 0; emp.FirstName = DateTime.Now.Ticks.ToString(); emp.JobDescription = DateTime.Now.Ticks.ToString(); emp.HiredDate = DateTime.Today; emp.LeftDate = DateTime.Today.AddYears(1); emp.LastName = DateTime.Now.Ticks.ToString(); emp.PhoneNumber = DateTime.Now.Ticks.ToString(); emp.WorkingCalendarID = wCal.ID; emp.PayrollNumber = _dtCtrl.AddEmployee(emp, new List <Terminal>()); #endregion #region add test att records 2 //att7 : expected regHour: 10 AttendanceRecord att71 = new AttendanceRecord(); att71.EmployeeNumber = emp.EmployeeNumber; att71.Time = new DateTime(2010, 1, 7, 9, 0, 0); att71.ID = _dtCtrl.AddAttendanceRecord(att71); AttendanceRecord att72 = new AttendanceRecord(); att72.EmployeeNumber = emp.EmployeeNumber; att72.Time = new DateTime(2010, 1, 7, 19, 0, 0); att72.ID = _dtCtrl.AddAttendanceRecord(att72); //att8 : expected regHour: 8 AttendanceRecord att81 = new AttendanceRecord(); att81.EmployeeNumber = emp.EmployeeNumber; att81.Time = new DateTime(2010, 1, 8, 9, 0, 0); att81.ID = _dtCtrl.AddAttendanceRecord(att81); AttendanceRecord att82 = new AttendanceRecord(); att82.EmployeeNumber = emp.EmployeeNumber; att82.Time = new DateTime(2010, 1, 8, 17, 0, 0); att82.ID = _dtCtrl.AddAttendanceRecord(att82); //att9 : expected regHour: 8 AttendanceRecord att91 = new AttendanceRecord(); att91.EmployeeNumber = emp.EmployeeNumber; att91.Time = new DateTime(2010, 1, 9, 9, 0, 0); att91.ID = _dtCtrl.AddAttendanceRecord(att91); AttendanceRecord att92 = new AttendanceRecord(); att92.EmployeeNumber = emp.EmployeeNumber; att92.Time = new DateTime(2010, 1, 9, 17, 0, 0); att92.ID = _dtCtrl.AddAttendanceRecord(att92); //att10 : expected regHour: 8 AttendanceRecord att101 = new AttendanceRecord(); att101.EmployeeNumber = emp.EmployeeNumber; att101.Time = new DateTime(2010, 1, 10, 9, 00, 0); att101.ID = _dtCtrl.AddAttendanceRecord(att101); AttendanceRecord att102 = new AttendanceRecord(); att102.EmployeeNumber = emp.EmployeeNumber; att102.Time = new DateTime(2010, 1, 10, 17, 0, 0); att102.ID = _dtCtrl.AddAttendanceRecord(att102); //att11 : expected regHour: 4 AttendanceRecord att111 = new AttendanceRecord(); att111.EmployeeNumber = emp.EmployeeNumber; att111.Time = new DateTime(2010, 1, 11, 9, 0, 0); att111.ID = _dtCtrl.AddAttendanceRecord(att111); AttendanceRecord att112 = new AttendanceRecord(); att112.EmployeeNumber = emp.EmployeeNumber; att112.Time = new DateTime(2010, 1, 11, 13, 0, 0); att112.ID = _dtCtrl.AddAttendanceRecord(att112); //att12 : expected regHour: 2 overHour: 2 AttendanceRecord att121 = new AttendanceRecord(); att121.EmployeeNumber = emp.EmployeeNumber; att121.Time = new DateTime(2010, 1, 12, 9, 0, 0); att121.ID = _dtCtrl.AddAttendanceRecord(att121); AttendanceRecord att122 = new AttendanceRecord(); att122.EmployeeNumber = emp.EmployeeNumber; att122.Time = new DateTime(2010, 1, 12, 13, 0, 0); att122.ID = _dtCtrl.AddAttendanceRecord(att122); //att13 : expected overHour: 2 AttendanceRecord att131 = new AttendanceRecord(); att131.EmployeeNumber = emp.EmployeeNumber; att131.Time = new DateTime(2010, 1, 13, 9, 0, 0); att131.ID = _dtCtrl.AddAttendanceRecord(att131); AttendanceRecord att132 = new AttendanceRecord(); att132.EmployeeNumber = emp.EmployeeNumber; att132.Time = new DateTime(2010, 1, 13, 11, 0, 0); att132.ID = _dtCtrl.AddAttendanceRecord(att132); #endregion }
private void AddTestOneShiftNonFlexi(ref IDataController _dtCtrl) { #region add test company Company com = new Company(); com.Name = DateTime.Now.Ticks.ToString(); com.ID = _dtCtrl.AddCompany(com); #endregion #region add test department Department dep = new Department(); dep.CompanyID = com.ID; dep.Name = DateTime.Now.Ticks.ToString(); dep.SupDepartmentID = 0; //root dep.ID = _dtCtrl.AddDepartment(dep); #endregion #region add test working calendar WorkingCalendar wCal = new WorkingCalendar(); wCal.Name = DateTime.Now.Ticks.ToString(); wCal.WorkOnMonday = true; wCal.WorkOnTuesday = true; wCal.WorkOnWednesday = true; wCal.WorkOnThursday = true; wCal.WorkOnFriday = true; wCal.GraceForwardToEntry = 30; wCal.GraceBackwardToExit = 30; wCal.EarliestBeforeEntry = 60; wCal.LastestAfterExit = 180; List <Shift> shiftList = new List <Shift>(); Shift shift1 = new Shift(); shift1.From = new DateTime(2000, 2, 2, 9, 0, 0); shift1.To = new DateTime(2000, 2, 2, 18, 0, 0); shiftList.Add(shift1); List <Break> breakList = new List <Break>(); Break break1 = new Break(); break1.From = new DateTime(2000, 2, 2, 12, 0, 0); break1.To = new DateTime(2000, 2, 2, 13, 0, 0); break1.Name = "break1"; break1.Paid = true; breakList.Add(break1); List <Holiday> holidayList = new List <Holiday>(); PaymentRate workingDayPaymentRate = new PaymentRate(); workingDayPaymentRate.NumberOfRegularHours = 7; workingDayPaymentRate.RegularRate = 100; workingDayPaymentRate.NumberOfOvertime1 = 8; workingDayPaymentRate.OvertimeRate1 = 200; PaymentRate nonWorkingDayPaymentRate = workingDayPaymentRate; PaymentRate holidayPaymentRate = workingDayPaymentRate; PayPeriod payPeriod = new PayPeriod(); payPeriod.CustomPeriod = 5; payPeriod.PayPeriodTypeID = 5; //custom payPeriod.StartFrom = new DateTime(2010, 1, 1); wCal.ID = _dtCtrl.AddWorkingCalendar(wCal, shiftList, breakList, holidayList, workingDayPaymentRate, nonWorkingDayPaymentRate, holidayPaymentRate, payPeriod); #endregion #region add test employee Employee emp = new Employee(); emp.Active = true; emp.ActiveFrom = DateTime.Today; emp.ActiveTo = DateTime.Today.AddDays(1); emp.Address = DateTime.Now.Ticks.ToString(); emp.Birthday = DateTime.Today.AddYears(-20); emp.DepartmentID = dep.ID; emp.EmployeeNumber = 0; emp.FirstName = DateTime.Now.Ticks.ToString(); emp.JobDescription = DateTime.Now.Ticks.ToString(); emp.HiredDate = DateTime.Today; emp.LeftDate = DateTime.Today.AddYears(1); emp.LastName = DateTime.Now.Ticks.ToString(); emp.PhoneNumber = DateTime.Now.Ticks.ToString(); emp.WorkingCalendarID = wCal.ID; emp.PayrollNumber = _dtCtrl.AddEmployee(emp, new List <Terminal>()); #endregion #region add test att records 1 //att1 : expected totalHours: 9 AttendanceRecord att11 = new AttendanceRecord(); att11.EmployeeNumber = emp.EmployeeNumber; att11.Time = new DateTime(2010, 1, 1, 9, 0, 0); att11.ID = _dtCtrl.AddAttendanceRecord(att11); AttendanceRecord att12 = new AttendanceRecord(); att12.EmployeeNumber = emp.EmployeeNumber; att12.Time = new DateTime(2010, 1, 1, 18, 0, 0); att12.ID = _dtCtrl.AddAttendanceRecord(att12); AttendanceRecord att13 = new AttendanceRecord(); att13.EmployeeNumber = emp.EmployeeNumber; att13.Time = new DateTime(2010, 1, 1, 12, 0, 0); att13.ID = _dtCtrl.AddAttendanceRecord(att13); AttendanceRecord att14 = new AttendanceRecord(); att14.EmployeeNumber = emp.EmployeeNumber; att14.Time = new DateTime(2010, 1, 1, 13, 0, 0); att14.ID = _dtCtrl.AddAttendanceRecord(att14); //att2 : expected totalHours: 9 AttendanceRecord att21 = new AttendanceRecord(); att21.EmployeeNumber = emp.EmployeeNumber; att21.Time = new DateTime(2010, 1, 2, 8, 45, 0); att21.ID = _dtCtrl.AddAttendanceRecord(att21); AttendanceRecord att22 = new AttendanceRecord(); att22.EmployeeNumber = emp.EmployeeNumber; att22.Time = new DateTime(2010, 1, 2, 18, 15, 0); att22.ID = _dtCtrl.AddAttendanceRecord(att22); //att3 : expected totalHours: 9.75 AttendanceRecord att31 = new AttendanceRecord(); att31.EmployeeNumber = emp.EmployeeNumber; att31.Time = new DateTime(2010, 1, 3, 8, 15, 0); att31.ID = _dtCtrl.AddAttendanceRecord(att31); AttendanceRecord att32 = new AttendanceRecord(); att32.EmployeeNumber = emp.EmployeeNumber; att32.Time = new DateTime(2010, 1, 3, 18, 0, 0); att32.ID = _dtCtrl.AddAttendanceRecord(att32); //att4 : expected totalHours: 0 + out mistake alert AttendanceRecord att41 = new AttendanceRecord(); att41.EmployeeNumber = emp.EmployeeNumber; att41.Time = new DateTime(2010, 1, 4, 7, 00, 0); att41.ID = _dtCtrl.AddAttendanceRecord(att41); AttendanceRecord att42 = new AttendanceRecord(); att42.EmployeeNumber = emp.EmployeeNumber; att42.Time = new DateTime(2010, 1, 4, 18, 0, 0); att42.ID = _dtCtrl.AddAttendanceRecord(att42); //att5 : expected totalHours: 8.8x AttendanceRecord att51 = new AttendanceRecord(); att51.EmployeeNumber = emp.EmployeeNumber; att51.Time = new DateTime(2010, 1, 5, 9, 06, 0); att51.ID = _dtCtrl.AddAttendanceRecord(att51); AttendanceRecord att52 = new AttendanceRecord(); att52.EmployeeNumber = emp.EmployeeNumber; att52.Time = new DateTime(2010, 1, 5, 18, 2, 0); att52.ID = _dtCtrl.AddAttendanceRecord(att52); //att6 : expected totalHours: 8.5 AttendanceRecord att61 = new AttendanceRecord(); att61.EmployeeNumber = emp.EmployeeNumber; att61.Time = new DateTime(2010, 1, 6, 9, 0, 0); att61.ID = _dtCtrl.AddAttendanceRecord(att61); AttendanceRecord att62 = new AttendanceRecord(); att62.EmployeeNumber = emp.EmployeeNumber; att62.Time = new DateTime(2010, 1, 6, 18, 0, 0); att62.ID = _dtCtrl.AddAttendanceRecord(att62); AttendanceRecord att63 = new AttendanceRecord(); att63.EmployeeNumber = emp.EmployeeNumber; att63.Time = new DateTime(2010, 1, 6, 12, 30, 0); att63.ID = _dtCtrl.AddAttendanceRecord(att63); AttendanceRecord att64 = new AttendanceRecord(); att64.EmployeeNumber = emp.EmployeeNumber; att64.Time = new DateTime(2010, 1, 6, 13, 30, 0); att64.ID = _dtCtrl.AddAttendanceRecord(att64); #endregion }
private void AddEmployee() { //com.Name = DateTime.Now.Ticks.ToString(); //com.ID = _dtCtrl.AddCompany(com); //dep.Name = DateTime.Now.Ticks.ToString(); //dep.CompanyID = com.ID; //dep.SupDepartmentID = 0; //dep.ID = _dtCtrl.AddDepartment(dep); //wCal.Name = DateTime.Now.Ticks.ToString(); //wCal.RegularWorkingFrom = DateTime.Today; //wCal.RegularWorkingTo = DateTime.Today; //List<Break> breakList = new List<Break>(); //List<Holiday> holidayList = new List<Holiday>(); //PaymentRate workingDayPaymentRate = new PaymentRate(); //PaymentRate nonWorkingDayPaymentRate = new PaymentRate(); //PaymentRate holidayPaymentRate = new PaymentRate(); //PayPeriod payPeriod = new PayPeriod(); //payPeriod.CustomPeriod = 5; //payPeriod.PayPeriodTypeID = 5; //custom //payPeriod.StartFrom = DateTime.Today; //wCal.ID = _dtCtrl.AddWorkingCalendar(wCal, breakList, holidayList, workingDayPaymentRate, nonWorkingDayPaymentRate, holidayPaymentRate, payPeriod); dep = _dtCtrl.GetDepartmentList()[0]; com = _dtCtrl.GetCompany(dep.CompanyID); wCal = _dtCtrl.GetWorkingCalendarList()[0]; ter = _dtCtrl.GetTerminalList()[0]; emp = new Employee(); emp.Active = true; emp.ActiveFrom = DateTime.Today; emp.ActiveTo = DateTime.Today.AddDays(1); emp.Address = DateTime.Now.Ticks.ToString(); emp.Birthday = DateTime.Today.AddYears(-20); emp.DepartmentID = dep.ID; emp.EmployeeNumber = 0; emp.FirstName = DateTime.Now.Ticks.ToString(); emp.JobDescription = DateTime.Now.Ticks.ToString(); emp.HiredDate = DateTime.Today; emp.LeftDate = DateTime.Today.AddYears(1); emp.LastName = DateTime.Now.Ticks.ToString(); emp.PhoneNumber = DateTime.Now.Ticks.ToString(); emp.WorkingCalendarID = wCal.ID; emp.FaceData1 = ""; emp.FaceData2 = ""; emp.FaceData3 = ""; emp.FaceData4 = ""; emp.FaceData5 = ""; emp.FaceData6 = ""; emp.FaceData7 = ""; emp.FaceData8 = ""; emp.FaceData9 = ""; emp.FaceData10 = ""; emp.FaceData11 = ""; emp.FaceData12 = ""; emp.FaceData13 = ""; emp.FaceData14 = ""; emp.FaceData15 = ""; emp.FaceData16 = ""; emp.FaceData17 = ""; emp.FaceData18 = ""; emp.PayrollNumber = _dtCtrl.AddEmployee(emp, new List <Terminal>() { ter }); }
public Guid SaveCalendar(WorkingCalendar calendar) { foreach (var workingDay in calendar.WorkingDays) if (workingDay.Id == Guid.Empty) workingDay.Id = Guid.NewGuid(); if (calendar.Id == Guid.Empty) calendar.Id = Guid.NewGuid(); if (Uow.WorkingCalendars.IsExist(calendar.Id)) Uow.WorkingCalendars.Update(calendar); else Uow.WorkingCalendars.Add(calendar); return calendar.Id; }
public ActionResult New(WorkingCalendar workingCalendar) { if (ModelState.IsValid) { #region old //if (this.genericMgr.FindAll<long>(duiplicateVerifyStatement, new object[] { workingCalendar.Id })[0] > 0) //{ // SaveErrorMessage(Resources.SYS.ErrorMessage.Errors_Existing_Code, workingCalendar.Id.ToString()); //} //else //{ // bool isExist = false; // if (workingCalendar.Region == null) // { // if (this.genericMgr.FindAll<long>(isExistNullDayOfWeekDuiplicateVerifyStatement, new object[] { workingCalendar.DayOfWeek })[0] > 0) // { // isExist = true; // } // } // else // { // if(!string.IsNullOrWhiteSpace(workingCalendar.Flow)) // { // string hql = "select count(*) from WorkingCalendar as w where w.Region = ? and w.DayOfWeek=? and w.Flow=?"; // if (this.genericMgr.FindAll<long>(hql, new object[] { workingCalendar.Region, workingCalendar.DayOfWeek,workingCalendar.Flow })[0] > 0) // { // isExist = true; // } // } // else // { // if (this.genericMgr.FindAll<long>(isExistDayOfWeekDuiplicateVerifyStatement, new object[] { workingCalendar.Region, workingCalendar.DayOfWeek })[0] > 0) // { // isExist = true; // } // } // } // if (isExist) // { // SaveErrorMessage(Resources.MD.WorkingCalendar.Errors_Existing_RegionAndDayOfWeek); // } // else // { // this.genericMgr.CreateWithTrim(workingCalendar); // SaveSuccessMessage(Resources.MD.WorkingCalendar.WorkingCalendar_Added); // return RedirectToAction("Edit/" + workingCalendar.Id); // } //} #endregion try { this.genericMgr.CreateWithTrim(workingCalendar); SaveSuccessMessage(Resources.MD.WorkingCalendar.WorkingCalendar_Added); return RedirectToAction("Edit/" + workingCalendar.Id); } catch (Exception ex) { if (ex is NHibernate.Exceptions.DataException) { SaveErrorMessage(Resources.MD.WorkingCalendar.Errors_Existing_RegionAndDayOfWeek); } else { SaveErrorMessage(ex.Message); } } } return PartialView(workingCalendar); }