using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using DSWeb.Models; using DSWeb.EntityDA; namespace DSWeb.ParameterSet { public partial class CodeFeeTemplateSetEdit : System.Web.UI.Page { public string strUserID;//用户GID private string strCompanyID;//公司GID private string strShowName;//用户显示名 private string strDeptName;//部门名称 private string strFeeTemplateID;//费用模板主表GID private string strHandle; public string strGID="";//用户GID protected void Page_Load(object sender, EventArgs e) { if (Session["USERID"] != null) { strUserID = Session["USERID"].ToString(); } if (Session["SHOWNAME"] != null) { strShowName = Session["SHOWNAME"].ToString(); } if (Session["COMPANYID"] != null) { strCompanyID = Session["COMPANYID"].ToString(); } if (Session["DEPTNAME"] != null) { strDeptName = Session["DEPTNAME"].ToString(); } // if (Request.QueryString["id"] != null) { strFeeTemplateID = Request.QueryString["id"].ToString(); h_templateid.Value = strFeeTemplateID; strGID = strFeeTemplateID; } if (Request.QueryString["handle"] != null) { strHandle = Request.QueryString["handle"].ToString().ToLower(); } // if (!IsPostBack) { } if (this.h_post.Value.Trim() != "") { if (this.h_post.Value.Trim().Equals("3") && this.h_feecache.Value.Trim() != "") { SaveFeeTemplateAndDetail(); } else if (this.h_post.Value.Trim().Equals("2")) { SaveFeeTemplate(); } else if (this.h_post.Value.Trim().Equals("1") && this.h_feecache.Value.Trim() != "") { SaveFeeTemplateDetail(); } else { SaveFeeTemplate(); } } else { //权限可视范围 RangeDA RangeDA = new EntityDA.RangeDA(); string strV = RangeDA.GetVISIBLERANGE(strUserID, "modCodeFeeTemplateSet");//海运进口委托管理列表 string strO = RangeDA.GetOPERATERANGE(strUserID, "modCodeFeeTemplateSet");//海运进口委托管理列表 // if (strHandle == "add") { if (strO.Trim().Equals("4"))//无 { getEnabled(); Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", ""); return; } this.txt_createuser.InnerHtml = strShowName; } else if (strHandle == "edit" && strFeeTemplateID != null) { InitFeeTemplate(strFeeTemplateID); #region 权限可视范围 string alt = ""; if (strV.Trim() != strO.Trim()) { if (strO.Trim().Equals("0"))//全部 { } else if (strO.Trim().Equals("1"))//分公司 { alt = RangeDA.GetCodeFeeTemplateSetCompany(strUserID, strGID); if (alt == "") { getEnabled(); } } else if (strO.Trim().Equals("2"))//部门 { alt = RangeDA.GetCodeFeeTemplateSetDEPT(strDeptName, strGID, strCompanyID, strUserID); if (alt == "") { getEnabled(); } } else if (strO.Trim().Equals("3"))//个人 { alt = RangeDA.GetCodeFeeTemplateSetPerson(strUserID, strGID, strCompanyID); if (alt == "") { getEnabled(); } } else if (strO.Trim().Equals("4"))//无 { getEnabled(); } } #endregion } } } protected void getEnabled() { this.dvOptype.Disabled = true; this.sel_optype.Disabled = true; this.sel_feetype.Disabled = true; this.txt_name.Disabled = true; this.txt_description.Disabled = true; this.txt_createuser.Disabled = true; this.txt_createtime.Disabled = true; this.txt_remark.Disabled = true; // this.btn_update.Disabled = true;;//保存 this.dvAf.Disabled = true;;//添加新费用 this.dvStl.Disabled = true;;//保存费用 this.dvDf.Disabled = true;;//删除费用 this.dvRfl.Disabled = true;;//刷新列表 this.mygrid_container_fee.Disabled = true; } #region 加载已生成的费用模板信息 /// /// 加载已生成的费用模板信息 /// /// 费用模板GID private void InitFeeTemplate(string tempFeeTemplateID) { FeeTemplateEntity feeTemplateEntity = new FeeTemplateEntity(); FeeTemplateDA feeTemplateDA = new FeeTemplateDA(); feeTemplateEntity = feeTemplateDA.GetFeeTemplateByGID(tempFeeTemplateID); UserDA userDA = new UserDA(); UserEntity userEntity = new UserEntity(); userEntity = userDA.GetUserSignByID(feeTemplateEntity.CreateUser); if (feeTemplateEntity.GID != null) { this.sel_optype.Value = feeTemplateEntity.OpType.ToString(); this.sel_feetype.Value = feeTemplateEntity.FeeType.ToString(); this.txt_name.Value = feeTemplateEntity.Name; this.txt_description.Value = feeTemplateEntity.Description; this.txt_createuser.InnerHtml = userEntity.ShowName; this.txt_createtime.InnerHtml = feeTemplateEntity.CreateTime.ToString(); this.txt_remark.Value = feeTemplateEntity.Remark; } } #endregion private void SaveFeeTemplate() { int iState = 0; FeeTemplateDA feeTemplateDA = new FeeTemplateDA(); FeeTemplateEntity feeTemplateEntity = new FeeTemplateEntity(); if (h_templateid.Value.Trim() != "") { feeTemplateEntity.GID = h_templateid.Value.Trim(); feeTemplateEntity.OpType = int.Parse(this.sel_optype.Value); feeTemplateEntity.FeeType = int.Parse(this.sel_feetype.Value); feeTemplateEntity.Name = this.txt_name.Value.Trim(); feeTemplateEntity.Description = this.txt_description.Value.Trim(); feeTemplateEntity.ModifiedUser = strUserID; feeTemplateEntity.Remark = this.txt_remark.Value.Trim(); feeTemplateEntity.CORPID = strCompanyID; iState = feeTemplateDA.UpdateFeeTemplate(feeTemplateEntity); if (iState == 1) { Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } } else { feeTemplateEntity.GID = Guid.NewGuid().ToString(); feeTemplateEntity.OpType = int.Parse(this.sel_optype.Value); feeTemplateEntity.FeeType = int.Parse(this.sel_feetype.Value); feeTemplateEntity.Name = this.txt_name.Value.Trim(); feeTemplateEntity.Description = this.txt_description.Value.Trim(); feeTemplateEntity.CreateUser = strUserID; feeTemplateEntity.Remark = this.txt_remark.Value.Trim(); feeTemplateEntity.CORPID = strCompanyID; iState = feeTemplateDA.InsertFeeTemplate(feeTemplateEntity); if (iState == 1) { h_templateid.Value = feeTemplateEntity.GID; Page.ClientScript.RegisterStartupScript(this.GetType(), "key3", ""); } } } private void SaveFeeTemplateAndDetail() { FeeTemplateDA feeTemplateDA = new FeeTemplateDA(); FeeTemplateEntity feeTemplateEntity = new FeeTemplateEntity(); int iState = 0; if (h_templateid.Value.Trim() != "") { feeTemplateEntity.GID = h_templateid.Value.Trim(); feeTemplateEntity.OpType = int.Parse(this.sel_optype.Value); feeTemplateEntity.FeeType = int.Parse(this.sel_feetype.Value); feeTemplateEntity.Name = this.txt_name.Value.Trim(); feeTemplateEntity.Description = this.txt_description.Value.Trim(); feeTemplateEntity.ModifiedUser = strUserID; feeTemplateEntity.Remark = this.txt_remark.Value.Trim(); feeTemplateEntity.CORPID = strCompanyID; iState = feeTemplateDA.UpdateFeeTemplate(feeTemplateEntity); } else { feeTemplateEntity.GID = Guid.NewGuid().ToString(); feeTemplateEntity.OpType = int.Parse(this.sel_optype.Value); feeTemplateEntity.FeeType = int.Parse(this.sel_feetype.Value); feeTemplateEntity.Name = this.txt_name.Value.Trim(); feeTemplateEntity.Description = this.txt_description.Value.Trim(); feeTemplateEntity.CreateUser = strUserID; feeTemplateEntity.Remark = this.txt_remark.Value.Trim(); feeTemplateEntity.CORPID = strCompanyID; iState = feeTemplateDA.InsertFeeTemplate(feeTemplateEntity); if (iState == 1) { h_templateid.Value = feeTemplateEntity.GID; } } // if (iState == 1) { if (this.h_feecache.Value.Trim() != "") { string strList = ""; string strFilter = ""; IList feeTemplateDetailEntities = new List(); strList = this.h_feecache.Value.Trim(); if (strList.IndexOf("[") >= 0 && strList.IndexOf("]") > 0) { strFilter = strList.Substring(strList.IndexOf("[") + 1, strList.IndexOf("]") - strList.IndexOf("[") - 1); string[] strFees = strFilter.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries); if (strFees.Length > 0) { for (int i = 0; i < strFees.Length; i++) { strFees[i] = strFees[i].ToString().Replace("{", ""); strFees[i] = strFees[i].ToString().Replace("}", ""); string[] strCell = strFees[i].Split(new char[] { ',' }); if (strCell.Length > 0) { FeeTemplateDetailEntity feeTemplateDetailEntity = new FeeTemplateDetailEntity(); for (int j = 0; j < strCell.Length; j++) { string[] strArg = strCell[j].Split(new char[] { ':' }); switch (strArg[0].Replace("\"", "")) { case "id": feeTemplateDetailEntity.GID = strArg[1].ToString().Replace("\"", "").Trim(); break; case "type": feeTemplateDetailEntity.FeeType = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "fname": feeTemplateDetailEntity.FeeName = strArg[1].ToString().Replace("\"", "").Trim().Equals("") ? "" : UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cust": feeTemplateDetailEntity.CustomerName = strArg[1].ToString().Replace("\"", "").Trim().ToLower().Equals("null") ? "" : UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "client": feeTemplateDetailEntity.Client = strArg[1].ToString().Replace("\"", "").Trim().Equals("") ? GetClientIdByName("") : GetClientIdByName(UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim())); break; case "unit": feeTemplateDetailEntity.Unit = strArg[1].ToString().Replace("\"", "").Trim().Equals("") ? "" : UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "price": feeTemplateDetailEntity.UnitPrice = strArg[1].ToString().Replace("\"", "").Trim().Equals("") ? 0 : decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cur": feeTemplateDetailEntity.Currency = strArg[1].ToString().Replace("\"", "").Trim(); break; case "exchange": feeTemplateDetailEntity.ExchangeRate = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "remark": feeTemplateDetailEntity.Remark = strArg[1].ToString().Replace("\"", "").Trim(); break; case "sort": feeTemplateDetailEntity.Sort = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; default: break; } } feeTemplateDetailEntity.CreateUser = strUserID; feeTemplateDetailEntity.ModifiedUser = strUserID; feeTemplateDetailEntity.TemplateID = feeTemplateEntity.GID; feeTemplateDetailEntity.FeeCode = ""; feeTemplateDetailEntities.Add(feeTemplateDetailEntity); } } } } if (feeTemplateDetailEntities.Count > 0) { FeeTemplateDetailDA feeTemplateDetailDA = new FeeTemplateDetailDA(); int iResult = 0; iResult = feeTemplateDetailDA.SaveFeeTemplateDetail(feeTemplateDetailEntities); this.h_post.Value = "0"; if (iResult == 1) { Page.ClientScript.RegisterStartupScript(this.GetType(), "key4", ""); } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "key5", ""); return; } } } else { if (iState == 1) { Page.ClientScript.RegisterStartupScript(this.GetType(), "key6", ""); } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "key7", ""); return; } } } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "key8", ""); return; } } private void SaveFeeTemplateDetail() { if (this.h_feecache.Value.Trim() != "") { string strList = ""; string strFilter = ""; IList feeTemplateDetailEntities = new List(); strList = this.h_feecache.Value.Trim(); if (strList.IndexOf("[") >= 0 && strList.IndexOf("]") > 0) { strFilter = strList.Substring(strList.IndexOf("[") + 1, strList.IndexOf("]") - strList.IndexOf("[") - 1); string[] strFees = strFilter.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries); if (strFees.Length > 0) { for (int i = 0; i < strFees.Length; i++) { strFees[i] = strFees[i].ToString().Replace("{", ""); strFees[i] = strFees[i].ToString().Replace("}", ""); string[] strCell = strFees[i].Split(new char[] { ',' }); if (strCell.Length > 0) { FeeTemplateDetailEntity feeTemplateDetailEntity = new FeeTemplateDetailEntity(); for (int j = 0; j < strCell.Length; j++) { string[] strArg = strCell[j].Split(new char[] { ':' }); switch (strArg[0].Replace("\"", "")) { case "id": feeTemplateDetailEntity.GID = strArg[1].ToString().Replace("\"", "").Trim(); break; case "type": feeTemplateDetailEntity.FeeType = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "fname": feeTemplateDetailEntity.FeeName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cust": feeTemplateDetailEntity.CustomerName = strArg[1].ToString().Replace("\"", "").Trim().ToLower().Equals("null") ? "" : UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "client": feeTemplateDetailEntity.Client = strArg[1].ToString().Replace("\"", "").Trim().Equals("") ? GetClientIdByName("") : GetClientIdByName(UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim())); break; case "unit": feeTemplateDetailEntity.Unit = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "price": feeTemplateDetailEntity.UnitPrice = strArg[1].ToString().Replace("\"", "").Trim().Equals("") ? 0 : decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cur": feeTemplateDetailEntity.Currency = strArg[1].ToString().Replace("\"", "").Trim(); break; case "exchange": feeTemplateDetailEntity.ExchangeRate = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "remark": feeTemplateDetailEntity.Remark = strArg[1].ToString().Replace("\"", "").Trim(); break; case "sort": feeTemplateDetailEntity.Sort = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; default: break; } } feeTemplateDetailEntity.TemplateID = this.h_templateid.Value.Trim(); feeTemplateDetailEntity.CreateUser = strUserID; feeTemplateDetailEntity.ModifiedUser = strUserID; feeTemplateDetailEntity.FeeCode = ""; feeTemplateDetailEntities.Add(feeTemplateDetailEntity); } } } } // if (feeTemplateDetailEntities.Count > 0) { FeeTemplateDetailDA feeTemplateDetailDA = new FeeTemplateDetailDA(); int iResult = 0; iResult = feeTemplateDetailDA.SaveFeeTemplateDetail(feeTemplateDetailEntities); if (iResult == 1) { Page.ClientScript.RegisterStartupScript(this.GetType(), "key9", ""); } } } } #region Unicode-GB Code转换 /// /// Unicode-GB Code转换 /// /// 将Unicode编码字符转换成GB编码字符 /// GB Code字符串 public string UnicodeToGB(string text) { UnicodeEncoding unicode = new UnicodeEncoding(); text = unicode.GetString(unicode.GetBytes(Regex.Unescape(text.Trim()))); return text; } /// /// Unicode-GB Code转换 /// /// 将Unicode编码字符转换成GB编码字符 /// GB Code字符串 public string UnicodeToGB_Old(string text) { MatchCollection mc = Regex.Matches(text, "([\\w]+)|(\\\\u([\\w]{4}))"); if (mc != null && mc.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (Match m2 in mc) { string v = m2.Value; if (v.IndexOf("\\") >= 0) { string word = v.Substring(2); byte[] codes = new byte[2]; int code = Convert.ToInt32(word.Substring(0, 2), 16); int code2 = Convert.ToInt32(word.Substring(2), 16); codes[0] = (byte)code2; codes[1] = (byte)code; sb.Append(Encoding.Unicode.GetString(codes)); } else { sb.Append(v); } } return sb.ToString(); } else { return text; } } #endregion #region 根据结算对象类型名称获取结算单位对象类型数值 /// /// 根据结算对象类型名称获取结算单位对象类型数值 /// /// 结算对象类型名称 /// 返回结算单位对象类型数值 private int GetClientIdByName(string strClientName) { int iResult = 0; switch (strClientName) { case "船公司": iResult = 1; break; case "订舱代理": iResult = 2; break; case "场站": iResult = 3; break; case "车队": iResult = 4; break; case "委托单位": iResult = 5; break; case "报关行": iResult = 6; break; case "代理": iResult = 7; break; case "航空公司": iResult = 8; break; case "发货人": iResult = 9; break; case "收货人": iResult = 10; break; case "通知人": iResult = 11; break; case "船代": iResult = 12; break; case "码头": iResult = 13; break; case "其他": iResult = 14; break; default: iResult = 0; break; } return iResult; } #endregion } }