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.
DS7/DSWeb/SeaiInfoLCL/SeaiFeeLCLEdit.aspx.cs

1458 lines
74 KiB
C#

2 years ago
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.SeaiInfoLCL
{
public partial class SeaiFeeLCLEdit : System.Web.UI.Page
{
private string recvJSON;
private string payJSON;
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;
//主提单号
dvOrderPrimaryVal.InnerHtml = topSeaiEntity.MBLNO;
//委托单位
dvOrderCellVal.InnerHtml = topSeaiEntity.CUSTOMERNAME;
}
}
#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();
//feeEntity.Remark = UnicodeToGB(strArg[1].ToString().Replace("\"", "").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, "modSeaImportLCLList");
UserAuthorityManage userRecvAuthorityManage = new UserAuthorityManage(strUserID, "modSeaiLCLRecvFeeManagement");
if (userRecvAuthorityManage.OperateType != AuthorityType.NULL)
{
iResult = userAuthorityManageOrder.CheckOperateRange(ModuleType.OPSEAILIST, userRecvAuthorityManage.OperateType, strShowName, strCompanyID, strDeptName, strSeaBSNO, "", strUserID);
}
}
else
{
UserAuthorityManage userAuthorityManageOrder = new UserAuthorityManage(strUserID, "modSeaImportLCLList");
UserAuthorityManage userPayAuthorityManage = new UserAuthorityManage(strUserID, "modSeaiLCLPayFeeManagement");
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
}
}