/// <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);
            }
        }
        /// <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);
            }
        }
Example #3
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);
            }
        }