Example #1
0
        /// <summary>
        /// init setting window
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void InitWindow(object sender, DirectEventArgs e)
        {
            try
            {
                //reset form
                ResetForm();

                // init window props
                if (e.ExtraParams["Command"] == "Update")
                {
                    // edit
                    wdSetting.Title = @"Cập nhật tham số KPI cho nhân viên";
                    wdSetting.Icon  = Icon.Pencil;
                    if (!string.IsNullOrEmpty(e.ExtraParams["Id"]))
                    {
                        var model = EmployeeArgumentController.GetById(Convert.ToInt32(e.ExtraParams["Id"]));
                        if (model != null)
                        {
                            // set props
                            hdfChooseEmployee.Text = model.RecordId.ToString();
                            cboEmployee.Text       = model.FullName;
                            txtValue.Text          = model.Value;
                            hdfArgumentId.Text     = model.ArgumentId.ToString();
                            cboArgument.Text       = model.ArgumentName;
                            txtValueType.Text      = model.ValueTypeName;
                            cboMonth.Text          = @"Tháng " + model.Month;
                            hdfYear.Text           = model.Year.ToString();
                            spnYear.SetValue(model.Year);
                            hdfGroupInput.Text = model.GroupId.ToString();
                            cboGroupInput.Text = model.GroupName;
                        }
                    }
                }
                else
                {
                    // insert
                    wdSetting.Title      = @"Thêm mới tham số KPI cho nhân viên";
                    wdSetting.Icon       = Icon.Add;
                    cboArgument.Disabled = false;
                    cboEmployee.Disabled = false;
                    cboMonth.Disabled    = false;
                    spnYear.Disabled     = false;
                }

                // show window
                wdSetting.Show();
            }
            catch (Exception exception)
            {
                Dialog.ShowError(exception);
            }
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <param name="criterion"></param>
        /// <param name="groupId"></param>
        private static void GetValueCriterionWorkbook(EvaluationModel model, CriterionModel criterion, int?groupId)
        {
            var empArgument =
                EmployeeArgumentController.GetAll(null, null, groupId, model.RecordId, model.Month, model.Year, null, null);
            var workbook = new WorkBook {
                AutoCalc = false
            };

            foreach (var argument in empArgument)
            {
                switch (argument.ValueType)
                {
                case KpiValueType.String:
                    workbook.setText($"{argument.ArgumentCalculateCode}1", argument.Value);
                    break;

                case KpiValueType.Number:
                    workbook.setNumber($"{argument.ArgumentCalculateCode}1",
                                       double.TryParse(argument.Value, out var parseResultNumber) ? parseResultNumber : 0);
                    break;

                case KpiValueType.Percent:
                    workbook.setFormula($"{argument.ArgumentCalculateCode}1",
                                        double.TryParse(argument.Value, out var parseResultPercent) ? $"{parseResultPercent} * 0.01" : "0");
                    break;

                case KpiValueType.Formula:
                    workbook.setFormula($"{argument.ArgumentCalculateCode}1", argument.Value.TrimStart('='));
                    break;
                }
            }

            workbook.setFormula("A1", criterion.Formula.TrimStart('='));

            workbook.recalc();

            switch (criterion.ValueType)
            {
            case KpiValueType.Number:
                model.Value = workbook.getNumber("A1").ToString("#,##0.##");
                break;

            case KpiValueType.Percent:
                model.Value = (workbook.getNumber("A1") * 100).ToString("0.00");
                break;

            default:
                model.Value = workbook.getText("A1");
                break;
            }
        }
Example #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void InitDeleteMultiple(object sender, DirectEventArgs e)
 {
     try
     {
         var recordIds = hdfRecordIds.Text.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
         if (recordIds.Count > 0 && !string.IsNullOrEmpty(hdfMonth.Text) && !string.IsNullOrEmpty(hdfYear.Text))
         {
             //delete
             EmployeeArgumentController.DeleteByCondition(recordIds, null, null, Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text));
         }
         gpEmployeeArgument.Reload();
     }
     catch (Exception exception)
     {
         Dialog.ShowError(exception);
     }
 }
Example #4
0
        /// <summary>
        /// Delete
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Delete(object sender, DirectEventArgs e)
        {
            try
            {
                if (!string.IsNullOrEmpty(hdfRecordId.Text) && !string.IsNullOrEmpty(hdfMonth.Text) && !string.IsNullOrEmpty(hdfYear.Text))
                {
                    //delete
                    EmployeeArgumentController.DeleteByCondition(null, Convert.ToInt32(hdfRecordId.Text), null, Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text));
                }

                // reload data
                gpEmployeeArgument.Reload();
            }
            catch (Exception exception)
            {
                Dialog.ShowError(exception);
            }
        }
