Ejemplo n.º 1
0
        /// <summary>
        /// Lưu phụ cấp
        /// </summary>
        /// <param name="model"></param>
        private void ProcessAllowance(SalaryDecisionModel model)
        {
            // check edit data
            if (string.IsNullOrEmpty(hdfEditData.Text))
            {
                return;
            }

            // get list data
            var allowances = JSON.Deserialize <List <SalaryAllowanceModel> >(hdfEditData.Text);

            // group latest salary allowance by code
            allowances = allowances.GroupBy(r => r.AllowanceCode)
                         .Select(g => g.OrderByDescending(c => c.CreatedDate).FirstOrDefault()).ToList();

            // create and update
            foreach (var allowance in allowances)
            {
                if (allowance.Id == 0)
                {
                    allowance.SalaryDecisionId = model.Id;
                    SalaryAllowanceController.Create(allowance);
                }
                else
                {
                    SalaryAllowanceController.Update(allowance);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void storeAllowanceCatalog_OnRefreshData(object sender, StoreRefreshDataEventArgs e)
        {
            try
            {
                var salaryAllowances = new List <SalaryAllowanceModel>();
                if (!string.IsNullOrEmpty(hdfId.Text) && int.Parse(hdfId.Text) > 0)
                {
                    salaryAllowances = SalaryAllowanceController.GetAll(null, int.Parse(hdfId.Text), null, null, null);
                }

                storeAllowanceCatalog.DataSource = CreateSalaryAllowanceTable(salaryAllowances);
                storeAllowanceCatalog.DataBind();
            }
            catch (Exception ex)
            {
                Dialog.ShowError(ex.Message);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnUpdateImportExcel_Click(object sender, DirectEventArgs e)
        {
            var workbook = new WorkBook();

            if (fileExcel.HasFile)
            {
                var path = UploadFile(fileExcel, Constant.PathTemplate);
                if (path != null)
                {
                    // init list changes
                    var allowanceChanges = new List <SalaryAllowanceModel>();
                    // Read data from excel
                    workbook.readXLSX(Path.Combine(Server.MapPath("~/"), Constant.PathTemplate, path));

                    // Export to data table
                    var dataTable = workbook.ExportDataTable(0,                    //first row
                                                             0,                    //first col
                                                             workbook.LastRow + 1, //last row
                                                             workbook.LastCol + 1, //last col
                                                             true,                 //first row as header
                                                             false                 //convert to DateTime object if it match date pattern
                                                             );

                    foreach (DataRow row in dataTable.Rows)
                    {
                        // get value from cell
                        var allowanceCode    = row[nameof(SalaryAllowanceModel.AllowanceCode)].ToString();
                        var allowanceName    = row[nameof(SalaryAllowanceModel.AllowanceName)].ToString();
                        var factor           = row[nameof(SalaryAllowanceModel.Factor)].ToString();
                        var percent          = row[nameof(SalaryAllowanceModel.Percent)].ToString();
                        var value            = row[nameof(SalaryAllowanceModel.Value)].ToString();
                        var salaryDecisionId = int.TryParse(hdfId.Text, out var result) && result > 0 ? result : 0;

                        // check condition
                        if (string.IsNullOrEmpty(allowanceCode))
                        {
                            continue;
                        }
                        if (!decimal.TryParse(factor, out var factorResult))
                        {
                            continue;
                        }
                        if (!decimal.TryParse(percent, out var percentResult))
                        {
                            continue;
                        }
                        if (!decimal.TryParse(value, out var valueResult))
                        {
                            continue;
                        }

                        // get catalog by code
                        var catalogAllowance = CatalogAllowanceController.GetByCode(allowanceCode);

                        if (catalogAllowance == null)
                        {
                            continue;
                        }

                        // init model
                        var salaryAllowance = new SalaryAllowanceModel();

                        // get allowance by decision and code
                        var salaryAllowances = SalaryAllowanceController.GetAll(null, salaryDecisionId, allowanceCode, null, 1);
                        if (salaryAllowances.Any())
                        {
                            salaryAllowance = salaryAllowances.First();
                        }
                        else
                        {
                            salaryAllowance.Id            = 0;
                            salaryAllowance.AllowanceCode = allowanceCode;
                        }

                        // check are there any changes
                        if (salaryAllowance.Factor != factorResult || salaryAllowance.Percent != percentResult ||
                            salaryAllowance.Value != valueResult)
                        {
                            // set value
                            salaryAllowance.AllowanceName = allowanceName;
                            salaryAllowance.Factor        = factorResult;
                            salaryAllowance.Percent       = percentResult;
                            salaryAllowance.Value         = valueResult;
                            // save data to hidden field
                            SaveEditData(JSON.Serialize(salaryAllowance));
                            // add data to list changes
                            allowanceChanges.Add(salaryAllowance);
                        }

                        if (salaryAllowance.Factor != 0 || salaryAllowance.Percent != 0 || salaryAllowance.Value != 0)
                        {
                            allowanceChanges.Add(salaryAllowance);
                        }
                    }
                    // hide window
                    wdExcel.Hide();
                    // bind data
                    storeAllowanceCatalog.DataSource = CreateSalaryAllowanceTable(allowanceChanges);
                    storeAllowanceCatalog.DataBind();
                }
                Dialog.ShowNotification("Thêm thành công");
            }
            else
            {
                Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void DownloadTemplate_Click(object sender, DirectEventArgs e)
        {
            // get allowance
            var salaryAllowances = new List <SalaryAllowanceModel>();

            if (!string.IsNullOrEmpty(hdfId.Text) && int.Parse(hdfId.Text) > 0)
            {
                salaryAllowances = SalaryAllowanceController.GetAll(null, int.Parse(hdfId.Text), null, null, null);
            }
            // init table
            var workBook  = new WorkBook();
            var dataTable = CreateSalaryAllowanceTable(salaryAllowances);
            // fixed column
            var fixedColumnNames = new[]
            {
                nameof(SalaryAllowanceModel.AllowanceName),
                nameof(SalaryAllowanceModel.AllowanceCode),
                nameof(SalaryAllowanceModel.Factor),
                nameof(SalaryAllowanceModel.Percent),
                nameof(SalaryAllowanceModel.Value)
            };
            var fixedColumns = new Dictionary <string, string>
            {
                { nameof(SalaryAllowanceModel.AllowanceName), "Tên phụ cấp" },
                { nameof(SalaryAllowanceModel.AllowanceCode), "Mã phụ cấp" },
                { nameof(SalaryAllowanceModel.Factor), "Hệ số" },
                { nameof(SalaryAllowanceModel.Percent), "Phần trăm" },
                { nameof(SalaryAllowanceModel.Value), "Giá trị" }
            };

            var data = new DataTable();

            data.Rows.Add();
            data.Rows.Add();
            foreach (var item in fixedColumns)
            {
                var col = data.Columns.Add();
                col.ColumnName    = item.Key;
                data.Rows[0][col] = item.Value;
                data.Rows[1][col] = item.Key;
            }

            data.Merge(dataTable);
            // delete column
            var deleteColumnNames = new List <string>();

            // add remove column to list
            foreach (DataColumn column in dataTable.Columns)
            {
                if (fixedColumnNames.Contains(column.ColumnName))
                {
                    continue;
                }
                deleteColumnNames.Add(column.ColumnName);
            }
            // remove column
            deleteColumnNames.ForEach(col => dataTable.Columns.Remove(col));
            // set allowance name
            dataTable.Columns[nameof(SalaryAllowanceModel.AllowanceName)].SetOrdinal(0);

            workBook.ImportDataTable(dataTable, true, 0, 0, dataTable.Rows.Count + 1, dataTable.Columns.Count + 1);

            ExportToExcel(dataTable, "~/" + Constant.PathTemplate, ImportAllowanceExcelFile);
        }