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;
namespace DSWeb.Settlements
{
public partial class RecvSettleApplicationGridSource : System.Web.UI.Page
{
private string strHandle;//值为recvapp表示获取付费申请列表值
private string strUserID;
private string strBillNO;//申请业务编号
private string strBSNO;//委托业务编号
private string strPaySettleAppID;//付费申请GID
private string strRunSettleID;//运行结算表GID
private string strPaySettleID;//付费结算表GID
private string stroplb; //业务类别:0 海运出口,2 海运进口,3 空运出口,4 空运进口,5 陆运,6 仓储费,7 仓储入库,8 仓储出库
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["handle"] != null)
{
strHandle = Request.QueryString["handle"].ToString().Trim().ToLower();
}
if (Request.QueryString["uid"] != null)
{
strUserID = Request.QueryString["uid"].ToString();
}
if (Request.QueryString["billno"] != null)
{
strBillNO = Request.QueryString["billno"].ToString();
}
if (Request.QueryString["bsno"] != null)
{
strBSNO = Request.QueryString["bsno"].ToString();
}
if (Request.QueryString["oplb"] != null)
{
stroplb = Request.QueryString["oplb"].ToString();
}
if (Request.QueryString["paysettleappid"] != null)
{
strPaySettleAppID = Request.QueryString["paysettleappid"].ToString();
}
if(Request.QueryString["runsettleid"] != null)
{
strRunSettleID = Request.QueryString["runsettleid"].ToString().Trim();
}
if(Request.QueryString["paysettleid"] != null)
{
strPaySettleID = Request.QueryString["paysettleid"].ToString().Trim();
}
if (strHandle != null)
{
//获取付费信息
if (strHandle.Equals("recvapporderlist") && strBillNO != null)
{
Response.Write(GetrecvappSettlementOrderList(strBillNO));
}
if (strHandle.Equals("recvappfeelist") && strBillNO != null && strBSNO != null)
{
Response.Write(GetrecvappSettlementFeeList(strBillNO, strBSNO));
}
if (strHandle.Equals("recvappeditfee") && strPaySettleAppID != null && strBSNO != null)
{
Response.Write(GetPaySettleApplicaionEditFeeByGID(strPaySettleAppID,strBSNO));
}
if (strHandle.Equals("recvappopseaelist") && strPaySettleAppID != null)
{
Response.Write(GetPaySettleAppOpSeaeList(strPaySettleAppID));
}
if (strHandle.Equals("recvappfeelist") && strPaySettleAppID != null && strBSNO != null)
{
Response.Write(GetPaySettleAppFeeList(strPaySettleAppID,strBSNO));
}
//获取付费结算的委托信息
if (strHandle.Equals("payasettleopseaelist") && strPaySettleID != null)
{
Response.Write(GetPaySettleOpSeaeList(strPaySettleID));
}
if (strHandle.Equals("paysettlefeelist") && strPaySettleID != null)
{
Response.Write(GetPaySettleFeeList(strPaySettleID, strBSNO));
}
}
}
#region 获取付费申请委托信息
///
/// 根据申请业务编号获取付费申请委托信息
///
/// 申请业务编号
///
private string GetrecvappSettlementOrderList(string tempBillNO)
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
DataTable sourceTable;
//string strSql = string.Format("(SELECT BSNO, CUSTOMERNAME,MBLNO,HBLNO FROM op_seae WHERE 1 > 0 AND "
// + " BSNO IN (SELECT BSNO FROM ch_fee_do WHERE BILLNO = '{0}'))"
// + " UNION ALL "
// + " (SELECT BSNO, CUSTOMERNAME,MBLNO,HBLNO FROM op_seai WHERE 1 > 0 AND "
// + " BSNO IN (SELECT BSNO FROM ch_fee_do WHERE BILLNO = '{0}'))", tempBillNO);
//sourceTable = feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0];
//2013-02-05 修改
string strSql = string.Format("(SELECT BSNO,CUSTOMERNAME,MBLNO,HBLNO FROM VW_Settlement WHERE 1 > 0 AND "
+ " BSNO IN (SELECT BSNO FROM ch_fee_do WHERE BILLNO = '{0}')) order by CUSTOMERNAME,bsno", tempBillNO);
sourceTable = feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0];
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("rows:[");
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("data:[");
sourceBuilder.Append("\"0\",");
for (int j = 1; j < sourceTable.Columns.Count; j++)
{
if (j == sourceTable.Columns.Count - 1)
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\"");
}
else
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\",");
}
}
if (i == sourceTable.Rows.Count - 1)
{
sourceBuilder.Append("]}");
}
else
{
sourceBuilder.Append("]},");
}
}
sourceBuilder.Append("]");
sourceBuilder.Append("}");
return sourceBuilder.ToString();
}
#endregion
private string GetrecvappSettlementFeeList(string tempBillNO,string tempBSNO)
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
DataTable sourceTable;
string strSql = String.Format(" SELECT FEEID as GID,FEETYPE,CUSTOMERNAME,FEENAME,CURRENCY,AMOUNT,(case when AMOUNT-DOAMOUNT=0 then 0 else DOAMOUNT end) as DOAMOUNT,(case when AMOUNT-DOAMOUNT=0 then DOAMOUNT else AMOUNT-DOAMOUNT end) as wj FROM ch_fee_do WHERE BILLNO = '{0}' AND BSNO = '{1}' ", tempBillNO, tempBSNO);
sourceTable = getStatusNameTable(feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0]);
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("rows:[");
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("data:[");
sourceBuilder.Append("\"0\",");
for (int j = 1; j < sourceTable.Columns.Count; j++)
{
if (j == sourceTable.Columns.Count - 1)
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\"");
}
else
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\",");
}
}
if (i == sourceTable.Rows.Count - 1)
{
sourceBuilder.Append("]}");
}
else
{
sourceBuilder.Append("]},");
}
}
sourceBuilder.Append("]");
sourceBuilder.Append("}");
return sourceBuilder.ToString();
}
#region 将数据集表中费用状态FeeStatus和应收应付类型FeeType的数字状态位转换成文字
///
/// 将数据集表中费用状态FeeStatus和应收应付类型FeeType的数字状态位转换成文字
///
/// 原数据源DataTable
/// 返回新数据源DataTable
private DataTable getStatusNameTable(DataTable tempTable)
{
DataTable sourceTable = tempTable;
DataTable cloneTable = new DataTable();
int iSwitch = 0;
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
if (iSwitch == 0)
{
for (int j = 0; j < sourceTable.Columns.Count; j++)
{
if (sourceTable.Columns[j].ColumnName.Equals("FEETYPE"))
{
DataColumn newColumn = new DataColumn();
newColumn.ColumnName = sourceTable.Columns[j].ColumnName;
newColumn.DataType = System.Type.GetType("System.String");
cloneTable.Columns.Add(newColumn);
}
else
{
DataColumn newColumn = new DataColumn();
newColumn.ColumnName = sourceTable.Columns[j].ColumnName;
newColumn.DataType = sourceTable.Columns[j].DataType;
cloneTable.Columns.Add(newColumn);
}
}
iSwitch = 1;
}
DataRow cloneRow = cloneTable.NewRow();
for (int k = 0; k < sourceTable.Columns.Count; k++)
{
if (sourceTable.Columns[k].ColumnName.Equals("FEETYPE"))
{
int iFeeStatus = int.Parse(sourceTable.Rows[i][k].ToString());
string strFeeStatus = "";
switch (iFeeStatus)
{
case 1:
strFeeStatus = "收";
break;
case 2:
strFeeStatus = "付";
break;
default:
break;
}
cloneRow[sourceTable.Columns[k].ColumnName] = strFeeStatus;
}
else
{
cloneRow[sourceTable.Columns[k].ColumnName] = sourceTable.Rows[i][k];
}
}
cloneTable.Rows.Add(cloneRow);
}
//cloneTable.Columns.Remove("FEESTATUS");
//cloneTable.Columns.Add(new DataColumn("FEESTATUS", System.Type.GetType("System.String")));
return cloneTable;
}
#endregion
#region 获取付费申请费用信息
///
/// 获取付费申请费用信息
///
/// 付费申请GID
/// 委托编号
/// JSON数据集
private string GetPaySettleApplicaionEditFeeByGID(string tempPaySettlementAppID, string tempBSNO)
{
FeePaySettleApplicationDA feePaySettleApplicaionDA = new FeePaySettleApplicationDA();
string strConditionBSNO = tempBSNO.Trim() == "" ? "" : " AND C.BSNO = '" + tempBSNO + "'";
string strSql = " SELECT C.GID,CASE WHEN C.FEETYPE = 1 THEN '收' ELSE '付' END as FEETYPE,C.FEENAME,C.CUSTOMERNAME,C.UNIT, "
+ " C.UNITPRICE,C.QUANTITY,C.AMOUNT,C.CURRENCY,C.EXCHANGERATE,ISNULL(C.ORDERAMOUNT,0) as ORDERAMOUNT,C.AMOUNT - ISNULL(C.ORDERAMOUNT,0) as UNODERAMOUNT "
+ " FROM ch_fee_do as A INNER JOIN ch_fee_recvapplication as B ON A.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON A.FEEID = C.GID WHERE B.GID = '" + tempPaySettlementAppID + "' " + strConditionBSNO;
DataTable invoiceTable = new DataTable();
invoiceTable = feePaySettleApplicaionDA.GetDataSetBySql(strSql).Tables[0];
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("rows:[");
for (int i = 0; i < invoiceTable.Rows.Count; i++)
{
sourceBuilder.Append("{id:\"" + invoiceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("data:[");
sourceBuilder.Append("\"0\",");
for (int j = 1; j < invoiceTable.Columns.Count; j++)
{
if (j == invoiceTable.Columns.Count - 1)
{
sourceBuilder.Append("\"" + invoiceTable.Rows[i][j].ToString() + "\"");
}
else
{
sourceBuilder.Append("\"" + invoiceTable.Rows[i][j].ToString() + "\",");
}
}
if (i == invoiceTable.Rows.Count - 1)
{
sourceBuilder.Append("]}");
}
else
{
sourceBuilder.Append("]},");
}
}
sourceBuilder.Append("]");
sourceBuilder.Append("}");
return sourceBuilder.ToString();
}
#endregion
private string GetPaySettleAppOpSeaeList(string tempPaySettleAppGID)
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
string strSql = String.Format(" SELECT A.BSNO,A.CUSTOMERNAME,A.CUSTNO,A.MBLNO,A.HBLNO,A.CUSTOMNO,A.CUSTOMNO2 "
+ " FROM VW_Settlement AS A INNER JOIN ch_fee_do as B ON A.BSNO = B.BSNO "
+ " INNER JOIN ch_fee_recvapplication AS C ON B.BILLNO = C.BILLNO "
+ " WHERE C.GID = '{0}' ", tempPaySettleAppGID);
DataTable sourceTable = new DataTable();
sourceTable = feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0];
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("rows:[");
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("data:[");
sourceBuilder.Append("\"0\",");
for (int j = 1; j < sourceTable.Columns.Count; j++)
{
if (j == sourceTable.Columns.Count - 1)
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\"");
}
else
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\",");
}
}
if (i == sourceTable.Rows.Count - 1)
{
sourceBuilder.Append("]}");
}
else
{
sourceBuilder.Append("]},");
}
}
sourceBuilder.Append("]");
sourceBuilder.Append("}");
return sourceBuilder.ToString();
}
#region 获取付费结算委托信息
///
/// 获取付费结算委托信息
///
/// 付费结算表GID
/// 返回与付费结算关联的委托信息
private string GetPaySettleOpSeaeList(string tempPaySettleGID)
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
//string strSql = String.Format(" SELECT A.BSNO,A.CUSTOMERNAME,A.CUSTNO,A.MBLNO,A.HBLNO "
// + " FROM (select BSNO,CUSTOMERNAME,CUSTNO,MBLNO,HBLNO from op_seae union all select BSNO,CUSTOMERNAME,CUSTNO,MBLNO,HBLNO from op_seai) AS A "
// + " INNER JOIN ch_fee_do as B ON A.BSNO = B.BSNO "
// + " INNER JOIN ch_fee_settlement AS C ON B.BILLNO = C.BILLNO "
// + " WHERE C.GID = '{0}' ", tempPaySettleGID);
//2013-02-05 修改
string strSql = String.Format(" SELECT A.BSNO,A.CUSTOMERNAME,A.CUSTNO,A.MBLNO,A.HBLNO,A.CUSTOMNO,A.CUSTOMNO2 "
+ " FROM (select * from VW_Settlement) AS A "
+ " INNER JOIN ch_fee_do as B ON A.BSNO = B.BSNO "
+ " INNER JOIN ch_fee_settlement AS C ON B.BILLNO = C.BILLNO "
+ " WHERE C.GID = '{0}' ", tempPaySettleGID);
DataTable sourceTable = new DataTable();
sourceTable = feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0];
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("rows:[");
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("data:[");
sourceBuilder.Append("\"0\",");
for (int j = 1; j < sourceTable.Columns.Count; j++)
{
if (j == sourceTable.Columns.Count - 1)
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\"");
}
else
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\",");
}
}
if (i == sourceTable.Rows.Count - 1)
{
sourceBuilder.Append("]}");
}
else
{
sourceBuilder.Append("]},");
}
}
sourceBuilder.Append("]");
sourceBuilder.Append("}");
return sourceBuilder.ToString();
}
#endregion
#region 获取付费申请关联的委托信息的费用明细
///
/// 获取付费申请关联的委托信息的费用明细
///
/// 付费申请GID
/// 委托业务编号BSNO
/// 返回付费申请关联的委托信息的费用明细
private string GetPaySettleAppFeeList(string tempPaySettleAppGID,string tempBSNO)
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
string strSql = String.Format(" SELECT A.FEEID,CASE WHEN A.FEETYPE = 1 THEN '收' ELSE '付' END as FEETYPE,A.FEENAME,A.CUSTOMERNAME,ISNULL(B.UNIT,1) AS UNIT, "
+ " B.UNITPRICE,B.QUANTITY,B.AMOUNT,B.CURRENCY,A.EXCHANGERATE,A.ORIGAMOUNT AS ORDERAMOUNT,"
+ " CASE WHEN B.ORDERAMOUNT = B.AMOUNT THEN 0 ELSE B.AMOUNT - B.ORDERAMOUNT END AS UNODERAMOUNT "
+ " FROM ch_fee_do AS A LEFT JOIN ch_fee as B ON A.FEEID = B.GID "
+ " INNER JOIN ch_fee_recvapplication as C ON A.BILLNO = C.BILLNO "
+ " WHERE A.BSNO = '{0}' AND C.GID = '{1}' ", tempBSNO,tempPaySettleAppGID);
DataTable sourceTable = new DataTable();
sourceTable = feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0];
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("rows:[");
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("data:[");
sourceBuilder.Append("\"0\",");
for (int j = 1; j < sourceTable.Columns.Count; j++)
{
if (j == sourceTable.Columns.Count - 1)
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\"");
}
else
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\",");
}
}
if (i == sourceTable.Rows.Count - 1)
{
sourceBuilder.Append("]}");
}
else
{
sourceBuilder.Append("]},");
}
}
sourceBuilder.Append("]");
sourceBuilder.Append("}");
return sourceBuilder.ToString();
}
#endregion
#region 获取付费结算关联的委托信息的费用明细
///
/// 获取付费结算关联的委托信息的费用明细
///
/// 付费结算GID
/// 委托业务编号BSNO
/// 返回付费申请关联的委托信息的费用明细
private string GetPaySettleFeeList(string tempPaySettleGID, string tempBSNO)
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
string strSql = String.Format(" SELECT A.FEEID,CASE WHEN A.FEETYPE = 1 THEN '收' ELSE '付' END as FEETYPE,A.FEENAME,A.CUSTOMERNAME,ISNULL(B.UNIT,1) AS UNIT, "
+ " B.UNITPRICE,B.QUANTITY,B.AMOUNT,B.CURRENCY,A.EXCHANGERATE,A.DOAMOUNT AS SETTLEAMOUNT,"//
//+ " CASE WHEN B.ORDERAMOUNT = B.AMOUNT THEN 0 ELSE B.AMOUNT - B.SETTLEMENT END AS UNODERAMOUNT "
+ " isnull(B.AMOUNT - B.SETTLEMENT,0) AS UNODERAMOUNT "
+ " FROM ch_fee_do AS A LEFT JOIN ch_fee as B ON A.FEEID = B.GID "
+ " INNER JOIN ch_fee_settlement as C ON A.BILLNO = C.BILLNO "
+ " WHERE A.BSNO = '{0}' AND C.GID = '{1}' ", tempBSNO, tempPaySettleGID);
DataTable sourceTable = new DataTable();
sourceTable = feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0];
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("rows:[");
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("data:[");
sourceBuilder.Append("\"0\",");
for (int j = 1; j < sourceTable.Columns.Count; j++)
{
if (j == sourceTable.Columns.Count - 1)
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\"");
}
else
{
sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\",");
}
}
if (i == sourceTable.Rows.Count - 1)
{
sourceBuilder.Append("]}");
}
else
{
sourceBuilder.Append("]},");
}
}
sourceBuilder.Append("]");
sourceBuilder.Append("}");
return sourceBuilder.ToString();
}
#endregion
//
}
}