You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1506 lines
76 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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.SeaiFee
{
public partial class SeaiFeeEdit : System.Web.UI.Page
{
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-应付
#region Page_Load
protected void Page_Load(object sender, EventArgs e)
{
#region 参数处理
this.h_oplb.Value = "op_Seai";
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;
}
#endregion
//int iRecvAuthorityStatus = 0;
//int iPayAuthorityStatus = 0;
recvJSON = "";
payJSON = "";
recvJSON = this.recvContainer.Value.Trim();
payJSON = this.payContainer.Value.Trim();
#region 获取引入费用模板缓存信息
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 = "";
}
}
}
#endregion
#region 获取引入历史费用缓存信息
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 = "";
}
}
}
#endregion
#region 保存操作
if (this.h_post.Value.Trim() != "")
{
//保存操作
if (this.h_post.Value.Trim() == "1")
{
if (!recvJSON.Trim().Equals("") || !payJSON.Trim().Equals(""))
{ // 将页面post获取的费用信息保存或更新“费用信息表”ch_fee,并保存或更新“利润信息”fee_gain并返回操作结果
SaveFeeAction();
}
}
}
#endregion
GetSeaInfo();//页面加载主委托信息op_seai 海运业务信息主表
}
#endregion
#region 将页面post获取的费用信息保存或更新“费用信息表”ch_fee,并保存或更新“利润信息”fee_gain并返回操作结果
/// <summary>
/// 将页面post获取的费用信息保存或更新“费用信息表”ch_fee,并保存或更新“利润信息”fee_gain并返回操作结果
/// </summary>
private void SaveFeeAction()
{
IList<FeeEntity> feeEntities = new List<FeeEntity>();
if (!recvJSON.Trim().Equals(""))
{ //将应收费用信息从前台页面写入费用实体类feeEntities
feeEntities = ResolveFeeJSON(recvJSON.Trim(), feeEntities);
recvContainer.Value = "";
}
if (!payJSON.Trim().Equals(""))
{ //将应付费用信息从前台页面写入费用实体类feeEntities
feeEntities = ResolveFeeJSON(payJSON.Trim(), feeEntities);
payContainer.Value = "";
}
FeeDA feeDA = new FeeDA();
//如果是当前操作人权限范围只能查看应收或者应付时,单独更新费用利润
if (!ValidateUserFeeAuthority(1) || !ValidateUserFeeAuthority(2))
{ //将页面post获取的费用信息保存或更新“费用信息表”ch_fee,并保存或更新“利润信息”fee_gain并返回操作结果
int iRecvState = feeDA.DoFee(feeEntities, strSeaBSNO, strUserID);
if (iRecvState == 1)
{
gainContainer.Value = "";
if (Session[strCacheName] != null)
{
Session.Remove(strCacheName);
}
}
}
else
{
FeeProfitEntity feeProfitEntity = new FeeProfitEntity();
//将页面post获取的利润值读入到利润实体类中
feeProfitEntity = GetRequestProfit();
int iRecvState = feeDA.DoFee(feeEntities, feeProfitEntity, strSeaBSNO);
if (iRecvState == 1)
{
gainContainer.Value = "";
if (Session[strCacheName] != null)
{
Session.Remove(strCacheName);
}
}
}
h_post.Value = "";//请求状态清空
}
#endregion
#region 页面加载主委托信息op_seai 海运业务信息主表
/// <summary>
/// 页面加载主委托信息op_seai 海运业务信息主表
/// </summary>
private void GetSeaInfo()
{
SeaImportInfoDA seaiImportDA = new SeaImportInfoDA();
TopSeaiEntity topSeaiEntity = seaiImportDA.GetID(strSeaBSNO);
if (topSeaiEntity.BSNO != null)
{
//委托业务编号
dvOrderNumVal.Value = topSeaiEntity.BSNO;
//委托编号
dvCUSTNO.InnerHtml = topSeaiEntity.CUSTNO;
//主提单号
dvOrderPrimaryVal.InnerHtml = topSeaiEntity.MBLNO;
h_mblno.Value = dvOrderPrimaryVal.InnerHtml;
//箱型箱量
//dvContainerVal.InnerHtml = topSeaiEntity.CNTRTOTAL;
dvContainerVal.InnerHtml = TotalCtns(topSeaiEntity.CNTRTOTAL);
//付费方式
//dvPaymentVal.InnerHtml = topSeaiEntity.BLFRT;
//贸易方式
dvTRADETYPE.InnerHtml = topSeaiEntity.TRADETYPE;
//委托单位
dvOrderCellVal.InnerHtml = topSeaiEntity.CUSTOMERNAME;
//揽货人
//dvChannelSaleVal.InnerHtml = topSeaEntity.SALE;
//卸货港
dvDischargePortVal.InnerHtml = topSeaiEntity.PORTDISCHARGE;
//MBL付费方式
//dvPaymentMBLVAL.InnerHtml = topSeaiEntity.MBLFRT;
//业务来源
dvBssourceVal.InnerHtml = topSeaiEntity.BSSOURCE;
//净重
dvNETWEIGHT.InnerHtml = topSeaiEntity.NETWEIGHT.ToString().Trim();
//品名
dvGOODSNAME.InnerHtml = topSeaiEntity.GOODSNAME.ToString().Trim();
//航线
//dvLaneVal.InnerHtml = topSeaiEntity.LANE;
//船名
//dvVesselVal.InnerHtml = topSeaiEntity.VESSEL;
//航次
//dvVoynoVal.InnerHtml = topSeaiEntity.VOYNO;
//是否熏蒸
//ck_isfumigation.Checked = topSeaiEntity.ISFUMIGATION;
////是否仓储
//ck_isstorage.Checked = topSeaiEntity.ISSTORAGE;
////是否陆运
//ck_island.Checked = topSeaiEntity.ISLAND;
////是否报关
//ck_iscustoms.Checked = topSeaiEntity.ISCUSTOMS;
////是否报检
//ck_isinspection.Checked = topSeaiEntity.ISINSPECTION;
////是否订舱
//ck_isbooking.Checked = topSeaiEntity.ISBOOKING;
////使用代理
//ck_isagent.Checked = topSeaiEntity.ISAGENT;
////分单签单
//ck_ishblno.Checked = topSeaiEntity.ISHBLNO;
}
}
#endregion
#region 保存应收费用列表更改结果
/// <summary>
/// 保存应收费用列表更改结果
/// </summary>
/// <param name="tempGroupEntity"></param>
private void SaveRecvFee(JsonFeeGroupEntity tempGroupEntity)
{
if (tempGroupEntity != null)
{
List<JsonFeeEntity> feeEntities = new List<JsonFeeEntity>();
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 保存应付费用列表更改结果
/// <summary>
/// 保存应付费用列表更改结果
/// </summary>
/// <param name="tempGroupEntity"></param>
private void SavePayFee(JsonFeeGroupEntity tempGroupEntity)
{
if (tempGroupEntity != null)
{
List<JsonFeeEntity> feeEntities = new List<JsonFeeEntity>();
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 插入费用信息记录
/// <summary>
/// 插入费用信息记录
/// </summary>
/// <param name="feeEntities">需要插入费用表的费用实体类</param>
/// <param name="iType">如果iType值为1则记录费用类型为收/否则记录为付</param>
public void InsertFee(List<JsonFeeEntity> 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 获取费用客户保存的费用信息
/// <summary>
/// 获取费用客户保存的费用信息
/// </summary>
/// <param name="tempValue"></param>
/// <returns></returns>
public JsonFeeGroupEntity GetPostEntity(string tempValue)
{
JsonFeeGroupEntity feeGroupEntity = (JsonFeeGroupEntity)JSON.Instance.ToObject(tempValue);
return feeGroupEntity;
}
#endregion
#region 更新费用利润 fee_gain
/// <summary>
///更新费用利润fee_gain
/// </summary>
/// <param name="tempBSNO"></param>
private void RecordFeeGain(string tempBSNO)
{
//费用利润实体类fee_gain
FeeProfitEntity feeProfitEntity = new FeeProfitEntity();
FeeProfitDA feeProfitDA = new FeeProfitDA();
//根据委托编号BSNO获取利润信息fee_gain
feeProfitEntity = feeProfitDA.GetFeeProfitByBSNO(tempBSNO);
//先判断费用利润表是否有与委托编号相关联的信息
if (feeProfitEntity != null)
{ //将页面post获取的利润值读入到利润实体类中fee_gain
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)
//{
//}
}
}
#endregion
#region 将页面post获取的利润值读入到利润实体类中
/// <summary>
/// 将页面post获取的利润值读入到利润实体类中
/// </summary>
/// <returns>返回利润实体类 FeeProfitEntity</returns>
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
#region 将页面post获取的费用信息读入到费用实体类ch_fee中
/// <summary>
/// 将页面post获取的费用信息读入到费用实体类ch_fee中
/// </summary>
/// <param name="tempJSON"></param>
/// <param name="tempFeeEntities"></param>
/// <returns>将页面post获取的费用信息读入到费用实体类ch_fee中</returns>
private IList<FeeEntity> ResolveFeeJSON(string tempJSON, IList<FeeEntity> 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":
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.WMSOUTBSNO = "";
feeEntity.EnterOperator = this.strUserID;
feeEntity.FeeStatus = 1;
tempFeeEntities.Add(feeEntity);
}
}
}
}
return tempFeeEntities;
}
#endregion
#region Unicode-GB Code转换
/// <summary>
/// Unicode-GB Code转换
/// </summary>
/// <param name="text">将Unicode编码字符转换成GB编码字符</param>
/// <returns>GB Code字符串</returns>
public string UnicodeToGB(string text)
{
UnicodeEncoding unicode = new UnicodeEncoding();
text = unicode.GetString(unicode.GetBytes(Regex.Unescape(text.Trim())));
return text;
}
/// <summary>
/// Unicode-GB Code转换
/// </summary>
/// <param name="text">将Unicode编码字符转换成GB编码字符</param>
/// <returns>GB Code字符串</returns>
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 重新计算箱型箱量统计信息
/// <summary>
/// 重新计算箱型箱量统计信息
/// </summary>
/// <param name="tempOpSeaeCtns">原始箱型箱量信息</param>
/// <returns>返回重新统计后的箱型箱量合计信息</returns>
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 获取用户应收、应付权限信息
/// <summary>
/// 获取用户应收、应付权限信息
/// </summary>
/// <param name="tempFeeType">费用类型</param>
/// <returns>返回 true 有权限操作数据 false 没有权限操作数据</returns>
private bool ValidateUserFeeAuthority(int tempFeeType)
{
int iResult = 0;
if (tempFeeType == 1)
{
UserAuthorityManage userAuthorityManageOrder = new UserAuthorityManage(strUserID, "modSeaImportList");
UserAuthorityManage userRecvAuthorityManage = new UserAuthorityManage(strUserID, "modSeaiRecvFeeManagement");
if (userRecvAuthorityManage.OperateType != AuthorityType.NULL)
{
iResult = userAuthorityManageOrder.CheckOperateRange(ModuleType.OPSEAILIST, userRecvAuthorityManage.OperateType, strShowName, strCompanyID, strDeptName, strSeaBSNO, "", strUserID);
}
}
else
{
UserAuthorityManage userAuthorityManageOrder = new UserAuthorityManage(strUserID, "modSeaImportList");
UserAuthorityManage userPayAuthorityManage = new UserAuthorityManage(strUserID, "modSeaiPayFeeManagement");
if (userPayAuthorityManage.OperateType != AuthorityType.NULL)
{
iResult = userAuthorityManageOrder.CheckOperateRange(ModuleType.OPSEAILIST, userPayAuthorityManage.OperateType, strShowName, strCompanyID, strDeptName, strSeaBSNO, "", strUserID);
}
}
if (iResult > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
}
}