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.RegularExpressions; using System.Text; using JsonHelper; using DSWeb.Models; using DSWeb.EntityDA; using DSWeb.Log; using DSWeb.Authority; namespace DSWeb.Shipping { public partial class FeeEdit : PageBase { private string recvJSON; private string payJSON; //private const string strSeaBSNO = "topseaeusername129481962859531250"; private string strSeaBSNO; private string strUserID; private int iImportTemplateDetailType; private string strCacheName; private string strCompanyID;//公司GID private string strShowName;//用户显示名 private string strDeptName;//部门名称 private bool bEnable;//是否可操作 private string strImportHistoryCacheName; private string strHistoryOpType;//值1表示全部引入 值2表示只引入标准、单价、数量、币别、汇率、FRT、是否垫付 private int iHistoryType;//1-应收 2-应付 protected void Page_Load(object sender, EventArgs e) { this.h_oplb.Value="op_Seae"; this.h_wmsoutbsno.Value = ""; this.h_IsFeeGain.Value = "1"; 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) { strSeaBSNO = Request.QueryString["id"].ToString().Trim(); this.h_bsno.Value = strSeaBSNO; } if (Request.QueryString["type"] != null) { iImportTemplateDetailType = int.Parse(Request.QueryString["type"].ToString()); } else { iImportTemplateDetailType = 0; } if (Request.QueryString["cachename"] != null) { strCacheName = Request.QueryString["cachename"].ToString(); } if (Request.QueryString["historycache"] != null) { strImportHistoryCacheName = Request.QueryString["historycache"].ToString(); } if (Request.QueryString["historycache"] != null) { strImportHistoryCacheName = Request.QueryString["historycache"].ToString(); } if (Request.QueryString["historytype"] != null) { iHistoryType = int.Parse(Request.QueryString["historytype"].ToString()); } else { iHistoryType = 0; } if (Request.QueryString["hdenabled"] != null) { bEnable = Request.QueryString["hdenabled"].ToString().Trim().ToLower().Equals("false") ? false : true; h_enable.Value = bEnable ? "1" : "0"; } else { bEnable = true; h_enable.Value = bEnable ? "1" : "0"; } if (Request.QueryString["op"] != null) { strHistoryOpType = Request.QueryString["op"].ToString().Trim(); h_historyoptype.Value = strHistoryOpType; } //int iAuthorityStatus = 0; //UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modOrderManagement"); //int iRecvAuthorityStatus = 0; //int iPayAuthorityStatus = 0; //UserAuthorityManage userRecvAuthorityManage = new UserAuthorityManage(strUserID, "modRecvFeeManagement"); //if (userRecvAuthorityManage.OperateType != AuthorityType.NULL) //{ // iRecvAuthorityStatus = userRecvAuthorityManage.CheckOperateRange(ModuleType.RECVFEE, userRecvAuthorityManage.OperateType, strShowName, strCompanyID, strDeptName, strSeaBSNO, "", strUserID); // h_recvauthority.Value = iRecvAuthorityStatus.ToString(); //} //else //{ // h_recvauthority.Value = "1"; //} //UserAuthorityManage userPayAuthorityManage = new UserAuthorityManage(strUserID, "modPayFeeManagement"); //if (userPayAuthorityManage.OperateType != AuthorityType.NULL) //{ // iPayAuthorityStatus = userPayAuthorityManage.CheckOperateRange(ModuleType.PAYFEE, userPayAuthorityManage.OperateType, strShowName, strCompanyID, strDeptName, strSeaBSNO, "", strUserID); // h_payauthority.Value = iPayAuthorityStatus.ToString(); //} //else //{ // h_payauthority.Value = "1"; //} recvJSON = ""; payJSON = ""; recvJSON = this.recvContainer.Value.Trim(); payJSON = this.payContainer.Value.Trim(); //获取引入费用模板缓存信息 if (recvJSON.Trim().Equals("") && payJSON.Trim().Equals("") && strCacheName != null && iImportTemplateDetailType > 0) { DataTable templateTable = (DataTable)Session[strCacheName]; StringBuilder templateBuilder = new StringBuilder(); if (templateTable != null) { if (templateTable.Rows.Count > 0) { templateBuilder.Append("{\"templates\":["); for (int i = 0; i < templateTable.Rows.Count; i++) { templateTable.Rows[i]["GID"] = Guid.NewGuid().ToString(); if (i == templateTable.Rows.Count - 1) { templateBuilder.Append("{"); templateBuilder.Append("\"tid\":\"" + templateTable.Rows[i]["GID"].ToString() + "\","); templateBuilder.Append("\"fname\":\"" + templateTable.Rows[i]["FEENAME"].ToString() + "\","); templateBuilder.Append("\"client\":" + templateTable.Rows[i]["CLIENT"].ToString() + ","); templateBuilder.Append("\"cust\":\"" + templateTable.Rows[i]["CUSTOMERNAME"].ToString() + "\","); templateBuilder.Append("\"unit\":\"" + templateTable.Rows[i]["UNIT"].ToString() + "\","); templateBuilder.Append("\"uprice\":" + templateTable.Rows[i]["UNITPRICE"].ToString() + ","); templateBuilder.Append("\"cur\":\"" + templateTable.Rows[i]["CURRENCY"].ToString() + "\","); templateBuilder.Append("\"exrate\":" + templateTable.Rows[i]["EXCHANGERATE"].ToString() + ","); templateBuilder.Append("\"remark\":\"" + templateTable.Rows[i]["REMARK"].ToString() + "\","); templateBuilder.Append("\"type\":" + templateTable.Rows[i]["FEETYPE"].ToString().ToString()); templateBuilder.Append("}"); } else { templateBuilder.Append("{"); templateBuilder.Append("\"tid\":\"" + templateTable.Rows[i]["GID"].ToString() + "\","); templateBuilder.Append("\"fname\":\"" + templateTable.Rows[i]["FEENAME"].ToString() + "\","); templateBuilder.Append("\"client\":" + templateTable.Rows[i]["CLIENT"].ToString() + ","); templateBuilder.Append("\"cust\":\"" + templateTable.Rows[i]["CUSTOMERNAME"].ToString() + "\","); templateBuilder.Append("\"unit\":\"" + templateTable.Rows[i]["UNIT"].ToString() + "\","); templateBuilder.Append("\"uprice\":" + templateTable.Rows[i]["UNITPRICE"].ToString() + ","); templateBuilder.Append("\"cur\":\"" + templateTable.Rows[i]["CURRENCY"].ToString() + "\","); templateBuilder.Append("\"exrate\":" + templateTable.Rows[i]["EXCHANGERATE"].ToString() + ","); templateBuilder.Append("\"remark\":\"" + templateTable.Rows[i]["REMARK"].ToString() + "\","); templateBuilder.Append("\"type\":" + templateTable.Rows[i]["FEETYPE"].ToString().ToString()); templateBuilder.Append("},"); } } templateBuilder.Append("]}"); this.h_importtype.Value = iImportTemplateDetailType.ToString(); this.h_cachename.Value = strCacheName; this.h_cachetemplate.Value = templateBuilder.ToString(); } else { this.h_importtype.Value = iImportTemplateDetailType.ToString(); this.h_cachename.Value = ""; this.h_cachetemplate.Value = ""; } } } //获取引入历史费用缓存信息 if (recvJSON.Trim().Equals("") && payJSON.Trim().Equals("") && strImportHistoryCacheName != null && iHistoryType > 0) { DataTable templateTable = (DataTable)Session[strImportHistoryCacheName]; StringBuilder templateBuilder = new StringBuilder(); if (templateTable != null) { if (templateTable.Rows.Count > 0) { templateBuilder.Append("{\"history\":["); for (int i = 0; i < templateTable.Rows.Count; i++) { templateTable.Rows[i]["GID"] = Guid.NewGuid().ToString(); if (i == templateTable.Rows.Count - 1) { templateBuilder.Append("{"); templateBuilder.Append("\"tid\":\"" + templateTable.Rows[i]["GID"].ToString() + "\","); templateBuilder.Append("\"fname\":\"" + templateTable.Rows[i]["FEENAME"].ToString() + "\","); templateBuilder.Append("\"cust\":\"" + templateTable.Rows[i]["CUSTOMERNAME"].ToString() + "\","); templateBuilder.Append("\"unit\":\"" + templateTable.Rows[i]["UNIT"].ToString() + "\","); templateBuilder.Append("\"uprice\":" + templateTable.Rows[i]["UNITPRICE"].ToString() + ","); templateBuilder.Append("\"quantity\":" + templateTable.Rows[i]["QUANTITY"].ToString() + ","); templateBuilder.Append("\"comm\":" + templateTable.Rows[i]["COMMISSIONRATE"].ToString() + ","); templateBuilder.Append("\"amount\":" + templateTable.Rows[i]["AMOUNT"].ToString() + ","); templateBuilder.Append("\"cur\":\"" + templateTable.Rows[i]["CURRENCY"].ToString() + "\","); templateBuilder.Append("\"exrate\":" + templateTable.Rows[i]["EXCHANGERATE"].ToString() + ","); templateBuilder.Append("\"frt\":\"" + templateTable.Rows[i]["FEEFRT"].ToString() + "\","); templateBuilder.Append("\"remark\":\"" + templateTable.Rows[i]["REMARK"].ToString() + "\","); templateBuilder.Append("\"isadv\":" + (templateTable.Rows[i]["ISADVANCEDPAY"].ToString().ToLower().Equals("true") ? 1 : 0) + ","); templateBuilder.Append("\"type\":" + templateTable.Rows[i]["FEETYPE"].ToString().ToString()); templateBuilder.Append("}"); } else { templateBuilder.Append("{"); templateBuilder.Append("\"tid\":\"" + templateTable.Rows[i]["GID"].ToString() + "\","); templateBuilder.Append("\"fname\":\"" + templateTable.Rows[i]["FEENAME"].ToString() + "\","); templateBuilder.Append("\"cust\":\"" + templateTable.Rows[i]["CUSTOMERNAME"].ToString() + "\","); templateBuilder.Append("\"unit\":\"" + templateTable.Rows[i]["UNIT"].ToString() + "\","); templateBuilder.Append("\"uprice\":" + templateTable.Rows[i]["UNITPRICE"].ToString() + ","); templateBuilder.Append("\"quantity\":" + templateTable.Rows[i]["QUANTITY"].ToString() + ","); templateBuilder.Append("\"comm\":" + templateTable.Rows[i]["COMMISSIONRATE"].ToString() + ","); templateBuilder.Append("\"amount\":" + templateTable.Rows[i]["AMOUNT"].ToString() + ","); templateBuilder.Append("\"cur\":\"" + templateTable.Rows[i]["CURRENCY"].ToString() + "\","); templateBuilder.Append("\"exrate\":" + templateTable.Rows[i]["EXCHANGERATE"].ToString() + ","); templateBuilder.Append("\"frt\":\"" + templateTable.Rows[i]["FEEFRT"].ToString() + "\","); templateBuilder.Append("\"remark\":\"" + templateTable.Rows[i]["REMARK"].ToString() + "\","); templateBuilder.Append("\"isadv\":" + (templateTable.Rows[i]["ISADVANCEDPAY"].ToString().ToLower().Equals("true") ? 1 : 0) + ","); templateBuilder.Append("\"type\":" + templateTable.Rows[i]["FEETYPE"].ToString().ToString()); templateBuilder.Append("},"); } } templateBuilder.Append("]}"); this.h_historytype.Value = iHistoryType.ToString(); this.h_historycachename.Value = strImportHistoryCacheName; this.h_cachehistory.Value = templateBuilder.ToString(); } else { this.h_historytype.Value = iHistoryType.ToString(); this.h_historycachename.Value = ""; this.h_cachehistory.Value = ""; } } } if (this.h_post.Value.Trim() != "") { //保存操作 if (this.h_post.Value.Trim() == "1") { if (!recvJSON.Trim().Equals("") || !payJSON.Trim().Equals("")) { SaveFeeAction(); } } } GetSeaInfo(); } private void SaveFeeAction() { IList feeEntities = new List(); if (!recvJSON.Trim().Equals("")) { feeEntities = ResolveFeeJSON(recvJSON.Trim(), feeEntities); recvContainer.Value = ""; } if (!payJSON.Trim().Equals("")) { feeEntities = ResolveFeeJSON(payJSON.Trim(), feeEntities); payContainer.Value = ""; } FeeDA feeDA = new FeeDA(); //如果是当前操作人权限范围只能查看应收或者应付时,单独更新费用利润 //if (!this.h_recvauthority.Value.Trim().Equals("1") || !this.h_recvauthority.Value.Trim().Equals("1")) if (!ValidateUserFeeAuthority(1) || !ValidateUserFeeAuthority(2)) { int iRecvState = feeDA.DoFee(feeEntities,strSeaBSNO,strUserID); if (iRecvState == 1) { gainContainer.Value = ""; if (Session[strCacheName] != null) { Session.Remove(strCacheName); } } } else { FeeProfitEntity feeProfitEntity = new FeeProfitEntity(); feeProfitEntity = GetRequestProfit(); int iRecvState = feeDA.DoFee(feeEntities, feeProfitEntity, strSeaBSNO); if (iRecvState == 1) { gainContainer.Value = ""; if (Session[strCacheName] != null) { Session.Remove(strCacheName); } } } h_post.Value = "";//请求状态清空 } #region 页面加载主委托信息 /// /// 页面加载主委托信息 /// private void GetSeaInfo() { SeaExportInfoDA seaExportDA = new SeaExportInfoDA(); TopSeaeEntity topSeaEntity = seaExportDA.GetID(strSeaBSNO); if (topSeaEntity.BSNO != null) { //委托业务编号 dvOrderNumVal.Value = topSeaEntity.BSNO; //委托编号 dvCUSTNO.InnerHtml = topSeaEntity.CUSTNO; //主提单号 dvOrderPrimaryVal.InnerHtml = topSeaEntity.MBLNO; h_mblno.Value = dvOrderPrimaryVal.InnerHtml; //箱型箱量 //dvContainerVal.InnerHtml = topSeaEntity.CNTRTOTAL; dvContainerVal.InnerHtml = TotalCtns(topSeaEntity.CNTRTOTAL); //付费方式 dvPaymentVal.InnerHtml = topSeaEntity.BLFRT; //揽货人 dvChannelSaleVal.InnerHtml = topSeaEntity.SALE; //委托单位 dvOrderCellVal.InnerHtml = topSeaEntity.CUSTOMERNAME; //卸货港 dvDischargePortVal.InnerHtml = topSeaEntity.PORTDISCHARGE; //MBL付费方式 dvPaymentMBLVAL.InnerHtml = topSeaEntity.MBLFRT; //业务来源 dvBssourceVal.InnerHtml = topSeaEntity.BSSOURCE; //航线 dvLaneVal.InnerHtml = topSeaEntity.LANE; //船名 dvVesselVal.InnerHtml = topSeaEntity.VESSEL; //航次 dvVoynoVal.InnerHtml = topSeaEntity.VOYNO; //是否熏蒸 ck_isfumigation.Checked = topSeaEntity.ISFUMIGATION; //是否仓储 ck_isstorage.Checked = topSeaEntity.ISSTORAGE; //是否陆运 ck_island.Checked = topSeaEntity.ISLAND; //是否报关 ck_iscustoms.Checked = topSeaEntity.ISCUSTOMS; //是否报检 ck_isinspection.Checked = topSeaEntity.ISINSPECTION; //是否订舱 ck_isbooking.Checked = topSeaEntity.ISBOOKING; //使用代理 ck_isagent.Checked = topSeaEntity.ISAGENT; //分单签单 ck_ishblno.Checked = topSeaEntity.ISHBLNO; } } #endregion #region 保存应收费用列表更改结果 /// /// 保存应收费用列表更改结果 /// /// private void SaveRecvFee(JsonFeeGroupEntity tempGroupEntity) { if (tempGroupEntity != null) { List feeEntities = new List(); feeEntities = tempGroupEntity.JsonFeeEntities; FeeDA feeDA = new FeeDA(); DataTable feeTable = new DataTable(); string strInitSql = ""; if (tempGroupEntity.JsonFeeEntities.Count > 0) { string bsno = tempGroupEntity.JsonFeeEntities[0].fee15.Trim(); strInitSql = " SELECT GID, FEETYPE, FEENAME, CUSTOMERNAME, UNIT, UNITPRICE, COMMISSIONRATE, QUANTITY, AMOUNT, CURRENCY, " + " EXCHANGERATE, FEEFRT,REMARK,ISADVANCEDPAY FROM ch_fee WHERE 1> 0 AND BSNO = '" + bsno + "'"; } else { return; } feeTable = feeDA.GetExcuteSql(strInitSql).Tables[0]; //更新操作SQL语句 ArrayList sqlList = new ArrayList(); //日志操作SQL语句 ArrayList logList = new ArrayList(); //日志记录 Logger log = Logger.Instance; for (int i = 0; i < feeTable.Rows.Count; i++) { foreach (JsonFeeEntity fee in feeEntities) { if (feeTable.Rows[i]["GID"].ToString().Trim().Equals(fee.fee1.Trim())) { string strSql = ""; string LogContent = ""; LogEntity logEntity = new LogEntity(); #region 更改前后信息对比 //费用名称 string strFeeName = fee.fee3.Trim().ToLower().Equals("null") ? "" : fee.fee3.Trim(); if (!feeTable.Rows[i]["FEENAME"].ToString().Trim().Equals(strFeeName)) { strSql += String.Format(" FEENAME = '{0}'", strFeeName); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应收费用名称", feeTable.Rows[i]["FEENAME"].ToString().Trim(), strFeeName); } //结算单位 string strCustomer = fee.fee4.Trim().ToLower().Equals("null") ? "" : fee.fee4.Trim(); if (!feeTable.Rows[i]["CUSTOMERNAME"].ToString().Trim().Equals(strCustomer)) { strSql += String.Format(" ,CUSTOMERNAME = '{0}'", strCustomer); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "结算单位", feeTable.Rows[i]["CUSTOMERNAME"].ToString().Trim(), strCustomer); } //计费标准 string strUnit = fee.fee5.Trim().ToLower().Equals("null") ? "" : fee.fee5.Trim(); if (!feeTable.Rows[i]["UNIT"].ToString().Trim().Equals(strUnit)) { strSql += String.Format(" ,UNIT = '{0}'", strUnit); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "计费标准", feeTable.Rows[i]["UNIT"].ToString().Trim(), strUnit); } //计费单价 decimal unitPrice = decimal.Parse(feeTable.Rows[i]["UNITPRICE"].ToString().Trim()); if (unitPrice != fee.fee6) { strSql += String.Format(" ,UNITPRICE = {0}", fee.fee6.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "计费单价", unitPrice.ToString(), fee.fee6.ToString()); } //数量 decimal Quantity = decimal.Parse(feeTable.Rows[i]["QUANTITY"].ToString().Trim()); if (Quantity != fee.fee7) { strSql += String.Format(" ,QUANTITY = {0}", fee.fee7.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "数量", Quantity.ToString(), fee.fee7.ToString()); } //佣金比率 decimal CommissionRate = decimal.Parse(feeTable.Rows[i]["COMMISSIONRATE"].ToString().Trim()); if (CommissionRate != fee.fee8) { strSql += String.Format(" ,COMMISSIONRATE = {0}", fee.fee8.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "佣金比率", CommissionRate.ToString(), fee.fee8.ToString()); } //金额 decimal Amount = decimal.Parse(feeTable.Rows[i]["AMOUNT"].ToString().Trim()); if (Amount != fee.fee9) { strSql += String.Format(" ,AMOUNT = {0}", fee.fee9.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "金额", Amount.ToString(), fee.fee9.ToString()); } //币别 if (!feeTable.Rows[i]["CURRENCY"].ToString().Trim().Equals(fee.fee10.Trim())) { strSql += String.Format(" ,CURRENCY = '{0}'", fee.fee10.Trim()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "金额", feeTable.Rows[i]["CURRENCY"].ToString().Trim(), fee.fee10.Trim()); } //汇率 decimal ExchangeRate = decimal.Parse(feeTable.Rows[i]["EXCHANGERATE"].ToString().Trim()); if (ExchangeRate != fee.fee11) { strSql += String.Format(" ,EXCHANGERATE = {0}", fee.fee11.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "汇率", ExchangeRate.ToString(), fee.fee11.ToString()); } //FRT运费支付方式 if (!feeTable.Rows[i]["FEEFRT"].ToString().Trim().Equals(fee.fee12.Trim())) { strSql += String.Format(" ,FEEFRT = '{0}'", fee.fee12.Trim()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "FRT", feeTable.Rows[i]["FEEFRT"].ToString().Trim(), fee.fee12.Trim()); } //备注 string strRemark = fee.fee13.Trim() == "null" ? "" : fee.fee13.Trim(); if (!feeTable.Rows[i]["REMARK"].ToString().Trim().Equals(strRemark)) { strSql += String.Format(" ,REMARK = '{0}'", fee.fee13.Trim()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "备注", feeTable.Rows[i]["REMARK"].ToString().Trim(), fee.fee13.Trim()); } //是否垫付 bool IsAdvancePay = feeTable.Rows[i]["ISADVANCEDPAY"].ToString().Trim().ToLower().Equals("true") ? true : false; if (IsAdvancePay != fee.fee14) { strSql += String.Format(" ,ISADVANCEDPAY = {0}", fee.fee14 ? 1 : 0); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "是否垫付", IsAdvancePay ? "是" : "否", fee.fee14 ? "是" : "否"); } #endregion //如果有字段内容更新则执行更新操作 if (LogContent.Trim().Length > 1) { if (strSql.Trim().StartsWith(",")) { strSql = strSql.Trim().Substring(1); } string strUpdateSql = String.Format("UPDATE {0} SET {1} WHERE GID = '{2}'", "ch_fee", strSql, fee.fee1.Trim()); sqlList.Add(strUpdateSql); logList.Add(String.Format("更新费用标识 {0} {1}", fee.fee1.Trim(), LogContent)); } feeEntities.Remove(fee); break; } } } if (sqlList.Count > 0) { int iResult = feeDA.UpdateFeeFromGrid(sqlList); //为1表示更新成功 //为-1有异常,更新失败 //为-2更新异常,事务已回滚成功 //更新完成后,记录日志 if (iResult == 1) { #region 日志记录操作 // INSERT-"INSERT INTO {0} ({1}) VALUES ({2})" @{0}-所要插入记录的表;{1}记录字段值;{2}-记录新值@ if (logList.Count > 0) { for (int i = 0; i < logList.Count; i++) { LogEntity logEntity = new LogEntity(); logEntity.GID = Guid.NewGuid().ToString(); logEntity.Name = "更新应收费用列表"; logEntity.LogType = "UPDATE 更新操作"; logEntity.CreateUserID = strUserID;//测试使用数据,正式发布请删除 logEntity.LogContent = logList[i].ToString(); log.WriteLog(logEntity); } } #endregion } } //如果遍历完所有费用表数据,没有相对应的费用信息,则将剩余的费用信息插入到费用表中 if (feeEntities.Count > 0) { //插入新的应收费用信息 InsertFee(feeEntities, 1); } recvJSON = ""; this.recvContainer.Value = ""; if (Session[strCacheName] != null) { Session.Remove(strCacheName); } } else { recvJSON = ""; this.recvContainer.Value = ""; if (Session[strCacheName] != null) { Session.Remove(strCacheName); } return; } } #endregion #region 保存应付费用列表更改结果 /// /// 保存应付费用列表更改结果 /// /// private void SavePayFee(JsonFeeGroupEntity tempGroupEntity) { if (tempGroupEntity != null) { List feeEntities = new List(); feeEntities = tempGroupEntity.JsonFeeEntities; FeeDA feeDA = new FeeDA(); DataTable feeTable = new DataTable(); string strInitSql = ""; if (tempGroupEntity.JsonFeeEntities.Count > 0) { string bsno = tempGroupEntity.JsonFeeEntities[0].fee15.Trim(); strInitSql = " SELECT GID, FEETYPE, FEENAME, CUSTOMERNAME, UNIT, UNITPRICE, COMMISSIONRATE, QUANTITY, AMOUNT, CURRENCY, " + " EXCHANGERATE, FEEFRT,REMARK,ISADVANCEDPAY FROM ch_fee WHERE 1> 0 AND BSNO = '" + bsno + "'"; } else { return; } feeTable = feeDA.GetExcuteSql(strInitSql).Tables[0]; //更新操作SQL语句 ArrayList sqlList = new ArrayList(); //日志操作SQL语句 ArrayList logList = new ArrayList(); //日志记录 Logger log = Logger.Instance; for (int i = 0; i < feeTable.Rows.Count; i++) { foreach (JsonFeeEntity fee in feeEntities) { if (feeTable.Rows[i]["GID"].ToString().Trim().Equals(fee.fee1.Trim())) { string strSql = ""; string LogContent = ""; LogEntity logEntity = new LogEntity(); #region 更改前后信息对比 //费用名称 string strFeeName = fee.fee3.Trim().ToLower().Equals("null") ? "" : fee.fee3.Trim(); if (!feeTable.Rows[i]["FEENAME"].ToString().Trim().Equals(strFeeName)) { strSql += String.Format(" FEENAME = '{0}'", strFeeName); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应收费用名称", feeTable.Rows[i]["FEENAME"].ToString().Trim(), strFeeName); } //结算单位 string strCustomer = fee.fee4.Trim().ToLower().Equals("null") ? "" : fee.fee4.Trim(); if (!feeTable.Rows[i]["CUSTOMERNAME"].ToString().Trim().Equals(strCustomer)) { strSql += String.Format(" ,CUSTOMERNAME = '{0}'", strCustomer); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "结算单位", feeTable.Rows[i]["CUSTOMERNAME"].ToString().Trim(), strCustomer); } //计费标准 string strUnit = fee.fee5.Trim().ToLower().Equals("null") ? "" : fee.fee5.Trim(); if (!feeTable.Rows[i]["UNIT"].ToString().Trim().Equals(strUnit)) { strSql += String.Format(" ,UNIT = '{0}'", strUnit); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "计费标准", feeTable.Rows[i]["UNIT"].ToString().Trim(), strUnit); } //计费单价 decimal unitPrice = decimal.Parse(feeTable.Rows[i]["UNITPRICE"].ToString().Trim()); if (unitPrice != fee.fee6) { strSql += String.Format(" ,UNITPRICE = {0}", fee.fee6.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "计费单价", unitPrice.ToString(), fee.fee6.ToString()); } //数量 decimal Quantity = decimal.Parse(feeTable.Rows[i]["QUANTITY"].ToString().Trim()); if (Quantity != fee.fee7) { strSql += String.Format(" ,QUANTITY = {0}", fee.fee7.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "数量", Quantity.ToString(), fee.fee7.ToString()); } //佣金比率 decimal CommissionRate = decimal.Parse(feeTable.Rows[i]["COMMISSIONRATE"].ToString().Trim()); if (CommissionRate != fee.fee8) { strSql += String.Format(" ,COMMISSIONRATE = {0}", fee.fee8.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "佣金比率", CommissionRate.ToString(), fee.fee8.ToString()); } //金额 decimal Amount = decimal.Parse(feeTable.Rows[i]["AMOUNT"].ToString().Trim()); if (Amount != fee.fee9) { strSql += String.Format(" ,AMOUNT = {0}", fee.fee9.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "金额", Amount.ToString(), fee.fee9.ToString()); } //币别 if (!feeTable.Rows[i]["CURRENCY"].ToString().Trim().Equals(fee.fee10.Trim())) { strSql += String.Format(" ,CURRENCY = '{0}'", fee.fee10.Trim()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "金额", feeTable.Rows[i]["CURRENCY"].ToString().Trim(), fee.fee10.Trim()); } //汇率 decimal ExchangeRate = decimal.Parse(feeTable.Rows[i]["EXCHANGERATE"].ToString().Trim()); if (ExchangeRate != fee.fee11) { strSql += String.Format(" ,EXCHANGERATE = {0}", fee.fee11.ToString()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "汇率", ExchangeRate.ToString(), fee.fee11.ToString()); } //FRT运费支付方式 if (!feeTable.Rows[i]["FEEFRT"].ToString().Trim().Equals(fee.fee12.Trim())) { strSql += String.Format(" ,FEEFRT = '{0}'", fee.fee12.Trim()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "FRT", feeTable.Rows[i]["FEEFRT"].ToString().Trim(), fee.fee12.Trim()); } //备注 string strRemark = fee.fee13.Trim() == "null" ? "" : fee.fee13.Trim(); if (!feeTable.Rows[i]["REMARK"].ToString().Trim().Equals(strRemark)) { strSql += String.Format(" ,REMARK = '{0}'", fee.fee13.Trim()); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "备注", feeTable.Rows[i]["REMARK"].ToString().Trim(), fee.fee13.Trim()); } //是否垫付 bool IsAdvancePay = feeTable.Rows[i]["ISADVANCEDPAY"].ToString().Trim().ToLower().Equals("true") ? true : false; if (IsAdvancePay != fee.fee14) { strSql += String.Format(" ,ISADVANCEDPAY = {0}", fee.fee14 ? 1 : 0); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "是否垫付", IsAdvancePay ? "是" : "否", fee.fee14 ? "是" : "否"); } #endregion //如果有字段内容更新则执行更新操作 if (LogContent.Trim().Length > 1) { if (strSql.Trim().StartsWith(",")) { strSql = strSql.Trim().Substring(1); } string strUpdateSql = String.Format("UPDATE {0} SET {1} WHERE GID = '{2}'", "ch_fee", strSql, fee.fee1.Trim()); sqlList.Add(strUpdateSql); logList.Add(String.Format("更新费用标识 {0} {1}", fee.fee1.Trim(), LogContent)); } feeEntities.Remove(fee); break; } } } //遍历完所有数据有,进行统一更新 if (sqlList.Count > 0) { int iResult = feeDA.UpdateFeeFromGrid(sqlList); //为1表示更新成功 //为-1有异常,更新失败 //为-2更新异常,事务已回滚成功 //更新完成后,记录日志 if (iResult == 1) { #region 日志记录操作 // INSERT-"INSERT INTO {0} ({1}) VALUES ({2})" @{0}-所要插入记录的表;{1}记录字段值;{2}-记录新值@ if (logList.Count > 0) { for (int i = 0; i < logList.Count; i++) { LogEntity logEntity = new LogEntity(); logEntity.GID = Guid.NewGuid().ToString(); logEntity.Name = "更新应付费用列表"; logEntity.LogType = "UPDATE 更新操作"; logEntity.CreateUserID = strUserID; logEntity.LogContent = logList[i].ToString(); log.WriteLog(logEntity); } } #endregion } } if (feeEntities.Count > 0) { //插入新的应收费用信息 InsertFee(feeEntities, 2); } payJSON = ""; this.payContainer.Value = ""; if (Session[strCacheName] != null) { Session.Remove(strCacheName); } } else { payJSON = ""; this.payContainer.Value = ""; if (Session[strCacheName] != null) { Session.Remove(strCacheName); } return; } } #endregion #region 插入费用信息记录 /// /// 插入费用信息记录 /// /// 需要插入费用表的费用实体类 /// 如果iType值为1则记录费用类型为收/否则记录为付 public void InsertFee(List feeEntities, int iType) { ArrayList sqlInsertList = new ArrayList(); FeeDA feeDA = new FeeDA(); foreach (JsonFeeEntity fee in feeEntities) { string strItemSql = ""; string strValueSql = ""; string strInsertSql = ""; //GID strItemSql += "GID"; strValueSql += String.Format("'{0}'", fee.fee1.Trim().Equals("null") ? "" : fee.fee1.Trim()); //费用状态 string strFeeStatus = fee.fee2.Trim(); int iFeeStatus = 1; switch (strFeeStatus) { case "审核通过": iFeeStatus = 0; break; case "录入状态": iFeeStatus = 1; break; case "提交审核": iFeeStatus = 2; break; case "申请修改": iFeeStatus = 3; break; case "申请删除": iFeeStatus = 4; break; case "取消申请": iFeeStatus = 5; break; case "驳回提交": iFeeStatus = 6; break; case "驳回申请": iFeeStatus = 7; break; case "部分结算": iFeeStatus = 8; break; case "结算完毕": iFeeStatus = 9; break; default: break; } strItemSql += ",FEESTATUS"; strValueSql += String.Format(",'{0}'", fee.fee2.Trim().Equals("null") ? "" : iFeeStatus.ToString()); //费用名称 strItemSql += ",FEENAME"; strValueSql += String.Format(",'{0}'", fee.fee3.Trim().Equals("null") ? "" : fee.fee3.Trim()); //结算单位 strItemSql += ",CUSTOMERNAME"; strValueSql += String.Format(",'{0}'", fee.fee4.Trim().Equals("null") ? "" : fee.fee4.Trim()); //计费标准 strItemSql += ",UNIT"; strValueSql += String.Format(",'{0}'", fee.fee5.Trim().Equals("null") ? "" : fee.fee5.Trim()); //计费单价 strItemSql += ",UNITPRICE"; strValueSql += String.Format(",{0}", fee.fee6); //数量 strItemSql += ",QUANTITY"; strValueSql += String.Format(",{0}", fee.fee7); //佣金比率 strItemSql += ",COMMISSIONRATE"; strValueSql += String.Format(",{0}", fee.fee8); //金额 strItemSql += ",AMOUNT"; strValueSql += String.Format(",{0}", fee.fee9); //币别 strItemSql += ",CURRENCY"; strValueSql += String.Format(",'{0}'", fee.fee10.Trim().Equals("null") ? "" : fee.fee10.Trim()); //汇率 strItemSql += ",EXCHANGERATE"; strValueSql += String.Format(",{0}", fee.fee11); //FRT运费支付方式 strItemSql += ",FEEFRT"; strValueSql += String.Format(",'{0}'", fee.fee12); //备注 strItemSql += ",REMARK"; strValueSql += String.Format(",'{0}'", fee.fee13.Trim().Equals("null") ? "" : fee.fee13.Trim()); //是否垫付 strItemSql += ",ISADVANCEDPAY"; strValueSql += String.Format(",{0}", fee.fee14 ? 1 : 0); //如果iType值为1则记录费用类型为收/否则记录为付 if (iType == 1) { strItemSql += ",FEETYPE"; strValueSql += String.Format(",'{0}'", "1"); } else { strItemSql += ",FEETYPE"; strValueSql += String.Format(",'{0}'", "2"); } //委托编号 strItemSql += ",BSNO"; strValueSql += String.Format(",'{0}'", fee.fee15); if (!strItemSql.Trim().Equals("") && !strValueSql.Trim().Equals("")) { if (strItemSql.Trim().StartsWith(",")) { strItemSql = strItemSql.Trim().Substring(1); } if (strValueSql.Trim().StartsWith(",")) { strValueSql = strValueSql.Trim().Substring(1); } strInsertSql = String.Format("INSERT INTO {0} ({1}) VALUES({2})", "ch_fee", strItemSql, strValueSql); sqlInsertList.Add(strInsertSql); } } if (sqlInsertList.Count > 0) { int iResult = feeDA.InsertFeeFromGrid(sqlInsertList); //为1表示更新成功 //为-1有异常,更新失败 //为-2更新异常,事务已回滚成功 //更新完成后,记录日志 //if (iResult == 1) //{ //} } } #endregion #region 获取费用客户保存的费用信息 /// /// 获取费用客户保存的费用信息 /// /// /// public JsonFeeGroupEntity GetPostEntity(string tempValue) { JsonFeeGroupEntity feeGroupEntity = (JsonFeeGroupEntity)JSON.Instance.ToObject(tempValue); return feeGroupEntity; } #endregion private void RecordFeeGain(string tempBSNO) { //费用利润实体类 FeeProfitEntity feeProfitEntity = new FeeProfitEntity(); FeeProfitDA feeProfitDA = new FeeProfitDA(); feeProfitEntity = feeProfitDA.GetFeeProfitByBSNO(tempBSNO); //先判断费用利润表是否有与委托编号相关联的信息 if (feeProfitEntity != null) { FeeProfitEntity newProfitEntity = GetRequestProfit(); string strSql = ""; string LogContent = ""; //日志记录 Logger log = Logger.Instance; if (feeProfitEntity.RMBDR != newProfitEntity.RMBDR) { strSql += String.Format(" RMBDR = {0}", newProfitEntity.RMBDR); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应收RMB", feeProfitEntity.RMBDR.ToString(), newProfitEntity.RMBDR.ToString()); } if (feeProfitEntity.USDDR != newProfitEntity.USDDR) { strSql += String.Format(" ,USDDR = {0}", newProfitEntity.USDDR); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应收USD", feeProfitEntity.USDDR.ToString(), newProfitEntity.USDDR.ToString()); } if (feeProfitEntity.OTHERDR != newProfitEntity.OTHERDR) { strSql += String.Format(" ,OTDR = {0}", newProfitEntity.OTHERDR); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应收其他币别", feeProfitEntity.OTHERDR.ToString(), newProfitEntity.OTHERDR.ToString()); } if (feeProfitEntity.RMBCR != newProfitEntity.RMBCR) { strSql += String.Format(" ,RMBCR = {0}", newProfitEntity.RMBCR); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应付RMB", feeProfitEntity.RMBCR.ToString(), newProfitEntity.RMBCR.ToString()); } if (feeProfitEntity.USDCR != newProfitEntity.USDCR) { strSql += String.Format(" ,USDCR = {0}", newProfitEntity.USDCR); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应付USD", feeProfitEntity.USDCR.ToString(), newProfitEntity.USDCR.ToString()); } if (feeProfitEntity.OTHERCR != newProfitEntity.OTHERCR) { strSql += String.Format(" ,OTCR = {0}", newProfitEntity.OTHERCR); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应付其他币别", feeProfitEntity.OTHERCR.ToString(), newProfitEntity.OTHERCR.ToString()); } if (feeProfitEntity.DRTTL != newProfitEntity.DRTTL) { strSql += String.Format(" ,DRTTL = {0}", newProfitEntity.DRTTL); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应收合计", feeProfitEntity.DRTTL.ToString(), newProfitEntity.DRTTL.ToString()); } if (feeProfitEntity.CRTTL != newProfitEntity.CRTTL) { strSql += String.Format(" ,CRTTL = {0}", newProfitEntity.CRTTL); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "应收合计", feeProfitEntity.CRTTL.ToString(), newProfitEntity.CRTTL.ToString()); } if (feeProfitEntity.RMBProfit != newProfitEntity.RMBProfit) { strSql += String.Format(" ,RMBPROFIT = {0}", newProfitEntity.RMBProfit); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "RMB利润", feeProfitEntity.RMBProfit.ToString(), newProfitEntity.RMBProfit.ToString()); } if (feeProfitEntity.USDProfit != newProfitEntity.USDProfit) { strSql += String.Format(" ,USDPROFIT = {0}", newProfitEntity.USDProfit); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "USD利润", feeProfitEntity.USDProfit.ToString(), newProfitEntity.USDProfit.ToString()); } if (feeProfitEntity.OTHERProfit != newProfitEntity.OTHERProfit) { strSql += String.Format(" ,OTPROFIT = {0}", newProfitEntity.OTHERProfit); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "其他币别利润", feeProfitEntity.OTHERProfit.ToString(), newProfitEntity.OTHERProfit.ToString()); } if (feeProfitEntity.TTLProfit != newProfitEntity.TTLProfit) { strSql += String.Format(" ,TTLPROFIT = {0}", newProfitEntity.TTLProfit); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "合计利润", feeProfitEntity.TTLProfit.ToString(), newProfitEntity.TTLProfit.ToString()); } if (feeProfitEntity.ProfitRate != newProfitEntity.ProfitRate) { strSql += String.Format(" ,PROFITRATE = '{0}'", newProfitEntity.ProfitRate); LogContent += String.Format(log.GetLogContentTemplate(Logger.LogTypes.UPDATE), "利润率", feeProfitEntity.ProfitRate, newProfitEntity.ProfitRate); } if (strSql.Trim().Length > 1) { strSql += String.Format(" ,MODIFIEDUSER = '{0}',MODIFIEDTIME = GETDATE() ", strUserID);//测试使用数据,正式发布请删除 if (strSql.Trim().StartsWith(",")) { strSql = strSql.Trim().Substring(1); } strSql = String.Format(" UPDATE fee_gain SET {0} WHERE BSNO = '{1}'", strSql, strSeaBSNO); int iResult = feeProfitDA.UpdateFeeProfit(strSql); //为1表示更新成功 //为-1有异常,更新失败 //为-2更新异常,事务已回滚成功 //更新完成后,记录日志 if (iResult == 1) { LogEntity logEntity = new LogEntity(); logEntity.GID = Guid.NewGuid().ToString(); logEntity.Name = "更新利润信息"; logEntity.LogType = "UPDATE 更新操作"; logEntity.CreateUserID = strUserID;//测试使用数据,正式发布请删除 logEntity.LogContent = String.Format(" 更新委托 {0} {1}", tempBSNO, LogContent); log.WriteLog(logEntity); } } } else { FeeProfitEntity newProfitEntity = GetRequestProfit(); newProfitEntity.GID = Guid.NewGuid().ToString(); newProfitEntity.BSNO = strSeaBSNO; newProfitEntity.CreateUser = strUserID;//测试使用数据,正式发布请删除 int iResult = feeProfitDA.InsertFeeProfit(newProfitEntity); //为1表示更新成功 //为-1有异常,更新失败 //为-2更新异常,事务已回滚成功 //更新完成后,记录日志 //if (iResult == 1) //{ //} } } #region 将页面post获取的利润值读入到利润实体类中 /// /// 将页面post获取的利润值读入到利润实体类中 /// /// 返回利润实体类 FeeProfitEntity private FeeProfitEntity GetRequestProfit() { FeeProfitEntity tempFeeProfitEntity = new FeeProfitEntity(); #region 保留 //tempFeeProfitEntity.RMBDR = Decimal.Parse(dvRecvRMBVal.InnerText.Trim()); //tempFeeProfitEntity.USDDR = Decimal.Parse(dvUSRecvVal.InnerHtml.Trim()); //tempFeeProfitEntity.OTHERDR = Decimal.Parse(dvOtherCurrencyRecvVal.InnerHtml.Trim()); //tempFeeProfitEntity.RMBCR = Decimal.Parse(dvPayRMBVal.InnerHtml.Trim()); //tempFeeProfitEntity.USDCR = Decimal.Parse(dvUSPayVal.InnerHtml.Trim()); //tempFeeProfitEntity.OTHERCR = Decimal.Parse(dvOtherCurrencyPayVal.InnerHtml.Trim()); //tempFeeProfitEntity.DRTTL = Decimal.Parse(dvRecvTotalVal.InnerHtml.Trim()); //tempFeeProfitEntity.CRTTL = Decimal.Parse(dvPaySumVal.InnerHtml.Trim()); //tempFeeProfitEntity.RMBProfit = Decimal.Parse(dvRMBProfitVal.InnerHtml.Trim()); //tempFeeProfitEntity.USDProfit = Decimal.Parse(dvUSProfitVal.InnerHtml.Trim()); //tempFeeProfitEntity.OTHERProfit = Decimal.Parse(dvOtherCurrencyProfitVal.InnerHtml.Trim()); //tempFeeProfitEntity.TTLProfit = Decimal.Parse(dvProfitTotalVal.InnerHtml.Trim()); //tempFeeProfitEntity.ProfitRate = dvProfitRateVal.InnerHtml.Trim(); #endregion if (!gainContainer.Value.Trim().Equals("")) { string[] gainList = gainContainer.Value.Trim().Split(new char[] { ',' }); if (!gainList[0].ToString().Trim().Equals("")) { tempFeeProfitEntity.RMBDR = Decimal.Parse(gainList[0].ToString().Trim()); tempFeeProfitEntity.USDDR = Decimal.Parse(gainList[1].ToString().Trim()); tempFeeProfitEntity.OTHERDR = Decimal.Parse(gainList[2].ToString().Trim()); tempFeeProfitEntity.RMBCR = Decimal.Parse(gainList[3].ToString().Trim()); tempFeeProfitEntity.USDCR = Decimal.Parse(gainList[4].ToString().Trim()); tempFeeProfitEntity.OTHERCR = Decimal.Parse(gainList[5].ToString().Trim()); tempFeeProfitEntity.DRTTL = Decimal.Parse(gainList[6].ToString().Trim()); tempFeeProfitEntity.CRTTL = Decimal.Parse(gainList[7].ToString().Trim()); tempFeeProfitEntity.RMBProfit = Decimal.Parse(gainList[8].ToString().Trim()); tempFeeProfitEntity.USDProfit = Decimal.Parse(gainList[9].ToString().Trim()); tempFeeProfitEntity.OTHERProfit = Decimal.Parse(gainList[10].ToString().Trim()); tempFeeProfitEntity.TTLProfit = Decimal.Parse(gainList[11].ToString().Trim()); tempFeeProfitEntity.ProfitRate = gainList[12].ToString().Trim(); tempFeeProfitEntity.CreateUser = this.strUserID; tempFeeProfitEntity.ModifiedUser = this.strUserID; } else { tempFeeProfitEntity.RMBDR = 0; tempFeeProfitEntity.USDDR = 0; tempFeeProfitEntity.OTHERDR = 0; tempFeeProfitEntity.RMBCR = 0; tempFeeProfitEntity.USDCR = 0; tempFeeProfitEntity.OTHERCR = 0; tempFeeProfitEntity.DRTTL = 0; tempFeeProfitEntity.CRTTL = 0; tempFeeProfitEntity.RMBProfit = 0; tempFeeProfitEntity.USDProfit = 0; tempFeeProfitEntity.OTHERProfit = 0; tempFeeProfitEntity.TTLProfit = 0; tempFeeProfitEntity.ProfitRate = "0%"; tempFeeProfitEntity.CreateUser = this.strUserID; tempFeeProfitEntity.ModifiedUser = this.strUserID; } } return tempFeeProfitEntity; } #endregion private IList ResolveFeeJSON(string tempJSON,IList tempFeeEntities) { string strFilter = ""; if (tempJSON.IndexOf("[") >= 0 && tempJSON.IndexOf("]") > 0) { strFilter = tempJSON.Substring(tempJSON.IndexOf("[") + 1, tempJSON.IndexOf("]") - tempJSON.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) { FeeEntity feeEntity = new FeeEntity(); for (int j = 0; j < strCell.Length; j++) { string[] strArg = strCell[j].Split(new char[] { ':' }); switch (strArg[0].Replace("\"", "")) { case "id": feeEntity.GID = strArg[1].ToString().Replace("\"", "").Trim(); break; case "type": feeEntity.FeeType = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "bsno": feeEntity.BSNO = strArg[1].ToString().Replace("\"", "").Trim(); break; case "status": //feeEntity.FeeStatus = int.Parse(strArg[1].ToString().Replace("\"", "").ToString()); break; case "fname": feeEntity.FeeName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cust": feeEntity.CustomerName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "unit": string tempUnit = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); if (tempUnit.Equals("null") || tempUnit.Equals("")) { feeEntity.Unit = ""; } else { feeEntity.Unit = tempUnit; } break; case "price": feeEntity.UnitPrice = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "quant": feeEntity.Quantity = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "com": feeEntity.CommissionRate = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "amount": feeEntity.Amount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cur": feeEntity.Currency = strArg[1].ToString().Replace("\"", "").Trim(); break; case "rate": feeEntity.ExchangeRate = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "frt": feeEntity.FeeFrt = strArg[1].ToString().Replace("\"", "").Trim(); break; case "remark": //feeEntity.Remark = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); UnicodeEncoding unicode = new UnicodeEncoding(); string lsremark = unicode.GetString(unicode.GetBytes(Regex.Unescape(strArg[1].ToString().Replace("\"", "").Trim()))); feeEntity.Remark = lsremark.Trim(); break; case "isadv": feeEntity.IsAdvancePay = strArg[1].ToString().Replace("\"", "").Trim().Equals("1") ? true : false; break; case "linenum": feeEntity.LINENUM = strArg[1].ToString().Replace("\"", "").Trim() == "" ? 0 : int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; default: break; } } feeEntity.EnterOperator = this.strUserID; feeEntity.FeeStatus = 1; feeEntity.WMSOUTBSNO = ""; tempFeeEntities.Add(feeEntity); } } } } return tempFeeEntities; } #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 string TotalCtns(string tempOpSeaeCtns) { string result = ""; ArrayList totalArg = new ArrayList(); if (tempOpSeaeCtns.Trim() != "") { if (tempOpSeaeCtns.IndexOf(tempOpSeaeCtns) >= 0) { if (tempOpSeaeCtns.IndexOf("|") >= 0) { string[] ctnArg = tempOpSeaeCtns.Split(new char[] { '|' }); for (int i = 0; i < ctnArg.Length; i++) { string[] coupleArg = ctnArg[i].Split(new char[] { '*' }); if (totalArg.Count < 1) { totalArg.Add(coupleArg[0].ToString()); totalArg.Add(coupleArg[1].ToString()); } else { int iCount = 0; for (int j = 0; j < totalArg.Count; j++) { if (totalArg[j].ToString().Trim().Equals(coupleArg[0].ToString().Trim())) { int tempTotalCtnCount = int.Parse(totalArg[j + 1].ToString().Trim()); int tempCtnCount = int.Parse(coupleArg[1].ToString().Trim()); totalArg[j + 1] = (tempTotalCtnCount + tempCtnCount).ToString(); iCount++; break; } } if (iCount == 0) { totalArg.Add(coupleArg[0].ToString()); totalArg.Add(coupleArg[1].ToString()); } } } } else { string[] ctnArg = tempOpSeaeCtns.Split(new char[] { '/' }); for (int i = 0; i < ctnArg.Length; i++) { if (!ctnArg[i].ToString().Trim().Equals("")) { string[] coupleArg = ctnArg[i].Split(new char[] { '*' }); if (totalArg.Count < 1) { totalArg.Add(coupleArg[0].ToString()); totalArg.Add(coupleArg[1].ToString()); } else { int iCount = 0; for (int j = 0; j < totalArg.Count; j++) { if (totalArg[j].ToString().Trim().Equals(coupleArg[0].ToString().Trim())) { int tempTotalCtnCount = int.Parse(totalArg[j + 1].ToString().Trim()); int tempCtnCount = int.Parse(coupleArg[1].ToString().Trim()); totalArg[j + 1] = (tempTotalCtnCount + tempCtnCount).ToString(); iCount++; break; } } if (iCount == 0) { totalArg.Add(coupleArg[0].ToString()); totalArg.Add(coupleArg[1].ToString()); } } } } } } if (totalArg.Count > 0) { for (int i = 0; i < totalArg.Count; i++) { if ((i % 2) > 0) { if (totalArg.Count == 2) { result += totalArg[i].ToString(); } else { result += totalArg[i].ToString() + "/"; } } else { result += totalArg[i].ToString() + "*"; } } } } return result; } #endregion #region 获取用户应收、应付权限信息 /// /// 获取用户应收、应付权限信息 /// /// 费用类型 /// 返回 true 有权限操作数据 false 没有权限操作数据 private bool ValidateUserFeeAuthority(int tempFeeType) { int iResult = 0; if (tempFeeType == 1) { UserAuthorityManage userAuthorityManageOrder = new UserAuthorityManage(strUserID, "modOrderManagement"); UserAuthorityManage userRecvAuthorityManage = new UserAuthorityManage(strUserID, "modRecvFeeManagement"); if (userRecvAuthorityManage.OperateType != AuthorityType.NULL) { iResult = userAuthorityManageOrder.CheckOperateRange(ModuleType.OPSEAELIST, userRecvAuthorityManage.OperateType, strShowName, strCompanyID, strDeptName, strSeaBSNO, "", strUserID); } } else { UserAuthorityManage userAuthorityManageOrder = new UserAuthorityManage(strUserID, "modOrderManagement"); UserAuthorityManage userPayAuthorityManage = new UserAuthorityManage(strUserID, "modPayFeeManagement"); if (userPayAuthorityManage.OperateType != AuthorityType.NULL) { iResult = userAuthorityManageOrder.CheckOperateRange(ModuleType.OPSEAELIST, userPayAuthorityManage.OperateType, strShowName, strCompanyID, strDeptName, strSeaBSNO, "", strUserID); } } if (iResult > 0) { return true; } else { return false; } } #endregion } }