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/Settlements/RecvSettlementGridSource.as...

2397 lines
127 KiB
C#

3 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 DSWeb.Models;
using DSWeb.EntityDA;
using System.Text;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using DSWeb.Authority;
using DSWeb.Log;
using DSWeb.WorkFlow;
namespace DSWeb.Settlements
{
public partial class RecvSettlementGridSource : System.Web.UI.Page
{
private string strHandle;//值为recvapp表示获取收费申请列表值
private string strBillNO;//申请业务编号
//private string strAppGID;//申请收费GID
private string strSearch;//查询条件
private int iCurrentPage;//当前页数
private int iShowPage;//显示最大页数
private string strUserID;
private string strCompanyID;//公司GID
private string strShowName;//用户显示名
private string strDeptName;//部门名称
private string strRunSettleGID;//运行结算表GID
private string strPaySettleAppGID;//收费申请GID
private string strPaySettleGID;//收费结算GID
private string stroplb;//业务类别
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["handle"] != null)
{
strHandle = Request.QueryString["handle"].ToString().Trim().ToLower();
}
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();
}
//if (Request.QueryString["id"] != null)
//{
// strAppGID = Request.QueryString["id"].ToString();
//}
if (Request.QueryString["oplb"] != null)
{
stroplb = Request.QueryString["oplb"].ToString();
}
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["runsettleid"] != null)
{
strRunSettleGID = Request.QueryString["runsettleid"].ToString();
}
if (Request.QueryString["id"] != null)
{
strPaySettleAppGID = Request.QueryString["id"].ToString();
}
if(Request.QueryString["paysettleid"] != null)
{
strPaySettleGID = Request.QueryString["paysettleid"].ToString();
}
if (strHandle != null)
{
//获取收费申请列表信息
if (strHandle.Equals("recvapp"))
{
Response.Write(GetRecvApplicationList());
return;
}
//获取收费申请列表页码信息
if (strHandle.Equals("recvapppage"))
{
Response.Write(GetRecvApplicationListPageCount());
return;
}
//验证用户是否操作收费申请列表的权限
if (strHandle == "validatepaysettleapp")
{
Response.Write(ValidateUserRecvSettleApplicationAuthority());
}
//驳回收费申请
if (strHandle == "auditreject" && strBillNO != null)
{
Response.Write(FeeRecvApplicationAuditReject(strBillNO).ToString());
}
//-------------------------------------------------------------------------------------------------------
//获取收费申请结算信息
if (strHandle.Equals("paysettle"))
{
Response.Write(GetPaySettleApplicationList());
return;
}
//获取收费结算信息
if (strHandle.Equals("paysettlelist"))
{
Response.Write(GetPaySettlementList());
return;
}
if (strHandle == "paysettlelistpage")
{
//获取收费结算分页总页数
Response.Write(GetPaySettlementPageCount());
}
//获取收费结算信息导出
if (strHandle.Equals("paysettlelistexcel"))
{
Response.Write(GetPaySettlementListExcel());
return;
}
if (strHandle.Equals("recvappsettlelist"))
{
//在收费申请结算时,获取收费申请审核后的信息
Response.Write(GetRecvApplicationSettleList());
return;
}
//获取收款申请审核信息
if (strHandle.Equals("payappauditlist") && strUserID != null)
{
Response.Write(GetPayApplyAuditList());
return;
}
if (strHandle.Equals("payappauditlistpage"))
{
Response.Write(GetPayApplyAuditListPageCount());
return;
}
if (strHandle == "validaterecvsettlement")
{
Response.Write(ValidateUserRecvSettleAuthority());
}
if (strHandle == "postsavedapp" && strRunSettleGID != null)
{
Response.Write(PostSavedPaySettleApplication(strRunSettleGID));
}
if (strHandle == "repostpayapp" && strPaySettleAppGID != null)
{
Response.Write(RePostRejectPaySettleApplication(strPaySettleAppGID));
}
//删除未结算收费信息
if (strHandle == "deleteunsavedpaysettle" && strRunSettleGID != null)
{
Response.Write(DeleteSavedUnSettlePay(strRunSettleGID));
}
if (strHandle == "postunsavedpaysettle" && strRunSettleGID != null)
{
Response.Write(PostSavePaySettle(strRunSettleGID));
}
if (strHandle == "cancelpaysettle" && strPaySettleGID != null)
{
Response.Write(CacelPaySettle(strPaySettleGID));
}
if (strHandle == "issettled")
{
//查看申请收费是否已经结算过了
Response.Write(IsFeeRecvApplicationSettled(strBillNO));
}
}
}
//------------------------------------------------------------------------------------------------------------------
#region 获取收费申请列表信息
/// <summary>
/// 获取收费申请列表信息
/// </summary>
/// <returns></returns>
public string GetRecvApplicationList()
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
DataTable sourceTable;
string strCondition = "";
string strTopInclude = "";
string strTopNotInclude = "";
string strSearchSettle = " AND BILLSTATUS <> 4 ";
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.APPLYTIME,20) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,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 bsno from VW_Settlement where (CUSTNO LIKE '%{0}%' or MBLNO LIKE '%{0}%' or HBLNO LIKE '%{0}%' or CUSTOMNO LIKE '%{0}%' OR CUSTOMNO2 LIKE '%{0}%'))))", strArg[1].Replace("\"", ""));
break;
case "billstatus":
string strbillstatus = strArg[1].Replace("\"", "");
if (strbillstatus.Trim() != "7" && strbillstatus.Trim() != "")
{
strCondition += String.Format(" AND A.billstatus={0} ", strbillstatus);
}
break;
default:
break;
}
}
}
}
strSearchSettle = "";
}
string strAuthorityCondition = "";
UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleAppList");
if (userAuthorityManage.OperateType != AuthorityType.NULL)
{
strAuthorityCondition = userAuthorityManage.GetVisibleRangeSql(userAuthorityManage.VisibleType, ModuleType.PAYSETTLEAPPLIST, strShowName, strCompanyID, strDeptName, strUserID);
}
string strSql = "";
if (iCurrentPage > 0 && iShowPage > 0)
{
if (iCurrentPage == 1)
{
strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB"
+ ",(select top 1 SHOWNAME from [user] where gid=a.APPLICANT) AS APPLICANT"
+ ",A.APPLYTIME,dbo.F_JSDH(A.billno),replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK"
+ ",(select top 1 OPLB from VW_Settlement where bsno in (select bsno from ch_fee_do where billno=a.billno)) AS OPLB"
+ " FROM ch_fee_recvapplication as A "
+ " WHERE 1>0 {1} {2} {3} "
+ " ORDER BY A.BILLNO DESC "
, "top " + iShowPage.ToString(), strSearchSettle, strAuthorityCondition, strCondition);
}
else
{
strTopNotInclude = "top " + (iShowPage * (iCurrentPage - 1)).ToString();//RowCount*PageNum
strTopInclude = "top " + iShowPage.ToString();
strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB"
+ ",(select top 1 SHOWNAME from [user] where gid=a.APPLICANT) AS APPLICANT"
+ ",A.APPLYTIME,dbo.F_JSDH(A.billno),replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK"
+ ",(select top 1 OPLB from VW_Settlement where bsno in (select bsno from ch_fee_do where billno=a.billno)) AS OPLB"
+ " FROM ch_fee_recvapplication as A "
+ " WHERE 1>0 {2} AND A.GID NOT IN "
+ " (SELECT {1} GID FROM ch_fee_recvapplication A WHERE 1>0 {2} {3} {4} ORDER BY BILLNO DESC ) {3} {4} "
+ " ORDER BY A.BILLNO DESC "
, strTopInclude, strTopNotInclude, strSearchSettle, strAuthorityCondition, strCondition);
}
}
else
{
strSql = " SELECT A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB"
+ ",(select top 1 SHOWNAME from [user] where gid=a.APPLICANT) AS APPLICANT"
+ ",A.APPLYTIME,dbo.F_JSDH(A.billno),replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK"
+ ",(select top 1 OPLB from VW_Settlement where bsno in (select bsno from ch_fee_do where billno=a.billno)) AS OPLB"
+ " FROM ch_fee_recvapplication as A WHERE 1<0";
}
sourceTable = getStatusNameTableBillStatus(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++)
{
string ls = sourceTable.Rows[i][j].ToString();
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();
}
#endregion
#region 获取收费申请列表分页总页数信息
/// <summary>
/// 获取收费申请列表分页总页数信息
/// </summary>
/// <returns>返回总页数</returns>
private int GetRecvApplicationListPageCount()
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
string strSql = "SELECT COUNT(*) FROM ch_fee_recvapplication as A WHERE BILLNO LIKE '%AC%' ";
string strCondition = "";
string strAuthorityCondition = "";
string strSearchSettle = " AND A.BILLSTATUS <> 4 ";
UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleAppList");
if (userAuthorityManage.OperateType != AuthorityType.NULL)
{
strAuthorityCondition = userAuthorityManage.GetVisibleRangeSql(userAuthorityManage.VisibleType, ModuleType.PAYSETTLEAPPLIST, strShowName, strCompanyID, strDeptName, strUserID);
strSql += strAuthorityCondition;
}
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.APPLYTIME,20) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,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 bsno from VW_Settlement where (CUSTNO LIKE '%{0}%' or MBLNO LIKE '%{0}%' or HBLNO LIKE '%{0}%' or CUSTOMNO LIKE '%{0}%' OR CUSTOMNO2 LIKE '%{0}%'))))", strArg[1].Replace("\"", ""));
break;
case "billstatus":
string strbillstatus = strArg[1].Replace("\"", "");
if (strbillstatus.Trim() != "7" && strbillstatus.Trim() != "")
{
strCondition += String.Format(" AND A.billstatus={0} ", strbillstatus);
}
break;
default:
break;
}
}
}
strSearchSettle = "";
}
}
strSql += strSearchSettle + strCondition;
int iTotal = int.Parse(feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0].Rows[0][0].ToString());
return iTotal;
}
#endregion
#region 验证用户是否操作收费申请列表的权限
/// <summary>
/// 验证用户是否操作收费申请列表的权限
/// </summary>
/// <returns>值1表示有权限操作收费申请 值不等于1表示没有权限操作收费申请</returns>
private int ValidateUserRecvSettleApplicationAuthority()
{
int iResult = 0;
UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleAppList");
if (userAuthorityManage.OperateType != AuthorityType.NULL && userAuthorityManage.OperateType != AuthorityType.NONE)
{
iResult = 1;
}
else
{
iResult = -1;
}
return iResult;
}
#endregion
#region 驳回收费申请
/// <summary>
/// 驳回收费申请
/// </summary>
/// <param name="tempBillNO">申请编号</param>
/// <returns></returns>
private int FeeRecvApplicationAuditReject(string tempBillNO)
{
FeeDoDA feeDoDA = new FeeDoDA();
IList<FeeDoEntity> feeDoEntities = new List<FeeDoEntity>();
feeDoEntities = feeDoDA.GetFeeDoByBillNO(tempBillNO);
ChFeeRecvApplicationDA ChFeeRecvApplicationDA = new ChFeeRecvApplicationDA();
int iResult = ChFeeRecvApplicationDA.FeeRecvApplicationAuditReject(feeDoEntities, tempBillNO, strCompanyID);
return iResult;
}
#endregion
//------------------------------------------------------------------------------------------------------------------
#region 获取收费申请审核总页数
/// <summary>
/// 获取收费申请审核总页数
/// </summary>
/// <returns>返回总页数</returns>
public int GetPayApplyAuditListPageCount()
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
string strSql = String.Format(" SELECT COUNT(*) FROM ch_fee_recvapplication as A "
+ " WHERE BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{0}') ", strUserID);
string strCondition = "";
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),APPLYTIME,120) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),APPLYTIME,120) <= '{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 BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", ""));
break;
case "billstatus":
string strbillstatus = strArg[1].Replace("\"", "");
if (strbillstatus.Trim() != "7" && strbillstatus.Trim() != "")
{
strCondition += String.Format(" AND A.billstatus={0} ", strbillstatus);
}
break;
default:
break;
}
}
}
}
else
{
strCondition += " AND A.billstatus=3 ";
}
}
else
{
strCondition += " AND A.billstatus=3 ";
}
strSql += strCondition;
//
int iTotal = int.Parse(feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0].Rows[0][0].ToString());
return iTotal;
}
#endregion
#region 验证用户是否操作收费结算的权限
/// <summary>
/// 验证用户是否操作收费结算的权限
/// </summary>
/// <returns>值1表示有权限操作收费结算 值不等于1表示没有权限操作收费结算</returns>
private int ValidateUserRecvSettleAuthority()
{
int iResult = 0;
UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleList");
if (userAuthorityManage.OperateType != AuthorityType.NULL && userAuthorityManage.OperateType != AuthorityType.NONE)
{
iResult = 1;
}
else
{
iResult = -1;
}
return iResult;
}
#endregion
#region 获取收费结算分页总页数
/// <summary>
/// 获取收费结算分页总页数
/// </summary>
/// <returns>返回总页数</returns>
private int GetPaySettlementPageCount()
{
//获取分公司的票号头字符
//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";
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
string strSql = "SELECT COUNT(*) FROM ch_fee_settlement as A WHERE BILLNO LIKE '%CR%' AND ISNULL(ISDELETE,0) <> 1 ";
string strAmount1 = "";
string strAmount2 = "";
string strCondition = "";
string strAuthorityCondition = "";
UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleList");
if (userAuthorityManage.OperateType != AuthorityType.NULL)
{
strAuthorityCondition = userAuthorityManage.GetVisibleRangeSql(userAuthorityManage.VisibleType, ModuleType.PAYSETTLELIST, strShowName, strCompanyID, strDeptName, strUserID);
strSql += strAuthorityCondition;
}
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,120) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),SETTLETIME,120) <= '{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 BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", ""));
strCondition += String.Format(" AND (A.BILLNO LIKE '%{0}%' or A.BILLNO in (select BILLNO from ch_fee_do where feeid in (select gid from ch_fee where CHEQUENUM LIKE '%{0}%') and BILLNO LIKE '%CR%') or A.BILLNO in (select BILLNO from ch_fee_do where feeid in (select gid from ch_fee where bsno in (select bsno from VW_Settlement where MBLNO LIKE '%{0}%')) and BILLNO LIKE '%CR%')) ", strArg[1].Replace("\"", ""));
break;
case "amount1"://
//strCondition += String.Format(" AND (A.AMOUNTRMB >= '{0}' or A.AMOUNTUSD >= '{0}')", strArg[1].Replace("\"", ""));
strAmount1 = strArg[1].Replace("\"", "");
break;
case "amount2"://
//strCondition += String.Format(" AND (A.AMOUNTRMB <= '{0}' or A.AMOUNTUSD <= '{0}')", strArg[1].Replace("\"", ""));
strAmount2 = strArg[1].Replace("\"", "");
break;
default:
break;
}
}
}
//
if (strAmount1.Trim() != "" && strAmount2.Trim() != "")
{
strCondition += String.Format(" AND ((A.AMOUNTRMB >= '{0}' and A.AMOUNTRMB <= '{1}') or (A.AMOUNTUSD >= '{0}' and A.AMOUNTUSD <= '{1}'))", strAmount1.Trim(), strAmount2.Trim());
}
else
{
if (strAmount1.Trim() != "")
{
strCondition += String.Format(" AND (A.AMOUNTRMB >= '{0}' or A.AMOUNTUSD >= '{0}')", strAmount1.Trim());
}
else if (strAmount2.Trim() != "")
{
strCondition += String.Format(" AND (A.AMOUNTRMB <= '{1}' or A.AMOUNTUSD <= '{1}')", strAmount2.Trim());
}
}
//
strSql += strCondition;
}
}
int iTotal = int.Parse(feePaySettleApplicationDA.GetDataSetBySql(strSql).Tables[0].Rows[0][0].ToString());
return iTotal;
}
#endregion
#region 在收费申请结算时,获取收费申请审核后的信息
/// <summary>
/// 在收费申请结算时,获取收费申请审核后的信息
/// </summary>
/// <returns></returns>
public string GetRecvApplicationSettleList()
{
DataTable sourceTable;
string strCondition = "";
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.APPLYTIME,120) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,120) <= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "cus":
strCondition += String.Format(" AND A.CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", ""));
break;
case "no":
strCondition += String.Format(" AND (A.BILLNO LIKE '%{0}%' or A.BILLNO in (select BILLNO from ch_fee_do where feeid in (select gid from ch_fee where CHEQUENUM LIKE '%{0}%')) or A.BILLNO in (select BILLNO from ch_fee_do where feeid in (select gid from ch_fee where bsno in (select bsno from VW_Settlement where MBLNO LIKE '%{0}%')))) ", strArg[1].Replace("\"", ""));
break;
default:
break;
}
}
}
}
}
string strSql = " SELECT A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.SETTLETYPE,A.AMOUNTUSD-isnull(A.SETTLEUSD,0) as AMOUNTUSD,(A.AMOUNTRMB-isnull(A.SETTLERMB,0)) as AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ ",OPLB=(SELECT top 1 OPLB FROM VW_Settlement WHERE BSNO=(SELECT top 1 C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO))"
+ " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID WHERE A.BILLSTATUS <> 3 AND A.BILLSTATUS <> 6 AND A.BILLSTATUS <> 4 "
//1-Begin 修改2014-02-20
//+ " AND ( EXISTS (select 1 from ch_fee_do d1 where "
//+ " NOT EXISTS (select 1 from ch_fee_do d2 where d2.BILLNO like '%CR%' and d2.AMOUNT=d2.DOAMOUNT and (d2.ISDELETED=0 or d2.ISDELETED is null) and d1.FEEID=d2.FEEID) "
//+ " and A.BILLNO=d1.BILLNO "
//+ " and billno NOT in (select billno from ch_fee_do as d3 where feeid in (select feeid from ch_fee_do as d2 where (d2.BILLNO like '%CR%' or d2.BILLNO like '%DR%') and d2.AMOUNT=d2.DOAMOUNT and (d2.ISDELETED=0 or d2.ISDELETED is null) and (CATEGORY=2 or CATEGORY=8)))"
//+ ")) "
//1-End
//1-Begin 修改2014-03-03
+ " AND (EXISTS (select gid from ch_fee_do d1 where NOT EXISTS (select f.gid from (select feeid,sum(AMOUNT) as AMOUNT from (select feeid,AMOUNT from ch_fee_do where (billno like '%CR%' or billno like '%DR%') and (ISDELETED is null or ISDELETED=0) and AMOUNT=DOAMOUNT) as a group by a.feeid) as d LEFT OUTER JOIN ch_fee as f on f.gid=d.feeid where f.AMOUNT=d.AMOUNT and d1.FEEID=f.gid) and A.BILLNO=d1.BILLNO)) "
//1-End
+ strCondition
+ " ORDER BY A.APPLYTIME DESC ";
T_ALL_DA T_ALL_DA = new T_ALL_DA();
sourceTable = getStatusNameTableBillStatus(T_ALL_DA.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();
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();
}
#endregion
public string GetPayApplyAuditList()
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
DataTable sourceTable;
string strCondition = "";
string strTopInclude = "";
string strTopNotInclude = "";
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.APPLYTIME,120) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,120) <= '{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("\"", ""));
strCondition += String.Format(" AND (A.BILLNO LIKE '%{0}%' or A.BILLNO in (SELECT AA.BILLNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID where C.bsno in (SELECT bsno FROM VW_Settlement where mblno like '%{0}%')))", strArg[1].Replace("\"", ""));
break;
case "billstatus":
string strbillstatus = strArg[1].Replace("\"", "");
if(strbillstatus.Trim()!="7" && strbillstatus.Trim()!="")
{
strCondition += String.Format(" AND A.billstatus={0} ", strbillstatus);
}
break;
default:
break;
}
}
}
}
else
{
strCondition += " AND A.billstatus=3 ";
}
}
else
{
strCondition += " AND A.billstatus=3 ";
}
//
string strSql = "";
if (iCurrentPage > 0 && iShowPage > 0)
{
if (iCurrentPage == 1)
{
//strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
// + " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID "
// + " WHERE BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{1}') "
// + strCondition + " ORDER BY BILLNO DESC ", "top " + iShowPage.ToString(), strUserID);
//strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK,'op_Seae' OPLB "
// + " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID "
// + " INNER JOIN ch_fee_do as C ON A.BILLNO = C.BILLNO "
// + " inner join op_seae as E on C.BSNO =E.BSNO "
// + " WHERE A.BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{1}') {2} "
// //+ " ORDER BY BILLNO DESC "
// + " union all "
// + " SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK,'op_Seai' OPLB "
// + " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID "
// + " INNER JOIN ch_fee_do as C ON A.BILLNO = C.BILLNO "
// + " inner join op_seai as E on C.BSNO =E.BSNO "
// + " WHERE A.BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{1}') {2} "
// + " ORDER BY BILLNO DESC "
// , "top " + iShowPage.ToString(), strUserID,strCondition);
//strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
// + ",OPLB=(SELECT top 1 'op_seae' OPLB FROM op_seae WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO) union all (SELECT top 1 'op_seai' OPLB FROM op_seai WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO)))"
// + " FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.BILLNO in "
// + " ( select A.BILLNO from workflow_do A inner join workflow_step B on A.STEPID=B.GID where B.AUDITOR='{1}') {2} ORDER BY APPLYTIME DESC"
// , "top " + iShowPage.ToString(), strUserID, strCondition);
//2013-02-05 修改
strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME"
//+ ",MBLNO=(SELECT top 1 MBLNO FROM VW_Settlement WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO))"
+ ",A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ ",OPLB=(SELECT top 1 OPLB FROM VW_Settlement WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO))"
+ " FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.BILLNO in "
+ " ( select A.BILLNO from workflow_do A inner join workflow_step B on A.STEPID=B.GID where B.AUDITOR='{1}') {2} ORDER BY APPLYTIME DESC"
, "top " + iShowPage.ToString(), strUserID, strCondition);
}
else
{
strTopNotInclude = "top " + (iShowPage * (iCurrentPage - 1)).ToString();//RowCount*PageNum
strTopInclude = "top " + iShowPage.ToString();
//strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK,'op_Seae' OPLB "
// + " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID "
// + " INNER JOIN ch_fee_do as C ON A.BILLNO = C.BILLNO "
// + " inner join op_seae as E on C.BSNO =E.BSNO "
// + " WHERE A.BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID "
// + " WHERE C.AUDITOR = '{1}') AND A.GID NOT IN "
// + " (SELECT {2} A.GID FROM ch_fee_recvapplication A WHERE A.BILLNO IN (SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{1}') {3} "
// + " ORDER BY A.BILLNO DESC ) {3} "
// //+ " ORDER BY BILLNO DESC "
// + " union all "
// + " SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK,'op_Seai' OPLB "
// + " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID "
// + " INNER JOIN ch_fee_do as C ON A.BILLNO = C.BILLNO "
// + " inner join op_seai as E on C.BSNO =E.BSNO "
// + " WHERE A.BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID "
// + " WHERE C.AUDITOR = '{1}') AND C.GID NOT IN "
// + " (SELECT {2} A.GID FROM ch_fee_recvapplication as A WHERE A.BILLNO IN (SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{1}') {3} "
// + " ORDER BY A.BILLNO DESC ) {3} "
// + " ORDER BY BILLNO DESC "
// , strTopInclude, strUserID, strTopNotInclude, strCondition);
//strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.SETTLEMODE,A.CUSTOMERNAME,A.SETTLETYPE,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
// + " FROM ch_fee_settlement as A LEFT JOIN [user] as B ON A.SETTLEUSER = B.GID WHERE BILLNO LIKE 'CR%' AND ISNULL(A.ISDELETE,0) <> 1 AND A.GID NOT IN "
// + " (SELECT {1} GID FROM ch_fee_settlement WHERE BILLNO LIKE 'CR%' AND ISNULL(ISDELETE,0) <> 1 " + strAuthorityCondition + strCondition + " ORDER BY BILLNO DESC ) " + strAuthorityCondition + strCondition
// + " ORDER BY BILLNO DESC ", strTopInclude, strTopNotInclude);
//strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
// + ",OPLB=(SELECT top 1 'op_seae' OPLB FROM op_seae WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO) union all (SELECT top 1 'op_seai' OPLB FROM op_seai WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO)))"
// + " FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.gid NOT IN "
// + " (SELECT {2} A.GID FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.BILLNO in "
// + " ( select A.BILLNO from workflow_do A inner join workflow_step B on A.STEPID=B.GID where B.AUDITOR='{1}') {3} ORDER BY APPLYTIME DESC) {3} ORDER BY APPLYTIME DESC"
// , strTopInclude, strUserID, strTopNotInclude, strCondition);
//2013-02-05 修改
strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME"
//+ ",MBLNO=(SELECT top 1 MBLNO FROM VW_Settlement WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO))"
+ ",A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ ",OPLB=(SELECT top 1 OPLB FROM VW_Settlement WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO))"
+ " FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.gid NOT IN "
+ " (SELECT {2} A.GID FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.BILLNO in "
+ " ( select A.BILLNO from workflow_do A inner join workflow_step B on A.STEPID=B.GID where B.AUDITOR='{1}') {3} ORDER BY APPLYTIME DESC) {3} ORDER BY APPLYTIME DESC"
, strTopInclude, strUserID, strTopNotInclude, strCondition);
}
}
else
{
//strSql = String.Format(" SELECT A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK,'op_Seae' OPLB "
// + " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID "
// + " INNER JOIN ch_fee_do as C ON A.BILLNO = C.BILLNO "
// + " inner join op_seae as E on C.BSNO =E.BSNO "
// + " WHERE A.BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{0}') {1} "
// //+ " ORDER BY BILLNO DESC "
// + " union all "
// + " SELECT A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK,'op_Seai' OPLB "
// + " FROM ch_fee_recvapplication as A LEFT JOIN [user] as B ON A.APPLICANT = B.GID "
// + " INNER JOIN ch_fee_do as C ON A.BILLNO = C.BILLNO "
// + " inner join op_seai as E on C.BSNO =E.BSNO "
// + " WHERE A.BILLNO IN ( SELECT B.BILLNO FROM workflow_do as B INNER JOIN workflow_step as C ON B.STEPID = C.GID WHERE C.AUDITOR = '{0}') {1} "
// + " ORDER BY BILLNO DESC "
// , strUserID, strCondition);
//strSql = String.Format(" SELECT A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
// + ",OPLB=(SELECT top 1 'op_seae' OPLB FROM op_seae WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO) union all (SELECT top 1 'op_seai' OPLB FROM op_seai WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO)))"
// + " FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.BILLNO in "
// + " ( select A.BILLNO from workflow_do A inner join workflow_step B on A.STEPID=B.GID where B.AUDITOR='{0}') {1} ORDER BY APPLYTIME DESC"
// , strUserID, strCondition);
//2013-02-05 修改
strSql = String.Format(" SELECT A.GID,A.BILLNO,A.BILLSTATUS,A.CUSTOMERNAME"
//+ ",MBLNO=(SELECT top 1 MBLNO FROM VW_Settlement WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO))"
+ ",A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME as APPLICANT,A.APPLYTIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ ",OPLB=(SELECT top 1 OPLB FROM VW_Settlement WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as AA INNER JOIN ch_fee_do as B ON AA.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE AA.BILLNO =A.BILLNO))"
+ " FROM ch_fee_recvapplication A inner JOIN [user] B ON A.APPLICANT = B.GID where A.BILLNO in "
+ " ( select A.BILLNO from workflow_do A inner join workflow_step B on A.STEPID=B.GID where B.AUDITOR='{0}') {1} ORDER BY APPLYTIME DESC"
, strUserID, strCondition);
}
sourceTable = getStatusNameTableBillStatus(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++)
{
string ls = sourceTable.Rows[i][j].ToString();
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();
}
#region 获取收费申请单信息
/// <summary>
/// 获取收费申请单信息
/// </summary>
/// <returns></returns>
public string GetPaySettleApplicationList()
{
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
DataTable sourceTable;
string strSql = "SELECT GID,BILLNO,BILLSTATUS,CUSTOMERNAME,AMOUNTUSD,AMOUNTRMB,APPLICANT,APPLYTIME,REMARK FROM ch_fee_settlement ORDER BY BILLNO DESC ";
sourceTable = getStatusNameTableBillStatus(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 获取收费结算信息
/// <summary>
/// 获取收费结算信息
/// </summary>
/// <returns></returns>
public string GetPaySettlementList()
{
FeeSettlementDA feeSettlementDA = new FeeSettlementDA();
DataTable sourceTable;
string strCondition = "";
string strTopInclude = "";
string strTopNotInclude = "";
string strAmount1 = "";
string strAmount2 = "";
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,120) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),A.SETTLETIME,120) <= '{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("\"", ""));
strCondition += String.Format(" AND (A.BILLNO LIKE '%{0}%' or A.BILLNO in (select BILLNO from ch_fee_do where feeid in (select gid from ch_fee where CHEQUENUM LIKE '%{0}%') and BILLNO LIKE '%CR%') or A.BILLNO in (select BILLNO from ch_fee_do where feeid in (select gid from ch_fee where bsno in (select bsno from VW_Settlement where MBLNO LIKE '%{0}%')) and BILLNO LIKE '%CR%')) ", strArg[1].Replace("\"", ""));
break;
case "amount1"://
//strCondition += String.Format(" AND (A.AMOUNTRMB >= '{0}' or A.AMOUNTUSD >= '{0}')", strArg[1].Replace("\"", ""));
strAmount1 = strArg[1].Replace("\"", "");
break;
case "amount2"://
//strCondition += String.Format(" AND (A.AMOUNTRMB <= '{0}' or A.AMOUNTUSD <= '{0}')", strArg[1].Replace("\"", ""));
strAmount2 = strArg[1].Replace("\"", "");
break;
default:
break;
}
}
}
//
if (strAmount1.Trim() != "" && strAmount2.Trim() != "")
{
strCondition += String.Format(" AND ((A.AMOUNTRMB >= '{0}' and A.AMOUNTRMB <= '{1}') or (A.AMOUNTUSD >= '{0}' and A.AMOUNTUSD <= '{1}'))", strAmount1.Trim(), strAmount2.Trim());
}
else
{
if (strAmount1.Trim() != "")
{
strCondition += String.Format(" AND (A.AMOUNTRMB >= '{0}' or A.AMOUNTUSD >= '{0}')", strAmount1.Trim());
}
else if (strAmount2.Trim() != "")
{
strCondition += String.Format(" AND (A.AMOUNTRMB <= '{1}' or A.AMOUNTUSD <= '{1}')", strAmount2.Trim());
}
}
}
}
string strSql = "";
string strAuthorityCondition = "";
UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleList");
if (userAuthorityManage.OperateType != AuthorityType.NULL)
{
strAuthorityCondition = userAuthorityManage.GetVisibleRangeSql(userAuthorityManage.VisibleType, ModuleType.PAYSETTLELIST, strShowName, strCompanyID, strDeptName, strUserID);
}
////获取分公司的票号头字符
//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";
if (iCurrentPage > 0 && iShowPage > 0)
{
if (iCurrentPage == 1)
{
strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.SETTLEMODE,A.CUSTOMERNAME,A.SETTLETYPE"
+ ", CHEQUENUM=isnull((select top 1 CHEQUENUM from ch_fee where CURRENCY='RMB' and gid in (select feeid from ch_fee_do where billno=A.billno)),'')"
+ ", CHEQUENUMUSD=isnull((select top 1 CHEQUENUM from ch_fee where CURRENCY<>'RMB' and gid in (select feeid from ch_fee_do where billno=A.billno)),'')"
+ ",A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ " FROM ch_fee_settlement as A LEFT JOIN [user] as B ON A.SETTLEUSER = B.GID WHERE BILLNO LIKE '%CR%' AND ISNULL(A.ISDELETE,0) <> 1 " + strAuthorityCondition + strCondition + " ORDER BY BILLNO DESC ", "top " + iShowPage.ToString());
}
else
{
strTopNotInclude = "top " + (iShowPage * (iCurrentPage - 1)).ToString();//RowCount*PageNum
strTopInclude = "top " + iShowPage.ToString();
strSql = String.Format(" SELECT {0} A.GID,A.BILLNO,A.BILLSTATUS,A.SETTLEMODE,A.CUSTOMERNAME,A.SETTLETYPE"
+ ", CHEQUENUM=isnull((select top 1 CHEQUENUM from ch_fee where CURRENCY='RMB' and gid in (select feeid from ch_fee_do where billno=A.billno)),'')"
+ ", CHEQUENUMUSD=isnull((select top 1 CHEQUENUM from ch_fee where CURRENCY<>'RMB' and gid in (select feeid from ch_fee_do where billno=A.billno)),'')"
+ ",A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ " FROM ch_fee_settlement as A LEFT JOIN [user] as B ON A.SETTLEUSER = B.GID WHERE BILLNO LIKE '%CR%' AND ISNULL(A.ISDELETE,0) <> 1 AND A.GID NOT IN "
+ " (SELECT {1} GID FROM ch_fee_settlement WHERE BILLNO LIKE '%CR%' AND ISNULL(ISDELETE,0) <> 1 " + strAuthorityCondition + strCondition + " ORDER BY BILLNO DESC ) " + strAuthorityCondition + strCondition
+ " ORDER BY BILLNO DESC ", strTopInclude, strTopNotInclude);
}
}
else
{
strSql = " SELECT A.GID,A.BILLNO,A.BILLSTATUS,A.SETTLEMODE,A.CUSTOMERNAME,A.SETTLETYPE"
+ ", CHEQUENUM=isnull((select top 1 CHEQUENUM from ch_fee where CURRENCY='RMB' and gid in (select feeid from ch_fee_do where billno=A.billno)),'')"
+ ", CHEQUENUMUSD=isnull((select top 1 CHEQUENUM from ch_fee where CURRENCY<>'RMB' and gid in (select feeid from ch_fee_do where billno=A.billno)),'')"
+ ",A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ " FROM ch_fee_settlement as A LEFT JOIN [user] as B ON A.SETTLEUSER = B.GID "
+ " WHERE BILLNO LIKE '%CR%' AND ISNULL(A.ISDELETE,0) <> 1 " + strAuthorityCondition + strCondition + " ORDER BY A.BILLNO DESC ";
}
sourceTable = getFeeSettlementBillStatus(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();
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();
}
#endregion
#region 获取收费结算信息导出
/// <summary>
/// 获取收费结算信息导出
/// </summary>
/// <returns></returns>
public string GetPaySettlementListExcel()
{
FeeSettlementDA feeSettlementDA = new FeeSettlementDA();
string strCondition = "";
string strAmount1 = "";
string strAmount2 = "";
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,120) >= '{0}' ", strArg[1].Replace("\"", ""));
break;
case "etime"://BillNO
strCondition += String.Format(" AND convert(char(10),A.SETTLETIME,120) <= '{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 "amount1"://
//strCondition += String.Format(" AND (A.AMOUNTRMB >= '{0}' or A.AMOUNTUSD >= '{0}')", strArg[1].Replace("\"", ""));
strAmount1 = strArg[1].Replace("\"", "");
break;
case "amount2"://
//strCondition += String.Format(" AND (A.AMOUNTRMB <= '{0}' or A.AMOUNTUSD <= '{0}')", strArg[1].Replace("\"", ""));
strAmount2 = strArg[1].Replace("\"", "");
break;
default:
break;
}
}
}
//
if (strAmount1.Trim() != "" && strAmount2.Trim() != "")
{
strCondition += String.Format(" AND ((A.AMOUNTRMB >= '{0}' and A.AMOUNTRMB <= '{1}') or (A.AMOUNTUSD >= '{0}' and A.AMOUNTUSD <= '{1}'))", strAmount1.Trim(), strAmount2.Trim());
}
else
{
if (strAmount1.Trim() != "")
{
strCondition += String.Format(" AND (A.AMOUNTRMB >= '{0}' or A.AMOUNTUSD >= '{0}')", strAmount1.Trim());
}
else if (strAmount2.Trim() != "")
{
strCondition += String.Format(" AND (A.AMOUNTRMB <= '{1}' or A.AMOUNTUSD <= '{1}')", strAmount2.Trim());
}
}
}
}
string strSql = "";
string strAuthorityCondition = "";
UserAuthorityManage userAuthorityManage = new UserAuthorityManage(strUserID, "modRecvSettleList");
if (userAuthorityManage.OperateType != AuthorityType.NULL)
{
strAuthorityCondition = userAuthorityManage.GetVisibleRangeSql(userAuthorityManage.VisibleType, ModuleType.PAYSETTLELIST, strShowName, strCompanyID, strDeptName, strUserID);
}
//获取分公司的票号头字符
//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";
//
strSql = " SELECT A.BILLNO,case A.BILLSTATUS when 1 then '锁定' when 2 then '未锁定' when 3 then '结算撤销' else '' end as BILLSTATUS,case A.SETTLEMODE when 1 then '申请' when 2 then '自由' when 3 then '发票' when 4 then '流程' else '' end as SETTLEMODE,A.CUSTOMERNAME,case A.SETTLETYPE when 1 then '现金' when 2 then '发票' when 3 then '电汇' when 4 then '转账' when 5 then '承兑汇票' else '' end as SETTLETYPE,A.AMOUNTUSD,A.AMOUNTRMB,B.SHOWNAME,A.SETTLETIME,replace(replace(A.REMARK,char(13),'|'),char(10),'') REMARK "
+ " FROM ch_fee_settlement as A LEFT JOIN [user] as B ON A.SETTLEUSER = B.GID WHERE BILLNO LIKE '%CR%' AND ISNULL(A.ISDELETE,0) <> 1 " + strAuthorityCondition + strCondition + " ORDER BY BILLNO DESC ";
return strSql.Trim();
}
#endregion
public string GetSeaeOrderBySearch(string tempSearch)
{
tempSearch = tempSearch.Replace("{", "");
tempSearch = tempSearch.Replace("}", "");
tempSearch = tempSearch.Replace("[", "");
tempSearch = tempSearch.Replace("]", "");
string[] searchArg = tempSearch.Split(new char[] { ',' });
string strSeaeCondition = "";
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;
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;
//2013-02-05 修改
string strSql = "SELECT BSNO, CUSTOMERNAME,MBLNO,HBLNO FROM VW_Settlement 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;
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();
}
private DataTable getFeeSettlementBillStatus(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"))
{
DataColumn newColumn = new DataColumn();
newColumn.ColumnName = sourceTable.Columns[j].ColumnName;
newColumn.DataType = System.Type.GetType("System.String");
cloneTable.Columns.Add(newColumn);
}
else if (sourceTable.Columns[j].ColumnName.Equals("SETTLEMODE"))
{
DataColumn newColumn = new DataColumn();
newColumn.ColumnName = sourceTable.Columns[j].ColumnName;
newColumn.DataType = System.Type.GetType("System.String");
cloneTable.Columns.Add(newColumn);
}
else if (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;
case 3:
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);
}
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"))
{
DataColumn newColumn = new DataColumn();
newColumn.ColumnName = sourceTable.Columns[j].ColumnName;
newColumn.DataType = System.Type.GetType("System.String");
cloneTable.Columns.Add(newColumn);
}
else if (sourceTable.Columns[j].ColumnName.Equals("SETTLEMODE"))
{
DataColumn newColumn = new DataColumn();
newColumn.ColumnName = sourceTable.Columns[j].ColumnName;
newColumn.DataType = System.Type.GetType("System.String");
cloneTable.Columns.Add(newColumn);
}
else if (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 0:
strFeeStatus = "已审批";
break;
case 1:
strFeeStatus = "未提交";
break;
case 2:
strFeeStatus = "已提交";
break;
case 3:
strFeeStatus = "审批中";
break;
case 4:
strFeeStatus = "已结算";
break;
case 5:
strFeeStatus = "部分结算";
break;
case 6:
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);
}
return cloneTable;
}
/// <summary>
/// 提交包保存的申请
/// </summary>
/// <param name="tempRunSettleGID"></param>
/// <returns></returns>
private int PostSavedPaySettleApplication(string tempRunSettleGID)
{
int iResult = 0;
T_ALL_DA t_all_da = new T_ALL_DA();
int bsnoCount = 0;
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
DataSet ds = t_all_da.GetAllSQL("select gid,OPLBNAME=(select top 1 OPLBNAME from VW_Settlement where bsno=run_fee_do.bsno),bsno,mblno from [run_fee_do] where runsettleid='" + tempRunSettleGID.Trim() + "'");//获取费用运行明细表中的数据根据RUNSETTLEID
if (ds!=null&&ds.Tables[0].Rows.Count > 1)
{
string topBsno = ds.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim();
for (int i = 1; i < ds.Tables[0].Rows.Count; i++)
{
if (topBsno != ds.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim())
{
bsnoCount++;
}
else
{
continue;
}
}
}
string strFeePayApplicationID = Guid.NewGuid().ToString();
iResult = feePaySettleApplicationDA.PostSavedPaySettleRequest(strFeePayApplicationID, tempRunSettleGID, strUserID, "", strCompanyID);
if (iResult == 1)
{
strBillNO = feePaySettleApplicationDA.GetBillNoByPaySettleAppID(strFeePayApplicationID);
//工作流
WorkFlowHelper workFlowHelper = new WorkFlowHelper();
//WorkFlowEntity workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.PAYSETTLEAUDIT, strCompanyID);
WorkFlowEntity workFlowEntity = new WorkFlowEntity();
if (stroplb.ToLower() == "op_seae")
{
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.PAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
else if (stroplb.ToLower() == "op_seai")
{
//
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.SeaiPAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
else if (stroplb.ToLower() == "tmswlbshead" || stroplb.ToLower() == "tmswlpchead")//51 陆运
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.tMsWlPAYSETTLEAUDIT, strCompanyID);
}
else if (stroplb.ToLower() == "wms_fee" || stroplb.ToLower() == "wms" || stroplb.ToLower() == "wms_out")//61
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.WmszxPAYSETTLEAUDIT, strCompanyID);
}
else if (stroplb.ToLower() == "import_main")
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
else if (stroplb.ToLower() == "op_apply")
{
//
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.APPLYPAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
else if (stroplb.ToLower() == "op_bulk")
{
//
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.BULKPAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
if (workFlowEntity != null)
{
//消息系统
IList<MessageEntity> messageEntities = new List<MessageEntity>();
MessageDA messageDA = new MessageDA();
WorkFlowDoEntity workFlowDoEntity = null;
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA();
workFlowDoEntity = workFlowDoDA.GetSigleWorkFlowDoByBillNO(workFlowEntity.GID, strBillNO);
if (workFlowDoEntity == null)
{
if (workFlowDoEntity.GID == null)
{
//workFlowDoEntity = new WorkFlowDoEntity();
//遍历所有工作流下步骤,获取第一步骤GID信息
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
{
if (step.StepNO == 1)
{
WorkFlowDoEntity paySettleWorkFlowDoEntity = new WorkFlowDoEntity();
paySettleWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
paySettleWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
paySettleWorkFlowDoEntity.StepID = step.GID;
paySettleWorkFlowDoEntity.StepNO = step.StepNO;
paySettleWorkFlowDoEntity.Auditor = step.Auditor;
paySettleWorkFlowDoEntity.BillNO = strBillNO;
paySettleWorkFlowDoEntity.IsFinish = false;
paySettleWorkFlowDoEntity.Applicant = strUserID;
workFlowDoEntities.Add(paySettleWorkFlowDoEntity);
MessageEntity messageEntity = new MessageEntity();
messageEntity.GID = Guid.NewGuid().ToString();
if (bsnoCount == 0)
{
messageEntity.Name = "FeePayAudit";
}
else
{
messageEntity.Name = "FeeSeaAllPaySettleAudit";
}
messageEntity.Description = "收费申请审核";
messageEntity.IsRead = false;
messageEntity.ReadCount = 0;
messageEntity.MessageContent = strShowName + " 业务编号:" + strBillNO + " 提交待审核 [收费申请] ";
messageEntity.TaskID = strBillNO;
messageEntity.Receiver = step.Auditor;
messageEntity.TaskUrl = messageEntity.TaskUrl = "settlements/feepayaudit.aspx";
messageEntity.Type = messageDA.GetMessageType(MessageType.FEEPAYAPP);
messageEntity.RecvType = 2;//申请审核类型
messageEntities.Add(messageEntity);
}
}
workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
feePaySettleApplicationDA.UpdatePayApplicationStatus(strBillNO, 3, strCompanyID);
if (messageEntities.Count > 0)
{
messageDA.CreateMessage(MessageType.FEEPAYAPP, messageEntities);
}
}
}
else
{
if (workFlowDoEntity.GID == null)
{
//workFlowDoEntity = new WorkFlowDoEntity();
//遍历所有工作流下步骤,获取第一步骤GID信息
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
{
if (step.StepNO == 1)
{
WorkFlowDoEntity paySettleWorkFlowDoEntity = new WorkFlowDoEntity();
paySettleWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
paySettleWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
paySettleWorkFlowDoEntity.StepID = step.GID;
paySettleWorkFlowDoEntity.StepNO = step.StepNO;
paySettleWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
paySettleWorkFlowDoEntity.FeeID = "";
paySettleWorkFlowDoEntity.BSNO = "";
paySettleWorkFlowDoEntity.FeeStatus = 0;
paySettleWorkFlowDoEntity.DoQuerySql = "";
paySettleWorkFlowDoEntity.BillNO = strBillNO;
paySettleWorkFlowDoEntity.IsFinish = false;
paySettleWorkFlowDoEntity.Applicant = strUserID;
workFlowDoEntities.Add(paySettleWorkFlowDoEntity);
MessageEntity messageEntity = new MessageEntity();
messageEntity.GID = Guid.NewGuid().ToString();
if (bsnoCount == 0)
{
messageEntity.Name = "FeePayAudit";
}
else
{
messageEntity.Name = "FeeSeaAllPaySettleAudit";
}
messageEntity.Description = "收费申请审核";
messageEntity.IsRead = false;
messageEntity.ReadCount = 0;
messageEntity.MessageContent = strShowName + " 业务编号:" + strBillNO + " 提交待审核 [收费申请] ";
messageEntity.TaskID = strBillNO;
messageEntity.Receiver = step.Auditor;
messageEntity.TaskUrl = messageEntity.TaskUrl = "settlements/feepayaudit.aspx";
messageEntity.Type = messageDA.GetMessageType(MessageType.FEEPAYAPP);
messageEntity.RecvType = 2;//申请审核类型
messageEntities.Add(messageEntity);
}
}
workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
feePaySettleApplicationDA.UpdatePayApplicationStatus(strBillNO, 3, strCompanyID);
if (messageEntities.Count > 0)
{
messageDA.CreateMessage(MessageType.FEEPAYAPP, messageEntities);
}
}
}
}
LogEntity logEntity = new LogEntity();
logEntity.GID = Guid.NewGuid().ToString();
logEntity.Name = "添加收费申请信息";
logEntity.LogType = "INSERT 插入操作";
logEntity.CreateUserID = strUserID;
logEntity.LogContent = strShowName + String.Format(Logger.Instance.GetLogContentTemplate(Logger.LogTypes.INSERT), "收费申请", "申请编号:" + strBillNO);
Logger.Instance.WriteLog(logEntity);
}
return iResult;
}
/// <summary>
/// 重新提交申请
/// </summary>
/// <param name="tempPaySettleAppGID"></param>
/// <returns></returns>
private int RePostRejectPaySettleApplication(string tempPaySettleAppGID)
{
int iResult = 0;
FeePaySettleApplicationDA feePaySettleApplicationDA = new FeePaySettleApplicationDA();
T_ALL_DA t_all_da = new T_ALL_DA();
int bsnoCount = 0;
FeePayApplicationEntity feePayApplicationEntity = feePaySettleApplicationDA.GetFeePayApplicationByGID(tempPaySettleAppGID);
if (feePayApplicationEntity != null)
{
if (feePayApplicationEntity.GID != null)
{
if (feePayApplicationEntity.BillStatus == 6)
{
iResult = feePaySettleApplicationDA.PostRejectPaySettleApplication(tempPaySettleAppGID);
if (iResult == 1)
{
strBillNO = feePaySettleApplicationDA.GetBillNoByPaySettleAppID(tempPaySettleAppGID);
DataSet ds = t_all_da.GetAllSQL("SELECT BSNO,OPLBNAME,CUSTOMERNAME,MBLNO FROM VW_Settlement WHERE BSNO IN (SELECT C.BSNO FROM ch_fee_recvapplication as A INNER JOIN ch_fee_do as B ON A.BILLNO = B.BILLNO INNER JOIN ch_fee as C ON B.FEEID = C.GID WHERE A.BILLNO ='"+strBillNO.Trim()+"')");
if (ds != null && ds.Tables[0].Rows.Count > 1)
{
string topBsno = ds.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim();
for (int i = 1; i < ds.Tables[0].Rows.Count; i++)
{
if (topBsno != ds.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim())
{
bsnoCount++;
}
else
{
continue;
}
}
}
//工作流
WorkFlowHelper workFlowHelper = new WorkFlowHelper();
//WorkFlowEntity workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.PAYSETTLEAUDIT, strCompanyID);
WorkFlowEntity workFlowEntity = new WorkFlowEntity();
if (stroplb.ToLower() == "op_seae")
{
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.PAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
else if (stroplb.ToLower() == "op_seai")
{
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.SeaiPAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
else if (stroplb.ToLower() == "tmswlbshead" || stroplb.ToLower() == "tmswlpchead")//51 陆运
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.tMsWlPAYSETTLEAUDIT, strCompanyID);
}
else if (stroplb.ToLower() == "wms_fee" || stroplb.ToLower() == "wms" || stroplb.ToLower() == "wms_out")//61
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.WmszxPAYSETTLEAUDIT, strCompanyID);
}
else if (stroplb.ToLower() == "import_main")
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
else if (stroplb.ToLower() == "op_apply")
{
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.APPLYPAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
else if (stroplb.ToLower() == "op_bulk")
{
if (bsnoCount == 0)
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.BULKPAYSETTLEAUDIT, strCompanyID);
}
else
{
workFlowEntity = workFlowHelper.FindWorkFlow(WorkFlowType.FeeSeaAllPaySettleAudit, strCompanyID);
}
}
IList<WorkFlowDoEntity> workFlowDoEntities = new List<WorkFlowDoEntity>();
if (workFlowEntity != null)
{
//消息系统
IList<MessageEntity> messageEntities = new List<MessageEntity>();
MessageDA messageDA = new MessageDA();
WorkFlowDoEntity workFlowDoEntity = null;
WorkFlowDoDA workFlowDoDA = new WorkFlowDoDA();
workFlowDoEntity = workFlowDoDA.GetSigleWorkFlowDoByBillNO(workFlowEntity.GID, strBillNO);
if (workFlowDoEntity == null)
{
if (workFlowDoEntity.GID == null)
{
//workFlowDoEntity = new WorkFlowDoEntity();
//遍历所有工作流下步骤,获取第一步骤GID信息
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
{
if (step.StepNO == 1)
{
WorkFlowDoEntity paySettleWorkFlowDoEntity = new WorkFlowDoEntity();
paySettleWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
paySettleWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
paySettleWorkFlowDoEntity.StepID = step.GID;
paySettleWorkFlowDoEntity.StepNO = step.StepNO;
paySettleWorkFlowDoEntity.Auditor = step.Auditor;
paySettleWorkFlowDoEntity.BillNO = strBillNO;
paySettleWorkFlowDoEntity.IsFinish = false;
paySettleWorkFlowDoEntity.Applicant = strUserID;
workFlowDoEntities.Add(paySettleWorkFlowDoEntity);
MessageEntity messageEntity = new MessageEntity();
messageEntity.GID = Guid.NewGuid().ToString();
if (bsnoCount == 0)
{
messageEntity.Name = "FeePayAudit";
}
else
{
messageEntity.Name = "FeeSeaAllPaySettleAudit";
}
messageEntity.Description = "收费申请审核";
messageEntity.IsRead = false;
messageEntity.ReadCount = 0;
messageEntity.MessageContent = strShowName + " 业务编号:" + strBillNO + " 提交待审核 [收费申请] ";
messageEntity.TaskID = strBillNO;
messageEntity.Receiver = step.Auditor;
messageEntity.TaskUrl = messageEntity.TaskUrl = "settlements/feepayaudit.aspx";
messageEntity.Type = messageDA.GetMessageType(MessageType.FEEPAYAPP);
messageEntity.RecvType = 2;//申请审核类型
messageEntities.Add(messageEntity);
}
}
workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
feePaySettleApplicationDA.UpdatePayApplicationStatus(strBillNO, 3, strCompanyID);
if (messageEntities.Count > 0)
{
messageDA.CreateMessage(MessageType.FEEPAYAPP, messageEntities);
}
}
}
else
{
if (workFlowDoEntity.GID == null)
{
//workFlowDoEntity = new WorkFlowDoEntity();
//遍历所有工作流下步骤,获取第一步骤GID信息
foreach (WorkFlowStepEntity step in workFlowEntity.WorkFlowSteps)
{
if (step.StepNO == 1)
{
WorkFlowDoEntity paySettleWorkFlowDoEntity = new WorkFlowDoEntity();
paySettleWorkFlowDoEntity.GID = Guid.NewGuid().ToString();
paySettleWorkFlowDoEntity.WorkFlowID = workFlowEntity.GID;
paySettleWorkFlowDoEntity.StepID = step.GID;
paySettleWorkFlowDoEntity.StepNO = step.StepNO;
paySettleWorkFlowDoEntity.Auditor = step.Auditor == null ? step.DefaultAuditor : step.Auditor;
paySettleWorkFlowDoEntity.FeeID = "";
paySettleWorkFlowDoEntity.BSNO = "";
paySettleWorkFlowDoEntity.FeeStatus = 0;
paySettleWorkFlowDoEntity.DoQuerySql = "";
paySettleWorkFlowDoEntity.BillNO = strBillNO;
paySettleWorkFlowDoEntity.IsFinish = false;
paySettleWorkFlowDoEntity.Applicant = strUserID;
workFlowDoEntities.Add(paySettleWorkFlowDoEntity);
MessageEntity messageEntity = new MessageEntity();
messageEntity.GID = Guid.NewGuid().ToString();
if (bsnoCount == 0)
{
messageEntity.Name = "FeePayAudit";
}
else
{
messageEntity.Name = "FeeSeaAllPaySettleAudit";
}
messageEntity.Description = "收费申请审核";
messageEntity.IsRead = false;
messageEntity.ReadCount = 0;
messageEntity.MessageContent = strShowName + " 业务编号:" + strBillNO + " 提交待审核 [收费申请] ";
messageEntity.TaskID = strBillNO;
messageEntity.Receiver = step.Auditor;
messageEntity.TaskUrl = messageEntity.TaskUrl = "settlements/feepayaudit.aspx";
messageEntity.Type = messageDA.GetMessageType(MessageType.FEEPAYAPP);
messageEntity.RecvType = 2;//申请审核类型
messageEntities.Add(messageEntity);
}
}
workFlowDoDA.InsertWorkFlowDo(workFlowDoEntities);
feePaySettleApplicationDA.UpdatePayApplicationStatus(strBillNO, 3, strCompanyID);
if (messageEntities.Count > 0)
{
messageDA.CreateMessage(MessageType.FEEPAYAPP, messageEntities);
}
}
}
}
LogEntity logEntity = new LogEntity();
logEntity.GID = Guid.NewGuid().ToString();
logEntity.Name = "添加收费申请信息";
logEntity.LogType = "INSERT 插入操作";
logEntity.CreateUserID = strUserID;
logEntity.LogContent = strShowName + String.Format(Logger.Instance.GetLogContentTemplate(Logger.LogTypes.INSERT), "收费申请", "申请编号:" + strBillNO);
Logger.Instance.WriteLog(logEntity);
}
}
else
{
iResult = -5;//只能提交状态为驳回的收费申请
}
}
else
{
iResult = -4;//不存在收费申请
}
}
else
{
iResult = -4;//不存在收费申请
}
return iResult;
}
#region 删除运行结算表信息
/// <summary>
/// 删除运行结算表信息
/// </summary>
/// <param name="tempRunFeeSettleID">运行结算表GID</param>
/// <returns>值1表示删除成功 值不等于1表示删除失败</returns>
private int DeleteSavedPaySettleApplication(string tempRunFeeSettleID)
{
int iResult = 0;
RunFeeSettlementDA runFeeSettlementDA = new RunFeeSettlementDA();
iResult = runFeeSettlementDA.DeleteRunFeeSettlementByGID(tempRunFeeSettleID);
if (iResult == 1)
{
LogEntity logEntity = new LogEntity();
logEntity.GID = Guid.NewGuid().ToString();
logEntity.Name = "删除收费申请保存信息";
logEntity.LogType = "DELETE 删除操作";
logEntity.CreateUserID = strUserID;
logEntity.LogContent = strShowName + String.Format(Logger.Instance.GetLogContentTemplate(Logger.LogTypes.DELETE), "收费申请保存信息", "");
Logger.Instance.WriteLog(logEntity);
}
return iResult;
}
#endregion
#region 删除已保存未结算的收费信息
/// <summary>
/// 删除已保存未结算的收费信息
/// </summary>
/// <param name="tempRunSettlementID">运行结算表GID</param>
/// <returns>值1表示删除成功 值不等于1表示删除失败</returns>
private int DeleteSavedUnSettlePay(string tempRunSettlementID)
{
int iResult = 0;
RunFeeSettlementDA runFeeSettlementDA = new RunFeeSettlementDA();
RunFeeSettlementEntity runFeeSettlementEntity = runFeeSettlementDA.GetRunFeeSettlementByGID(tempRunSettlementID);
if (runFeeSettlementEntity != null)
{
if (runFeeSettlementEntity.GID != null)
{
iResult = runFeeSettlementDA.DeleteRunFeeSettlementByGID(tempRunSettlementID);
if (iResult == 1)
{
LogEntity logEntity = new LogEntity();
logEntity.GID = Guid.NewGuid().ToString();
logEntity.Name = "删除已保存未结算收费信息";
logEntity.LogType = "DELETE 删除操作";
logEntity.CreateUserID = strUserID;
logEntity.LogContent = strShowName + String.Format(Logger.Instance.GetLogContentTemplate(Logger.LogTypes.DELETE), "已保存未结算收费", "");
Logger.Instance.WriteLog(logEntity);
}
}
else
{
iResult = -3;//数据不存在
}
}
else
{
iResult = -3;//数据不存在
}
return iResult;
}
#endregion
#region 将已保存为结算的收费进行结算操作
/// <summary>
/// 将已保存为结算的收费进行结算操作
/// </summary>
/// <param name="tempRunSettleID"></param>
/// <returns></returns>
private int PostSavePaySettle(string tempRunSettleID)
{
int iResult = 0;
string strBillNO = "";
string strFeePaySettleID = Guid.NewGuid().ToString();
FeePaySettleDA feePaySettleDA = new FeePaySettleDA();
iResult = feePaySettleDA.PostSavePaySettle(strFeePaySettleID, tempRunSettleID, strUserID, "", strCompanyID);
if (iResult == 1)
{
strBillNO = feePaySettleDA.GetBillNoByPaySettleID(strFeePaySettleID);
LogEntity logEntity = new LogEntity();
logEntity.GID = Guid.NewGuid().ToString();
logEntity.Name = "添加收费结算信息";
logEntity.LogType = "INSERT 插入操作";
logEntity.CreateUserID = strUserID;
logEntity.LogContent = strShowName + String.Format(Logger.Instance.GetLogContentTemplate(Logger.LogTypes.INSERT), "收费结算", "结算单号:" + strBillNO);
Logger.Instance.WriteLog(logEntity);
}
return iResult;
}
#endregion
#region 撤销收费结算
/// <summary>
/// 撤销收费结算
/// </summary>
/// <param name="strPaySettleID">收费结算GID</param>
/// <returns>值1表示结算成功 值不等于1表示结算失败</returns>
private int CacelPaySettle(string strPaySettleID)
{
int iResult = 0;
FeePaySettleDA feePaySettleDA = new FeePaySettleDA();
FeeSettlementDA feeSettlementDA = new FeeSettlementDA();
FeeSettlementEntity feeSettlementEntity = new FeeSettlementEntity();
feeSettlementEntity = feeSettlementDA.GetFeeSettlementByGID(strPaySettleID);
if (feeSettlementEntity != null)
{
if (feeSettlementEntity.GID != null)
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string ssql = "select count(*) as nums from ch_fee_advance_payment_detail where BILLNO='" + feeSettlementEntity.BillNO.ToString() + "' and (ISDELETE=0 or ISDELETE is null)";
int nums = int.Parse(T_ALL_DA.GetStrSQL("nums", ssql));
if (nums != 0)//判断是否存在预收预收主表中的预收支资料
{
return -3;
}
//
iResult = feePaySettleDA.CacelPaySettle(strPaySettleGID, feeSettlementEntity.BillNO, strUserID, feeSettlementEntity.CompanyID);
if (iResult == 1)
{
LogEntity logEntity = new LogEntity();
logEntity.GID = Guid.NewGuid().ToString();
logEntity.Name = "撤销收费结算信息";
logEntity.LogType = "CANCEL 撤销操作";
logEntity.CreateUserID = strUserID;
logEntity.LogContent = strShowName + String.Format(Logger.Instance.GetLogContentTemplate(Logger.LogTypes.CANCEL), "收费结算", "结算单号:" + feeSettlementEntity.BillNO);
Logger.Instance.WriteLog(logEntity);
}
}
}
return iResult;
}
#endregion
#region 查看收费申请是否已经结算完成
/// <summary>
/// 查看收费申请是否已经结算完成
/// </summary>
/// <param name="tempBillNO"></param>
/// <returns></returns>
private int IsFeeRecvApplicationSettled(string tempBillNO)
{
int iResult = 0;
ChFeeRecvApplicationEntity ChFeeRecvApplicationEntity = new ChFeeRecvApplicationEntity();
ChFeeRecvApplicationDA ChFeeRecvApplicationDA = new ChFeeRecvApplicationDA();
ChFeeRecvApplicationEntity = ChFeeRecvApplicationDA.GetModel(tempBillNO, strCompanyID);
if (ChFeeRecvApplicationEntity.GID != null)
{
if (ChFeeRecvApplicationEntity.BILLSTATUS == 4)
{
iResult = 1;//收费申请已经结算完毕
}
else if (ChFeeRecvApplicationEntity.BILLSTATUS == 0)
{
iResult = 0;//收费申请已审批
}
else if (ChFeeRecvApplicationEntity.BILLSTATUS == 3)
{
iResult = -2;//收费申请正在审批中
}
}
else
{
iResult = -1;//没有相关申请信息
}
return iResult;
}
#endregion
}
}