Example #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!ExtNet.IsAjaxRequest)
            {
                var data          = new List <object>();
                var employee      = EmployeeArgumentController.GetAll(null, null, null, null, null, null, null);
                var listRecordIds = employee.Select(rc => new { rc.RecordId, rc.FullName }).Distinct().ToList();
                var index         = 0;
                foreach (var item in listRecordIds)
                {
                    index++;
                    data.Add(new { ID = "{0}".FormatWith(item.RecordId), Name = item.FullName });
                }

                this.Store1.DataSource = data;
                this.Store1.DataBind();
            }
        }
Example #6
0
        public void InitWindowArgument(string argumentCode, string recordId)
        {
            try
            {
                wdSetting.Title = @"Cập nhật tham số KPI cho nhân viên";
                wdSetting.Icon  = Icon.Pencil;

                if (!string.IsNullOrEmpty(argumentCode) && !string.IsNullOrEmpty(recordId))
                {
                    var argument = ArgumentController.GetUnique(argumentCode, null);
                    if (argument != null)
                    {
                        var model = EmployeeArgumentController.GetUnique(Convert.ToInt32(hdfGroupFilter.Text), Convert.ToInt32(recordId), argument.Id, Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text));
                        if (model != null)
                        {
                            // set props
                            hdfChooseEmployee.Text = model.RecordId.ToString();
                            cboEmployee.Text       = model.FullName;
                            txtValue.Text          = model.Value;
                            hdfArgumentId.Text     = model.ArgumentId.ToString();
                            cboArgument.Text       = model.ArgumentName;
                            txtValueType.Text      = model.ValueTypeName;
                            cboMonth.Text          = @"Tháng " + model.Month;
                            hdfYear.Text           = model.Year.ToString();
                            spnYear.SetValue(model.Year);
                            hdfId.Text         = model.Id.ToString();
                            hdfGroupInput.Text = model.GroupId.ToString();
                            cboGroupInput.Text = model.GroupName;
                        }
                    }

                    cboArgument.Disabled = true;
                    cboEmployee.Disabled = true;
                    cboMonth.Disabled    = true;
                    spnYear.Disabled     = true;
                    //show window
                    wdSetting.Show();
                }
            }
            catch (Exception exception)
            {
                Dialog.ShowError(exception);
            }
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnUpdateImportExcel_Click(object sender, DirectEventArgs e)
        {
            var workbook = new WorkBook();

            // upload file

            if (fileExcel.HasFile)
            {
                var path = UploadFile(fileExcel, Constant.PathTemplate);
                if (path != null)
                {
                    // Read data from excel
                    workbook.readXLSX(Path.Combine(Server.MapPath("~/"), Constant.PathTemplate, path));

                    // Check validation workbook
                    if (CheckValidation(workbook, out _, out _, txtFromRow, txtToRow, txtSheetName) == false)
                    {
                        return;
                    }

                    // Export to datatable
                    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
                                                             );

                    var argumentModels = ArgumentController.GetAll(null, false, KpiStatus.Active, null, null, null);
                    foreach (DataRow row in dataTable.Rows)
                    {
                        //get employee code
                        var employeeCode = row[EmployeeCode].ToString();
                        if (string.IsNullOrEmpty(employeeCode))
                        {
                            continue;
                        }

                        // get record by employee code
                        var record = RecordController.GetByEmployeeCode(employeeCode);

                        foreach (DataColumn col in dataTable.Columns)
                        {
                            foreach (var argument in argumentModels)
                            {
                                //check column name exists
                                if (argument.Name != col.ColumnName)
                                {
                                    continue;
                                }

                                //check empty string
                                var value = Convert.ToString(row[col], CultureInfo.InvariantCulture);
                                if (string.IsNullOrEmpty(value))
                                {
                                    continue;
                                }

                                //check if value exists
                                var employeeArgument = EmployeeArgumentController.GetUnique(Convert.ToInt32(hdfGroup.Text), record.Id, argument.Id,
                                                                                            Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text));
                                if (employeeArgument != null)
                                {
                                    //update value
                                    employeeArgument.Value   = value;
                                    employeeArgument.GroupId = !string.IsNullOrEmpty(hdfGroup.Text)
                                        ? Convert.ToInt32(hdfGroup.Text)
                                        : 0;
                                    employeeArgument.EditedBy   = CurrentUser.User.UserName;
                                    employeeArgument.EditedDate = DateTime.Now;
                                    EmployeeArgumentController.Update(employeeArgument);
                                }
                                else
                                {
                                    var model = new EmployeeArgumentModel()
                                    {
                                        RecordId   = record.Id,
                                        ArgumentId = argument.Id,
                                        GroupId    = !string.IsNullOrEmpty(hdfGroup.Text)
                                            ? Convert.ToInt32(hdfGroup.Text)
                                            : 0,
                                        Month = Convert.ToInt32(hdfMonth.Text),
                                        Year  = Convert.ToInt32(hdfYear.Text),
                                        Value = value
                                    };

                                    EmployeeArgumentController.Create(model);
                                }
                            }
                        }
                    }
                    //reset
                    hdfGroup.Reset();
                    cboGroup.Reset();
                    hdfDepartmentId.Reset();
                    cboDepartment.Reset();
                }
            }
            else
            {
                Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                return;
            }

            Dialog.Alert("Cập nhật thành công");
            //Reset form excel
            fileExcel.Reset();
            txtSheetName.Reset();
            //reload grid
            gpEmployeeArgument.Reload();
        }
