Ejemplo n.º 1
0
        /// <summary>
        /// 增加自定义字段
        /// </summary>
        /// <param name="cate"></param>
        /// <param name="udf"></param>
        /// <returns></returns>
        public bool AddUdf(DicEnum.UDF_CATE cate, UserDefinedFieldDto udf, long userId)
        {
            string table = GetTableName(cate);
            var    dal   = new sys_udf_field_dal();

            var field = new sys_udf_field();

            field.id                    = dal.GetNextIdCom();
            field.col_name              = GetNextColName();
            field.col_comment           = udf.name;
            field.description           = udf.description;
            field.cate_id               = udf.cate;
            field.data_type_id          = udf.data_type;
            field.default_value         = udf.default_value;
            field.is_protected          = udf.is_protected;
            field.is_required           = udf.required;
            field.is_encrypted          = udf.is_encrypted;
            field.is_visible_in_portal  = udf.is_visible_in_portal;
            field.crm_to_project_udf_id = udf.crm_to_project;
            field.sort_order            = udf.sort_order;
            field.is_active             = udf.is_active;
            field.display_format_id     = udf.display_format;
            field.decimal_length        = udf.decimal_length;
            field.create_user_id        = userId;
            field.update_user_id        = userId;
            field.create_time           = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
            field.update_time           = field.create_time;
            dal.Insert(field);
            OperLogBLL.OperLogAdd <sys_udf_field>(field, field.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED, "新增自定义字段");

            if (udf.data_type == (int)DicEnum.UDF_DATA_TYPE.LIST)       // 字段为列表类型,保存列表值
            {
                if (udf.list != null && udf.list.Count > 0)
                {
                    var listDal = new sys_udf_list_dal();
                    foreach (var listVal in udf.list)
                    {
                        sys_udf_list val = new sys_udf_list();
                        val.id             = listDal.GetNextIdCom();
                        val.is_default     = listVal.is_default;
                        val.name           = listVal.name;
                        val.sort_order     = listVal.sort_order;
                        val.udf_field_id   = field.id;
                        val.status_id      = 0;
                        val.create_time    = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
                        val.update_time    = val.create_time;
                        val.create_user_id = field.create_user_id;
                        val.update_user_id = val.create_user_id;
                        listDal.Insert(val);

                        OperLogBLL.OperLogAdd <sys_udf_list>(val, val.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED_LIST, "新增自定义字段值");
                    }
                }
            }

            string sql = $"alter table {table} add {field.col_name} varchar(";

            if (field.data_type_id == (int)DicEnum.UDF_DATA_TYPE.SINGLE_TEXT)
            {
                sql += "200)";
            }
            else if (field.data_type_id == (int)DicEnum.UDF_DATA_TYPE.MUILTI_TEXT)
            {
                sql += "2000)";
            }
            else
            {
                sql += "20)";
            }
            dal.ExecuteSQL(sql);
            if (field.cate_id == (int)DicEnum.UDF_CATE.TICKETS)
            {
                table = GetTableName(DicEnum.UDF_CATE.FORM_RECTICKET);
                sql   = $"alter table {table} add {field.col_name} varchar(";
                if (field.data_type_id == (int)DicEnum.UDF_DATA_TYPE.SINGLE_TEXT)
                {
                    sql += "200)";
                }
                else if (field.data_type_id == (int)DicEnum.UDF_DATA_TYPE.MUILTI_TEXT)
                {
                    sql += "2000)";
                }
                else
                {
                    sql += "20)";
                }
                dal.ExecuteSQL(sql);

                table = GetTableName(DicEnum.UDF_CATE.FORM_TICKET);
                sql   = $"alter table {table} add {field.col_name} varchar(";
                if (field.data_type_id == (int)DicEnum.UDF_DATA_TYPE.SINGLE_TEXT)
                {
                    sql += "200)";
                }
                else if (field.data_type_id == (int)DicEnum.UDF_DATA_TYPE.MUILTI_TEXT)
                {
                    sql += "2000)";
                }
                else
                {
                    sql += "20)";
                }
                dal.ExecuteSQL(sql);
            }

            return(true);
        }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            long id;

            udfCates = new GeneralBLL().GetDicValues(GeneralTableEnum.UDF_FIELD_CATE);
            udfTypes = new GeneralBLL().GetDicValues(GeneralTableEnum.UDF_FIELD_TYPE);

            if (!IsPostBack)
            {
                if (long.TryParse(Request.QueryString["id"], out id))
                {
                    udfField = bll.GetUdfInfo(id);
                    if (udfField == null)
                    {
                        Response.Write("<script>alert('参数错误!'); </script>");
                        Response.End();
                        return;
                    }

                    if (udfField.data_type == (int)DicEnum.UDF_DATA_TYPE.SINGLE_TEXT)
                    {
                        udfTypeOpts  = "<option value='" + (int)DicEnum.UDF_DATA_TYPE.SINGLE_TEXT + "' selected='selected' >单行文本</option>";
                        udfTypeOpts += "<option value='" + (int)DicEnum.UDF_DATA_TYPE.MUILTI_TEXT + "' >多行文本</option>";
                    }
                    else if (udfField.data_type == (int)DicEnum.UDF_DATA_TYPE.MUILTI_TEXT)
                    {
                        udfTypeOpts  = "<option value='" + (int)DicEnum.UDF_DATA_TYPE.SINGLE_TEXT + "' >单行文本</option>";
                        udfTypeOpts += "<option value='" + (int)DicEnum.UDF_DATA_TYPE.MUILTI_TEXT + "' selected='selected' >多行文本</option>";
                    }
                    else
                    {
                        var find = udfTypes.Find(_ => _.val.Equals(udfField.data_type.ToString()));
                        udfTypeOpts  = "<option value='" + (int)DicEnum.UDF_DATA_TYPE.SINGLE_TEXT + "' >单行文本</option>";
                        udfTypeOpts += "<option value='" + (int)DicEnum.UDF_DATA_TYPE.MUILTI_TEXT + "' >多行文本</option>";
                        udfTypeOpts += "<option value='" + udfField.data_type + "' selected='selected' >" + find.show + "</option>";
                    }
                }
            }
            else
            {
                UserDefinedFieldDto dto = new UserDefinedFieldDto();
                dto.list = new List <sys_udf_list>();
                if (long.TryParse(Request.QueryString["id"], out id))
                {
                    udfField = bll.GetUdfInfo(id);
                    dto.id   = (int)id;
                    dto.cate = udfField.cate;
                    foreach (var udfval in udfField.list)
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["listValShowe" + udfval.id]))
                        {
                            if (Request.Form["dftid"] != udfval.id.ToString())
                            {
                                udfval.is_default = 0;
                            }
                            dto.list.Add(udfval);
                        }
                    }
                }
                else
                {
                    dto.cate = int.Parse(Request.Form["cate_id"]);
                }
                dto.is_active            = (sbyte)(GetCheckBoxValue("active") ? 1 : 0);
                dto.required             = (sbyte)(GetCheckBoxValue("require") ? 1 : 0);
                dto.is_protected         = (sbyte)(GetCheckBoxValue("protect") ? 1 : 0);
                dto.is_encrypted         = (sbyte)(GetCheckBoxValue("encrypted") ? 1 : 0);
                dto.is_visible_in_portal = (sbyte)(GetCheckBoxValue("showinportal") ? 1 : 0);
                dto.name          = Request.Form["col_comment"];
                dto.description   = Request.Form["description"];
                dto.default_value = Request.Form["default_value"];
                dto.data_type     = int.Parse(Request.Form["data_type_id"]);
                dto.sort_order    = Request.Form["sort_value"];
                if (!string.IsNullOrEmpty(Request.Form["crm_to_project_udf_id"]))
                {
                    dto.crm_to_project = int.Parse(Request.Form["crm_to_project_udf_id"]);
                }

                var ids = Request.Form["crm_to_project_udf_id"];
                if (!string.IsNullOrEmpty(ids))
                {
                    ids = ids.Remove(ids.Length - 1, 1);
                    var idstr = ids.Split(',');
                    foreach (var valid in idstr)
                    {
                        var ufv = new sys_udf_list();
                        ufv.name = Request.Form["listValShow" + valid];
                        if (Request.Form["dftid"] == valid)
                        {
                            ufv.is_default = 1;
                        }
                        if (!string.IsNullOrEmpty(Request.Form["listValOrder" + valid]))
                        {
                            ufv.sort_order = decimal.Parse(Request.Form["listValOrder" + valid]);
                        }
                        dto.list.Add(ufv);
                    }
                }

                bll.EditUdf((DicEnum.UDF_CATE)dto.cate, dto, LoginUserId);
                if (Request.Form["act"] == "new")
                {
                    Response.Write("<script>alert('保存自定义字段成功');window.location.href='UserDefinedField.aspx';self.opener.location.reload();</script>");
                }
                else
                {
                    Response.Write("<script>alert('保存自定义字段成功');window.close();self.opener.location.reload();</script>");
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 新增编辑自定义字段
        /// </summary>
        /// <param name="cate"></param>
        /// <param name="udf"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool EditUdf(DicEnum.UDF_CATE cate, UserDefinedFieldDto udf, long userId)
        {
            if (udf.id == 0)
            {
                return(AddUdf(cate, udf, userId));
            }

            var dal   = new sys_udf_field_dal();
            var field = dal.FindNoDeleteById(udf.id);

            if (field == null)
            {
                return(false);
            }

            field.col_comment           = udf.name;
            field.description           = udf.description;
            field.data_type_id          = udf.data_type;
            field.default_value         = udf.default_value;
            field.is_protected          = udf.is_protected;
            field.is_required           = udf.required;
            field.is_encrypted          = udf.is_encrypted;
            field.is_visible_in_portal  = udf.is_visible_in_portal;
            field.crm_to_project_udf_id = udf.crm_to_project;
            field.sort_order            = udf.sort_order;
            field.is_active             = udf.is_active;
            field.display_format_id     = udf.display_format;
            field.decimal_length        = udf.decimal_length;
            field.update_user_id        = userId;
            field.update_time           = Tools.Date.DateHelper.ToUniversalTimeStamp();

            var fieldOld = dal.FindById(field.id);
            var desc     = OperLogBLL.CompareValue <sys_udf_field>(fieldOld, field);

            if (!string.IsNullOrEmpty(desc))
            {
                dal.Update(field);
                OperLogBLL.OperLogUpdate(desc, field.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED, "编辑自定义字段");
            }

            var listDal = new sys_udf_list_dal();
            var list    = dal.FindListBySql <sys_udf_list>($"select * from sys_udf_list where udf_field_id={field.id} and status_id=0 and delete_time=0");

            //var find=udf.list.Find(_=>_.is_default==1)
            foreach (var ufv in udf.list)
            {
                var find = list.Find(_ => _.id == ufv.id);
                if (find == null)
                {
                    sys_udf_list val = new sys_udf_list();
                    val.id             = listDal.GetNextIdCom();
                    val.is_default     = ufv.is_default;
                    val.name           = ufv.name;
                    val.sort_order     = ufv.sort_order;
                    val.udf_field_id   = udf.id;
                    val.status_id      = 0;
                    val.create_time    = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
                    val.update_time    = val.create_time;
                    val.create_user_id = field.create_user_id;
                    val.update_user_id = val.create_user_id;
                    listDal.Insert(val);

                    OperLogBLL.OperLogAdd <sys_udf_list>(val, val.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED_LIST, "新增自定义字段值");
                }
                else
                {
                    if (find.is_default != ufv.is_default)
                    {
                        find.is_default     = ufv.is_default;
                        find.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
                        find.update_user_id = userId;

                        var old = listDal.FindById(find.id);
                        listDal.Update(find);
                        OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <sys_udf_list>(old, find), find.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED_LIST, "编辑自定义字段值");
                    }
                    list.Remove(find);
                }
            }

            foreach (var ufv in list)
            {
                ufv.delete_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                ufv.delete_user_id = userId;
                listDal.Update(ufv);
                OperLogBLL.OperLogDelete <sys_udf_list>(ufv, ufv.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED_LIST, "删除自定义字段值");
            }

            return(true);
        }