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.
DS7HYRD/DSWeb/CW/CwVouchersAddDoGridSource.a...

1357 lines
76 KiB
C#

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
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.Xml.Linq;
using JsonHelper;
using System.Xml;
namespace DSWeb.CW
{
public partial class CwVouchersAddDoGridSource : System.Web.UI.Page
{
private string strReadXmlType = "";//读取xml串方式 "init"-初始化获取所有账户信息;"add"-添加新的账户信息;"delete"-删除账户信息;"exist"查看是否有与委托相关账户
private int iShowCount;//每页显示数据量
//delete
private string strCwVouchersAddDoGid;//账户信息GID
private string strHandle;//账户操作说明
private const int iResult = -99;//参数错误
T_ALL_DA T_ALL_DA = new T_ALL_DA();
private string strRange = String.Empty;//权限可视范围
RangeDA RangeDA = new RangeDA();
public string strUserID;//用户GID
public string strORDNO;//
public string strGIDS;//
protected void Page_Load(object sender, EventArgs e)
{
if (Session["USERID"] != null)
{
strUserID = Session["USERID"].ToString().Trim();
}
//
#region 判断参数是否正确
if (Request.QueryString["read"] != null)
{
strReadXmlType = Request.QueryString["read"].ToString().Trim();
}
if (Request.QueryString["showcount"] != null)
{
iShowCount = int.Parse(Request.QueryString["showcount"].ToString());
}
if (Request.QueryString["ordno"] != null)
{
strORDNO = Request.QueryString["ordno"].ToString();
}
if (Request.QueryString["gids"] != null)
{
strGIDS = Request.QueryString["gids"].ToString();
}
#endregion
/*
//权限可视范围
strRange = RangeDA.GetVISIBLERANGE(strUserID.Trim(), "modOrderManagement");
if (strRange.Trim().Equals("0"))//全部
{
strRange = "";
}
else if (strRange.Trim().Equals("1"))//分公司
{
strRange = " and BSNO in(" + RangeDA.GetOrderManagementCompany(strUserID.Trim()) + ")";
}
else if (strRange.Trim().Equals("2"))//部门
{
strRange = " and BSNO in(" + RangeDA.GetOrderManagementDEPT(strUserID.Trim()) + ")";
}
else if (strRange.Trim().Equals("3"))//个人
{
strRange = " and BSNO in(" + RangeDA.GetOrderManagementPerson(strUserID.Trim()) + ")";
}
else if (strRange.Trim().Equals("4"))//无
{
strRange = " and 1<0";
}
else//空
{
strRange = " and 1<0";
}
*/
//
if (!strReadXmlType.Equals(""))
{
if (strReadXmlType.Equals("delete") || strReadXmlType.Equals("recover"))
{
strCwVouchersAddDoGid = (String)Request.QueryString["gid"] as String;
strHandle = (String)Request.QueryString["read"] as String;
if (strCwVouchersAddDoGid == null || strHandle == null)
{
Response.Write(iResult);
}
else
{
string strQuery = DoExcute(strCwVouchersAddDoGid, strHandle);
Response.Write(strQuery);
}
}
else if (strReadXmlType.Equals("isvouchers"))
{
string strQuery = setVouchers();
Response.Write(strQuery);
}
else
{
string strOutputXml = "";
strOutputXml = GetCells(iShowCount, strReadXmlType);
//输出XML字符串
Response.ContentType = "text/xml";
strOutputXml.Replace("&", "&amp;");
Response.Write(strOutputXml);
}
}
else
{
//访问参数不正确
Response.ContentType = "text/xml";
Response.Write("-2");
}
}
/// <summary>
/// 根据用户提交的
/// </summary>
/// <param name="tempGid">账户GID</param>
/// <param name="tempHandle">操作类型 delete删除单条账户</param>
/// <returns>值1-删除成功;值-1 -删除操作异常 值-2 -回滚失败 值-3 -未获取相关账户信息</returns>
private string DoExcute(string tempGid, string tempHandle)
{
string strVal = "";
CwVouitemsDA CwVouitemsDA = new CwVouitemsDA();
//操作类型为删除
if (tempHandle == "delete")
{
int iResult = 0;
//先判断当前要删除的账户是否存在
if (!tempGid.Trim().Equals(""))
{
CwVouitemsEntity CwVouitemsEntity = new CwVouitemsEntity();
CwVouitemsEntity = CwVouitemsDA.GetModel(tempGid);
if (CwVouitemsEntity.GID != null)
{
iResult = CwVouitemsDA.Delete(CwVouitemsEntity.GID);
}
else
{
iResult = -3; //未获取相关账户信息
}
}
strVal = iResult.ToString();
}
if (tempHandle == "recover")
{
if (!tempGid.Trim().Equals(""))
{
CwVouitemsEntity CwVouitemsEntity = new CwVouitemsEntity();
CwVouitemsEntity = CwVouitemsDA.GetModel(tempGid);
if (CwVouitemsEntity != null)
{
StringBuilder CwVouitemsBuilder = new StringBuilder();
CwVouitemsBuilder.Append(CwVouitemsEntity.GID + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.ITEMNO + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.EXPLAN + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.ACCID + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.ACCNAME + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.AMTDR + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.AMTCR + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.FCYDR + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.FCYCR + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.FCYEXRATE + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.CUSTOMERNAME + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.CORPID + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.SALE + ",");
CwVouitemsBuilder.Append(CwVouitemsEntity.BLNO);
strVal = CwVouitemsBuilder.ToString();
}
else
{
strVal = "-3";
}
}
else
{
strVal = "-3";
}
}
return strVal;
}
/// <summary>
/// 获取账户信息
/// </summary>
/// <returns></returns>
private string GetCells(int iShowCount, string readXmlType)
{
CwVouitemsDA CwVouchersAddDoEntity = new CwVouitemsDA();
CwVouitemsDA CwVouitemsDA = new CwVouitemsDA();
if (!strReadXmlType.Equals("exist"))
{
//获取所有账户信息,用做Grid显示
DataTable CwVouchersAddDoTable = new DataTable();
//初始化
string strInitSql = " SELECT GID,ITEMNO,EXPLAN,ACCID,ACCNAME,AMTDR,AMTCR,FCYDR,FCYCR,FCYEXRATE,CUSTOMERNAME,CORPID,SALE,BLNO FROM cw_vouitems WHERE 1=1 and ORDNO='" + strORDNO.ToString().Trim() + "'" + strRange + " ORDER BY ITEMNO";
CwVouchersAddDoTable = getStatusNameTable(CwVouitemsDA.GetExcuteSql(strInitSql).Tables[0]);
//编排字符串 xml串
StringBuilder dataBuilder = new StringBuilder();
dataBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
dataBuilder.Append("<rows>");
int iCount = CwVouchersAddDoTable.Rows.Count;
for (int i = 0; i < iCount; i++)
{
int jCount = CwVouchersAddDoTable.Columns.Count;
dataBuilder.Append("<row id=\"" + CwVouchersAddDoTable.Rows[i]["GID"].ToString() + "\">");
dataBuilder.Append("<cell>0</cell>");
for (int j = 1; j < jCount; j++)
{
switch (j)
{
case 1:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 2:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 3:
string xl = GetACCID(CwVouchersAddDoTable.Rows[i][j].ToString().Trim());
if (xl != "")
{
dataBuilder.Append(xl);
}
else
{
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
}
break;
case 4:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 5:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 6:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 7:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 8:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 9:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 10:
xl = GetCRMClientCells(CwVouchersAddDoTable.Rows[i][j].ToString().Trim());
if (xl != "")
{
dataBuilder.Append(xl);
}
else
{
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
}
break;
case 11:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
case 12:
xl = GetSALE(CwVouchersAddDoTable.Rows[i][j].ToString().Trim());
if (xl != "")
{
dataBuilder.Append(xl);
}
else
{
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
}
break;
case 13:
dataBuilder.Append("<cell>" + CwVouchersAddDoTable.Rows[i][j].ToString() + "</cell>");
break;
}
}
dataBuilder.Append("</row>");
}
dataBuilder.Append("</rows>");
return dataBuilder.ToString();
}
else if (strReadXmlType.Equals("exist"))
{
return "1";//存在账户
}
else if (strReadXmlType.Equals("add"))
{
StringBuilder dataBuilder = new StringBuilder();
dataBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
dataBuilder.Append("<rows>");
dataBuilder.Append("<row id=\"" + Guid.NewGuid().ToString() + "\">");
//
dataBuilder.Append("<cell>0</cell>");
dataBuilder.Append("<cell>" + GetITEMNO() + "</cell>");
dataBuilder.Append("<cell></cell>");
//
string strcb = GetACCID("");
if (strcb.Trim() == "")
{
dataBuilder.Append("<cell></cell>");
}
else
{
dataBuilder.Append(strcb);
}
//
dataBuilder.Append("<cell></cell>");
dataBuilder.Append("<cell>0</cell>");
dataBuilder.Append("<cell>0</cell>");
dataBuilder.Append("<cell>0</cell>");
dataBuilder.Append("<cell>0</cell>");
dataBuilder.Append("<cell>0</cell>");
//
strcb = GetCRMClientCells("");
if (strcb.Trim() == "")
{
dataBuilder.Append("<cell></cell>");
}
else
{
dataBuilder.Append(strcb);
}
//
dataBuilder.Append("<cell></cell>");
//
strcb = GetSALE("");
if (strcb.Trim() == "")
{
dataBuilder.Append("<cell></cell>");
}
else
{
dataBuilder.Append(strcb);
}
//
dataBuilder.Append("<cell></cell>");
//
dataBuilder.Append("</row>");
dataBuilder.Append("</rows>");
return dataBuilder.ToString();
}
else
{
return "-3";//没有相关的账户
}
}
/// <summary>
/// 获取数据库顺序递增的行号
/// </summary>
/// <returns></returns>
private string GetITEMNO()
{
CwVouitemsDA CwVouitemsDA = new CwVouitemsDA();
string strITEMNO = CwVouitemsDA.GetStrSQL("hh", "select isnull(max(ITEMNO),0)+1 as hh from Cw_Vouitems where ORDNO='" + strORDNO + "'");
return strITEMNO;
}
/// <summary>
/// 获取科目信息下拉列表
/// </summary>
/// <param name="strClientValue">当前列表科目信息id值</param>
/// <returns></returns>
public string GetACCID(string strACCID)
{
T_ALL_DA T_ALL_DA = new T_ALL_DA();
DataSet ds = T_ALL_DA.GetAllSQL("select * from cw_accitems order by ACCID");
if (ds != null)
{
StringBuilder clientBuilder = new StringBuilder();
clientBuilder.Append("<cell xmlcontent=\"1\" editable=\"1\">" + strACCID);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (!ds.Tables[0].Rows[i]["ACCID"].ToString().Trim().Equals(""))
{
clientBuilder.Append("<option value=\"" + ds.Tables[0].Rows[i]["ACCID"].ToString() + "\">" + ds.Tables[0].Rows[i]["ACCID"].ToString() + " | " + ds.Tables[0].Rows[i]["ACCNAME"].ToString() + "</option>");
}
}
clientBuilder.Append("</cell>");
return clientBuilder.ToString();
}
else
{
return "";
}
}
/// <summary>
/// 获取CRM系统客户信息下拉列表
/// </summary>
/// <param name="strClientValue">当前列表客户信息值</param>
/// <returns></returns>
public string GetCRMClientCells(string strClientValue)
{
CRMClientDA crmClientDA = new CRMClientDA();
DataTable clientTable = crmClientDA.GetCRMClientList().Tables[0];
if (clientTable != null)
{
StringBuilder clientBuilder = new StringBuilder();
clientBuilder.Append("<cell xmlcontent=\"1\" editable=\"1\">" + strClientValue);
for (int i = 0; i < clientTable.Rows.Count; i++)
{
if (!clientTable.Rows[i]["SHORTNAME"].ToString().Trim().Equals(""))
{
string ls = clientTable.Rows[i]["CODENAME"].ToString().ToUpper() + " | " + clientTable.Rows[i]["SHORTNAME"].ToString();
clientBuilder.Append("<option value=\"" + ls + "\">" + ls + "</option>");
}
}
clientBuilder.Append("</cell>");
return clientBuilder.ToString();
}
else
{
return "";
}
}
/// <summary>
/// 获取揽货人信息下拉列表
/// </summary>
/// <param name="strClientValue">当前列表揽货人信息值</param>
/// <returns></returns>
public string GetSALE(string strClientValue)
{
T_ALL_DA T_ALL_DA = new T_ALL_DA();
DataSet ds = T_ALL_DA.GetOP(strUserID, "isSaleMan");
if (ds != null)
{
StringBuilder SALEBuilder = new StringBuilder();
SALEBuilder.Append("<cell xmlcontent=\"1\" editable=\"1\">" + strClientValue);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (!ds.Tables[0].Rows[i]["CODENAME"].ToString().Trim().Equals(""))
{
string ls = ds.Tables[0].Rows[i]["CODENAME"].ToString().ToUpper() + " | " + ds.Tables[0].Rows[i]["SHOWNAME"].ToString();
SALEBuilder.Append("<option value=\"" + ls + "\">" + ls + "</option>");
}
}
SALEBuilder.Append("</cell>");
return SALEBuilder.ToString();
}
else
{
return "";
}
}
/// <summary>
/// 将数据集表中账户状态CwVouchersAddDoStatus和应收应付类型CwVouchersAddDoType的数字状态位转换成文字
/// </summary>
/// <param name="tempTable">原数据源DataTable</param>
/// <returns>返回新数据源DataTable</returns>
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++)
{
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++)
{
cloneRow[sourceTable.Columns[k].ColumnName] = sourceTable.Rows[i][k];
}
cloneTable.Rows.Add(cloneRow);
}
return cloneTable;
}
protected String getgid()
{
string strgid = Guid.NewGuid().ToString();
strgid = strgid.Replace("-", "");
strgid = "VOU" + strgid;
return strgid;
}
protected String setVouchers()
{
string sSQL = "";
string sResult = "";
string zt = "";
//
if (strGIDS.Trim() != "")
{
//帐套设置
sSQL = "SELECT top 1 * from cw_design";
DataSet ds = T_ALL_DA.GetAllSQL(sSQL);
if (ds == null)
{
return "请先设置帐套信息!";
}
//
string sGids = strGIDS.Trim().Replace(",", "','");
sGids = "'" + sGids.Trim() + "'";
//合并生成结算凭证
if (ds.Tables[0].Rows[0]["ISMGSC"].ToString().Trim() == "True")
{
sResult = getSC(ds, sGids.Trim(), "");//, strEXPLAN, ds5.Tables[0].Rows[0]["DEPTID"].ToString().Trim(), ds5.Tables[0].Rows[0]["EMPLID"].ToString().Trim(), ds5.Tables[0].Rows[0]["SALE"].ToString().Trim());
zt += sResult;
}
else
{
string[] items = sGids.Trim().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
if (items.Length > 0)
{
for (int i = 0; i < items.Length; i++)
{
sResult = getSC(ds, items[i].ToString().Trim(), "");//, strEXPLAN, ds5.Tables[0].Rows[0]["DEPTID"].ToString().Trim(), ds5.Tables[0].Rows[0]["EMPLID"].ToString().Trim(), ds5.Tables[0].Rows[0]["SALE"].ToString().Trim());
zt += "," + sResult;
}
if (zt.Trim().Length > 0)
{
zt = zt.Trim().Substring(1);
}
}
}
//
if (zt.IndexOf("-") > 0)
{
return "";
}
}
return zt;
}
/// <summary>
/// 生成凭证
/// </summary>
/// <param name="ds">帐套设置数据集</param>
/// <param name="sGids">gid业务编号</param>
/// <param name="strVESSEL">船名航次</param>
/// <param name="strEXPLAN">规则生成的摘要</param>
/// <returns></returns>
protected String getSC(DataSet ds, string sGids, string strVESSEL)//, string strEXPLAN, string strDEPTID, string strEMPLID, string strSALE)
{
//全部
string sSQL = "";
string strEXPLAN = "";
Decimal iAMTDR = 0;
Decimal iAMTCR = 0;
int iResult = 0;
//差额主营业务收入
Decimal dRMBS = 0;
Decimal dRMBF = 0;
Decimal dUSDS = 0;
Decimal dUSDF = 0;
int n = 0;
Decimal dEXCHANGERATE = 0;
//其他常用科目设置 应收RMB
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["AR"].ToString().Trim() + "'";
DataSet ds2 = T_ALL_DA.GetAllSQL(sSQL);
//其他常用科目设置 应付RMB
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["AP"].ToString().Trim() + "'";
DataSet ds3 = T_ALL_DA.GetAllSQL(sSQL);
//其他常用科目设置 应收USD
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["ARFC"].ToString().Trim() + "'";
DataSet ds6 = T_ALL_DA.GetAllSQL(sSQL);
//其他常用科目设置 应付USD
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["APFC"].ToString().Trim() + "'";
DataSet ds7 = T_ALL_DA.GetAllSQL(sSQL);
//其他常用科目设置 付费结算借方默认科目代码
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["APMBSPENDING"].ToString().Trim() + "'";
DataSet ds8 = T_ALL_DA.GetAllSQL(sSQL);
//其他常用科目设置 付费结算外币借方默认科目代码
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + ds.Tables[0].Rows[0]["APTMSFC"].ToString().Trim() + "'";
DataSet ds9 = T_ALL_DA.GetAllSQL(sSQL);
//
//ISRPCLIENTNAME 是否收付客户名称
//ISRPCOTCODE 是否收付业务编号
//ISRPETD 是否收付航期
//ISRPMBLNO 是否收付主提单号
//ISRPCUSTNO 是否收付委托编号
//ISRPVESSEL 是否收付船名
//ISRPVOYNO 是否收付航次
string strISEXPLAN = "";
//if (ds.Tables[0].Rows[0]["ISRPCLIENTNAME"].ToString().Trim() == "True")
//{
// strISEXPLAN += " " + ds.Tables[0].Rows[0]["CUSTOMERNAME"].ToString().Trim();
//}
if (ds.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",CUSTNO";
}
if (ds.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",MBLNO";
}
if (ds.Tables[0].Rows[0]["ISRPVESSEL"].ToString().Trim() == "True")
{
strISEXPLAN += ",VESSEL";
}
if (ds.Tables[0].Rows[0]["ISRPVOYNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",VOYNO";
}
//
string strORDNO = getgid();
CwVouchersDA CwVouchersDA = new CwVouchersDA();
IList<CwVouitemsEntity> CwVouitemsEntities = new List<CwVouitemsEntity>();
//
//(CASE WHEN FEETYPE = 1 THEN '应收账款' ELSE '应付账款' END) as 类型
//,CUSTOMERNAME 客户名称
//,EXCHANGERATE 汇率
//,CURRENCY 币别`
//,ISADVANCEDPAY 是否垫付
//,SUM(AMOUNT) AS 金额
//,SUM(AMOUNT*EXCHANGERATE) AS 合计金额
sSQL = "SELECT (CASE WHEN FEETYPE = 1 THEN '应收账款' WHEN FEETYPE=2 THEN '应付账款' ELSE '' END) as FEETYPE";
sSQL += ",FAPCODE=(select top 1 FAPCODE from info_client where SHORTNAME=VW_ch_fee_settlement_do.CUSTOMERNAME)";
sSQL += ",FARCODE=(select top 1 FARCODE from info_client where SHORTNAME=VW_ch_fee_settlement_do.CUSTOMERNAME)";
sSQL += ",SETTLETYPE,CUSTOMERNAME,EXCHANGERATE=isnull(EXCHANGERATE,1),CURRENCY,SUM(AMOUNT) AS je,SUM(AMOUNT*isnull(EXCHANGERATE,1)) AS hj";
sSQL += ",ACCOUNTRMB,ACCOUNTUSD" + strISEXPLAN;
sSQL += " From VW_ch_fee_settlement_do WHERE 1=1 ";
sSQL += " and gid_s in (" + sGids.Trim() + ") " + strVESSEL;
sSQL += " GROUP BY FEETYPE,CUSTOMERNAME,EXCHANGERATE,CURRENCY,SETTLETYPE,ACCOUNTRMB,ACCOUNTUSD" + strISEXPLAN;//BILLNO,
sSQL += " ORDER BY FEETYPE desc,CURRENCY,CUSTOMERNAME" + strISEXPLAN;//BILLNO,
DataSet ds1 = T_ALL_DA.GetAllSQL(sSQL);
if (ds1 != null)
{
string strEXPLANALL = "";
string strBILLNOALL = "";
//插入明细表
for (int i = 0; i < ds1.Tables[0].Rows.Count; i++)
{
n = i;// +1;
CwVouitemsEntity CwVouitemsEntity = new CwVouitemsEntity();
//CwVouitemsEntity.GID 唯一编码 newid()
CwVouitemsEntity.ORDNO = strORDNO.Trim();
CwVouitemsEntity.ITEMNO = n;// 行号
CwVouitemsEntity.PACCID = "";//父级科目贷码
CwVouitemsEntity.PROPERTY = 0;//科目属性
CwVouitemsEntity.GRADE = 0;//科目级别
if (ds1.Tables[0].Rows[i]["FEETYPE"].ToString().Trim() == "应收账款")
{
iAMTDR = iAMTDR + Decimal.Parse(ds1.Tables[0].Rows[i]["hj"].ToString().Trim());
//
if (ds1.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() == "RMB")
{
CwVouitemsEntity.ACCID = ds.Tables[0].Rows[0]["AR"].ToString().Trim();//应收账款科目贷码
CwVouitemsEntity.AMTDR = 0;//本位币贷方金额(互斥)
CwVouitemsEntity.AMTCR = Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//本位币借方金额(互斥)
CwVouitemsEntity.ISFCY = false;//是否外币
CwVouitemsEntity.FCYNO = "RMB";//外币编号usd
CwVouitemsEntity.FCYDR = 0;//外币借方金额
CwVouitemsEntity.FCYCR = 0;//外币贷方金额
dRMBS += Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//本位币借方金额(互斥)
if (ds2 == null)
{
CwVouitemsEntity.ACCNAME = "";//科目名称
CwVouitemsEntity.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity.DC = "D";//贷方向
}
else
{
CwVouitemsEntity.ACCNAME = ds2.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
CwVouitemsEntity.ISDEPTACC = Boolean.Parse(ds2.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = Boolean.Parse(ds2.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
CwVouitemsEntity.ISCORPACC = Boolean.Parse(ds2.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
CwVouitemsEntity.ISITEMACC = Boolean.Parse(ds2.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (ds2.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
CwVouitemsEntity.DC = "D";//借方向
}
else
{
CwVouitemsEntity.DC = "C";//贷方向
}
}
}
else if (ds1.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() != "RMB")
{
CwVouitemsEntity.ACCID = ds.Tables[0].Rows[0]["ARFC"].ToString().Trim();//应收账款外币科目贷码
CwVouitemsEntity.AMTDR = 0;//本位币贷方金额(互斥)
CwVouitemsEntity.AMTCR = Decimal.Parse(ds1.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
CwVouitemsEntity.ISFCY = true;//是否外币
CwVouitemsEntity.FCYNO = "USD";//外币编号usd
CwVouitemsEntity.FCYDR = 0;//外币贷方金额
CwVouitemsEntity.FCYCR = Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//外币借方金额
dUSDS += Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//本位币借方金额(互斥)
if (ds6 == null)
{
CwVouitemsEntity.ACCNAME = "";//科目名称
CwVouitemsEntity.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity.DC = "C";//贷方向
}
else
{
CwVouitemsEntity.ACCNAME = ds6.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
CwVouitemsEntity.ISDEPTACC = Boolean.Parse(ds6.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = Boolean.Parse(ds6.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
CwVouitemsEntity.ISCORPACC = Boolean.Parse(ds6.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
CwVouitemsEntity.ISITEMACC = Boolean.Parse(ds6.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (ds6.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
CwVouitemsEntity.DC = "D";//借方向
}
else
{
CwVouitemsEntity.DC = "C";//贷方向
}
}
}
CwVouitemsEntity.CORPID = ds1.Tables[0].Rows[i]["FAPCODE"].ToString().Trim();//客户(系统)
CwVouitemsEntity.CUSTOMERNAME = ds1.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
}
else if (ds1.Tables[0].Rows[i]["FEETYPE"].ToString().Trim() == "应付账款")
{
iAMTCR = iAMTCR + Decimal.Parse(ds1.Tables[0].Rows[i]["hj"].ToString().Trim());
//
if (ds1.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() == "RMB")
{
if (ds.Tables[0].Rows[0]["ISAPMBSPENDING"].ToString().Trim() == "True")
{
CwVouitemsEntity.ACCID = ds.Tables[0].Rows[0]["APMBSPENDING"].ToString().Trim();//应付账款科目贷码
}
else
{
CwVouitemsEntity.ACCID = ds.Tables[0].Rows[0]["AP"].ToString().Trim();//应付账款科目贷码
}
CwVouitemsEntity.AMTDR = Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//本位币贷方金额(互斥)
CwVouitemsEntity.AMTCR = 0;//本位币借方金额(互斥)
CwVouitemsEntity.ISFCY = false;//是否外币
CwVouitemsEntity.FCYNO = "RMB";//外币编号usd
CwVouitemsEntity.FCYDR = 0;//外币借方金额
CwVouitemsEntity.FCYCR = 0;//外币贷方金额
dRMBF += Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//本位币贷方金额(互斥)
if (ds3 == null)
{
CwVouitemsEntity.ACCNAME = "";//科目名称
CwVouitemsEntity.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity.DC = "C";//贷方向
CwVouitemsEntity.CORPID = "";//客户(系统)
CwVouitemsEntity.CUSTOMERNAME = "";//客户(系统)
}
else
{
if (ds.Tables[0].Rows[0]["ISAPMBSPENDING"].ToString().Trim() == "True")
{
if (ds8 == null)
{
CwVouitemsEntity.ACCNAME = "";//科目名称
}
else
{
CwVouitemsEntity.ACCNAME = ds8.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
}
CwVouitemsEntity.CORPID = "";//客户(系统)
CwVouitemsEntity.CUSTOMERNAME = "";//客户(系统)
CwVouitemsEntity.ISCORPACC = false;//核算客户,按规则设置生成
}
else
{
CwVouitemsEntity.ACCNAME = ds3.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
CwVouitemsEntity.CORPID = ds1.Tables[0].Rows[i]["FARCODE"].ToString().Trim();//客户(系统)
CwVouitemsEntity.CUSTOMERNAME = ds1.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
CwVouitemsEntity.ISCORPACC = Boolean.Parse(ds3.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
}
CwVouitemsEntity.ISDEPTACC = Boolean.Parse(ds3.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = Boolean.Parse(ds3.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
CwVouitemsEntity.ISITEMACC = Boolean.Parse(ds3.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (ds3.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
CwVouitemsEntity.DC = "D";//借方向
}
else
{
CwVouitemsEntity.DC = "C";//贷方向
}
}
}
else if (ds1.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() != "RMB")
{
if (ds.Tables[0].Rows[0]["ISAPTMSFC"].ToString().Trim() == "True")
{
CwVouitemsEntity.ACCID = ds.Tables[0].Rows[0]["APTMSFC"].ToString().Trim();//应付账款科目贷码
}
else
{
CwVouitemsEntity.ACCID = ds.Tables[0].Rows[0]["APFC"].ToString().Trim();//应付账款外币科目贷码
}
CwVouitemsEntity.AMTDR = Decimal.Parse(ds1.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
CwVouitemsEntity.AMTCR = 0;//本位币借方金额(互斥)
CwVouitemsEntity.ISFCY = true;//是否外币
CwVouitemsEntity.FCYNO = "USD";//外币编号usd
CwVouitemsEntity.FCYDR = Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//外币贷方金额
CwVouitemsEntity.FCYCR = 0;//外币借方金额
dUSDF += Decimal.Parse(ds1.Tables[0].Rows[i]["je"].ToString().Trim());//本位币贷方金额(互斥)
if (ds7 == null)
{
CwVouitemsEntity.ACCNAME = "";//科目名称
CwVouitemsEntity.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity.DC = "C";//贷方向
CwVouitemsEntity.CORPID = "";//客户(系统)
CwVouitemsEntity.CUSTOMERNAME = "";//客户(系统)
}
else
{
if (ds.Tables[0].Rows[0]["ISAPTMSFC"].ToString().Trim() == "True")
{
if (ds9 == null)
{
CwVouitemsEntity.ACCNAME = "";//科目名称
}
else
{
CwVouitemsEntity.ACCNAME = ds9.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
}
CwVouitemsEntity.CORPID = "";//客户(系统)
CwVouitemsEntity.CUSTOMERNAME = "";//客户(系统)
CwVouitemsEntity.ISCORPACC = false;//核算客户,按规则设置生成
}
else
{
CwVouitemsEntity.ACCNAME = ds7.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
CwVouitemsEntity.CORPID = ds1.Tables[0].Rows[i]["FARCODE"].ToString().Trim();//客户(系统)
CwVouitemsEntity.CUSTOMERNAME = ds1.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
CwVouitemsEntity.ISCORPACC = Boolean.Parse(ds7.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
}
CwVouitemsEntity.ISDEPTACC = Boolean.Parse(ds7.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
CwVouitemsEntity.ISEMPLACC = Boolean.Parse(ds7.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
CwVouitemsEntity.ISITEMACC = Boolean.Parse(ds7.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (ds7.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
CwVouitemsEntity.DC = "D";//借方向
}
else
{
CwVouitemsEntity.DC = "C";//贷方向
}
}
}
//CwVouitemsEntity.CORPID = ds1.Tables[0].Rows[i]["FARCODE"].ToString().Trim();//客户(系统)
//CwVouitemsEntity.CUSTOMERNAME = ds1.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
}
CwVouitemsEntity.FCYEXRATE = Decimal.Parse(ds1.Tables[0].Rows[i]["EXCHANGERATE"].ToString().Trim());//汇率
dEXCHANGERATE = Decimal.Parse(ds1.Tables[0].Rows[i]["EXCHANGERATE"].ToString().Trim());//汇率
CwVouitemsEntity.QTYUNIT = "";//数量包装单位
CwVouitemsEntity.QTYDR = 0;//借方数量
CwVouitemsEntity.QTYCR = 0;//贷方数量
//
//ISRPCLIENTNAME 是否收付客户名称
//ISRPCOTCODE 是否收付业务编号
//ISRPETD 是否收付航期
//ISRPMBLNO 是否收付主提单号
//ISRPCUSTNO 是否收付委托编号
//ISRPVESSEL 是否收付船名
//ISRPVOYNO 是否收付航次
string strSelEXPLAN = "";
//if (ds.Tables[0].Rows[0]["ISRPCLIENTNAME"].ToString().Trim() == "True")
//{
// strISEXPLAN += " " + ds.Tables[0].Rows[0]["CUSTOMERNAME"].ToString().Trim();
//}
if (ds.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
{
strSelEXPLAN += " and CUSTNO = '" + ds1.Tables[0].Rows[i]["CUSTNO"].ToString().Trim() + "'";
}
if (ds.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
{
strSelEXPLAN += " and MBLNO = '" + ds1.Tables[0].Rows[i]["MBLNO"].ToString().Trim() + "'";
}
if (ds.Tables[0].Rows[0]["ISRPVESSEL"].ToString().Trim() == "True")
{
strSelEXPLAN += " and VESSEL = '" + ds1.Tables[0].Rows[i]["VESSEL"].ToString().Trim() + "'";
}
if (ds.Tables[0].Rows[0]["ISRPVOYNO"].ToString().Trim() == "True")
{
strSelEXPLAN += " and VOYNO = '" + ds1.Tables[0].Rows[i]["VOYNO"].ToString().Trim() + "'";
}
//
sSQL = "select top 1 * from VW_ch_fee_settlement_do where gid_s in(" + sGids.Trim() + ") and CUSTOMERNAME='" + ds1.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim() + "'" + strSelEXPLAN;//BILLNO
DataSet ds5 = T_ALL_DA.GetAllSQL(sSQL);
if (ds5 != null)
{
//ISCLIENTNAME 是否客户名称
//ISCUSTNO 是否委托编号
//ISMBLNO 是否主提单号
//ISVESSEL 是否船名
//ISVOYNO 是否航次
//ISCOTCODE 是否业务编号
//ISETD 是否航期
strEXPLAN = "";
if (ds.Tables[0].Rows[0]["ISRPCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + ds5.Tables[0].Rows[0]["CUSTOMERNAME"].ToString().Trim();
}
if (ds.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + ds5.Tables[0].Rows[0]["CUSTNO"].ToString().Trim();
}
if (ds.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + ds5.Tables[0].Rows[0]["MBLNO"].ToString().Trim();
}
if (ds.Tables[0].Rows[0]["ISRPVESSEL"].ToString().Trim() == "True")
{
strEXPLAN += " " + ds5.Tables[0].Rows[0]["VESSEL"].ToString().Trim();
}
if (ds.Tables[0].Rows[0]["ISRPVOYNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + ds5.Tables[0].Rows[0]["VOYNO"].ToString().Trim();
}
}
//
CwVouitemsEntity.EXPLAN = strEXPLAN;//摘要,规则生成
strEXPLANALL=strEXPLAN;
CwVouitemsEntity.DEPTID = "";//strDEPTID;//部门(系统)
CwVouitemsEntity.EMPLID = "";//strEMPLID;//人员(系统)
CwVouitemsEntity.SALE = "";//strSALE;//人员名称
CwVouitemsEntity.PITEMID = 0;//父级项目编号
CwVouitemsEntity.ITEMID = "0";//项目编号
CwVouitemsEntity.FIELD1 = "";//预留字段1
CwVouitemsEntity.FIELD2 = "";//预留字段2
CwVouitemsEntity.FIELD3 = "";//预留字段3
CwVouitemsEntity.FIELD4 = "";//预留字段4
CwVouitemsEntity.FIELD5 = "";//预留字段5
CwVouitemsEntity.FIELD6 = "";//预留字段6
CwVouitemsEntity.FIELD7 = "";//预留字段7
CwVouitemsEntity.FIELD8 = "";//预留字段8
CwVouitemsEntity.FIELD9 = "";//预留字段9
CwVouitemsEntity.FIELD10 = "";//预留字段10
if (ds.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
CwVouitemsEntity.ISSYS = false;//是否手动录入
}
else
{
CwVouitemsEntity.ISSYS = true;//是否手动录入
}
CwVouitemsEntity.FSETTLCODE = ds1.Tables[0].Rows[i]["SETTLETYPE"].ToString().Trim();//结算方式
CwVouitemsEntity.FSETTLENO = "";//财务辅助编号
CwVouitemsEntity.MODIFIEDUSER = strUserID;//最后一次更新操作人
CwVouitemsEntity.BLNO = "";//BILLNO
if (ds.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
{
CwVouitemsEntity.BLNO = ds1.Tables[0].Rows[i]["mblno"].ToString().Trim();//
}
strBILLNOALL = CwVouitemsEntity.BLNO.ToString().Trim();//
CwVouitemsEntities.Add(CwVouitemsEntity);
}
//现金、账户
Decimal dRMB = dRMBS - dRMBF;
Decimal dUSD = dUSDS - dUSDF;
//收入\成本 生成 全额\差额
Decimal strJie = dRMBS + dUSDS * dEXCHANGERATE;
Decimal strDai = dRMBF + dUSDF * dEXCHANGERATE;
//
string ls = "";
string strBPVW = "";
//插入明细表
//
//(CASE WHEN FEETYPE = 1 THEN '应收账款' ELSE '应付账款' END) as 类型
//,CUSTOMERNAME 客户名称
//,EXCHANGERATE 汇率
//,CURRENCY 币别`
//,ISADVANCEDPAY 是否垫付
//,SUM(AMOUNT) AS 金额
//,SUM(AMOUNT*EXCHANGERATE) AS 合计金额
sSQL = "SELECT BILLNO,(CASE WHEN FEETYPE = 1 THEN '应收账款' WHEN FEETYPE=2 THEN '应付账款' ELSE '' END) as FEETYPE";
//sSQL += ",FAPCODE=(select top 1 FAPCODE from info_client where SHORTNAME=VW_ch_fee_settlement_do.CUSTOMERNAME)";
//sSQL += ",FARCODE=(select top 1 FARCODE from info_client where SHORTNAME=VW_ch_fee_settlement_do.CUSTOMERNAME)";
sSQL += ",SETTLETYPE,EXCHANGERATE=isnull(EXCHANGERATE,1),CURRENCY,SUM(AMOUNT) AS je,SUM(AMOUNT*isnull(EXCHANGERATE,1)) AS hj"; //CUSTOMERNAME,
sSQL += ",ACCOUNTRMB,ACCOUNTUSD";// +strISEXPLAN;
sSQL += " From VW_ch_fee_settlement_do WHERE 1=1 ";
sSQL += " and gid_s in (" + sGids.Trim() + ") ";// +strVESSEL;
sSQL += " GROUP BY BILLNO,FEETYPE,EXCHANGERATE,CURRENCY,SETTLETYPE,ACCOUNTRMB,ACCOUNTUSD";//BILLNO,,CUSTOMERNAME + strISEXPLAN
sSQL += " ORDER BY BILLNO,FEETYPE desc,CURRENCY";//BILLNO,,CUSTOMERNAME + strISEXPLAN
DataSet ds10 = T_ALL_DA.GetAllSQL(sSQL);
if (ds10 != null)
{
for (int j = 0; j < ds10.Tables[0].Rows.Count; j++)
{
n = n + 1;
CwVouitemsEntity CwVouitemsEntity2 = new CwVouitemsEntity();
//CwVouitemsEntity2.GID 唯一编码 newid()
CwVouitemsEntity2.ORDNO = strORDNO.Trim();
CwVouitemsEntity2.ITEMNO = n;// 行号
CwVouitemsEntity2.PACCID = "";//父级科目贷码
CwVouitemsEntity2.PROPERTY = 0;//科目属性
CwVouitemsEntity2.GRADE = 0;//科目级别
if (ds10.Tables[0].Rows[j]["FEETYPE"].ToString().Trim() == "应收账款")
{
//iAMTDR = iAMTDR + Decimal.Parse(ds10.Tables[0].Rows[j]["hj"].ToString().Trim());
//
if (ds10.Tables[0].Rows[j]["CURRENCY"].ToString().Trim() == "RMB")
{
ls = "select FINANCESOFTCODE from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTRMB"].ToString().Trim() + "'";// in (select top 1 ACCOUNTRMB from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
if (strACCID.Trim() == "")
{
strACCID = "1001";
}
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
ls = "select BANKNAME from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTRMB"].ToString().Trim() + "'";// in (select top 1 ACCOUNTRMB from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
if (strACCNAME.Trim() == "")
{
strACCNAME = "现金";
}
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
//
CwVouitemsEntity2.AMTDR = Decimal.Parse(ds10.Tables[0].Rows[j]["je"].ToString().Trim());//本位币贷方金额(互斥)
CwVouitemsEntity2.AMTCR = 0;//本位币借方金额(互斥)
strDai = strDai + Decimal.Parse(ds10.Tables[0].Rows[j]["je"].ToString().Trim());
CwVouitemsEntity2.ISFCY = false;//是否外币
CwVouitemsEntity2.FCYNO = "RMB";//外币编号usd
CwVouitemsEntity2.FCYDR = 0;//外币借方金额
CwVouitemsEntity2.FCYCR = 0;//外币贷方金额
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity2.DC = "D";//贷方向
}
else if (ds10.Tables[0].Rows[j]["CURRENCY"].ToString().Trim() != "RMB")
{
ls = "select FINANCESOFTCODE from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTUSD"].ToString().Trim() + "'";// in (select top 1 ACCOUNTUSD from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
if (strACCID.Trim() == "")
{
strACCID = "1001";
}
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
ls = "select BANKNAME from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTUSD"].ToString().Trim() + "'";// in (select top 1 ACCOUNTUSD from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
if (strACCNAME.Trim() == "")
{
strACCNAME = "现金";
}
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
//
CwVouitemsEntity2.AMTDR = Decimal.Parse(ds10.Tables[0].Rows[j]["hj"].ToString().Trim());//本位币贷方金额(互斥)
CwVouitemsEntity2.AMTCR = 0;//本位币借方金额(互斥)
strDai = strDai + Decimal.Parse(ds10.Tables[0].Rows[j]["hj"].ToString().Trim());
CwVouitemsEntity2.ISFCY = true;//是否外币
CwVouitemsEntity2.FCYNO = "USD";//外币编号usd
CwVouitemsEntity2.FCYDR = Decimal.Parse(ds10.Tables[0].Rows[j]["je"].ToString().Trim());//外币借方金额
CwVouitemsEntity2.FCYCR = 0;//外币贷方金额
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity2.DC = "D";//借方向
}
CwVouitemsEntity2.CORPID = "";// ds10.Tables[0].Rows[j]["FAPCODE"].ToString().Trim();//客户(系统)
CwVouitemsEntity2.CUSTOMERNAME = "";//ds10.Tables[0].Rows[j]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strBPVW = ds.Tables[0].Rows[0]["BRTW"].ToString().Trim();
}
else if (ds10.Tables[0].Rows[j]["FEETYPE"].ToString().Trim() == "应付账款")
{
//iAMTCR = iAMTCR + Decimal.Parse(ds10.Tables[0].Rows[j]["hj"].ToString().Trim());
//
if (ds10.Tables[0].Rows[j]["CURRENCY"].ToString().Trim() == "RMB")
{
ls = "select FINANCESOFTCODE from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTRMB"].ToString().Trim() + "'";// in (select top 1 ACCOUNTRMB from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
if (strACCID.Trim() == "")
{
strACCID = "1001";
}
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
ls = "select BANKNAME from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTRMB"].ToString().Trim() + "'";// in (select top 1 ACCOUNTRMB from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
if (strACCNAME.Trim() == "")
{
strACCNAME = "现金";
}
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
//
CwVouitemsEntity2.AMTDR = 0;//本位币贷方金额(互斥)
CwVouitemsEntity2.AMTCR = Decimal.Parse(ds10.Tables[0].Rows[j]["je"].ToString().Trim());//本位币借方金额(互斥)
strJie = strJie + Decimal.Parse(ds10.Tables[0].Rows[j]["je"].ToString().Trim());
CwVouitemsEntity2.ISFCY = false;//是否外币
CwVouitemsEntity2.FCYNO = "RMB";//外币编号usd
CwVouitemsEntity2.FCYDR = 0;//外币借方金额
CwVouitemsEntity2.FCYCR = 0;//外币贷方金额
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity2.DC = "C";//贷方向
}
else if (ds10.Tables[0].Rows[j]["CURRENCY"].ToString().Trim() != "RMB")
{
ls = "select FINANCESOFTCODE from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTUSD"].ToString().Trim() + "'";// in (select top 1 ACCOUNTUSD from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
if (strACCID.Trim() == "")
{
strACCID = "1001";
}
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
ls = "select BANKNAME from sys_bank where gid='" + ds10.Tables[0].Rows[j]["ACCOUNTUSD"].ToString().Trim() + "'";// in (select top 1 ACCOUNTUSD from ch_fee_settlement where BILLNO='" + ds10.Tables[0].Rows[j]["BILLNO"].ToString().Trim() + "')";
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
if (strACCNAME.Trim() == "")
{
strACCNAME = "现金";
}
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
//
CwVouitemsEntity2.AMTDR = 0;//本位币贷方金额(互斥)
CwVouitemsEntity2.AMTCR = Decimal.Parse(ds10.Tables[0].Rows[j]["hj"].ToString().Trim());//本位币借方金额(互斥)
strJie = strJie + Decimal.Parse(ds10.Tables[0].Rows[j]["hj"].ToString().Trim());
CwVouitemsEntity2.ISFCY = true;//是否外币
CwVouitemsEntity2.FCYNO = "USD";//外币编号usd
CwVouitemsEntity2.FCYDR = 0;//外币借方金额
CwVouitemsEntity2.FCYCR = Decimal.Parse(ds10.Tables[0].Rows[j]["je"].ToString().Trim());//外币贷方金额
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
CwVouitemsEntity2.DC = "C";//贷方向
}
CwVouitemsEntity2.CORPID = "";//ds10.Tables[0].Rows[j]["FAPCODE"].ToString().Trim();//客户(系统)
CwVouitemsEntity2.CUSTOMERNAME = "";//ds10.Tables[0].Rows[j]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strBPVW = ds.Tables[0].Rows[0]["BPVW"].ToString().Trim();
}
CwVouitemsEntity2.FCYEXRATE = Decimal.Parse(ds10.Tables[0].Rows[j]["EXCHANGERATE"].ToString().Trim());//汇率
dEXCHANGERATE = Decimal.Parse(ds10.Tables[0].Rows[j]["EXCHANGERATE"].ToString().Trim());//汇率
CwVouitemsEntity2.QTYUNIT = "";//数量包装单位
CwVouitemsEntity2.QTYDR = 0;//借方数量
CwVouitemsEntity2.QTYCR = 0;//贷方数量
//
//ISRPCLIENTNAME 是否收付客户名称
//ISRPCOTCODE 是否收付业务编号
//ISRPETD 是否收付航期
//ISRPMBLNO 是否收付主提单号
//ISRPCUSTNO 是否收付委托编号
//ISRPVESSEL 是否收付船名
//ISRPVOYNO 是否收付航次
//string strSelEXPLAN = "";
////if (ds.Tables[0].Rows[0]["ISRPCLIENTNAME"].ToString().Trim() == "True")
////{
//// strISEXPLAN += " " + ds.Tables[0].Rows[0]["CUSTOMERNAME"].ToString().Trim();
////}
//if (ds.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
//{
// strSelEXPLAN += " and CUSTNO = '" + ds1.Tables[0].Rows[j]["CUSTNO"].ToString().Trim() + "'";
//}
//if (ds.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
//{
// strSelEXPLAN += " and MBLNO = '" + ds1.Tables[0].Rows[j]["MBLNO"].ToString().Trim() + "'";
//}
//if (ds.Tables[0].Rows[0]["ISRPVESSEL"].ToString().Trim() == "True")
//{
// strSelEXPLAN += " and VESSEL = '" + ds1.Tables[0].Rows[j]["VESSEL"].ToString().Trim() + "'";
//}
//if (ds.Tables[0].Rows[0]["ISRPVOYNO"].ToString().Trim() == "True")
//{
// strSelEXPLAN += " and VOYNO = '" + ds1.Tables[0].Rows[j]["VOYNO"].ToString().Trim() + "'";
//}
////
//sSQL = "select top 1 * from VW_ch_fee_settlement_do where gid_s in(" + sGids.Trim() + ") and CUSTOMERNAME='" + ds1.Tables[0].Rows[j]["CUSTOMERNAME"].ToString().Trim() + "'" + strSelEXPLAN;//BILLNO
//DataSet ds4 = T_ALL_DA.GetAllSQL(sSQL);
//if (ds4 != null)
//{
// //ISCLIENTNAME 是否客户名称
// //ISCUSTNO 是否委托编号
// //ISMBLNO 是否主提单号
// //ISVESSEL 是否船名
// //ISVOYNO 是否航次
// //ISCOTCODE 是否业务编号
// //ISETD 是否航期
// strEXPLAN = "";
// if (ds.Tables[0].Rows[0]["ISRPCLIENTNAME"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + ds4.Tables[0].Rows[0]["CUSTOMERNAME"].ToString().Trim();
// }
// if (ds.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + ds4.Tables[0].Rows[0]["CUSTNO"].ToString().Trim();
// }
// if (ds.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + ds4.Tables[0].Rows[0]["MBLNO"].ToString().Trim();
// }
// if (ds.Tables[0].Rows[0]["ISRPVESSEL"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + ds4.Tables[0].Rows[0]["VESSEL"].ToString().Trim();
// }
// if (ds.Tables[0].Rows[0]["ISRPVOYNO"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + ds4.Tables[0].Rows[0]["VOYNO"].ToString().Trim();
// }
//}
//
CwVouitemsEntity2.EXPLAN = strEXPLANALL;//摘要,规则生成
CwVouitemsEntity2.DEPTID = "";//strDEPTID;//部门(系统)
CwVouitemsEntity2.EMPLID = "";//strEMPLID;//人员(系统)
CwVouitemsEntity2.SALE = "";//strSALE;//人员名称
CwVouitemsEntity2.PITEMID = 0;//父级项目编号
CwVouitemsEntity2.ITEMID = "0";//项目编号
CwVouitemsEntity2.FIELD1 = "";//预留字段1
CwVouitemsEntity2.FIELD2 = "";//预留字段2
CwVouitemsEntity2.FIELD3 = "";//预留字段3
CwVouitemsEntity2.FIELD4 = "";//预留字段4
CwVouitemsEntity2.FIELD5 = "";//预留字段5
CwVouitemsEntity2.FIELD6 = "";//预留字段6
CwVouitemsEntity2.FIELD7 = "";//预留字段7
CwVouitemsEntity2.FIELD8 = "";//预留字段8
CwVouitemsEntity2.FIELD9 = "";//预留字段9
CwVouitemsEntity2.FIELD10 = "";//预留字段10
CwVouitemsEntity2.ISSYS = true;//是否手动录入
CwVouitemsEntity2.FSETTLCODE = "";//结算方式
CwVouitemsEntity2.FSETTLENO = "";//财务辅助编号
CwVouitemsEntity2.MODIFIEDUSER = strUserID;//最后一次更新操作人
CwVouitemsEntity2.BLNO = strBILLNOALL;//BILLNO
//if (ds.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
//{
// CwVouitemsEntity2.BLNO = ds1.Tables[0].Rows[j]["mblno"].ToString().Trim();//BILLNO
//}
CwVouitemsEntities.Add(CwVouitemsEntity2);
}
}
//插入主表
string rq = T_ALL_DA.GetStrSQL("rq", "select rq=getdate()");
CwVouchersEntity CwVouchersEntity = new CwVouchersEntity();
CwVouchersEntity.ORDNO = strORDNO.Trim();//唯一编码 newid() varchar (36)
CwVouchersEntity.VOUDATE = DateTime.Parse(rq.Trim());//凭证日期="";//datetime="";// 
CwVouchersEntity.ACCYEAR = rq.Trim().Substring(0, 4);//年="";//int="";// 
int iM1 = rq.Trim().IndexOf("-") + 1;
int iM2 = rq.Trim().LastIndexOf("-");
string strACCMONTH = "";
if (iM2 - iM1 == 1)
{
strACCMONTH = "0" + rq.Trim().Substring(iM1, iM2 - iM1);
}
else
{
strACCMONTH = rq.Trim().Substring(iM1, iM2 - iM1);
}
string strVOUNO = "";
strVOUNO = getVOUNO(rq.Trim().Substring(0, 4), strACCMONTH);
CwVouchersEntity.VOUNO = strVOUNO;//月初清零 varchar (16)
CwVouchersEntity.ACCMONTH = strACCMONTH;//月="";//int="";// 
string strVOUALLNO = rq.Trim().Substring(0, 4) + strACCMONTH + strVOUNO;
CwVouchersEntity.VOUALLNO = strVOUALLNO;//月初清零 varchar (16)
CwVouchersEntity.VKNO = strBPVW.Trim();//凭证字="";//varchar="";//(8)
CwVouchersEntity.ATTACHS = int.Parse(ds.Tables[0].Rows[0]["AFFIXNO"].ToString().Trim());//附件(单据)数="";//int="";// 
CwVouchersEntity.AMTDR = strJie;// iAMTDR;//本位币借方="";//numeric(18, 2)="";// 
CwVouchersEntity.AMTCR = strDai;//iAMTDR;// iAMTCR;//本位币贷方="";//numeric(18, 2)="";// 
CwVouchersEntity.FCY = "";//是否含有外币科目="";//varchar="";//(1)
CwVouchersEntity.QTY = "";//是否含有数量科目="";//varchar="";//(1)
CwVouchersEntity.VOUPROP = "";//凭证属性="";//varchar="";//(1)
//CwVouchersEntity.PREPARED = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", "select top 1 FINANCESOFTCODE from user_baseinfo where USERID in (select top 1 gid from [user] where SHOWNAME='" + this.hd_comboPREPARED.Value.Trim() + "' and ISDELETED=0)");//制单人="";//varchar="";//(10)
CwVouchersEntity.PREPARED = T_ALL_DA.GetStrSQL("SHOWNAME", "select SHOWNAME from [user] where gid='" + strUserID.Trim() + "' and ISDELETED=0"); ;//制单人="";//varchar="";//(10)
CwVouchersEntity.CHECKED = "";//审核人="";//varchar="";//(10)
CwVouchersEntity.ENTERED = "";//记账人="";//varchar="";//(10)
CwVouchersEntity.ERRMSG = "";//错误信息="";//varchar="";//(6)
CwVouchersEntity.ISDELETE = false;//是否废除="";//bit="";//Y
CwVouchersEntity.DELETEUSER = "";//废除操作人="";//Varchar(36)="";//Y
//CwVouchersEntity.DELETETIME="";//废除时间="";//Datetime="";//Y
//
//生成入库
string strSel = " and gid_s in(" + sGids + ") " + strVESSEL;
iResult = CwVouchersDA.setInsertAll(CwVouchersEntity, CwVouitemsEntities, "VW_ch_fee_settlement_do", strVOUALLNO, strSel, strUserID, 2);
}
else
{
return "-1";
}
return strORDNO.Trim();
}
protected String getVOUNO(string strY, string strM)
{
string sVOUNO = "";
string strVOUNO = "select top 1 VOUNO from cw_vouchers where ACCYEAR='" + strY + "' and ACCMONTH='" + strM + "' order by convert(decimal(10),VOUNO) desc";
strVOUNO = T_ALL_DA.GetStrSQL("VOUNO", strVOUNO);
if (strVOUNO.Trim() == "")
{
strVOUNO = "0001";
}
else
{
sVOUNO = (int.Parse(strVOUNO) + 1).ToString().Trim();
strVOUNO = sVOUNO;
for (int i = 0; i < 4 - sVOUNO.Length; i++)
{
strVOUNO = "0" + strVOUNO;
}
}
return strVOUNO;
}
}
}