Exemple #1
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #12
0
        /// <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);
        }
Exemple #13
0
        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();
            }
        }
Exemple #14
0
        /// <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;
        }
Exemple #16
0
        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();
                }
            }
        }
Exemple #18
0
        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.");
            }
        }
Exemple #22
0
        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);
        }
Exemple #24
0
        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
        }
Exemple #25
0
        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);
        }