Esempio n. 1
0
        private string DeleteCurrentWorkingStaffInfo(int matchedScheduleID)
        {
            Table <DAL.WorkingRegularStaff>     staffTable   = GetWorkingRegularStaffTable();
            Table <DAL.WorkingWarehouseManager> keeperTable  = GetWorkingWarehouseManagerTable();
            Table <DAL.WorkingManager>          managerTable = GetWorkingManagerTable();
            Table <DAL.WorkingCashier>          cashierTable = GetWorkingCashierTable();
            List <string> deletedStaff = new List <string>();

            try
            {
                var matchedRes1 = (from st in staffTable
                                   where st.scheduleID == matchedScheduleID
                                   select st).ToList();
                foreach (DAL.WorkingRegularStaff staff in matchedRes1)
                {
                    staffTable.DeleteOnSubmit(staff);
                    deletedStaff.Add(staff.staffID);
                }

                var matchedRes2 = (from st in keeperTable
                                   where st.scheduleID == matchedScheduleID
                                   select st).ToList();
                foreach (DAL.WorkingWarehouseManager staff in matchedRes2)
                {
                    keeperTable.DeleteOnSubmit(staff);
                    deletedStaff.Add(staff.staffID);
                }

                var matchedRes3 = (from st in managerTable
                                   where st.scheduleID == matchedScheduleID
                                   select st).ToList();
                foreach (DAL.WorkingManager staff in matchedRes3)
                {
                    managerTable.DeleteOnSubmit(staff);
                    deletedStaff.Add(staff.staffID);
                }

                var matchedRes4 = (from st in cashierTable
                                   where st.scheduleID == matchedScheduleID
                                   select st).ToList();
                foreach (DAL.WorkingCashier staff in matchedRes4)
                {
                    cashierTable.DeleteOnSubmit(staff);
                    deletedStaff.Add(staff.staffID);
                }

                db.SubmitChanges();
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }

            foreach (string id in deletedStaff)
            {
                string err = staffManager.SubtractWorkingHours(id, ParameterManager.GetShiftHour());
                if (err != "")
                {
                    return(err);
                }
            }

            return("");
        }
Esempio n. 2
0
        private string AddOrUpdateScheduleShift(WorkingShift schedule)
        {
            Table <DAL.Schedule> scheduleTable = GetScheduleTable();
            int matchedScheduleID = (from sch in scheduleTable
                                     where schedule.StartTime.Date.CompareTo(sch.date) == 0 && sch.workingShiftID == schedule.ShiftID
                                     select sch.scheduleID).FirstOrDefault();

            if (matchedScheduleID == default(int))
            {
                // Create new schedule
                DAL.Schedule newData = new DAL.Schedule();
                try
                {
                    newData.date           = schedule.StartTime.Date;
                    newData.workingShiftID = schedule.ShiftID;

                    scheduleTable.InsertOnSubmit(newData);
                    scheduleTable.Context.SubmitChanges();
                }
                catch (Exception ex)
                {
                    return(ex.Message);
                }

                matchedScheduleID = newData.scheduleID;
            }

            string err = DeleteCurrentWorkingStaffInfo(matchedScheduleID);

            if (err != "")
            {
                return(err);
            }

            foreach (Staff staff in schedule.WorkingStaff.Values)
            {
                err = "No data updated";
                if (staffManager.GetPositionCode(staff.CurrentPosition) == 1)
                {
                    err = AddOrNewWorkingCashier(staff, matchedScheduleID);
                }
                else if (staffManager.GetPositionCode(staff.CurrentPosition) == 2)
                {
                    err = AddOrUpdateNewWorkingManager(staff, matchedScheduleID);
                }
                else if (staffManager.GetPositionCode(staff.CurrentPosition) == 3)
                {
                    err = AddOrUpdateNewWorkingKeeper(staff, matchedScheduleID);
                }
                else if (staffManager.GetPositionCode(staff.CurrentPosition) == 4)
                {
                    err = AddOrUpdateNewWorkingStaff(staff, matchedScheduleID);
                }
                if (err != "")
                {
                    return(err);
                }
                staffManager.AddWorkingHours(staff.StaffID, ParameterManager.GetShiftHour());
            }

            return("");
        }