Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Delete(object sender, DirectEventArgs e)
        {
            // delete symbol
            if (!int.TryParse(hdfKeyRecord.Text, out var id) || id <= 0)
            {
                return;
            }
            TimeSheetSymbolController.Delete(id);

            // get all event have that symbol
            var timeSheetEvents = TimeSheetEventController.GetAll(null, null, null, null, null, id, false, null, null,
                                                                  null, null, null, null, null);

            // delete time sheet event
            if (timeSheetEvents != null)
            {
                foreach (var timeSheetEvent in timeSheetEvents)
                {
                    TimeSheetEventController.Delete(timeSheetEvent.Id);
                }
            }

            // reload
            gridTimeSheetSymbol.Reload();
            RM.RegisterClientScriptBlock("Grid_Reload", "ReloadGrid();");
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Delete_Click(object sender, DirectEventArgs e)
        {
            if (!string.IsNullOrEmpty(hdfMonth.Text) && !string.IsNullOrEmpty(hdfYear.Text))
            {
                if (!string.IsNullOrEmpty(hdfTimeSheetGroupListId.Text))
                {
                    var groupWorkShiftId = Convert.ToInt32(hdfTimeSheetGroupListId.Text);

                    //get all detail workShift
                    var order        = " [StartDate] ASC ";
                    var lstWorkShift =
                        TimeSheetWorkShiftController.GetAll(null, false, groupWorkShiftId, null, null, null, null, Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text), order, null);

                    var listWorkShiftIds = lstWorkShift.Select(ws => ws.Id).ToList();
                    if (listWorkShiftIds.Count > 0)
                    {
                        TimeSheetEventController.DeleteByCondition(listWorkShiftIds, null, null, null, TimeSheetAdjustmentType.Default);
                    }

                    //Update status schedule create new timeSheet
                    var scheduler = SchedulerServices.GetSchedulerByName();
                    if (scheduler != null)
                    {
                        scheduler.Status    = SchedulerStatus.Ready;
                        scheduler.Arguments = "-m {0} -y {1} -groupWorkShiftId {2}".FormatWith(hdfMonth.Text, hdfYear.Text, hdfTimeSheetGroupListId.Text);

                        SchedulerServices.Update(scheduler);
                    }
                }

                wdWindow.Hide();
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnDeleteTime_Click(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(hdfUpdateTimeSheetEventId.Text))
                {
                    return;
                }
                var id = int.Parse(hdfUpdateTimeSheetEventId.Text);

                // delete
                var deletedTimeSheetEvent = TimeSheetEventController.Delete(id);

                // get symbol group
                var timeSheetGroupSymbol = TimeSheetGroupSymbolController.GetById(deletedTimeSheetEvent.GroupSymbolId);

                // update annual leave
                if (timeSheetGroupSymbol.Group == Constant.TimesheetLeave)
                {
                    // get annual leave history by record id and event id
                    var annualLeaveHistorys = AnnualLeaveHistoryController.GetAll(null,
                                                                                  deletedTimeSheetEvent.RecordId.ToString(), deletedTimeSheetEvent.Id, false, null, 1);
                    if (annualLeaveHistorys != null && annualLeaveHistorys.Count > 0)
                    {
                        // delete annual leave history
                        var annualLeaveHistory = AnnualLeaveHistoryController.Delete(annualLeaveHistorys.First().Id);

                        // get annual leave config by record id and year
                        var annualLeaveConfigures = AnnualLeaveConfigureController.GetAll(null, annualLeaveHistory.RecordId.ToString(), null,
                                                                                          annualLeaveHistory.UsedLeaveDate.Year, false, null, 1);
                        if (annualLeaveConfigures != null && annualLeaveConfigures.Count > 0)
                        {
                            // get first item
                            var annualLeaveConfigure = annualLeaveConfigures.First();

                            // calc used and remain leave day
                            annualLeaveConfigure.UsedLeaveDay -= annualLeaveHistory.UsedLeaveDay;
                            if (annualLeaveConfigure.AnnualLeaveDay > 0)
                            {
                                annualLeaveConfigure.RemainLeaveDay =
                                    annualLeaveConfigure.AnnualLeaveDay - annualLeaveConfigure.UsedLeaveDay;
                            }
                            annualLeaveConfigure.EditedBy = CurrentUser.User.UserName;

                            // update annual leave configure
                            AnnualLeaveConfigureController.Update(annualLeaveConfigure);
                        }
                    }
                }

                gridUpdateTimeSheet.Reload();
                gridTimeSheet.Reload();
            }
            catch (Exception ex)
            {
                Dialog.ShowNotification("Có lỗi xảy ra" + ex.Message);
            }
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="resultModel"></param>
        /// <param name="isInsert"></param>
        /// <returns></returns>
        private List <TimeSheetEventModel> GetAllEvents(PayrollModel resultModel, bool isInsert)
        {
            // get event by record id
            var    startDate = new DateTime(resultModel.Year, resultModel.Month, 1);
            var    endDate   = startDate.AddMonths(1).AddDays(-1);
            string recordIds;

            //TH insert
            if (isInsert)
            {
                recordIds = string.Join(",",
                                        chkEmployeeRowSelection.SelectedRows.Select(rc => Convert.ToInt32(rc.RecordID)).ToList());
            }
            else
            {
                recordIds = string.Join(",",
                                        SalaryBoardInfoController.GetAll(null, resultModel.Id.ToString(), null, null).ToList()
                                        .Select(sb => sb.RecordId));
            }
            //get all events
            var listEvents = TimeSheetEventController.GetAll(null, recordIds, null, null, null, null, false, null, startDate, endDate, null, null, null, null);

            return(listEvents);
        }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAccept_Click(object sender, DirectEventArgs e)
        {
            try
            {
                foreach (var workShift in chkWorkShiftRowSelection.SelectedRows)
                {
                    foreach (var symbol in chkSelectionModelSymbol.SelectedRows)
                    {
                        var timeSheetSymbol      = TimeSheetSymbolController.GetById(int.Parse(symbol.RecordID));
                        var timeSheetGroupSymbol =
                            TimeSheetGroupSymbolController.GetById(timeSheetSymbol.GroupSymbolId);
                        var timeSheetEvent = new TimeSheetEventModel
                        {
                            RecordId      = int.Parse(hdfRecordId.Text),
                            WorkShiftId   = int.Parse(workShift.RecordID),
                            SymbolId      = timeSheetSymbol.Id,
                            GroupSymbolId = timeSheetSymbol.GroupSymbolId,
                            WorkConvert   = timeSheetSymbol.WorkConvert,
                            TimeConvert   = timeSheetSymbol.TimeConvert,
                            Type          = timeSheetGroupSymbol.Group == Constant.TimesheetOverTime
                                ? TimeSheetAdjustmentType.AdjustmentOverTime
                                : TimeSheetAdjustmentType.Adjustment,
                            Description = timeSheetGroupSymbol.Group == Constant.TimesheetOverTime
                                ? "Thêm giờ"
                                : "Hiệu chỉnh"
                        };
                        var newTimeSheetEvent = TimeSheetEventController.Create(timeSheetEvent);

                        // update annual leave
                        if (timeSheetGroupSymbol.Group == Constant.TimesheetLeave)
                        {
                            // update annual leave history
                            var annualLeaveHistory = new AnnualLeaveHistoryModel
                            {
                                RecordId         = newTimeSheetEvent.RecordId,
                                TimeSheetEventId = newTimeSheetEvent.Id,
                                UsedLeaveDate    = newTimeSheetEvent.StartDate,
                                UsedLeaveDay     = newTimeSheetEvent.WorkConvert,
                                CreatedBy        = CurrentUser.User.UserName
                            };
                            AnnualLeaveHistoryController.Create(annualLeaveHistory);

                            // get annual leave configure by record id and year
                            var annualLeaveConfigures = AnnualLeaveConfigureController.GetAll(null, annualLeaveHistory.RecordId.ToString(), null,
                                                                                              annualLeaveHistory.UsedLeaveDate.Year, false, null, 1);

                            if (annualLeaveConfigures == null || annualLeaveConfigures.Count == 0)
                            {
                                continue;
                            }

                            // get first item in list
                            var annualLeaveConfigure = annualLeaveConfigures.First();

                            // calc used and remain leave day
                            annualLeaveConfigure.UsedLeaveDay += annualLeaveHistory.UsedLeaveDay;
                            if (annualLeaveConfigure.AnnualLeaveDay > 0)
                            {
                                annualLeaveConfigure.RemainLeaveDay =
                                    annualLeaveConfigure.AnnualLeaveDay - annualLeaveConfigure.UsedLeaveDay;
                            }
                            annualLeaveConfigure.EditedBy = CurrentUser.User.UserName;

                            // update annual leave configure
                            AnnualLeaveConfigureController.Update(annualLeaveConfigure);
                        }
                    }
                }
                gridTimeSheet.Reload();
                gridUpdateTimeSheet.Reload();
            }
            catch (Exception ex)
            {
                Dialog.ShowNotification("Có lỗi xảy ra" + ex.Message);
            }
        }
Пример #6
0
        protected void Delete(object sender, DirectEventArgs e)
        {
            try
            {
                // init id
                var param = e.ExtraParams["Id"];
                // parse id
                if (!int.TryParse(param, out var id) || id <= 0)
                {
                    // parse error, show error
                    Dialog.ShowError("Có lỗi xảy ra trong quá trình xử lý");
                    return;
                }
                // delete
                var deletedTimeSheetEvent = TimeSheetEventController.Delete(id);

                // get symbol group
                var timeSheetGroupSymbol = TimeSheetGroupSymbolController.GetById(deletedTimeSheetEvent.GroupSymbolId);

                // update annual leave
                if (timeSheetGroupSymbol.Group == Constant.TimesheetLeave)
                {
                    // get annual leave history by record id and event id
                    var annualLeaveHistorys = AnnualLeaveHistoryController.GetAll(null,
                                                                                  deletedTimeSheetEvent.RecordId.ToString(), deletedTimeSheetEvent.Id, false, null, 1);
                    if (annualLeaveHistorys != null && annualLeaveHistorys.Count > 0)
                    {
                        // delete annual leave history
                        var annualLeaveHistory = AnnualLeaveHistoryController.Delete(annualLeaveHistorys.First().Id);

                        // get annual leave config by record id and year
                        var annualLeaveConfigures = AnnualLeaveConfigureController.GetAll(null, annualLeaveHistory.RecordId.ToString(), null,
                                                                                          annualLeaveHistory.UsedLeaveDate.Year, false, null, 1);
                        if (annualLeaveConfigures != null && annualLeaveConfigures.Count > 0)
                        {
                            // get first item
                            var annualLeaveConfigure = annualLeaveConfigures.First();

                            // calc used and remain leave day
                            annualLeaveConfigure.UsedLeaveDay -= annualLeaveHistory.UsedLeaveDay;
                            if (annualLeaveConfigure.AnnualLeaveDay > 0)
                            {
                                annualLeaveConfigure.RemainLeaveDay =
                                    annualLeaveConfigure.AnnualLeaveDay - annualLeaveConfigure.UsedLeaveDay;
                            }
                            annualLeaveConfigure.EditedBy = CurrentUser.User.UserName;

                            // update annual leave configure
                            AnnualLeaveConfigureController.Update(annualLeaveConfigure);
                        }
                    }
                }

                // reload data
                gridTimeAdjust.Reload();
            }
            catch (Exception exception)
            {
                Dialog.ShowError(exception);
            }
        }