|
|
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 DSWeb.Models;
|
|
|
using DSWeb.EntityDA;
|
|
|
using System.Text;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text.RegularExpressions;
|
|
|
using System.Globalization;
|
|
|
|
|
|
using System.Data.SqlClient;
|
|
|
using WebSqlHelper;
|
|
|
|
|
|
namespace DSWeb.Settlements
|
|
|
{
|
|
|
public partial class DoPayApplicationSettlement : System.Web.UI.Page
|
|
|
{
|
|
|
private string strBillNO;//申请业务编号
|
|
|
private string strUserID;//登录人UserID
|
|
|
private string strShowName;//登录人名称
|
|
|
private string strCompanyID;//公司GID
|
|
|
private string strDeptName;//部门名称
|
|
|
private int iSettleType;//结算类型 1-单付费结算 2-合并付费结算
|
|
|
private string strMergeCacheName;//合并付费申请缓存名称
|
|
|
private string recvJSON_2;
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
{
|
|
|
if (Session["USERID"] != null)
|
|
|
{
|
|
|
strUserID = Session["USERID"].ToString();
|
|
|
}
|
|
|
|
|
|
if (Session["SHOWNAME"] != null)
|
|
|
{
|
|
|
strShowName = Session["SHOWNAME"].ToString();
|
|
|
}
|
|
|
if (Session["COMPANYID"] != null)
|
|
|
{
|
|
|
strCompanyID = Session["COMPANYID"].ToString();
|
|
|
}
|
|
|
if (Session["DEPTNAME"] != null)
|
|
|
{
|
|
|
strDeptName = Session["DEPTNAME"].ToString();
|
|
|
}
|
|
|
if (Request.QueryString["billno"] != null)
|
|
|
{
|
|
|
strBillNO = Request.QueryString["billno"].ToString().Trim();
|
|
|
}
|
|
|
|
|
|
if (Request.QueryString["type"] != null)
|
|
|
{
|
|
|
iSettleType = int.Parse(Request.QueryString["type"].ToString());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iSettleType = 0;
|
|
|
}
|
|
|
|
|
|
if (Request.QueryString["mergecachename"] != null)
|
|
|
{
|
|
|
strMergeCacheName = Request.QueryString["mergecachename"].ToString().Trim();
|
|
|
}
|
|
|
|
|
|
if (!IsPostBack)
|
|
|
{
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
if (this.txt_settleTime.Value.Trim() == "")
|
|
|
{
|
|
|
string rq = T_ALL_DA.GetStrSQL("rq", "select getdate() as rq");//convert(char(10),getdate(),20)
|
|
|
this.txt_settleTime.Value = rq;
|
|
|
}
|
|
|
//判断是否在结算页面显示预收预付信息录入
|
|
|
this.h_ISADVANCE.Value = T_ALL_DA.GetStrSQL("ISADVANCE", "select ISADVANCE from subcomp_seae_def where CORPID='" + strCompanyID + "'");
|
|
|
//是否取用预收预付,默认是0 不取用
|
|
|
this.h_isAccess.Value = "0";
|
|
|
//费用的结算单据用途:1-收款,2-付款
|
|
|
this.h_feetype.Value = "2";
|
|
|
//
|
|
|
this.h_bb5.Value = "RMB";
|
|
|
}
|
|
|
|
|
|
#region ####
|
|
|
if (!h_enter.Value.Trim().Equals("1"))
|
|
|
{
|
|
|
if (strBillNO != null)
|
|
|
{
|
|
|
if (!strBillNO.Equals(""))
|
|
|
{
|
|
|
if (this.h_settleinfo.Value.ToString().Trim().Equals(""))
|
|
|
{
|
|
|
FeePayApplicationEntity feePayApplicationEntity = new FeePayApplicationEntity();
|
|
|
FeePaySettleApplicationDA feePaySettleApplication = new FeePaySettleApplicationDA();
|
|
|
|
|
|
feePayApplicationEntity = feePaySettleApplication.GetFeePayApplicationByBillNO(strBillNO, strCompanyID);
|
|
|
|
|
|
if (feePayApplicationEntity.GID != null)
|
|
|
{
|
|
|
this.h_rmbamount.Value = feePayApplicationEntity.AmountRMB.ToString();
|
|
|
this.h_usdamount.Value = feePayApplicationEntity.AmountUSD.ToString();
|
|
|
|
|
|
Decimal rmbamount = feePayApplicationEntity.AmountRMB - feePayApplicationEntity.SettleRMB;
|
|
|
Decimal usdamount = feePayApplicationEntity.AmountUSD - feePayApplicationEntity.SettleUSD;
|
|
|
|
|
|
StringBuilder amountBuilder = new StringBuilder();
|
|
|
amountBuilder.Append("{\"settles\":[");
|
|
|
bool isExist = false;
|
|
|
if (feePayApplicationEntity.CURRENCY == "RMB") //if (feePayApplicationEntity.AmountRMB != 0)
|
|
|
{
|
|
|
//header 0 1 2 3 4 5 6 7 8
|
|
|
//var headerArgs_do = new Array("应结币别", "申请金额", "应结金额", "本次结算", "未结", "实结币别", "实结费率", "实结金额", "出账账户");
|
|
|
amountBuilder.Append("{\"id\":\"" + Guid.NewGuid().ToString() + "\",");
|
|
|
amountBuilder.Append("\"cur\":\"RMB\",");//应结币别
|
|
|
amountBuilder.Append("\"applyamount\":\"" + feePayApplicationEntity.AmountRMB.ToString() + "\",");//申请金额
|
|
|
amountBuilder.Append("\"amount\":\"" + rmbamount.ToString() + "\",");//应结金额
|
|
|
amountBuilder.Append("\"ctl\":\"" + rmbamount.ToString() + "\",");//本次结算
|
|
|
amountBuilder.Append("\"uctl\":\"0\",");//未结
|
|
|
amountBuilder.Append("\"cur2\":\"RMB\",");//实结币别
|
|
|
amountBuilder.Append("\"rate2\":\"" + feePayApplicationEntity.Rate.ToString() + "\",");//实结费率
|
|
|
amountBuilder.Append("\"amount2\":\"" + rmbamount.ToString() + "\",");//实结金额
|
|
|
amountBuilder.Append("\"account\":\"\",");//出账账户
|
|
|
amountBuilder.Append("\"bank\":\"\"}");//出账账户
|
|
|
isExist = true;
|
|
|
this.h_cur.Value = "RMB";
|
|
|
this.h_ctl.Value = rmbamount.ToString();
|
|
|
}
|
|
|
if (feePayApplicationEntity.CURRENCY == "USD") //if (feePayApplicationEntity.AmountUSD != 0)
|
|
|
{
|
|
|
if (isExist)
|
|
|
{
|
|
|
amountBuilder.Append(",{\"id\":\"" + Guid.NewGuid().ToString() + "\",");
|
|
|
amountBuilder.Append("\"cur\":\"USD\",");
|
|
|
amountBuilder.Append("\"applyamount\":\"" + feePayApplicationEntity.AmountUSD.ToString() + "\",");//应结费率
|
|
|
amountBuilder.Append("\"amount\":\"" + usdamount.ToString() + "\",");
|
|
|
amountBuilder.Append("\"ctl\":\"" + usdamount.ToString() + "\",");
|
|
|
amountBuilder.Append("\"uctl\":\"0\",");
|
|
|
amountBuilder.Append("\"cur2\":\"USD\",");//实结币别
|
|
|
amountBuilder.Append("\"rate2\":\"" + feePayApplicationEntity.Rate.ToString() + "\",");//实结费率
|
|
|
amountBuilder.Append("\"amount2\":\"" + usdamount.ToString() + "\",");//实结金额
|
|
|
amountBuilder.Append("\"account\":\"\",");
|
|
|
amountBuilder.Append("\"bank\":\"\"}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
amountBuilder.Append("{\"id\":\"" + Guid.NewGuid().ToString() + "\",");
|
|
|
amountBuilder.Append("\"cur\":\"USD\",");
|
|
|
amountBuilder.Append("\"applyamount\":\"" + feePayApplicationEntity.AmountUSD.ToString() + "\",");//申请金额
|
|
|
amountBuilder.Append("\"amount\":\"" + usdamount.ToString() + "\",");
|
|
|
amountBuilder.Append("\"ctl\":\"" + usdamount.ToString() + "\",");
|
|
|
amountBuilder.Append("\"uctl\":\"0\",");
|
|
|
amountBuilder.Append("\"cur2\":\"USD\",");//实结币别
|
|
|
amountBuilder.Append("\"rate2\":\"" + feePayApplicationEntity.Rate.ToString() + "\",");//实结费率
|
|
|
amountBuilder.Append("\"amount2\":\"" + usdamount.ToString() + "\",");//实结金额
|
|
|
amountBuilder.Append("\"account\":\"\",");
|
|
|
amountBuilder.Append("\"bank\":\"\"}");
|
|
|
}
|
|
|
this.h_cur.Value = "USD";
|
|
|
this.h_ctl.Value = usdamount.ToString();
|
|
|
}
|
|
|
amountBuilder.Append("]}");
|
|
|
h_settleinfo.Value = amountBuilder.ToString();
|
|
|
|
|
|
this.txt_customerName.Value = feePayApplicationEntity.CustomerName.Trim();
|
|
|
this.txt_customerName.Disabled = true;//结算单位不可编辑
|
|
|
this.txt_remark.Value = feePayApplicationEntity.Remark;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
RecordSettleFee();//
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
if (strMergeCacheName != null && iSettleType == 2)
|
|
|
{
|
|
|
MergePayApplicationInfo();
|
|
|
}
|
|
|
|
|
|
if (h_enter.Value.Trim() == "1")
|
|
|
{
|
|
|
//提交付费申请结算
|
|
|
PostPayApplicationSettle();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#region 获取合并付费申请的汇总费用信息
|
|
|
/// <summary>
|
|
|
/// 获取合并付费申请的汇总费用信息
|
|
|
/// </summary>
|
|
|
private void MergePayApplicationInfo()
|
|
|
{
|
|
|
StringBuilder mergeBuilder = new StringBuilder();
|
|
|
|
|
|
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
|
|
|
DataTable mergeTable = new DataTable();
|
|
|
if (Session[strMergeCacheName] != null)
|
|
|
{
|
|
|
mergeTable = (DataTable)Session[strMergeCacheName];
|
|
|
}
|
|
|
|
|
|
|
|
|
mergeBuilder.Append("{");
|
|
|
mergeBuilder.Append("\"totals\":");
|
|
|
mergeBuilder.Append("[");
|
|
|
mergeBuilder.Append("{");
|
|
|
|
|
|
decimal rmbTotal = 0;
|
|
|
decimal usdTotal = 0;
|
|
|
for (int i = 0; i < mergeTable.Rows.Count; i++)
|
|
|
{
|
|
|
FeePayApplicationEntity feePayApplicationEntity = feePaySettleApplicationDA.GetFeePayApplicationByGID(mergeTable.Rows[i][0].ToString());
|
|
|
|
|
|
if (feePayApplicationEntity != null)
|
|
|
{
|
|
|
if (feePayApplicationEntity.GID != null)
|
|
|
{
|
|
|
if (feePayApplicationEntity.AmountUSD != 0)
|
|
|
{
|
|
|
usdTotal += feePayApplicationEntity.AmountUSD;
|
|
|
}
|
|
|
|
|
|
if (feePayApplicationEntity.AmountRMB != 0)
|
|
|
{
|
|
|
rmbTotal += feePayApplicationEntity.AmountRMB;
|
|
|
}
|
|
|
|
|
|
if (i == 0)
|
|
|
{
|
|
|
this.txt_customerName.Value = feePayApplicationEntity.CustomerName;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
mergeBuilder.Append("\"totalrmb\":" + rmbTotal.ToString() + ",");
|
|
|
mergeBuilder.Append("\"totalusd\":" + usdTotal.ToString() + "");
|
|
|
|
|
|
mergeBuilder.Append("}");
|
|
|
mergeBuilder.Append("]");
|
|
|
mergeBuilder.Append("}");
|
|
|
|
|
|
h_total.Value = mergeBuilder.ToString();
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 提交付费申请结算
|
|
|
/// <summary>
|
|
|
/// 提交付费申请结算
|
|
|
/// </summary>
|
|
|
private void PostPayApplicationSettle()
|
|
|
{
|
|
|
FeePaySettleDA feePaySettleDA = new FeePaySettleDA();
|
|
|
|
|
|
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
|
|
|
DataTable mergeTable = new DataTable();
|
|
|
if (Session[strMergeCacheName] != null)
|
|
|
{
|
|
|
mergeTable = (DataTable)Session[strMergeCacheName];
|
|
|
}
|
|
|
|
|
|
IList<FeePayApplicationEntity> feePayAppEntities = new List<FeePayApplicationEntity>();
|
|
|
|
|
|
FeeSettlementEntity feeSettlementEntity = new FeeSettlementEntity();
|
|
|
decimal rmbTotal = 0;
|
|
|
decimal usdTotal = 0;
|
|
|
for (int i = 0; i < mergeTable.Rows.Count; i++)
|
|
|
{
|
|
|
FeePayApplicationEntity feePayAppEntity = feePaySettleApplicationDA.GetFeePayApplicationByGID(mergeTable.Rows[i][0].ToString());
|
|
|
if (feePayAppEntity != null)
|
|
|
{
|
|
|
if (feePayAppEntity.GID != null)
|
|
|
{
|
|
|
feePayAppEntities.Add(feePayAppEntity);
|
|
|
}
|
|
|
|
|
|
//if (feePayAppEntity.AmountUSD > 0)
|
|
|
if (feePayAppEntity.AmountUSD != 0)
|
|
|
{
|
|
|
usdTotal += feePayAppEntity.AmountUSD;
|
|
|
}
|
|
|
|
|
|
//if (feePayAppEntity.AmountRMB > 0)
|
|
|
if (feePayAppEntity.AmountRMB != 0)
|
|
|
{
|
|
|
rmbTotal += feePayAppEntity.AmountRMB;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
feeSettlementEntity.GID = Guid.NewGuid().ToString();
|
|
|
feeSettlementEntity.AmountRMB = rmbTotal;
|
|
|
feeSettlementEntity.AmountUSD = usdTotal;
|
|
|
feeSettlementEntity.AccountRMB = this.h_rmbaccount.Value.Trim();
|
|
|
feeSettlementEntity.AccountUSD = this.h_usdaccount.Value.Trim();
|
|
|
//预收预付自由结算时,赋值
|
|
|
feeSettlementEntity.ACCOUNTS_CURRENCY = (feeSettlementEntity.AmountUSD == 0) ? "RMB" : "USD";//记账资料_币别
|
|
|
feeSettlementEntity.ACCOUNTS_RATE = feeSettlementEntity.Rate;//记账资料_汇率
|
|
|
feeSettlementEntity.ACCOUNTS_MONEY = (feeSettlementEntity.AmountUSD == 0) ? feeSettlementEntity.AmountRMB : feeSettlementEntity.AmountUSD;//记账资料_金额
|
|
|
feeSettlementEntity.PREPAY_CURRENCY = (feeSettlementEntity.AmountUSD == 0) ? "RMB" : "USD";//预付支资料_币别
|
|
|
feeSettlementEntity.PREPAY_RATE = feeSettlementEntity.Rate;//预付支资料_汇率
|
|
|
feeSettlementEntity.PREPAY_MONEY = 0;//预付支资料_金额
|
|
|
feeSettlementEntity.AHSR_CURRENCY = (feeSettlementEntity.AmountUSD == 0) ? "RMB" : "USD";//实付支资料_币别
|
|
|
feeSettlementEntity.AHSR_RATE = feeSettlementEntity.Rate;//实付支资料_汇率
|
|
|
feeSettlementEntity.AHSR_MONEY = (feeSettlementEntity.AmountUSD == 0) ? feeSettlementEntity.AmountRMB : feeSettlementEntity.AmountUSD;//实付支资料_金额
|
|
|
feeSettlementEntity.FINANCIAL_CURRENCY = (feeSettlementEntity.AmountUSD == 0) ? "RMB" : "USD";//财务费用_币别
|
|
|
feeSettlementEntity.FINANCIAL_RATE = feeSettlementEntity.Rate;//财务费用_汇率
|
|
|
feeSettlementEntity.FINANCIAL_MONEY = 0;//财务费用_金额
|
|
|
feeSettlementEntity.ADVANCE_CURRENCY = (feeSettlementEntity.AmountUSD == 0) ? "RMB" : "USD";//预付支取用资料_币别
|
|
|
feeSettlementEntity.ADVANCE_RATE = feeSettlementEntity.Rate;//预付支取用资料_汇率
|
|
|
feeSettlementEntity.ADVANCE_MONEY = 0;//预付支取用资料_金额
|
|
|
//
|
|
|
feeSettlementEntity.BillType = 1;
|
|
|
feeSettlementEntity.BillStatus = 1;
|
|
|
feeSettlementEntity.SettleMode = 1;//付费结算
|
|
|
feeSettlementEntity.ChequeNo = txt_chequeno.Value.Trim();
|
|
|
feeSettlementEntity.ChequeNoUsd = txt_chequenousd.Value.Trim();
|
|
|
feeSettlementEntity.SettleUser = strUserID;
|
|
|
feeSettlementEntity.CustomerName = this.txt_customerName.Value;//结算单位
|
|
|
feeSettlementEntity.SettleType = int.Parse(this.sel_settlemode.Value);
|
|
|
feeSettlementEntity.Remark = txt_remark.Value.Trim();
|
|
|
feeSettlementEntity.CompanyID = strCompanyID;
|
|
|
feeSettlementEntity.FinancialVoucher = "";
|
|
|
feeSettlementEntity.VoucherNO = this.txt_voucherNO.Value.Trim();
|
|
|
|
|
|
int iResult = feePaySettleDA.MergePayApplicationSettle(feePayAppEntities, feeSettlementEntity, strCompanyID, strUserID);
|
|
|
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
this.btn_enter.Disabled = true;
|
|
|
h_enter.Value = "2";
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", "<script>alert('付费结算提交成功');refresh();window.parent.opener.location.href = window.parent.opener.location.href;</script>");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", "<script>alert('付费结算提交失败');refresh()</script>");
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 执行结算付费申请结算
|
|
|
/// <summary>
|
|
|
/// 执行结算付费申请结算
|
|
|
/// </summary>
|
|
|
private void RecordSettleFee()
|
|
|
{
|
|
|
#region 将页面post获取的信息解析
|
|
|
|
|
|
string settleTotal = "";
|
|
|
int iResult = 0;
|
|
|
settleTotal = h_settleinfo.Value;
|
|
|
|
|
|
string strNewBillNO = CreateSettleCode();
|
|
|
|
|
|
FeeSettlementEntity feeSettlementEntity = new FeeSettlementEntity();
|
|
|
string strFeePaySettleID = Guid.NewGuid().ToString();
|
|
|
feeSettlementEntity.GID = strFeePaySettleID;
|
|
|
|
|
|
|
|
|
string cur="";//币别
|
|
|
decimal applyamount = 0;//申请金额
|
|
|
decimal amount = 0; //应结金额
|
|
|
decimal ctl = 0; //实结金额
|
|
|
decimal uctl = 0; //未结金额
|
|
|
string cur2 = "";//币别
|
|
|
decimal rate2 = 0;//币别
|
|
|
decimal amount2 = 0; //应结金额
|
|
|
string account = "";//入账账户GID
|
|
|
string bank = "";//入账账户显示信息
|
|
|
|
|
|
if (settleTotal != "")
|
|
|
{
|
|
|
string tempSettle = settleTotal.Substring(settleTotal.IndexOf("[") + 1, settleTotal.IndexOf("]") - settleTotal.IndexOf("[") - 1);
|
|
|
string[] tempSettleFees = tempSettle.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
|
if (tempSettleFees.Length > 0)
|
|
|
{
|
|
|
for (int i = 0; i < tempSettleFees.Length; i++)
|
|
|
{
|
|
|
tempSettleFees[i] = tempSettleFees[i].ToString().Replace("{", "");
|
|
|
tempSettleFees[i] = tempSettleFees[i].ToString().Replace("}", "");
|
|
|
string[] strCell = tempSettleFees[i].Split(new char[] { ',' });
|
|
|
|
|
|
if (strCell.Length > 0)
|
|
|
{
|
|
|
string strCurrency = "";
|
|
|
for (int j = 0; j < strCell.Length; j++)
|
|
|
{
|
|
|
string[] strArg = strCell[j].Split(new char[] { ':' });
|
|
|
switch (strArg[0].Replace("\"", ""))
|
|
|
{
|
|
|
case "id":
|
|
|
//feeSettlementEntity.GID = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
case "cur"://币别
|
|
|
strCurrency = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
cur = strCurrency;
|
|
|
break;
|
|
|
case "applyamount":
|
|
|
applyamount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "amount":
|
|
|
//if (strCurrency.Equals("RMB"))
|
|
|
//{
|
|
|
// feeSettlementEntity.AmountRMB = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
//}
|
|
|
//else if (strCurrency.Equals("USD"))
|
|
|
//{
|
|
|
// feeSettlementEntity.AmountUSD = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
//}
|
|
|
amount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "ctl"://实结金额
|
|
|
//if (strCurrency.Equals("RMB"))
|
|
|
//{
|
|
|
// feeSettlementEntity.AmountRMB = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
//}
|
|
|
//else if (strCurrency.Equals("USD"))
|
|
|
//{
|
|
|
// feeSettlementEntity.AmountUSD = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
//}
|
|
|
ctl = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "uctl"://未结金额
|
|
|
uctl = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "cur2"://币别
|
|
|
cur2 = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
case "rate2":
|
|
|
feeSettlementEntity.Rate = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
rate2 = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "amount2":
|
|
|
if (cur2.Equals("RMB"))
|
|
|
{
|
|
|
feeSettlementEntity.AmountRMB = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
}
|
|
|
else if (cur2.Equals("USD"))
|
|
|
{
|
|
|
feeSettlementEntity.AmountUSD = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
}
|
|
|
amount2 = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "account":
|
|
|
if (strCurrency.Equals("RMB"))
|
|
|
{
|
|
|
feeSettlementEntity.AccountRMB = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
}
|
|
|
else if (strCurrency.Equals("USD"))
|
|
|
{
|
|
|
feeSettlementEntity.AccountUSD = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
}
|
|
|
account = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
case "bank":
|
|
|
bank = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//
|
|
|
if (feeSettlementEntity.AccountUSD == null)
|
|
|
{
|
|
|
feeSettlementEntity.AccountUSD = "";
|
|
|
}
|
|
|
if (feeSettlementEntity.AccountRMB == null)
|
|
|
{
|
|
|
feeSettlementEntity.AccountRMB = "";
|
|
|
}
|
|
|
|
|
|
//预付
|
|
|
feeSettlementEntity.ACCOUNTS_CURRENCY = this.ddl_bb1.Value.Trim();
|
|
|
feeSettlementEntity.ACCOUNTS_RATE = this.txt_hl1.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_hl1.Value.Trim());
|
|
|
feeSettlementEntity.ACCOUNTS_MONEY = this.txt_je1.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_je1.Value.Trim());
|
|
|
feeSettlementEntity.PREPAY_CURRENCY = this.ddl_bb2.Value.Trim();
|
|
|
feeSettlementEntity.PREPAY_RATE = this.txt_hl2.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_hl2.Value.Trim());
|
|
|
feeSettlementEntity.PREPAY_MONEY = this.txt_je2.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_je2.Value.Trim());
|
|
|
feeSettlementEntity.AHSR_CURRENCY = this.ddl_bb3.Value.Trim();
|
|
|
feeSettlementEntity.AHSR_RATE = this.txt_hl3.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_hl3.Value.Trim());
|
|
|
feeSettlementEntity.AHSR_MONEY = this.txt_je3.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_je3.Value.Trim());
|
|
|
feeSettlementEntity.FINANCIAL_CURRENCY = this.ddl_bb4.Value.Trim();
|
|
|
feeSettlementEntity.FINANCIAL_RATE = this.txt_hl4.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_hl4.Value.Trim());
|
|
|
feeSettlementEntity.FINANCIAL_MONEY = this.txt_je4.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_je4.Value.Trim());
|
|
|
//feeSettlementEntity.ADVANCE_CURRENCY = this.ddl_bb5.Value.Trim();
|
|
|
feeSettlementEntity.ADVANCE_CURRENCY = this.h_bb5.Value.Trim();
|
|
|
feeSettlementEntity.ADVANCE_RATE = this.txt_hl5.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_hl5.Value.Trim());
|
|
|
feeSettlementEntity.ADVANCE_MONEY = this.txt_je5.Value.Trim() == "" ? 0 : Decimal.Parse(this.txt_je5.Value.Trim());
|
|
|
#endregion
|
|
|
|
|
|
#region 构建插入更新的sql语句
|
|
|
FeeDoDA feeDoDA = new FeeDoDA();
|
|
|
FeeDA feeDA = new FeeDA();
|
|
|
IList<FeeEntity> feeEntities = new List<FeeEntity>();
|
|
|
IList<FeeDoEntity> feeDoEntities2 = new List<FeeDoEntity>();
|
|
|
IList<FeeDoEntity> feeDoEntities = new List<FeeDoEntity>();
|
|
|
//feeDoEntities = feeDoDA.GetFeeDoByBillNO(strBillNO);
|
|
|
feeDoEntities = feeDoDA.GetFeeDoByBillNO_DelCRDR(strBillNO);
|
|
|
if (feeDoEntities.Count > 0)
|
|
|
{
|
|
|
//IList<FeeEntity> feeEntities = new List<FeeEntity>();
|
|
|
//FeeDA feeDA = new FeeDA();
|
|
|
//foreach (FeeDoEntity tempFeeDoEntity in feeDoEntities)
|
|
|
//{
|
|
|
// FeeEntity feeEntity = new FeeEntity();
|
|
|
|
|
|
// feeEntity = feeDA.GetFeeByID(tempFeeDoEntity.FeeID);
|
|
|
|
|
|
// feeEntities.Add(feeEntity);
|
|
|
//}
|
|
|
|
|
|
FeePayApplicationEntity feePayApplicationEntity = new FeePayApplicationEntity();
|
|
|
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
|
|
|
|
|
|
feePayApplicationEntity = feePaySettleApplicationDA.GetFeePayApplicationByBillNO(strBillNO, strCompanyID);
|
|
|
int oldBillStatus = feePayApplicationEntity.BillStatus;
|
|
|
|
|
|
if (feePayApplicationEntity.GID != null)
|
|
|
{
|
|
|
//ch_fee_payapplication
|
|
|
feePayApplicationEntity.SettleRate = feePayApplicationEntity.Rate;
|
|
|
feePayApplicationEntity.SettleUser = strUserID;
|
|
|
if (this.txt_settleTime.Value.Trim() != "" && this.txt_settleTime.Value.Trim().IndexOf("0001") < 0)
|
|
|
{
|
|
|
feePayApplicationEntity.SettleTime = DateTime.Parse(this.txt_settleTime.Value.Trim());
|
|
|
}
|
|
|
|
|
|
#region begin 2014-01-11 添加 部分结算
|
|
|
ArrayList alFeeDo = new ArrayList();
|
|
|
if ((applyamount-ctl) != 0)
|
|
|
{
|
|
|
//ch_fee_do
|
|
|
decimal sums = 0; //金额累加
|
|
|
foreach (FeeDoEntity feeDoEntity in feeDoEntities)
|
|
|
{
|
|
|
if (feeDoEntity.Amount == feeDoEntity.DoAmount)
|
|
|
{
|
|
|
sums += feeDoEntity.DoAmount;
|
|
|
if ((ctl - sums) == 0)
|
|
|
{
|
|
|
feeDoEntities2.Add(feeDoEntity);
|
|
|
break;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
decimal doamount = feeDoEntity.Amount - (sums - ctl);
|
|
|
string ssql = "update [ch_fee_do] set [DOAMOUNT]=" + doamount + " where GID='" + feeDoEntity.GID.ToString().Trim() + "'";
|
|
|
alFeeDo.Add(ssql);
|
|
|
feeDoEntity.DoAmount = feeDoEntity.Amount - (sums - ctl);
|
|
|
feeDoEntities2.Add(feeDoEntity);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sums += (feeDoEntity.Amount-feeDoEntity.DoAmount);
|
|
|
if ((ctl - sums) == 0)
|
|
|
{
|
|
|
decimal doamount = feeDoEntity.Amount;
|
|
|
string ssql = "update [ch_fee_do] set [DOAMOUNT]=" + doamount + " where GID='" + feeDoEntity.GID.ToString().Trim() + "'";
|
|
|
alFeeDo.Add(ssql);
|
|
|
feeDoEntity.DoAmount = ctl;
|
|
|
feeDoEntities2.Add(feeDoEntity);
|
|
|
break;
|
|
|
}
|
|
|
//else if ((ctl - sums) > 0)
|
|
|
//{
|
|
|
// decimal doamount = feeDoEntity.Amount;
|
|
|
// string ssql = "update [ch_fee_do] set [DOAMOUNT]=" + doamount + " where GID='" + feeDoEntity.GID.ToString().Trim() + "'";
|
|
|
// alFeeDo.Add(ssql);
|
|
|
// feeDoEntity.DoAmount = (feeDoEntity.Amount - feeDoEntity.DoAmount);
|
|
|
// feeDoEntities2.Add(feeDoEntity);
|
|
|
//}
|
|
|
else
|
|
|
{
|
|
|
decimal doamount = feeDoEntity.DoAmount + ctl;
|
|
|
//if ((feeDoEntity.DoAmount + ctl) >= feeDoEntity.Amount)
|
|
|
if ((feeDoEntity.DoAmount + ctl) == feeDoEntity.Amount)
|
|
|
{
|
|
|
doamount = feeDoEntity.Amount;
|
|
|
}
|
|
|
string ssql = "update [ch_fee_do] set [DOAMOUNT]=" + doamount + " where GID='" + feeDoEntity.GID.ToString().Trim() + "'";
|
|
|
alFeeDo.Add(ssql);
|
|
|
feeDoEntity.DoAmount = ctl;
|
|
|
feeDoEntities2.Add(feeDoEntity);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//ch_fee_payapplication
|
|
|
if (cur.Trim() == "RMB")
|
|
|
{
|
|
|
feePayApplicationEntity.SettleRMB += ctl;
|
|
|
//
|
|
|
if (feePayApplicationEntity.SettleRMB == feePayApplicationEntity.AmountRMB)
|
|
|
{
|
|
|
feePayApplicationEntity.BillStatus = 4;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
feePayApplicationEntity.BillStatus = 5;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
feePayApplicationEntity.SettleUSD += ctl;
|
|
|
//
|
|
|
if (feePayApplicationEntity.SettleUSD == feePayApplicationEntity.AmountUSD)
|
|
|
{
|
|
|
feePayApplicationEntity.BillStatus = 4;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
feePayApplicationEntity.BillStatus = 5;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
feeDoEntities2 = feeDoEntities;
|
|
|
|
|
|
//ch_fee_payapplication
|
|
|
feePayApplicationEntity.SettleRMB = feePayApplicationEntity.AmountRMB;
|
|
|
feePayApplicationEntity.SettleUSD = feePayApplicationEntity.AmountUSD;
|
|
|
feePayApplicationEntity.BillStatus = 4;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 汇率损益
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
//是否在结算时生成“汇率损益”信息
|
|
|
string sISCGOL = T_ALL_DA.GetStrSQL("ISCGOL", "select ISCGOL from subcomp_seae_def where CORPID='" + strCompanyID + "'");
|
|
|
if (sISCGOL.Trim() == "True")
|
|
|
{
|
|
|
foreach (FeeDoEntity feeDoEntity in feeDoEntities2)
|
|
|
{
|
|
|
FeeEntity feeEntity = new Models.FeeEntity();
|
|
|
feeEntity = feeDA.GetFeeByID(feeDoEntity.FeeID.ToString().Trim());
|
|
|
//
|
|
|
decimal amount3 = 0;
|
|
|
string cur3 = feeEntity.Currency.ToString().Trim();
|
|
|
decimal ExchangeRate = feeEntity.ExchangeRate;
|
|
|
decimal rate3 = feeDoEntity.ExchangeRate;
|
|
|
if (cur3.Trim() != cur2.Trim())
|
|
|
{
|
|
|
if (cur3.Trim() == "RMB")
|
|
|
{
|
|
|
//amount3 = decimal.Parse((amount2 * rate2 - ctl).ToString("F2"));
|
|
|
//amount3 = decimal.Parse(((feeDoEntity.DoAmount / rate2 - ctl / rate3) * rate2).ToString("F2"));
|
|
|
amount3 = 0;
|
|
|
|
|
|
}
|
|
|
else if (cur3.Trim() == "USD")
|
|
|
{
|
|
|
//amount3 = decimal.Parse((amount2 - ctl * rate3).ToString("F2"));
|
|
|
amount3 = decimal.Parse((feeDoEntity.DoAmount * rate2 - feeDoEntity.DoAmount * rate3).ToString("F2"));
|
|
|
}
|
|
|
//
|
|
|
if (amount3 != 0)
|
|
|
{
|
|
|
feeEntity.GID = Guid.NewGuid().ToString();
|
|
|
feeEntity.FeeName = "汇率损益";
|
|
|
//feeEntity.CustomerName = "汇率损益";
|
|
|
feeEntity.UnitPrice = amount3;
|
|
|
feeEntity.Quantity = 1;
|
|
|
feeEntity.Amount = amount3;
|
|
|
feeEntity.Settlement = amount3;
|
|
|
feeEntity.Currency = "RMB";
|
|
|
feeEntity.ExchangeRate = 1;
|
|
|
feeEntity.Remark = "汇率损益";
|
|
|
feeEntity.FeeType = 2;
|
|
|
feeEntity.EnterOperator = strUserID;
|
|
|
feeEntity.FeeStatus = 9;
|
|
|
feeEntity.WMSOUTBSNO = "";
|
|
|
feeEntities.Add(feeEntity);
|
|
|
//
|
|
|
string ssql = "INSERT INTO [ch_fee_do]([GID],[BILLNO],[BSNO],[MBLNO],[HBLNO],[CUSTOMERNAME],[BSTYPE],[FEEID],[FEENAME],[CURRENCY],[AMOUNT],[DOAMOUNT],[FEETYPE],[CATEGORY],[BILLSTATUS],[REMARK],[ISDELETED],[CREATETIME],[EXCHANGERATE],[ORIGCURRENCY],[DELETEUSER],[DELETETIME],[ORIGAMOUNT],[INVOICESETTLENO],[COMPANYID]) "
|
|
|
+ " select '" + Guid.NewGuid().ToString() + "' as [GID],'" + strNewBillNO + "' as [BILLNO],[BSNO],[MBLNO],[HBLNO],'" + feeEntity.CustomerName.ToString() + "' as [CUSTOMERNAME],[BSTYPE],'" + feeEntity.GID + "' as [FEEID],'" + feeEntity.FeeName + "' as [FEENAME],'" + feeEntity.Currency + "' as [CURRENCY]," + feeEntity.Amount + " as [AMOUNT]," + feeEntity.Amount + " as [DOAMOUNT],'" + feeEntity.FeeType + "' as [FEETYPE],[CATEGORY],[BILLSTATUS],[REMARK],[ISDELETED],[CREATETIME],'" + feeEntity.ExchangeRate + "' as [EXCHANGERATE],'" + feeEntity.Currency + "' as [ORIGCURRENCY],[DELETEUSER],[DELETETIME]," + feeEntity.Amount + " as [ORIGAMOUNT],[INVOICESETTLENO],[COMPANYID] from ch_fee_do where GID='" + feeDoEntity.GID.ToString().Trim() + "'";
|
|
|
alFeeDo.Add(ssql);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 插入 ch_fee_settlement 表
|
|
|
feeSettlementEntity.BillNO = strNewBillNO;
|
|
|
feeSettlementEntity.BillType = 2;
|
|
|
feeSettlementEntity.VoucherNO = txt_voucherNO.Value.Trim();
|
|
|
feeSettlementEntity.SettleUser = strUserID;
|
|
|
feeSettlementEntity.BillStatus = 1;
|
|
|
if (oldBillStatus == 0 || oldBillStatus == 5)//如果付费申请状态是已审批或部分结算,则表示付费结算方式为付费申请方式
|
|
|
{
|
|
|
feeSettlementEntity.SettleMode = 1;//申请结算
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
feeSettlementEntity.SettleMode = 2;//自由结算
|
|
|
}
|
|
|
|
|
|
feeSettlementEntity.FinancialVoucher = "";
|
|
|
feeSettlementEntity.BillType = 2;
|
|
|
feeSettlementEntity.CustomerName = this.txt_customerName.Value.Trim();//结算单位
|
|
|
feeSettlementEntity.SettleType = int.Parse(this.sel_settlemode.Value);
|
|
|
feeSettlementEntity.Remark = txt_remark.Value.Trim();
|
|
|
feeSettlementEntity.CompanyID = strCompanyID.Trim();
|
|
|
feeSettlementEntity.AuditUser = strUserID.Trim();
|
|
|
feeSettlementEntity.ChequeNo = txt_chequeno.Value.Trim();
|
|
|
feeSettlementEntity.ChequeNoUsd = txt_chequenousd.Value.Trim();
|
|
|
if (this.txt_settleTime.Value.Trim() != "" && this.txt_settleTime.Value.Trim().IndexOf("0001") < 0)
|
|
|
{
|
|
|
feeSettlementEntity.SettleTime = DateTime.Parse(this.txt_settleTime.Value.Trim());
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 预收预付处理
|
|
|
if (this.h_ISADVANCE.Value.Trim() == "True")
|
|
|
{
|
|
|
#region 插入预收预付表
|
|
|
if (feeSettlementEntity.PREPAY_MONEY != 0)
|
|
|
{
|
|
|
Decimal strEXCHANGERATE = 1;
|
|
|
if (feeSettlementEntity.PREPAY_RATE == 0)
|
|
|
{
|
|
|
strEXCHANGERATE = feeSettlementEntity.PREPAY_RATE;
|
|
|
if (strEXCHANGERATE <= 0)
|
|
|
{
|
|
|
strEXCHANGERATE = 1;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strEXCHANGERATE = 1;
|
|
|
}
|
|
|
//
|
|
|
string ssql = "INSERT INTO [ch_fee_advance_payment](GID,LINKGID,BILLNO,FEETYPE,CUSTOMERNAME,CURRENCY,AMOUNT,CREATEUSER,CREATETIME,DOAMOUNT,SETTLEUSER,REMARK,ISDELETE,DELETEUSER,ISFINISH,COMPANYID,VOUCHERNO,EXCHANGERATE) "
|
|
|
+ " values ('" + feeSettlementEntity.GID.ToString() + "','" + feeSettlementEntity.GID.ToString() + "','" + feeSettlementEntity.BillNO.ToString() + "',2,'" + feeSettlementEntity.CustomerName.ToString() + "','" + feeSettlementEntity.PREPAY_CURRENCY.ToString() + "','" + feeSettlementEntity.PREPAY_MONEY.ToString() + "','" + strUserID.Trim() + "',getdate(),0,'','',0,'',0,'" + strCompanyID.Trim() + "','','" + strEXCHANGERATE + "')";
|
|
|
alFeeDo.Add(ssql);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 预收预付取用,解析post返回的值,并形成插入更新的sql语句
|
|
|
if (this.h_isAccess.Value.Trim() == "1")
|
|
|
{
|
|
|
recvJSON_2 = "";
|
|
|
recvJSON_2 = this.recvContainer_2.Value.Trim();
|
|
|
if (!recvJSON_2.Trim().Equals(""))
|
|
|
{
|
|
|
string tempSettle = recvJSON_2.Substring(recvJSON_2.IndexOf("[") + 1, recvJSON_2.IndexOf("]") - recvJSON_2.IndexOf("[") - 1);
|
|
|
string[] tempSettleFees = tempSettle.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
|
if (tempSettleFees.Length > 0)
|
|
|
{
|
|
|
for (int i = 0; i < tempSettleFees.Length; i++)
|
|
|
{
|
|
|
// 1 2 3 4 5 6 7
|
|
|
//客户名称,单号,实录时间,币别,实录金额,未核销金额,本次核销");
|
|
|
string GID = ""; //客户名称
|
|
|
string CUSTOMERNAME = ""; //客户名称
|
|
|
string BILLNO = ""; //单号
|
|
|
string CREATETIME = ""; //实录时间
|
|
|
string CURRENCY = ""; //币别
|
|
|
decimal AMOUNT = 0; //实录金额
|
|
|
decimal DOAMOUNT2 = 0; //未核销金额
|
|
|
decimal DOAMOUNT = 0; //本次核销
|
|
|
string ISFINISH = ""; //是否全部完成核销
|
|
|
|
|
|
tempSettleFees[i] = tempSettleFees[i].ToString().Replace("{", "");
|
|
|
tempSettleFees[i] = tempSettleFees[i].ToString().Replace("}", "");
|
|
|
string[] strCell = tempSettleFees[i].Split(new char[] { ',' });
|
|
|
|
|
|
if (strCell.Length > 0)
|
|
|
{
|
|
|
for (int j = 0; j < strCell.Length; j++)
|
|
|
{
|
|
|
string[] strArg = strCell[j].Split(new char[] { ':' });
|
|
|
switch (strArg[0].Replace("\"", ""))
|
|
|
{
|
|
|
case "GID":
|
|
|
GID = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
case "CUSTOMERNAME"://客户名称
|
|
|
UnicodeEncoding unicode = new UnicodeEncoding();
|
|
|
CUSTOMERNAME = unicode.GetString(unicode.GetBytes(Regex.Unescape(strArg[1].ToString().Replace("\"", "").Trim())));
|
|
|
break;
|
|
|
case "BILLNO"://单号
|
|
|
BILLNO = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
case "CREATETIME"://实录时间
|
|
|
CREATETIME = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
case "CURRENCY"://币别
|
|
|
CURRENCY = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
case "AMOUNT"://实录金额
|
|
|
AMOUNT = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "DOAMOUNT2"://未核销金额
|
|
|
DOAMOUNT2 = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "DOAMOUNT"://本次核销
|
|
|
DOAMOUNT = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
break;
|
|
|
case "ISFINISH"://是否全部完成核销
|
|
|
ISFINISH = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (DOAMOUNT != 0 && GID.Trim() != "")
|
|
|
{
|
|
|
//更新主表
|
|
|
string ssql = "update [ch_fee_advance_payment] set DOAMOUNT=DOAMOUNT+" + DOAMOUNT + ",ISFINISH=" + ISFINISH + " where GID='" + GID + "' and (ISDELETE=0 or ISDELETE is null)";
|
|
|
alFeeDo.Add(ssql);
|
|
|
|
|
|
//插入明细表
|
|
|
ssql = "INSERT INTO [ch_fee_advance_payment_detail](GID,LINKGID,BILLNO,SETTLELINKGID,SETTLEBILLNO,FEETYPE,CUSTOMERNAME,CURRENCY,DOAMOUNT,SETTLEUSER,SETTLETIME,REMARK,ISDELETE,DELETEUSER,COMPANYID,VOUCHERNO) "
|
|
|
+ " values ('" + Guid.NewGuid().ToString() + "','" + GID + "','" + BILLNO + "','" + feeSettlementEntity.GID.ToString() + "','" + feeSettlementEntity.BillNO.ToString() + "',2,'" + CUSTOMERNAME + "','" + CURRENCY + "'," + DOAMOUNT + ",'" + strUserID.Trim() + "',getdate(),'',0,'','" + strCompanyID.Trim() + "','')";
|
|
|
alFeeDo.Add(ssql);
|
|
|
}
|
|
|
//
|
|
|
}
|
|
|
}
|
|
|
//
|
|
|
recvJSON_2 = "";
|
|
|
this.recvContainer_2.Value = "";
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
iResult = feePaySettleApplicationDA.SettleFeePayApplication(feeSettlementEntity, feePayApplicationEntity, feeDoEntities2, strCompanyID, strUserID, feeEntities, alFeeDo);//feeDoEntities
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
this.btn_enter.Disabled = true;
|
|
|
this.txt_voucherNO.Disabled = true;
|
|
|
this.sel_settlemode.Disabled = true;
|
|
|
this.txt_remark.Disabled = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 返回操作结果
|
|
|
if (iResult == 1)
|
|
|
{
|
|
|
txt_billNO.Value = strNewBillNO;
|
|
|
txt_customerName.Disabled = true;
|
|
|
sel_settlemode.Disabled = true;
|
|
|
txt_voucherNO.Disabled = true;
|
|
|
//this.btn_enter.Disabled = true;
|
|
|
|
|
|
FeeSettlementDA feeSettlementDA = new FeeSettlementDA();
|
|
|
feeSettlementEntity = feeSettlementDA.GetFeeSettlementByBillNO(strNewBillNO);
|
|
|
txt_billStatus.Value = "锁定";
|
|
|
txt_settleTime.Value = feeSettlementEntity.SettleTime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
UserDA userDA = new UserDA();
|
|
|
UserEntity userEntity = userDA.GetUserSignByID(feeSettlementEntity.SettleUser);
|
|
|
|
|
|
this.txt_settleUser.Value = userEntity.ShowName;
|
|
|
h_enter.Value = "0";
|
|
|
//判断是否自动生成凭证
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
string strISSETTLEMENTS = T_ALL_DA.GetStrSQL("ISSETTLEMENTS", "SELECT TOP 1 ISSETTLEMENTS FROM cw_design");
|
|
|
if (strISSETTLEMENTS.Trim() == "True")
|
|
|
{
|
|
|
string strISSETTLEMENTSOPEN = T_ALL_DA.GetStrSQL("ISSETTLEMENTSOPEN", "SELECT TOP 1 ISSETTLEMENTSOPEN FROM cw_design");
|
|
|
if (strISSETTLEMENTSOPEN.Trim() == "True")
|
|
|
{
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", "<script>alert('付费结算成功');window.parent.opener.location.href = window.parent.opener.location.href;cwvouchersadd('" + strFeePaySettleID + "');window.close();</script>");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", "<script>alert('付费结算成功');window.parent.opener.location.href = window.parent.opener.location.href;window.close();</script>");
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", "<script>alert('付费结算成功');window.parent.opener.location.href = window.parent.opener.location.href;window.close();</script>");
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", "<script>alert('付费结算失败');</script>");
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
|
|
|
private string CreateSettleCode()
|
|
|
{
|
|
|
int CodeLength = 4;
|
|
|
string strSettleCode = "";
|
|
|
|
|
|
//获取分公司的票号头字符
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
string tempBANKSHEAD = T_ALL_DA.GetStrSQL("BANKSHEAD", "SELECT TOP 1 BANKSHEAD FROM company WHERE GID='" + strCompanyID.Trim() + "'");
|
|
|
string strFeeType = tempBANKSHEAD+"CR";
|
|
|
FeeDoDA feeDoDA = new FeeDoDA();
|
|
|
DateTime nowDateTime = feeDoDA.getServerDateTime();
|
|
|
|
|
|
string strYear = nowDateTime.Year.ToString();
|
|
|
string strMonth = nowDateTime.Month.ToString().Length < 2 ? "0" + nowDateTime.Month.ToString() : nowDateTime.Month.ToString();
|
|
|
//string strDay = nowDateTime.Day.ToString();
|
|
|
string strDateTime = strYear + strMonth;
|
|
|
string strCodePrefix = strFeeType + strDateTime;
|
|
|
|
|
|
//string strSql = "SELECT TOP 1 BILLNO FROM ch_fee_settlement WHERE BILLNO LIKE '" + strFeeType + strDateTime + "%' ORDER BY BILLNO DESC";
|
|
|
|
|
|
string strSql = " SELECT TOP 1 BILLNO FROM "
|
|
|
+ " (SELECT BILLNO FROM ch_fee_payapplication WHERE BILLNO LIKE '" + strFeeType + strDateTime + "%' UNION "
|
|
|
+ " SELECT BILLNO FROM ch_fee_settlement WHERE BILLNO LIKE '" + strFeeType + strDateTime + "%') as A ORDER BY BILLNO DESC";
|
|
|
DataTable billTable = feeDoDA.GetExcuteSql(strSql).Tables[0];
|
|
|
|
|
|
ArrayList codeArg = new ArrayList();
|
|
|
|
|
|
for (int i = 0; i < CodeLength; i++)
|
|
|
{
|
|
|
codeArg.Add(0);
|
|
|
}
|
|
|
|
|
|
|
|
|
string strCode = "";//编号
|
|
|
|
|
|
if (billTable.Rows.Count > 0)
|
|
|
{
|
|
|
string oldCode = billTable.Rows[0][0].ToString();
|
|
|
|
|
|
if (oldCode.IndexOf(strCodePrefix) >= 0)
|
|
|
{
|
|
|
oldCode = oldCode.Substring(strCodePrefix.Length, oldCode.Length - strCodePrefix.Length);
|
|
|
|
|
|
|
|
|
if (oldCode.Length == CodeLength)
|
|
|
{
|
|
|
for (int i = 0; i < oldCode.Length; i++)
|
|
|
{
|
|
|
if (oldCode[i].ToString().IndexOf("0") == 0)
|
|
|
{
|
|
|
oldCode = oldCode.Remove(i, 1);
|
|
|
i = -1;
|
|
|
continue;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
int newNum = int.Parse(oldCode);
|
|
|
|
|
|
newNum = newNum + 1;
|
|
|
|
|
|
string strNewNum = newNum.ToString();
|
|
|
|
|
|
int codeArgCount = codeArg.Count - 1;
|
|
|
for (int i = strNewNum.Length - 1; i >= 0; i--)
|
|
|
{
|
|
|
codeArg[codeArgCount] = strNewNum[i];
|
|
|
codeArgCount--;
|
|
|
}
|
|
|
//for (int i = 0; i < strNewNum.Length; i++)
|
|
|
//{
|
|
|
// codeArg[i] = strNewNum[i];
|
|
|
//}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
int iOld = int.Parse(codeArg[codeArg.Count - 1].ToString());
|
|
|
codeArg[codeArg.Count - 1] = (iOld + 1).ToString();
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < codeArg.Count; i++)
|
|
|
{
|
|
|
strCode += codeArg[i].ToString();
|
|
|
}
|
|
|
|
|
|
strSettleCode = strFeeType + strDateTime + strCode;
|
|
|
return strSettleCode;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
public string UnicodeToGB(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;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|