예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void DuplicateData(object sender, DirectEventArgs e)
        {
            try
            {
                // init model
                var reportDynamic = new ReportDynamicModel(null);
                var reportColumns = new List <ReportColumnModel>();

                // check id
                if (!string.IsNullOrEmpty(hdfId.Text) && Convert.ToInt32(hdfId.Text) > 0)
                {
                    var resultReportDynamic = ReportDynamicController.GetById(Convert.ToInt32(hdfId.Text));
                    if (resultReportDynamic != null)
                    {
                        reportDynamic = resultReportDynamic;
                        var resultReportColumn = ReportColumnController.GetAll(null, resultReportDynamic.Id, null, null, null, null, false, null, null);
                        if (resultReportColumn != null)
                        {
                            reportColumns = resultReportColumn;
                        }
                    }
                }

                // create duplicated report dynamic
                reportDynamic.Name       += " - Copy";
                reportDynamic.CreatedDate = DateTime.Now;
                reportDynamic.CreatedBy   = CurrentUser.User.UserName;
                reportDynamic.EditedDate  = DateTime.Now;
                reportDynamic.EditedBy    = CurrentUser.User.UserName;
                var newReportDynamic = ReportDynamicController.Create(reportDynamic);

                // create list id
                var ids = new Dictionary <int, int>();
                // create list old parent id
                var parentIds = new List <int>();
                // create list new report column
                var newReportColumns = new List <ReportColumnModel>();

                // create duplicated report columns
                foreach (var reportColumn in reportColumns)
                {
                    var oldParentId = reportColumn.ParentId;
                    //
                    reportColumn.ReportId    = newReportDynamic.Id;
                    reportColumn.CreatedDate = DateTime.Now;
                    reportColumn.CreatedBy   = CurrentUser.User.UserName;
                    reportColumn.EditedDate  = DateTime.Now;
                    reportColumn.EditedBy    = CurrentUser.User.UserName;
                    reportColumn.ParentId    = 0;
                    // create new column
                    var newReportColumn = ReportColumnController.Create(reportColumn);
                    // add new column to list
                    newReportColumns.Add(newReportColumn);
                    // add pair of old and new id to list
                    var oldId = reportColumn.Id;
                    var newId = newReportColumn.Id;
                    ids.Add(oldId, newId);
                    // add item to list parent id
                    parentIds.Add(oldParentId);
                }

                // update parentId
                for (var i = 0; i < newReportColumns.Count; i++)
                {
                    // set parent id
                    foreach (var id in ids)
                    {
                        if (parentIds[i] == id.Key)
                        {
                            newReportColumns[i].ParentId = id.Value;
                        }
                    }
                    // update column
                    ReportColumnController.Update(newReportColumns[i]);
                }

                gpReport.Reload();
            }
            catch (Exception ex)
            {
                Dialog.ShowError(ex);
            }
        }
예제 #2
0
        /// <summary>
        /// Insert or Update Catalog
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void InsertOrUpdate(object sender, DirectEventArgs e)
        {
            try
            {
                // init entity
                var model = new ReportDynamicModel(null);

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

                // set new props for entity
                model.Name             = txtName.Text;
                model.Description      = txtDescription.Text;
                model.Template         = (ReportTemplate)Convert.ToInt32(hdfReportTemplate.Text);
                model.PaperKind        = (ReportPaperKind)Convert.ToInt32(hdfReportPaperKind.Text);
                model.Orientation      = (ReportOrientation)Convert.ToInt32(hdfReportOrientation.Text);
                model.GroupHeader1     = (ReportGroupHeader)Convert.ToInt32(hdfGroupHeader1.Text);
                model.GroupHeader2     = (ReportGroupHeader)Convert.ToInt32(hdfGroupHeader2.Text);
                model.GroupHeader3     = (ReportGroupHeader)Convert.ToInt32(hdfGroupHeader3.Text);
                model.ParentDepartment = txtParentDepartment.Text;
                model.Department       = txtDepartment.Text;
                model.Title            = txtTitle.Text;
                model.Duration         = txtDuration.Text;
                model.CreatedByTitle   = txtCreatedByTitle.Text;
                model.CreatedByNote    = txtCreatedByNote.Text;
                model.CreatedByName    = txtCreatedByName.Text;
                model.ReviewedByTitle  = txtReviewedByTitle.Text;
                model.ReviewedByNote   = txtReviewedByNote.Text;
                model.ReviewedByName   = txtReviewedByName.Text;
                model.SignedByTitle    = txtSignedByTitle.Text;
                model.SignedByNote     = txtSignedByNote.Text;
                model.SignedByName     = txtSignedByName.Text;
                model.Status           = (ReportStatus)Convert.ToInt32(hdfStatus.Text);

                // parse report source to json
                if (!string.IsNullOrEmpty(hdfReportSource.Text))
                {
                    var payrollConfigId = Convert.ToInt32(hdfReportSource.Text);
                    switch (model.Template)
                    {
                    case ReportTemplate.EnterprisePayroll:
                        var payrollConfigs = SalaryBoardConfigController.GetAll(payrollConfigId, true, null, null, null, "[ColumnCode]", null);
                        var lstItemModel   = new List <ListItemModel>();
                        lstItemModel.Add(new ListItemModel("FullName", "FullName"));
                        lstItemModel.Add(new ListItemModel("EmployeeCode", "EmployeeCode"));
                        lstItemModel.Add(new ListItemModel("PositionName", "PositionName"));
                        lstItemModel.AddRange(payrollConfigs.Select(c => new ListItemModel(c.ColumnCode, c.ColumnCode)));
                        model.ReportSource = JSON.Serialize(lstItemModel);
                        model.Argument     = payrollConfigId.ToString();
                        break;
                    }
                }

                // check entity id
                if (model.Id > 0)
                {
                    // update
                    ReportDynamicController.Update(model);
                }
                else
                {
                    // insert
                    ReportDynamicController.Create(model);
                }

                // hide window
                wdSetting.Hide();

                // reload data
                gpReport.Reload();
            }
            catch (Exception exception)
            {
                Dialog.ShowError(exception);
            }
        }