Example #8
0
        /// <summary>
        /// insert or update
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void InsertOrUpdate(object sender, DirectEventArgs e)
        {
            try
            {
                // init entity
                var model = new EmployeeArgumentModel();

                // check id
                if (!string.IsNullOrEmpty(hdfId.Text))
                {
                    if (Convert.ToInt32(hdfId.Text) > 0)
                    {
                        var result = EmployeeArgumentController.GetById(Convert.ToInt32(hdfId.Text));
                        ;
                        if (result != null)
                        {
                            model = result;
                        }
                    }
                }

                // set new props for entity
                if (!string.IsNullOrEmpty(hdfArgumentId.Text))
                {
                    model.ArgumentId = Convert.ToInt32(hdfArgumentId.Text);
                }

                if (!string.IsNullOrEmpty(hdfGroupInput.Text))
                {
                    model.GroupId = Convert.ToInt32(hdfGroupInput.Text);
                }

                if (!string.IsNullOrEmpty(hdfChooseEmployee.Text))
                {
                    model.RecordId = Convert.ToInt32(hdfChooseEmployee.Text);
                }
                model.Value = txtValue.Text;
                if (!string.IsNullOrEmpty(hdfMonth.Text))
                {
                    model.Month = Convert.ToInt32(hdfMonth.Text);
                }
                if (!string.IsNullOrEmpty(hdfYear.Text))
                {
                    model.Year = Convert.ToInt32(hdfYear.Text);
                }
                // check entity id
                if (model.Id > 0)
                {
                    model.EditedDate = DateTime.Now;
                    model.EditedBy   = CurrentUser.User.UserName;
                    // update
                    EmployeeArgumentController.Update(model);
                }
                else
                {
                    model.CreatedBy   = CurrentUser.User.UserName;
                    model.CreatedDate = DateTime.Now;
                    model.EditedDate  = DateTime.Now;
                    model.EditedBy    = "";
                    //check argument exist
                    var employeeArgument =
                        EmployeeArgumentController.GetUnique(model.GroupId, model.RecordId, model.ArgumentId, model.Month, model.Year);
                    if (employeeArgument != null)
                    {
                        Dialog.ShowNotification("Giá trị tham số này đã được tạo. Vui lòng chọn tham số khác.");
                    }
                    else
                    {
                        // insert
                        EmployeeArgumentController.Create(model);
                    }
                }

                // hide window
                wdSetting.Hide();

                //reset form
                ResetForm();
                // reload data
                gpEmployeeArgument.Reload();
            }
            catch (Exception exception)
            {
                Dialog.ShowError(exception);
            }
        }
Example #9
0
        protected void BeforeExpand(object sender, DirectEventArgs e)
        {
            var id = e.ExtraParams["id"];

            var store = new Store {
                ID = "StoreRow_" + id
            };

            var reader = new JsonReader {
                IDProperty = "ID"
            };

            reader.Fields.Add("ID", "FullName", "EmployeeCode");
            store.Reader.Add(reader);

            var data     = new List <object>();
            var employee = EmployeeArgumentController.GetAll(null, Convert.ToInt32(id), null, null, null, null, null);
            var index    = 0;

            foreach (var item in employee)
            {
                index++;
                data.Add(new { ID           = "RecordId" + index,
                               FullName     = item.FullName,
                               EmployeeCode = item.EmployeeCode, });
            }
            //for (var i = 1; i <= 10; i++)
            //{
            //    data.Add(new
            //    {
            //        ID = "P" + i,
            //        FullName = "Product " + i1234567890-
            //        EmployeeCode = ""
            //    });
            //}

            store.DataSource = data;

            this.RemoveFromCache(store.ID);
            store.Render();
            this.AddToCache(store.ID);

            var list = new ListView
            {
                ID          = "ListViewRow_" + id,
                MultiSelect = true,
                StoreID     = "{raw}StoreRow_" + id,
                Height      = 200
            };

            foreach (var item in employee)
            {
                list.Columns.AddRange(new ListViewColumn[]
                {
                    new ListViewColumn
                    {
                        Header    = "Mã NV",
                        DataIndex = "{0}".FormatWith(item.EmployeeCode),
                        Width     = 100,
                        Align     = TextAlign.Left
                    }
                });
            }

            this.RemoveFromCache(list.ID);
            list.Render("row-" + id, RenderMode.RenderTo);
            this.AddToCache(list.ID);
        }