Пример #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="recordId"></param>
        /// <param name="workShiftModel"></param>
        /// <param name="timeConvert"></param>
        private void ProcessOverTime(int recordId, TimeSheetWorkShiftModel workShiftModel, double timeConvert)
        {
            var overTimeConvert = Math.Round((timeConvert - workShiftModel.TimeConvert), 2);

            //Add moi timeSheetEvent
            var groupSymbolCondition = "[Group]='{0}'".FormatWith(Constant.TimesheetOverTime);
            var groupSymbol          = hr_TimeSheetGroupSymbolServices.GetByCondition(groupSymbolCondition);

            if (groupSymbol != null)
            {
                var symbol = TimeSheetSymbolController.GetByCondition(null, groupSymbol.Id);
                if (symbol != null)
                {
                    CreateTimeSheetEvent(recordId, workShiftModel.Id, groupSymbol.Id, symbol.Id, 0, overTimeConvert, symbol.Name);
                }
            }
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        private void UpdateSymbol()
        {
            if (string.IsNullOrEmpty(hdfKeyRecord.Text))
            {
                return;
            }
            var symbol = TimeSheetSymbolController.GetById(Convert.ToInt32(hdfKeyRecord.Text));

            EditDataSymbol(symbol);
            if (TimeSheetSymbolController.Update(symbol) == null)
            {
                Dialog.Alert("Ký hiệu chấm công đã tồn tại! Vui lòng chọn ký hiệu chấm công khác!");
                return;
            }
            wdTimeSheetSymbol.Hide();
            ResetForm();
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void EditTimeSheetSymbol_Click(object sender, DirectEventArgs e)
        {
            if (!string.IsNullOrEmpty(hdfKeyRecord.Text))
            {
                var symbol = TimeSheetSymbolController.GetById(Convert.ToInt32(hdfKeyRecord.Text));
                if (symbol != null)
                {
                    txtNumberOfDay.Text = (symbol.WorkConvert.ToString(CultureInfo.InvariantCulture).Replace("-", "")).Replace(".", ",");
                    txtTimeConvert.Text = symbol.TimeConvert.ToString(CultureInfo.InvariantCulture).Replace(".", ",");
                    chk_Status.Checked  = symbol.Status == TimeSheetStatus.Active;
                    txtSymbolCode.Text  = symbol.Code;
                    txtSymbolName.Text  = symbol.Name;
                    if (!string.IsNullOrEmpty(symbol.Color))
                    {
                        dropDownSymbol.Text = symbol.Color.TrimStart('#');
                    }
                    txtNote.Text          = symbol.Description;
                    txtOrder.Text         = symbol.Order.ToString();
                    hdfGroupSymbolId.Text = symbol.GroupSymbolId.ToString();
                    cbxGroupSymbol.Text   = symbol.GroupSymbolName;
                    if (!symbol.TypeWork)
                    {
                        chkAddWork.Checked = true;
                    }
                    else
                    {
                        chkMinusWork.Checked = true;
                    }
                }
            }

            // show window
            btnUpdate.Show();
            btnUpdateClose.Hide();
            btnUpdateNew.Hide();
            wdTimeSheetSymbol.Title = @"Cập nhật ký hiệu chấm công";
            wdTimeSheetSymbol.Show();
        }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        private void InsertSymbol(DirectEventArgs e)
        {
            var symbol = new TimeSheetSymbolModel(new hr_TimeSheetSymbol
            {
                Code        = txtSymbolCode.Text,
                CreatedDate = DateTime.Now,
                CreatedBy   = CurrentUser.User.UserName
            });

            //edit data
            EditDataSymbol(symbol);

            if (TimeSheetSymbolController.Create(symbol) == null)
            {
                Dialog.Alert("Ký hiệu chấm công đã tồn tại! Vui lòng chọn ký hiệu chấm công khác!");
                return;
            }
            if (e.ExtraParams["Close"] != "True")
            {
                return;
            }
            wdTimeSheetSymbol.Hide();
            ResetForm();
        }
Пример #6
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);
            }
        }