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.Text; using DSWeb.Models; using DSWeb.EntityDA; using System.Text.RegularExpressions; using System.Collections.Generic; using DSWeb.Authority; namespace DSWeb.CW { public partial class CwVouchersChFeeSettlementListGridSource : System.Web.UI.Page { public string strHandle;//操作方式 public string strSearch;//查询条件 public int iCurrentPage;//当前页数 public int iShowPage;//显示最大页数 public string strCompanyID;//公司GID public string strShowName;//用户显示名 public string strDeptName;//部门名称 public string strUserID;//登录人GID public string strGids;// 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["handle"] != null) { strHandle = Request.QueryString["handle"].ToString().Trim().ToLower(); } if (Request.QueryString["search"] != null) { UnicodeEncoding unicode = new UnicodeEncoding(); strSearch = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["search"].ToString()))); } if (Request.QueryString["cur_page"] != null) { iCurrentPage = int.Parse(Request.QueryString["cur_page"].ToString().Trim()); } else { iCurrentPage = 0; } if (Request.QueryString["show_page"] != null) { iShowPage = int.Parse(Request.QueryString["show_page"].ToString().Trim()); } else { iShowPage = 0; } if (Request.QueryString["gids"] != null) { strGids = Request.QueryString["gids"].ToString(); } if (strHandle != null) { if (strHandle == "settlelist") { Response.Write(GetSettleList()); return; } else if (strHandle == "settlelistpage") { Response.Write(GetSettleListPage()); } else if (strHandle.Trim().ToLower().Equals("isvouchers")) { Response.Write(GetIsVouchers().ToString()); } } } private string GetIsVouchers() { T_ALL_DA T_ALL_DA = new T_ALL_DA(); string sSQL = ""; string alt = ""; string sResult = ""; string sgids = "'" + strGids.Trim().Replace(",", "','") + "'"; // sSQL = "select top 1 GID from ch_fee_settlement where GID in(" + sgids + ") and (VOUNO is not null and VOUNO<>'')"; alt = T_ALL_DA.GetStrSQL("GID", sSQL); if (alt.Trim() != "") { sResult += "有已生成的凭证,不能重复生成!"; } // sSQL = "select count(gid) as hj from ch_fee_do where BILLNO in (select BILLNO from ch_fee_settlement where GID in(" + sgids + "))"; alt = T_ALL_DA.GetStrSQL("hj", sSQL); if (alt.Trim() == "0") { sResult += "没有相关的费用,不能生成凭证!"; } //帐套设置 sSQL = "SELECT top 1 * from cw_design"; DataSet ds = T_ALL_DA.GetAllSQL(sSQL); if (ds == null) { sResult += "请先设置系统帐套信息!"; } else { string strISFCY = "";//是否核算外币 string strISDEPTACC = "";//是否核算部门 string strISEMPLACC = "";//是否核算人员 string strISCORPACC = "";//是否算客户门 //银行账户判断是否设置 //sSQL = "SELECT top 1 ACCOUNT FROM ((SELECT ACCOUNTRMB as ACCOUNT FROM ch_fee_settlement where GID in(" + sgids + ")) UNION (SELECT ACCOUNTUSD as ACCOUNT FROM ch_fee_settlement where GID in(" + sgids + "))) AS a order by ACCOUNT"; //alt = T_ALL_DA.GetStrSQL("GID", sSQL); //if (alt.Trim() == "") //{ // strISCORPACC = "有结算账户为空的数据,请先维护!"; //} //其他常用科目设置 应收 //ISITEMACC 是否核算项目 sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["AR"].ToString().Trim() + "'"; DataSet ds1 = T_ALL_DA.GetAllSQL(sSQL); if (ds1 != null) { if (ds1.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True") { if (strISCORPACC.Trim() == "") { //客户财务编码 (应收的客户财务编码必须核算,应付可以根据配置决定是否核算) sSQL = "select top 1 GID from info_client where SHORTNAME in (select CUSTOMERNAME from ch_fee_settlement where gid in(" + sgids + ") and BILLTYPE = 1) and (FAPCODE is null or FAPCODE='')"; alt = T_ALL_DA.GetStrSQL("GID", sSQL); if (alt.Trim() != "") { strISCORPACC = "有财务应收帐款代码为空的数据,请先维护!"; } } } //if (ds1.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True") //{ // //部门财务编码 // sSQL = "select top 1 GID from sys_dept where DEPTNAME in (select SALEDEPT from op_seae where gid in(" + sgids + ")) and LINKID='" + strCompanyID + "' and (FINANCESOFTCODE is null or FINANCESOFTCODE='')"; // alt = T_ALL_DA.GetStrSQL("GID", sSQL); // if (alt.Trim() != "") // { // strISDEPTACC = "有部门财务软件代码为空的数据,请先维护!"; // } //} //if (ds1.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True") //{ // //人员财务编码 // sSQL = "select top 1 GID from user_baseinfo where USERID in (select gid from [user] where ISDELETED=0 and SHOWNAME in (select SALE from op_seae where gid in(" + sgids + "))) and COMPANYNAME=(select [NAME] from [company] where GID='" + strCompanyID + "') and (FINANCESOFTCODE is null or FINANCESOFTCODE='')"; // alt = T_ALL_DA.GetStrSQL("GID", sSQL); // if (alt.Trim() != "") // { // strISEMPLACC = "有人员财务软件代码为空的数据,请先维护!"; // } //} if (ds1.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True") { //外币财务编码 sSQL = "select top 1 GID from code_currency where CODENAME in (select (case when AMOUNTUSD<>0 then 'USD' else 'RMB' end) as CURRENCY from ch_fee_settlement where gid in(" + sgids + ") and BILLTYPE = 1) and (FINANCESOFTCODE is null or FINANCESOFTCODE='')";// and CURRENCY<>'RMB' alt = T_ALL_DA.GetStrSQL("GID", sSQL); if (alt.Trim() != "") { strISFCY = "有币别财务软件代码为空的数据,请先维护!"; } } } //其他常用科目设置 应付 sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["AP"].ToString().Trim() + "'"; ds1 = T_ALL_DA.GetAllSQL(sSQL); if (ds1 != null) { if (ds1.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True") { if (strISCORPACC.Trim() == "") { //是否默认付费结算借方科目代码 sSQL = "SELECT top 1 GID from cw_design where ISAPMBSPENDING=0 and ISAPTMSFC=0"; alt = T_ALL_DA.GetStrSQL("GID", sSQL); if (alt.Trim() != "") { //客户财务编码 (应收的客户财务编码必须核算,应付可以根据配置决定是否核算) sSQL = "select top 1 GID from info_client where SHORTNAME in (select CUSTOMERNAME from ch_fee_settlement where gid in(" + sgids + ") and BILLTYPE = 2) and (FAPCODE is null or FAPCODE='')"; alt = T_ALL_DA.GetStrSQL("GID", sSQL); if (alt.Trim() != "") { strISCORPACC = "有财务应付帐款代码为空的数据,请先维护!"; } } } } //if (ds1.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True") //{ // //部门财务编码 // sSQL = "select top 1 GID from sys_dept where DEPTNAME in (select SALEDEPT from op_seae where gid in(" + sgids + ")) and LINKID='" + strCompanyID + "' and (FINANCESOFTCODE is null or FINANCESOFTCODE='')"; // alt = T_ALL_DA.GetStrSQL("GID", sSQL); // if (alt.Trim() != "") // { // strISDEPTACC = "有部门财务软件代码为空的数据,请先维护!"; // } //} //if (ds1.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True") //{ // //人员财务编码 // sSQL = "select top 1 GID from user_baseinfo where USERID in (select gid from [user] where ISDELETED=0 and SHOWNAME in (select SALE from op_seae where gid in(" + sgids + ")) and COMPANYNAME=(select [NAME] from [company] where GID='" + strCompanyID + "') and (FINANCESOFTCODE is null or FINANCESOFTCODE='')"; // alt = T_ALL_DA.GetStrSQL("GID", sSQL); // if (alt.Trim() != "") // { // strISEMPLACC = "有人员财务软件代码为空的数据,请先维护!"; // } //} if (ds1.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True") { //外币财务编码 sSQL = "select top 1 GID from code_currency where CODENAME in (select CURRENCY from ch_fee_do where BILLNO in (select BILLNO from ch_fee_settlement where GID in(" + sgids + ") and BILLTYPE = 2)) and (FINANCESOFTCODE is null or FINANCESOFTCODE='')";// and CURRENCY<>'RMB' alt = T_ALL_DA.GetStrSQL("GID", sSQL); if (alt.Trim() != "") { strISFCY = "有币别财务软件代码为空的数据,请先维护!"; } } } sResult += strISCORPACC + strISDEPTACC + strISEMPLACC + strISFCY; } // return sResult; } public string GetSettleList() { FeeSettlementDA feeSettlementDA = new FeeSettlementDA(); DataTable sourceTable; string strCondition = ""; string strTopInclude = ""; string strTopNotInclude = ""; // string strcbisv = " and (VOUNO is null or VOUNO='')"; if (strSearch != null) { if (!strSearch.Trim().Equals("")) { string tempSearch = strSearch; 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 "btime"://Customer strCondition += String.Format(" AND convert(char(10),A.SETTLETIME,20) >= '{0}' ", strArg[1].Replace("\"", "")); break; case "etime"://BillNO strCondition += String.Format(" AND convert(char(10),A.SETTLETIME,20) <= '{0}' ", strArg[1].Replace("\"", "")); break; case "cus"://ETD BeginDate strCondition += String.Format(" AND A.CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "no"://ETD EndDate strCondition += String.Format(" AND A.BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; case "blno"://ETD EndDate //strCondition += String.Format(" AND A.BILLNO in (select billno from ch_fee_do where bsno in (select ContractNo from VW_Settlement where HTH like '%{0}%'))", strArg[1].Replace("\"", "")); strCondition += String.Format(" AND exists (select BILLNO from ch_fee_do as v2 where exists (select bsno from VW_Settlement as v1 where (CUSTNO LIKE '%{0}%' or MBLNO LIKE '%{0}%' or HBLNO LIKE '%{0}%' or CUSTOMNO LIKE '%{0}%' OR CUSTOMNO2 LIKE '%{0}%') and v1.bsno=v2.bsno) and v2.billno=A.billno)", strArg[1].Replace("\"", "")); break; case "vouno"://ETD EndDate strCondition += String.Format(" AND A.VOUNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; case "cbisv"://ETD EndDate string cbisv = strArg[1].Replace("\"", ""); if (cbisv.Trim() == "true") { strcbisv = ""; } break; default: break; } } } } } strCondition += strcbisv; // string strAuthorityCondition = ""; UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleList"); if (userAuthorityManage.OperateType != AuthorityType.NULL) { strAuthorityCondition = userAuthorityManage.GetVisibleRangeSql(userAuthorityManage.VisibleType, ModuleType.RECVSETTLELIST, strShowName, strCompanyID, strDeptName, strUserID); } string strSql = ""; if (iCurrentPage > 0 && iShowPage > 0) { if (iCurrentPage == 1) { strSql = String.Format(" SELECT {0} A.GID,A.VOUNO,CASE WHEN A.BILLTYPE = 1 THEN '收' ELSE '付' END as BILLTYPE,A.BILLNO,A.BILLSTATUS,A.SETTLEMODE,A.CUSTOMERNAME,A.SETTLETYPE,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,A.REMARK " + " FROM ch_fee_settlement as A INNER JOIN [user] as B ON A.SETTLEUSER = B.GID WHERE 1=1 and (ISDELETE=0 or ISDELETE is null) and BILLSTATUS=1 " + strAuthorityCondition + strCondition + " AND ISNULL(ISDELETE,0) <> 1 ORDER BY SETTLETIME,BILLNO", "top " + iShowPage.ToString());//BILLNO LIKE 'DR%'收,cr付 ORDER BY BILLTYPE DESC DESC } else { strTopNotInclude = "top " + (iShowPage * (iCurrentPage - 1)).ToString();//RowCount*PageNum strTopInclude = "top " + iShowPage.ToString(); strSql = String.Format(" SELECT {0} A.GID,A.VOUNO,CASE WHEN A.BILLTYPE = 1 THEN '收' ELSE '付' END as BILLTYPE,A.BILLNO,A.BILLSTATUS,A.SETTLEMODE,A.CUSTOMERNAME,A.SETTLETYPE,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,A.REMARK " + " FROM ch_fee_settlement as A INNER JOIN [user] as B ON A.SETTLEUSER = B.GID WHERE 1=1 and (ISDELETE=0 or ISDELETE is null) and BILLSTATUS=1 AND A.GID NOT IN " + " (SELECT {1} GID FROM ch_fee_settlement WHERE 1=1 and (ISDELETE=0 or ISDELETE is null) and BILLSTATUS=1 " + strAuthorityCondition + strCondition + " AND ISNULL(ISDELETE,0) <> 1 ORDER BY SETTLETIME,BILLNO ) " + strAuthorityCondition + strCondition//ORDER BY BILLTYPE DESC DESC + " AND ISNULL(ISDELETE,0) <> 1 ORDER BY SETTLETIME,BILLNO ", strTopInclude, strTopNotInclude);//ORDER BY BILLTYPE DESC DESC } } else { strSql = " SELECT A.GID,A.VOUNO,CASE WHEN A.BILLTYPE = 1 THEN '收' ELSE '付' END as BILLTYPE,A.BILLNO,A.BILLSTATUS,A.SETTLEMODE,A.CUSTOMERNAME,A.SETTLETYPE,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,A.REMARK FROM ch_fee_settlement as A INNER JOIN [user] as B ON A.SETTLEUSER = B.GID WHERE 1<0"; } sourceTable = getStatusNameTableBillStatus(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++) { string ls = sourceTable.Rows[i][j].ToString(); if (j == 12) { ls = ls.Replace(" ", ","); ls = ls.Replace("\r\n", "。"); ls = ls.Replace("\n", "。"); } // if (j == sourceTable.Columns.Count - 1) { sourceBuilder.Append("\"" + ls + "\""); } else { sourceBuilder.Append("\"" + ls + "\","); } } if (i == sourceTable.Rows.Count - 1) { sourceBuilder.Append("]}"); } else { sourceBuilder.Append("]},"); } } sourceBuilder.Append("]"); sourceBuilder.Append("}"); return sourceBuilder.ToString(); } /// /// 获取分页总页数 /// /// 返回总页数 private string GetSettleListPage() { FeeSettlementDA feeSettlementDA = new FeeSettlementDA(); string strSql = "SELECT COUNT(*) FROM ch_fee_settlement as A WHERE 1=1 and (ISDELETE=0 or ISDELETE is null) and BILLSTATUS=1 AND ISNULL(ISDELETE,0) <> 1 "; string strAuthorityCondition = ""; UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleList"); if (userAuthorityManage.OperateType != AuthorityType.NULL) { strAuthorityCondition = userAuthorityManage.GetVisibleRangeSql(userAuthorityManage.VisibleType, ModuleType.RECVSETTLELIST, strShowName, strCompanyID, strDeptName, strUserID); strSql += strAuthorityCondition; } string strCondition = ""; string strcbisv = " and (VOUNO is null or VOUNO='')"; if (strSearch != null) { if (!strSearch.Trim().Equals("")) { string tempSearch = strSearch; 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 "btime"://Customer strCondition += String.Format(" AND convert(char(10),SETTLETIME,20) >= '{0}' ", strArg[1].Replace("\"", "")); break; case "etime"://BillNO strCondition += String.Format(" AND convert(char(10),SETTLETIME,20) <= '{0}' ", strArg[1].Replace("\"", "")); break; case "cus"://ETD BeginDate strCondition += String.Format(" AND CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "no"://ETD EndDate strCondition += String.Format(" AND A.BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; case "blno"://ETD EndDate //strCondition += String.Format(" AND A.BILLNO in (select billno from ch_fee_do where bsno in (select ContractNo from Import_main where HTH like '%{0}%'))", strArg[1].Replace("\"", "")); strCondition += String.Format(" AND exists (select BILLNO from ch_fee_do as v2 where exists (select bsno from VW_Settlement as v1 where (CUSTNO LIKE '%{0}%' or MBLNO LIKE '%{0}%' or HBLNO LIKE '%{0}%' or CUSTOMNO LIKE '%{0}%' OR CUSTOMNO2 LIKE '%{0}%') and v1.bsno=v2.bsno) and v2.billno=A.billno)", strArg[1].Replace("\"", "")); break; case "vouno"://ETD EndDate strCondition += String.Format(" AND A.VOUNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; case "cbisv"://ETD EndDate string cbisv = strArg[1].Replace("\"", ""); if (cbisv.Trim() == "true") { strcbisv = ""; } break; default: break; } } } strSql += strCondition; } } strSql += strcbisv; int iTotal = int.Parse(feeSettlementDA.GetExcuteSql(strSql).Tables[0].Rows[0][0].ToString()); return iTotal.ToString(); } /// /// 将数据集表中费用状态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; } private DataTable getStatusNameTableBillStatus(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("BILLSTATUS") || sourceTable.Columns[j].ColumnName.Equals("SETTLEMODE") || sourceTable.Columns[j].ColumnName.Equals("SETTLETYPE")) { 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("BILLSTATUS")) { 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 if (sourceTable.Columns[k].ColumnName.Equals("SETTLEMODE")) { int iFeeStatus = int.Parse(sourceTable.Rows[i][k].ToString()); string strFeeStatus = ""; switch (iFeeStatus) { case 1: strFeeStatus = "申请"; break; case 2: strFeeStatus = "自由"; break; case 3: strFeeStatus = "发票"; break; case 4: strFeeStatus = "流程"; break; default: break; } cloneRow[sourceTable.Columns[k].ColumnName] = strFeeStatus; } else if (sourceTable.Columns[k].ColumnName.Equals("SETTLETYPE")) { int iFeeStatus = int.Parse(sourceTable.Rows[i][k].ToString()); string strFeeStatus = ""; switch (iFeeStatus) { case 1: strFeeStatus = "现金"; break; case 2: strFeeStatus = "支票"; break; case 3: strFeeStatus = "电汇"; break; case 4: strFeeStatus = "转账"; break; case 5: 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; } #region 金额四舍五入 /// /// 金额四舍五入 /// /// 金额值 /// 小数点后位数 /// 返回Double型四舍五入金额 public double C1Round(double value, int digit) { double vt = Math.Pow(10, digit); double vx = value * vt; vx += 0.5; return (Math.Floor(vx) / vt); } #endregion #region 获取返回状态 /// /// 获取返回状态 /// /// 错误类型 /// 返回String类型状态 private string GetPostResult(PostNoticeType tempPostNoticeType) { string strResult = ""; switch (tempPostNoticeType) { case PostNoticeType.DIFFCUSTOMER://同时有多个结算单位 strResult = "-1"; break; case PostNoticeType.DIFFCURRENCY://有不同币别,需要调用汇率 strResult = "-2"; break; case PostNoticeType.BEYONDMAXLINE://发票明细超过最大显示条数 strResult = "-3"; break; case PostNoticeType.SESSIONFAILURE://缓存数据异常 strResult = "-4"; break; case PostNoticeType.POSTSUCCESS://提交申请成功 strResult = "1"; break; default: break; } return strResult; } #endregion private DataTable CreateTotalTable() { DataTable tempTable = new DataTable(); tempTable.Columns.Add("RECVRMB"); tempTable.Columns.Add("RECVUSD"); tempTable.Columns.Add("PAYRMB"); tempTable.Columns.Add("PAYUSD"); tempTable.Columns.Add("TOTALRMB"); tempTable.Columns.Add("TOTALUSD"); return tempTable; } private DataTable CreategidTable() { DataTable tempTable = new DataTable(); tempTable.Columns.Add("gid"); tempTable.Columns.Add("CUSTOMERNAME"); tempTable.Columns.Add("CUSTNO"); tempTable.Columns.Add("MBLNO"); tempTable.Columns.Add("HBLNO"); return tempTable; } private DataTable CreateFeeTable() { DataTable tempTable = new DataTable(); tempTable.Columns.Add("GID"); tempTable.Columns.Add("gid"); tempTable.Columns.Add("FEETYPE"); tempTable.Columns.Add("CUSTOMERNAME"); tempTable.Columns.Add("FEENAME"); tempTable.Columns.Add("CURRENCY"); tempTable.Columns.Add("AMOUNT"); tempTable.Columns.Add("CTL"); tempTable.Columns.Add("UCTL"); return tempTable; } } public enum PostNoticeType { DIFFCUSTOMER = 0, DIFFCURRENCY = 1, BEYONDMAXLINE = 2, SESSIONFAILURE = 3, POSTSUCCESS = 4 } }