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.EntityDA; using System.Text; using System.Text.RegularExpressions; namespace DSWeb.Settlements { public partial class RecvAppAuditGridSource : System.Web.UI.Page { private string strHandle; private string strRecvAppGid; private string strSearchCondition;//查询条件 private string strUserID; private string strFeeSearch;//费用查询条件 private string strBSNO;//委托业务编号 protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["handle"] != null) { strHandle = Request.QueryString["handle"].ToString().Trim().ToLower(); } if (Request.QueryString["recvappid"] != null) { strRecvAppGid = Request.QueryString["recvappid"].ToString().Trim(); } if (Request.QueryString["search"] != null) { UnicodeEncoding unicode = new UnicodeEncoding(); strSearchCondition = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["search"].ToString()))); } if (Session["USERID"] != null) { strUserID = Session["USERID"].ToString(); } //获取费用查询条件 if (Request.QueryString["fsearch"] != null) { UnicodeEncoding unicode = new UnicodeEncoding(); strFeeSearch = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["fsearch"].ToString()))); } if (Request.QueryString["bsno"] != null) { strBSNO = Request.QueryString["bsno"].ToString(); } if (strHandle != null) { //表示收费申请审核获取申请结算总费用 if (strHandle.Equals("recvapptotal") && strRecvAppGid != null) { Response.Write(GetRecvAppTotal()); } if (strHandle.Equals("ordersearch") && strSearchCondition != null) { Response.Write(GetSeaeOrderBySearch(strSearchCondition)); } if (strHandle.Equals("feelist") && strFeeSearch != null) { Response.Write(GetFeeList(strBSNO)); } } } #region 获取收费申请审核获取申请结算总费用 /// /// 获取收费申请审核获取申请结算总费用 /// /// private string GetRecvAppTotal() { FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA(); DataTable sourceTable; string strSql = String.Format("SELECT GID,AMOUNTRMB,AMOUNTUSD,AMOUNTRMB-isnull(SETTLERMB,0) as SETTLERMB,AMOUNTUSD-isnull(SETTLEUSD,0) as SETTLEUSD FROM ch_fee_recvapplication WHERE GID = '{0}'", strRecvAppGid); sourceTable = feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0]; StringBuilder sourceBuilder = new StringBuilder(); sourceBuilder.Append("{"); sourceBuilder.Append("total:["); for (int i = 0; i < sourceTable.Rows.Count; i++) { if (i == 0) { sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\","); } else { sourceBuilder.Append(",{id:\"" + sourceTable.Rows[i][0].ToString() + "\","); } sourceBuilder.Append("\"rmb\":\"" + sourceTable.Rows[i][1].ToString() + "\","); sourceBuilder.Append("\"usd\":\"" + sourceTable.Rows[i][2].ToString() + "\","); sourceBuilder.Append("\"rmbsettle\":\"" + sourceTable.Rows[i][3].ToString() + "\","); sourceBuilder.Append("\"usdsettle\":\"" + sourceTable.Rows[i][4].ToString() + "\"}"); } sourceBuilder.Append("]"); sourceBuilder.Append("}"); return sourceBuilder.ToString(); } #endregion #region 根据搜索条件获取等待收费申请审核的委托信息 /// /// 根据搜索条件获取等待收费申请审核的委托信息 /// /// /// public string GetSeaeOrderBySearch(string tempSearch) { string strBillNO = "";//申请单号 string strApplicationID = "";//收费结算申请表GID string strUserID = "";//用户GID tempSearch = tempSearch.Replace("{", ""); tempSearch = tempSearch.Replace("}", ""); tempSearch = tempSearch.Replace("[", ""); tempSearch = tempSearch.Replace("]", ""); string[] searchArg = tempSearch.Split(new char[] { ',' }); string strSeaeCondition = ""; int strtmpoplb = 0; for (int i = 0; i < searchArg.Length; i++) { string[] strArg = searchArg[i].Split(new char[] { ':' }); if (!strArg[1].Replace("\"", "").Trim().Equals("")) { switch (strArg[0].Replace("\"", "")) { //case "cus"://Customer // strSeaeCondition += String.Format("AND CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); // break; case "bno"://BillNO strSeaeCondition += String.Format(" AND (CUSTNO LIKE '%{0}%' OR MBLNO LIKE '%{0}%' OR HBLNO LIKE '%{0}%' OR CUSTOMNO LIKE '%{0}%' OR CUSTOMNO2 LIKE '%{0}%')", strArg[1].Replace("\"", "")); break; case "bt"://ETD BeginDate strSeaeCondition += String.Format(" AND ETD >= '{0}' ", strArg[1].Replace("\"", "")); break; case "et"://ETD EndDate strSeaeCondition += String.Format(" AND ETD <= '{0}' ", strArg[1].Replace("\"", "")); break; case "ves"://Vessel strSeaeCondition += String.Format(" AND VESSEL LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "voy"://Voyno strSeaeCondition += String.Format(" AND VOYNO LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; //case "deno"://DebitNO // //strSqlCondition += String.Format(" VOYNO LIKE '%{0}%' ", strArg[1]); // break; //case "ise"://IsSettled // break; //case "fty"://FeeType // strSqlCondition += String.Format(" FEETYPE = {0} ", strArg[1]); // break; //case "cur"://Currency // strSqlCondition += String.Format(" FEETYPE = {0} ", strArg[1]); // break; case "id": strApplicationID = strArg[1].Replace("\"", ""); break; case "billno": strBillNO = strArg[1].Replace("\"", ""); break; case "user": strUserID = strArg[1].Replace("\"", ""); break; case "bty"://业务类型 strtmpoplb = int.Parse(strArg[1].Replace("\"", "")); break; default: break; } } } FeeSettlementDA feeSettlementDA = new FeeSettlementDA(); DataTable sourceTable; //string strSql = "SELECT BSNO, CUSTOMERNAME,MBLNO,HBLNO FROM op_seae WHERE 1 > 0 AND BSNO IN ( " // + "SELECT BSNO FROM ch_fee WHERE GID IN" // + "(SELECT A.GID FROM ch_fee as A LEFT JOIN ch_fee_do as B ON A.GID = B.FEEID WHERE FEEID IS NULL) AND (FEESTATUS = 8 OR FEESTATUS = 0))" // + strSeaeCondition; //switch (strtmpoplb) //{ // case 0://所有业务类型 // strSql = string.Format(" SELECT BSNO,'海运出口' OPLB, CUSTOMERNAME,MBLNO,HBLNO FROM op_seae WHERE 1 > 0 AND " // + " BSNO IN (SELECT A.BSNO FROM ch_fee as A INNER JOIN ch_fee_do as B ON A.GID = B.FEEID INNER JOIN workflow_do as C ON B.BILLNO = C.BILLNO " // + " WHERE (A.FEESTATUS = 8 OR A.FEESTATUS = 0) AND B.BILLNO = '{0}' AND C.AUDITOR = '{1}') " // + " union all " // + " SELECT BSNO,'海运进口' OPLB, CUSTOMERNAME,MBLNO,HBLNO FROM op_seai WHERE 1 > 0 AND " // + " BSNO IN (SELECT A.BSNO FROM ch_fee as A INNER JOIN ch_fee_do as B ON A.GID = B.FEEID INNER JOIN workflow_do as C ON B.BILLNO = C.BILLNO " // + " WHERE (A.FEESTATUS = 8 OR A.FEESTATUS = 0) AND B.BILLNO = '{0}' AND C.AUDITOR = '{1}') " // + strSeaeCondition, strBillNO, strUserID); // break; // case 1://海运出口 // strSql= string.Format(" SELECT BSNO,'海运进口' OPLB, CUSTOMERNAME,MBLNO,HBLNO FROM op_seae WHERE 1 > 0 AND " // + " BSNO IN (SELECT A.BSNO FROM ch_fee as A INNER JOIN ch_fee_do as B ON A.GID = B.FEEID INNER JOIN workflow_do as C ON B.BILLNO = C.BILLNO " // + " WHERE (A.FEESTATUS = 8 OR A.FEESTATUS = 0) AND B.BILLNO = '{0}' AND C.AUDITOR = '{1}') " // +strSeaeCondition, strBillNO, strUserID); // break; // case 2://海运进口 // strSql= string.Format(" SELECT BSNO,'海运进口' OPLB, CUSTOMERNAME,MBLNO,HBLNO FROM op_seai WHERE 1 > 0 AND " // + " BSNO IN (SELECT A.BSNO FROM ch_fee as A INNER JOIN ch_fee_do as B ON A.GID = B.FEEID INNER JOIN workflow_do as C ON B.BILLNO = C.BILLNO " // + " WHERE (A.FEESTATUS = 8 OR A.FEESTATUS = 0) AND B.BILLNO = '{0}' AND C.AUDITOR = '{1}') " // + strSeaeCondition, strBillNO, strUserID); // break; // case 3: // break; // case 4: // break; // default: // break; //} string strSql = ""; //2013-02-05 修改 begin string sOPLBCondition = ""; switch (strtmpoplb) { case 0://所有业务类型 sOPLBCondition = ""; break; case 1://海运出口op_Seae sOPLBCondition = " and OPLBNAME='海运出口' "; break; case 2://海运进口op_Seai sOPLBCondition = " and OPLBNAME='海运进口' "; break; case 3: sOPLBCondition = " and OPLBNAME='空运出口' "; break; case 4: sOPLBCondition = " and OPLBNAME='空运进口' "; break; case 5://陆运托运 sOPLBCondition = " and OPLBNAME='陆运托运' "; break; case 6://仓储费 sOPLBCondition = " and OPLBNAME='仓储费' "; break; case 7://仓储入库 sOPLBCondition = " and OPLBNAME='仓储入库' "; break; case 8://仓储出库 sOPLBCondition = " and OPLBNAME='仓储出库' "; break; case 9://陆运派车 sOPLBCondition = " and OPLBNAME='陆运派车' "; break; case 11://陆运派车 sOPLBCondition = " and OPLBNAME='报关业务' "; break; case 12://陆运派车 sOPLBCondition = " and OPLBNAME='大宗散货' "; break; default: break; } strSql = string.Format(" SELECT BSNO,OPLBNAME, CUSTOMERNAME,MBLNO,HBLNO,CUSTOMNO FROM VW_Settlement WHERE 1 > 0 AND " + " BSNO IN (SELECT A.BSNO FROM ch_fee as A INNER JOIN ch_fee_do as B ON A.GID = B.FEEID INNER JOIN workflow_do as C ON B.BILLNO = C.BILLNO " + " WHERE (A.FEESTATUS = 8 OR A.FEESTATUS = 0) AND B.BILLNO = '{0}' AND C.AUDITOR = '{1}') {2}" + strSeaeCondition, strBillNO, strUserID, sOPLBCondition); //end sourceTable = feeSettlementDA.GetExcuteSql(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 /// 返回json字符串 public string GetFeeList(string tempBSNO) { FeeSettlementDA feeSettlementDA = new FeeSettlementDA(); DataTable sourceTable; string strCondition = ""; string strBillNO = ""; string strUserID = ""; if (strFeeSearch != null) { if (!strFeeSearch.Trim().Equals("")) { string tempSearch = strFeeSearch; tempSearch = tempSearch.Replace("{", ""); tempSearch = tempSearch.Replace("}", ""); tempSearch = tempSearch.Replace("[", ""); tempSearch = tempSearch.Replace("]", ""); string[] searchArg = tempSearch.Split(new char[] { ',' }); for (int i = 0; i < searchArg.Length; i++) { string[] strArg = searchArg[i].Split(new char[] { ':' }); if (!strArg[1].Replace("\"", "").Trim().Equals("")) { switch (strArg[0].Replace("\"", "")) { case "cus"://Customer strCondition += String.Format(" AND B.CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "fnm"://FeeName if (!strArg[1].Replace("\"", "").Trim().Equals("")) { int iFeeName = -1; try { iFeeName = int.Parse(strArg[1].Replace("\"", "").Trim()); } catch { } if (iFeeName == -1) { strCondition += String.Format(" AND A.FEENAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); } } break; case "fty"://FeeType int iFeeType = int.Parse(strArg[1].Replace("\"", "").Trim()); if (iFeeType > 0) { strCondition += String.Format(" AND A.FEETYPE = {0}", iFeeType); } break; case "cur"://Currency int iCurrency = int.Parse(strArg[1].Replace("\"", "").Trim()); if (iCurrency == 1) { strCondition += String.Format(" AND B.CURRENCY LIKE '%{0}%' ", "RMB"); } else if (iCurrency == 2) { strCondition += String.Format(" AND B.CURRENCY LIKE '%{0}%' ", "USD"); } break; case "billno": strBillNO = strArg[1].Replace("\"", "").Trim(); break; case "user": strUserID = strArg[1].Replace("\"", "").Trim(); break; default: break; } } } } } //string strSql = String.Format("SELECT GID,FEETYPE,CUSTOMERNAME,FEENAME,CURRENCY,AMOUNT,AMOUNT-SETTLEMENT,AMOUNT-SETTLEMENT FROM ch_fee WHERE BSNO = '{0}' AND (FEESTATUS = 0 OR FEESTATUS = 8) AND GID NOT IN (SELECT FEEID FROM ch_fee_do WHERE BSNO IN ('{0}'))", tempBSNO); string strSql = String.Format(" SELECT A.GID,A.FEETYPE,B.CUSTOMERNAME,A.FEENAME,B.CURRENCY,B.AMOUNT,B.DOAMOUNT,B.AMOUNT - B.DOAMOUNT " + " FROM ch_fee as A INNER JOIN ch_fee_do as B ON A.GID = B.FEEID WHERE BILLNO = '{0}' AND A.BSNO = '{1}' AND CATEGORY = 4 " + strCondition, strBillNO, tempBSNO); sourceTable = getStatusNameTable(feeSettlementDA.GetExcuteSql(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 /// /// 将数据集表中费用状态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 } }