/// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        private void Insert(DirectEventArgs e)
        {
            DateTime?startTime = null;
            DateTime?endTime   = null;

            var modelTimeSheet = new TimeSheetCodeModel(null)
            {
                CreatedDate = DateTime.Now
            };

            //Edit data
            EditData(modelTimeSheet, ref startTime, ref endTime);

            var checkTime = TimeSheetCodeController.GetAll(null, null, null, txtTimeSheetCode.Text, null, true, startTime, endTime, null, null);

            if (checkTime != null && checkTime.Count > 0)
            {
                Dialog.Alert("Mã chấm công đã tồn tại. Vui lòng nhập mã chấm công khác!");
                return;
            }

            TimeSheetCodeController.Create(modelTimeSheet);

            if (e.ExtraParams["Close"] == "True")
            {
                wdTimeSheetCode.Hide();
                ResetForm();
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void EditTimeSheetCode_Click(object sender, DirectEventArgs e)
        {
            if (!int.TryParse(hdfKeyRecord.Text, out var id) || id <= 0)
            {
                return;
            }
            var modelTimeSheetCode = TimeSheetCodeController.GetById(id);

            if (modelTimeSheetCode != null)
            {
                txtTimeSheetCode.Text = modelTimeSheetCode.Code;
                dfStartTime.SetValue(modelTimeSheetCode.StartTime);
                dfEndTime.SetValue(modelTimeSheetCode.EndTime);
                hdfEmployeeSelectedId.Text = modelTimeSheetCode.RecordId.ToString();
                cbxSelectedEmployee.Text   = modelTimeSheetCode.FullName;
                chk_IsActive.Checked       = modelTimeSheetCode.IsActive;
                hdfTimeMachineId.Text      = modelTimeSheetCode.MachineId.ToString();
                cbxTimeMachine.Text        = modelTimeSheetCode.SerialNumber;
            }

            // show window
            btnUpdate.Show();
            btnUpdateClose.Hide();
            cbxSelectedEmployee.Disabled = true;

            wdTimeSheetCode.Title = @"Cập nhật mã chấm công";
            wdTimeSheetCode.Show();
        }
        /// <summary>
        ///
        /// </summary>
        private void Update()
        {
            if (!string.IsNullOrEmpty(hdfKeyRecord.Text))
            {
                DateTime?startTime = null;
                DateTime?endTime   = null;

                var modelTimeSheet       = TimeSheetCodeController.GetById(Convert.ToInt32(hdfKeyRecord.Text));
                var currentTimeSheetCode = string.Empty;

                if (modelTimeSheet != null)
                {
                    modelTimeSheet.EditedDate = DateTime.Now;
                    currentTimeSheetCode      = modelTimeSheet.Code;
                    //Edit data
                    EditData(modelTimeSheet, ref startTime, ref endTime);
                }

                var checkTime = TimeSheetCodeController.GetAll(null, null, null, txtTimeSheetCode.Text, null, true, startTime, endTime, null, null);

                if (checkTime.IsNullOrEmpty() || currentTimeSheetCode == txtTimeSheetCode.Text)
                {
                    TimeSheetCodeController.Update(modelTimeSheet);
                    Dialog.Alert("Cập nhật thành công");
                }
                else
                {
                    Dialog.Alert("Mã chấm công đã tồn tại. Vui lòng nhập mã chấm công khác!");
                    return;
                }
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="directEventArgs"></param>
 protected void Delete(object sender, DirectEventArgs directEventArgs)
 {
     if (!int.TryParse(hdfKeyRecord.Text, out var id) || id <= 0)
     {
         return;
     }
     TimeSheetCodeController.Delete(id);
     gridTimeSheetCode.Reload();
 }
        public void UpdateDuplicate(string json)
        {
            var timeSheetCode = JSON.Deserialize <hr_TimeSheetCode>(json);

            var editTimeSheetCodeModel = TimeSheetCodeController.GetUnique(timeSheetCode.RecordId, null, true);

            if (editTimeSheetCodeModel == null)
            {
                return;
            }
            timeSheetCode.Id = editTimeSheetCodeModel.Id;
            //update
            TimeSheetCodeController.Update(new TimeSheetCodeModel(timeSheetCode));
        }
Example #6
0
 /// <summary>
 /// Tạo bảng tính lương
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void ChooseSalaryBoardList_Click(Object sender, DirectEventArgs e)
 {
     try
     {
         if (!string.IsNullOrEmpty(hdfSalaryBoardListID.Text))
         {
             hdfSalaryBoardId.Text = hdfSalaryBoardListID.Text;
             //Lay danh sach bang luong
             var boardList = hr_SalaryBoardListServices.GetById(Convert.ToInt32(hdfSalaryBoardListID.Text));
             if (boardList != null)
             {
                 //TH ton tai bang luong roi thi hien thi
                 //TH chua ton tai bang luong thi di tao moi bang luong
                 var salaryBoard = hr_SalaryBoardDynamicServices.GetSalaryBoardDynamicByBoardId(boardList.Id);
                 if (salaryBoard == null)
                 {
                     //Lay danh sach nhan vien cua don vi can tinh bang luong
                     var listRecordId = TimeSheetCodeController.GetAll(null, null, boardList.DepartmentId, null,
                                                                       null, true, null, null, null, null);
                     foreach (var item in listRecordId)
                     {
                         //Tao moi bang tinh luong
                         var salaryBoardDynamic = new hr_SalaryBoardDynamic();
                         salaryBoardDynamic.SalaryBoardId = boardList.Id;
                         //Lay ID bang cham cong
                         //var timeSheet = hr_TimeSheetReportServices.GetTimeSheetReport(boardList.DepartmentId,
                         //    boardList.Month, boardList.Year, hdfType.Text);
                         //if (timeSheet != null)
                         //    salaryBoardDynamic.TimeSheetReportId = timeSheet.Id;
                         salaryBoardDynamic.RecordId    = item.RecordId;
                         salaryBoardDynamic.CreatedBy   = CurrentUser.User.UserName;
                         salaryBoardDynamic.CreatedDate = DateTime.Now;
                         hr_SalaryBoardDynamicServices.Create(salaryBoardDynamic);
                     }
                 }
                 gridSalaryInfo.Reload();
             }
         }
     }
     catch (Exception ex)
     {
         Dialog.ShowNotification("Có lỗi xảy ra" + ex.Message);
     }
 }
        /// <summary>
        /// Read data from excel file and save to db
        /// </summary>
        /// <param name="dataTable"></param>
        /// <param name="currentRow"></param>
        private void MainProcess(DataTable dataTable, int currentRow)
        {
            // Finish import file
            if (currentRow >= dataTable.Rows.Count)
            {
                Dialog.Alert("Success");
                gridTimeSheetCode.Reload();
                txtSheetName.Clear();
                txtFromRow.Clear();
                txtToRow.Clear();
                return;
            }

            count++;

            var listRecordId = TimeSheetCodeController.GetAll(null, null, null, null, null, true, null, null, null, null);

            var timeSheetCode = new hr_TimeSheetCode()
            {
                StartTime   = DateTime.Now,
                IsActive    = true,
                CreatedDate = DateTime.Now,
                CreatedBy   = CurrentUser.User.DisplayName,
            };

            foreach (DataColumn col in dataTable.Columns)
            {
                switch (col.ColumnName)
                {
                case nameof(TimeSheetCodeModel.EmployeeCode):
                    var record = RecordController.GetByEmployeeCode(dataTable.Rows[currentRow][col].ToString());
                    if (record != null)
                    {
                        timeSheetCode.RecordId = record.Id;
                    }
                    break;

                default:
                    var reg     = @"\(([^)]*)\)";
                    var propVal = dataTable.Rows[currentRow][col];
                    if (Regex.IsMatch(propVal.ToString(), reg))
                    {
                        propVal = Regex.Match(propVal.ToString(), reg).Groups[1].Value;
                    }
                    //get the property information based on the type
                    var propInfo = timeSheetCode.GetType().GetProperty(col.ColumnName);
                    //find the property type
                    if (propInfo == null)
                    {
                        continue;
                    }
                    if (!propInfo.CanWrite)
                    {
                        continue;
                    }
                    var propType = propInfo.PropertyType;

                    //equivalent to the specified object.
                    if (propType.IsEnum)
                    {
                        propVal = Enum.ToObject(propType, int.Parse(propVal.ToString()));
                    }
                    if (propType.Name == typeof(Nullable <>).Name)
                    {
                        if (Nullable.GetUnderlyingType(propType) == typeof(DateTime))
                        {
                            if (!DateTime.TryParseExact(propVal.ToString(), "dd/MM/yyyy",
                                                        CultureInfo.CurrentCulture, DateTimeStyles.None, out var date))
                            {
                                break;
                            }
                            propVal = Convert.ChangeType(date, typeof(DateTime));
                        }
                        else
                        {
                            propVal = Convert.ChangeType(propVal, Nullable.GetUnderlyingType(propType));
                        }
                    }
                    else
                    {
                        propVal = Convert.ChangeType(propVal, propType);
                    }
                    //Set the value of the property
                    propInfo.SetValue(timeSheetCode, propVal, null);
                    break;
                }
            }

            // Check if RecordId exists in TimeSheetCode table
            if (!string.IsNullOrEmpty(timeSheetCode.Code))
            {
                // create model
                var timeSheetCodeMode = new TimeSheetCodeModel(timeSheetCode);
                if (listRecordId.All(tsc => tsc.RecordId != timeSheetCode.RecordId))
                {
                    TimeSheetCodeController.Create(timeSheetCodeMode);
                    ContinueProcess(count);
                }
                else
                {
                    var timeSheetCodeJson = JSON.Serialize(timeSheetCode);

                    hdfTimeSheetCode.Text = timeSheetCodeJson;

                    // Open Messagebox
                    RM.RegisterClientScriptBlock("confirm",
                                                 "showResult(" + count + ", '" + (string.IsNullOrEmpty(timeSheetCodeMode.EmployeeCode) ? "0" : timeSheetCodeMode.EmployeeCode) +
                                                 "', '" + (string.IsNullOrEmpty(timeSheetCodeMode.FullName) ? "0" : timeSheetCodeMode.FullName) + "');");
                }
            }
        }
Example #8
0
        public void SelectSalaryBoard()
        {
            if (!string.IsNullOrEmpty(hdfSalaryBoardListId.Text))
            {
                //Lay danh sach bang luong
                var boardList = hr_SalaryBoardListServices.GetById(Convert.ToInt32(hdfSalaryBoardListId.Text));
                if (boardList != null)
                {
                    //TH chua ton tai bang luong thi di tao moi bang luong
                    var salaryBoard = SalaryBoardInfoController.GetAllBoardInfo(hdfSalaryBoardListId.Text);
                    if (salaryBoard != null && salaryBoard.Count <= 0)
                    {
                        //Lay danh sach nhan vien cua don vi can tinh bang luong
                        var listRecordId = TimeSheetCodeController.GetAll(null, null, boardList.DepartmentId, null,
                                                                          null, true, null, null, null, null);
                        foreach (var item in listRecordId)
                        {
                            //Tao moi bang tinh luong
                            var salaryInfo = new hr_SalaryBoardInfo()
                            {
                                SalaryBoardId = boardList.Id,
                                RecordId      = item.RecordId,
                                CreatedDate   = DateTime.Now,
                            };
                            //Lay tu timeSheet
                            GetDataFromTimeSheet(boardList, salaryInfo);

                            //Lay tu sal_SalaryDecision
                            GetDataFromSalary(item, salaryInfo);
                            hr_SalaryBoardInfoServices.Create(salaryInfo);
                        }
                    }
                    else
                    {
                        if (chk_IsUpdateTimeSheet.Checked)
                        {
                            //Truong hop da co bang luong, thi cap nhat lai du lieu tu cham cong cho moi recordId
                            foreach (var salary in salaryBoard)
                            {
                                var salaryInfo = hr_SalaryBoardInfoServices.GetById(salary.Id);

                                //Lay tu timeSheet
                                GetDataFromTimeSheet(boardList, salaryInfo);
                                //Update
                                hr_SalaryBoardInfoServices.Update(salaryInfo);
                            }
                        }

                        if (chk_IsUpdateSalary.Checked)
                        {
                            //Truong hop da co bang luong, thi cap nhat lai du lieu tu luong cho moi recordId
                            foreach (var salary in salaryBoard)
                            {
                                var salaryInfo = hr_SalaryBoardInfoServices.GetById(salary.Id);

                                //Lay tu sal_SalaryDecision
                                EditDataSalary(salary.RecordId, salaryInfo);

                                //Update
                                hr_SalaryBoardInfoServices.Update(salaryInfo);
                            }
                        }
                    }
                }
                Response.Redirect("~/Modules/Salary/SalaryBoardInfo.aspx?id=" + hdfSalaryBoardListId.Text);
            }
        }