|
|
using System;
|
|
|
using System.Data;
|
|
|
using System.Data.Common;
|
|
|
using System.Collections;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text;
|
|
|
using DSWeb.Areas.Account.Models.Chfee_Payapplication;
|
|
|
using DSWeb.Areas.Account.Models.Chfee_Settlement;
|
|
|
using DSWeb.Areas.Account.Models.Chfee_do_detail;
|
|
|
using DSWeb.Areas.Account.Models.MsOpBill;
|
|
|
using DSWeb.Areas.Account.Models.BillChfeeDetail;
|
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
using DSWeb.Areas.Account.Models.Chfee_Exrate;
|
|
|
using DSWeb.Areas.Account.Models.Chfee_do_Sum;
|
|
|
using DSWeb.Areas.Import.Models.CWAdvancePayment;
|
|
|
using DSWeb.Areas.Account.DAL.Chfee_Payapplication;
|
|
|
using DSWeb.Areas.Account.DAL.Chfee_Recvapplication;
|
|
|
using DSWeb.Areas.CommMng.Models;
|
|
|
using DSWeb.EntityDA;
|
|
|
using HcUtility.Comm;
|
|
|
using HcUtility.Core;
|
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
|
using DSWeb.Areas.Account.Models.Chfee_Invoice;
|
|
|
using DSWeb.Areas.Account.Models.Chfee_Invoicehexiao;
|
|
|
using DSWeb.Areas.Account.Models.ChfeeDetail;
|
|
|
using DSWeb.Areas.Account.Models.MsCwVouchersGl3;
|
|
|
using DSWeb.MvcShipping.Models.MsCwVouchersGl;
|
|
|
using DSWeb.MvcShipping.Models.MsCwVouitemsGl;
|
|
|
using DSWeb.MvcShipping.DAL.MsBaseInfoDAL;
|
|
|
using DSWeb.MvcShipping.DAL.MsInfoClient;
|
|
|
using DSWeb.Models;
|
|
|
using System.Data.SqlClient;
|
|
|
|
|
|
namespace DSWeb.Areas.Account.DAL.Chfee_Hexiao
|
|
|
{
|
|
|
public partial class ChHexiaoDAL
|
|
|
{
|
|
|
|
|
|
#region 核销单列表
|
|
|
|
|
|
static public List<ChfeeHexiao> GetHexiaoDataList(string strCondition, int start, int limit, out int totel, string userid = "", string usercode = "", string orgcode = "", string sort = null, string isload = "0")
|
|
|
{
|
|
|
|
|
|
var rangstr = "";
|
|
|
rangstr = GetRangDAListStr("modPaySettlementList", userid, usercode, orgcode);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
if (isload == "1")
|
|
|
strSql.Append(" SELECT top 100 GID,CM.BILLNO,BILLDATE,CUSTOMERNAME ");
|
|
|
else
|
|
|
strSql.Append(" SELECT GID,cm.BILLNO,BILLDATE,CUSTOMERNAME ");
|
|
|
strSql.Append(" ,AUDITUSER,AUDITTIME,CREATEUSER,CREATETIME");
|
|
|
strSql.Append(" ,BILLSTATUS,REMARK,COMPANYID,VOUNO");
|
|
|
strSql.Append(" ,(SELECT EXPVOUNO FROM cw_vouchers WHERE VOUALLNO=cm.VOUNO) EXPVOUNO");
|
|
|
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97006 and EnumValueID=cm.BILLSTATUS) as BILLSTATUSREF");
|
|
|
strSql.Append(",(select ShowName from [user] where GID=cm.CREATEUSER) as CREATEUSERREF,D.STLRMBDR,D.STLUSDDR,D.STLOTDR,D.STLRMBCR,D.STLUSDCR,D.STLOTCR ");
|
|
|
strSql.Append(" FROM ch_fee_hexiao cm ");
|
|
|
strSql.Append(" left join v_fee_do_hexiao_SUM D ON (D.HXBILLNO=cm.BILLNO) ");
|
|
|
|
|
|
strSql.Append(" where 1=1 ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
if (sortstring.IndexOf("CREATETIME") >= 0)
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
|
|
|
else
|
|
|
strSql.Append(" order by " + sortstring + ",CREATETIME DESC");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by CREATETIME DESC,CM.BILLNO DESC");
|
|
|
}
|
|
|
strSql = PagerHelper.PageSQL(strSql.ToString(), start, limit, out totel);
|
|
|
return SetHexiaoData(strSql);
|
|
|
}
|
|
|
|
|
|
static public string GetHexiaoDataListStr(string strCondition, string userid = "", string usercode = "", string orgcode = "", string sort = null, int billtype = 0)
|
|
|
{
|
|
|
var rangstr = "";
|
|
|
|
|
|
if (billtype == 2)
|
|
|
rangstr = GetRangDAListStr("modPaySettlementList", userid, usercode, orgcode);
|
|
|
else if (billtype == 1)
|
|
|
rangstr = GetRangDAListStr("modRecvSettleList", userid, usercode, orgcode);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" SELECT GID,cm.BILLNO,BILLDATE,CUSTOMERNAME ");
|
|
|
strSql.Append(" ,AUDITUSER,AUDITTIME,CREATEUSER,CREATETIME");
|
|
|
strSql.Append(" ,BILLSTATUS,REMARK,COMPANYID,VOUNO");
|
|
|
strSql.Append(" ,(SELECT EXPVOUNO FROM cw_vouchers WHERE VOUALLNO=cm.VOUNO) EXPVOUNO");
|
|
|
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97006 and EnumValueID=cm.BILLSTATUS) as BILLSTATUSREF");
|
|
|
strSql.Append(",(select ShowName from [user] where GID=cm.CREATEUSER) as CREATEUSERREF,D.STLRMBDR,D.STLUSDDR,D.STLOTDR,D.STLRMBCR,D.STLUSDCR,D.STLOTCR ");
|
|
|
strSql.Append(" FROM ch_fee_hexiao cm ");
|
|
|
strSql.Append(" left join v_fee_do_hexiao_SUM D ON (D.HXBILLNO=cm.BILLNO) ");
|
|
|
strSql.Append(" where 1=1 ");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
if (sortstring.IndexOf("CREATETIME") >= 0)
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
|
|
|
else
|
|
|
strSql.Append(" order by " + sortstring + ",CREATETIME DESC");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by CREATETIME DESC,CM.BILLNO DESC");
|
|
|
|
|
|
}
|
|
|
|
|
|
return strSql.ToString();
|
|
|
}
|
|
|
|
|
|
static public ChfeeHexiao GetHexiaoData(string condition, string userid = "", string usercode = "", string orgcode = "")
|
|
|
{
|
|
|
int total = 0;
|
|
|
var list = GetHexiaoDataList(condition, 0, 1, out total, userid, usercode, orgcode);
|
|
|
if (list.Count > 0)
|
|
|
return list[0];
|
|
|
|
|
|
return new ChfeeHexiao();
|
|
|
}
|
|
|
|
|
|
private static List<ChfeeHexiao> SetHexiaoData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<ChfeeHexiao>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
ChfeeHexiao data = new ChfeeHexiao();
|
|
|
#region Set DB data to Object
|
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
|
data.BILLNO = Convert.ToString(reader["BILLNO"]);
|
|
|
if (reader["BILLDATE"] != DBNull.Value)
|
|
|
data.BILLDATE = Convert.ToDateTime(reader["BILLDATE"]).ToString("yyyy-MM-dd");
|
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
|
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
|
|
|
data.CREATEUSERREF = Convert.ToString(reader["CREATEUSERREF"]);
|
|
|
if (reader["CREATETIME"] != DBNull.Value)
|
|
|
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]).ToString("yyyy-MM-dd");
|
|
|
|
|
|
if (reader["AUDITTIME"] != DBNull.Value)
|
|
|
data.AUDITTIME = Convert.ToDateTime(reader["AUDITTIME"]);
|
|
|
data.AUDITUSER = Convert.ToString(reader["AUDITUSER"]);
|
|
|
data.BILLSTATUS = Convert.ToInt32(reader["BILLSTATUS"]);
|
|
|
data.BILLSTATUSREF = Convert.ToString(reader["BILLSTATUSREF"]);
|
|
|
data.REMARK = Convert.ToString(reader["REMARK"]);
|
|
|
data.COMPANYID = Convert.ToString(reader["COMPANYID"]);
|
|
|
data.VOUNO = Convert.ToString(reader["VOUNO"]);
|
|
|
data.EXPVOUNO = Convert.ToString(reader["EXPVOUNO"]);
|
|
|
//data.INVOICECATEGORY = Convert.ToString(reader["INVOICECATEGORY"]);
|
|
|
//data.INVOICECATEGORYREF = Convert.ToString(reader["INVOICECATEGORYREF"]);
|
|
|
|
|
|
if (reader["STLRMBDR"] != DBNull.Value)
|
|
|
data.STLRMBDR =Math.Round(Convert.ToDecimal(reader["STLRMBDR"]),2, MidpointRounding.AwayFromZero);
|
|
|
if (reader["STLOTDR"] != DBNull.Value)
|
|
|
data.STLOTDR= Math.Round(Convert.ToDecimal(reader["STLOTDR"]),2, MidpointRounding.AwayFromZero);
|
|
|
if (reader["STLUSDDR"] != DBNull.Value)
|
|
|
data.STLUSDDR = Math.Round(Convert.ToDecimal(reader["STLUSDDR"]),2, MidpointRounding.AwayFromZero);
|
|
|
if (reader["STLRMBCR"] != DBNull.Value)
|
|
|
data.STLRMBCR = Math.Round(Convert.ToDecimal(reader["STLRMBCR"]),2, MidpointRounding.AwayFromZero);
|
|
|
if (reader["STLOTCR"] != DBNull.Value)
|
|
|
data.STLOTCR = Math.Round(Convert.ToDecimal(reader["STLOTCR"]),2, MidpointRounding.AwayFromZero);
|
|
|
if (reader["STLUSDCR"] != DBNull.Value)
|
|
|
data.STLUSDCR = Math.Round(Convert.ToDecimal(reader["STLUSDCR"]),2, MidpointRounding.AwayFromZero);
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 核销单费用明细
|
|
|
|
|
|
static public List<Chfee_do_detail> GetBodyList(string strCondition, string sort = null)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" SELECT c.GID,c.BSNO,c.CUSTOMERNAME FEEOBJNAME,c.FEEID,c.FEENAME,c.CURRENCY,c.AMOUNT,c.DOAMOUNT,c.ORIGCURRENCY,c.ORIGAMOUNT,c.EXCHANGERATE ");
|
|
|
strSql.Append(",c.FEETYPE,(CASE C.FEETYPE WHEN 1 THEN '收' ELSE '付' END) AS FEETYPEREF,(SELECT EXCHANGERATE from ch_fee where GID=c.FEEID) ORIGEXCHANGERATE");
|
|
|
strSql.Append(" ,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME,b.CUSTOMNO");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,B.OPTYPE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP,(select TOP 1 INVOICENO from ch_fee_invoice where BILLNO IN (SELECT BILLNO FROM CH_FEE_DO WHERE FEEID=c.FEEID AND CATEGORY=7)) INVOICENO ");
|
|
|
strSql.Append(" ,f.remark Remark,f.INPUTMODE ");
|
|
|
strSql.Append(" ,(select name from company where gid=b.corpid) COMPANYNAME");
|
|
|
strSql.Append(" FROM ch_fee_do_hexiao c");
|
|
|
strSql.Append(" left join v_op_bill b on (b.bsno=c.bsno)");
|
|
|
strSql.Append(" left join ch_fee f on (f.gid=c.feeid) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where (c.ISDELETED=0 or c.ISDELETED IS NULL) and " + strCondition);
|
|
|
}
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by c.CREATETIME ");
|
|
|
|
|
|
}
|
|
|
|
|
|
return BodySetData(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<Chfee_do_detail> BodySetData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<Chfee_do_detail>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
Chfee_do_detail data = new Chfee_do_detail();
|
|
|
|
|
|
#region Set DB data to Object
|
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
|
data.FEEDOID = Convert.ToString(reader["GID"]);
|
|
|
data.FEEOBJNAME = Convert.ToString(reader["FEEOBJNAME"]);
|
|
|
data.FEEID = Convert.ToString(reader["FEEID"]);
|
|
|
data.FEENAME = Convert.ToString(reader["FEENAME"]);
|
|
|
data.FEETYPE = Convert.ToInt16(reader["FEETYPE"]);
|
|
|
data.FEETYPEREF = Convert.ToString(reader["FEETYPEREF"]);
|
|
|
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);
|
|
|
data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
|
|
|
data.DOAMOUNT = Convert.ToDecimal(reader["DOAMOUNT"]);
|
|
|
data.ORIGCURRENCY = Convert.ToString(reader["ORIGCURRENCY"]);
|
|
|
|
|
|
if (reader["ORIGAMOUNT"] != DBNull.Value)
|
|
|
data.ORIGAMOUNT = Convert.ToDecimal(reader["ORIGAMOUNT"]);
|
|
|
if (reader["EXCHANGERATE"] != DBNull.Value)
|
|
|
data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]);
|
|
|
if (reader["ETD"] != DBNull.Value)
|
|
|
data.ETD = Convert.ToString(reader["ETD"]);
|
|
|
data.ACCDATE = Convert.ToString(reader["ACCDATE"]);
|
|
|
data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]);
|
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
|
data.HBLNO = Convert.ToString(reader["HBLNO"]);
|
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
|
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
|
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
|
data.VESSEL = Convert.ToString(reader["VESSEL"]);
|
|
|
data.VOYNO = Convert.ToString(reader["VOYNO"]);
|
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
|
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
|
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
|
data.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]);
|
|
|
data.DOC = Convert.ToString(reader["DOC"]);
|
|
|
data.SALE = Convert.ToString(reader["SALE"]);
|
|
|
data.ENTERP = Convert.ToString(reader["ENTERP"]);
|
|
|
data.INVOICENO = Convert.ToString(reader["INVOICENO"]);
|
|
|
data.BSSTATUS = Convert.ToBoolean(reader["BSSTATUS"]);
|
|
|
data.Remark = Convert.ToString(reader["Remark"]);
|
|
|
data.COMPANYNAME = Convert.ToString(reader["COMPANYNAME"]);
|
|
|
data.OPTYPE = Convert.ToString(reader["OPTYPE"]);
|
|
|
if (reader["ORIGEXCHANGERATE"] != DBNull.Value)
|
|
|
data.ORIGEXCHANGERATE = Convert.ToDecimal(reader["ORIGEXCHANGERATE"]);
|
|
|
data.INPUTMODE = Convert.ToString(reader["INPUTMODE"]);
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 明细金额币别合计
|
|
|
|
|
|
|
|
|
static public List<Chfee_do_Sum> GetBodySumList(string strCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" SELECT c.FEETYPE,(CASE C.FEETYPE WHEN 1 THEN '收' ELSE '付' END) AS FEETYPEREF,c.ORIGCURRENCY CURRENCY,Sum(c.ORIGAMOUNT) AMOUNT ");
|
|
|
strSql.Append(" FROM ch_fee_do_hexiao c");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where (c.ISDELETED=0 or c.ISDELETED IS NULL) and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" Group by c.FEETYPE,c.ORIGCURRENCY");
|
|
|
return BodySumSetData(strSql);
|
|
|
}
|
|
|
|
|
|
|
|
|
private static List<Chfee_do_Sum> BodySumSetData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<Chfee_do_Sum>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
Chfee_do_Sum data = new Chfee_do_Sum();
|
|
|
|
|
|
#region Set DB data to Object
|
|
|
data.FEETYPE = Convert.ToInt16(reader["FEETYPE"]);
|
|
|
data.FEETYPEREF = Convert.ToString(reader["FEETYPEREF"]);
|
|
|
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);
|
|
|
if (reader["AMOUNT"] != DBNull.Value)
|
|
|
data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Inquery FeeDataList
|
|
|
|
|
|
static public List<BillChfeeDetail> GetFeeDataList(string strCondition, string userid, string usercode, string orgcode, string sort,int billtype)
|
|
|
{
|
|
|
|
|
|
var rangstr ="";
|
|
|
|
|
|
rangstr = GetRangDAStr("modRecvSettleSearch", userid, usercode, orgcode);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append("b.BSNO,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME,b.CUSTOMNO");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP");
|
|
|
strSql.Append(",f.GID AS CH_ID,f.FeeType");
|
|
|
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99020 and EnumValueID=f.FeeType) as FeeType_Ref");
|
|
|
strSql.Append(",f.feeName,f.customerName as FeeObjName,f.amount,f.amount-isnull(f.SETTLEMENT,0) as balamount,f.currency,f.exChangerate,isnull(f.invoice,0) as invoice");
|
|
|
strSql.Append(" from ch_fee f ");
|
|
|
strSql.Append(" left join v_op_bill b on (b.bsno=f.bsno)");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by b.BsNo");
|
|
|
|
|
|
}
|
|
|
return SetFeeData(strSql);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static List<BillChfeeDetail> SetFeeData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<BillChfeeDetail>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
BillChfeeDetail data = new BillChfeeDetail();
|
|
|
#region Set DB data to Object
|
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
|
if (reader["ETD"] != DBNull.Value)
|
|
|
data.ETD = Convert.ToString(reader["ETD"]);
|
|
|
data.ACCDATE = Convert.ToString(reader["ACCDATE"]);
|
|
|
data.OPLB = Convert.ToString(reader["OPLB"]);
|
|
|
data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]);
|
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
|
data.HBLNO = Convert.ToString(reader["HBLNO"]);
|
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
|
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
|
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
|
data.VESSEL = Convert.ToString(reader["VESSEL"]);
|
|
|
data.VOYNO = Convert.ToString(reader["VOYNO"]);
|
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
|
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
|
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
|
data.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]);
|
|
|
data.DOC = Convert.ToString(reader["DOC"]);
|
|
|
data.SALE = Convert.ToString(reader["SALE"]);
|
|
|
data.ENTERP = Convert.ToString(reader["ENTERP"]);
|
|
|
|
|
|
if (reader["BSSTATUS"] != DBNull.Value)
|
|
|
data.BSSTATUS = Convert.ToBoolean(reader["BSSTATUS"]);
|
|
|
|
|
|
data.CH_ID = Convert.ToString(reader["CH_ID"]);
|
|
|
data.FeeType = Convert.ToInt16(reader["FeeType"]);
|
|
|
data.FeeType_Ref = Convert.ToString(reader["FeeType_Ref"]);
|
|
|
data.FeeName = Convert.ToString(reader["feeName"]);
|
|
|
data.FeeObjName = Convert.ToString(reader["FeeObjName"]);
|
|
|
data.Amount = Convert.ToDecimal(reader["Amount"]);
|
|
|
if (reader["BalAmount"] != DBNull.Value)
|
|
|
data.BalAmount = Convert.ToDecimal(reader["BalAmount"]);
|
|
|
if (reader["BalAmount"] != DBNull.Value)
|
|
|
data.StlAmount = Convert.ToDecimal(reader["BalAmount"]);
|
|
|
data.Currency = Convert.ToString(reader["Currency"]);
|
|
|
if (reader["exChangerate"] != DBNull.Value)
|
|
|
data.ExChangerate = Convert.ToDecimal(reader["exChangerate"]);
|
|
|
data.Invoice = Convert.ToDecimal(reader["invoice"]);
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 添加列表
|
|
|
|
|
|
static public List<BillCustDetail> GetAddBillList(string strCondition, string userid, string usercode, string orgcode, string sort, int billtype)
|
|
|
{
|
|
|
|
|
|
var rangstr = "";
|
|
|
rangstr = GetRangDAStr("modRecvSettleSearch", userid, usercode, orgcode);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append("b.BSNO,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.OPTYPE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP,b.CUSTOMNO");
|
|
|
strSql.Append(",F.CUSTOMERNAME AS CUSTNAME ");
|
|
|
strSql.Append(",isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'RMB' THEN ISNULL(AMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS RMBDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'RMB' THEN ISNULL(AMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS RMBCR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'RMB' THEN f.AMOUNT-isnull(f.SETTLEMENT,0) ELSE 0 END) ELSE 0 END),0) AS BALRMBDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'RMB' THEN f.AMOUNT-isnull(f.SETTLEMENT,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBCR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'USD' THEN ISNULL(AMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS USDDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'USD' THEN ISNULL(AMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS USDCR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'USD' THEN f.AMOUNT-isnull(f.SETTLEMENT,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'USD' THEN f.AMOUNT-isnull(f.SETTLEMENT,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDCR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'USD' THEN 0 ELSE (CASE CURRENCY WHEN 'RMB' THEN 0 ELSE ISNULL(AMOUNT,0) END) END)ELSE 0 END),0) AS OTDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'USD' THEN 0 ELSE (CASE CURRENCY WHEN 'RMB' THEN 0 ELSE ISNULL(AMOUNT,0) END) END)ELSE 0 END),0) AS OTCR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'USD' THEN 0 ELSE (CASE CURRENCY WHEN 'RMB' THEN 0 ELSE f.AMOUNT-isnull(f.SETTLEMENT,0) END) END) ELSE 0 END),0) AS BALOTDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'USD' THEN 0 ELSE (CASE CURRENCY WHEN 'RMB' THEN 0 ELSE f.AMOUNT-isnull(f.SETTLEMENT,0) END) END) ELSE 0 END),0) AS BALOTCR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'USD' THEN f.AMOUNT-ISNULL(INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDINVDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'USD' THEN f.AMOUNT-ISNULL(INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDINVCR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 1 THEN (CASE CURRENCY WHEN 'RMB' THEN f.AMOUNT-ISNULL(INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBINVDR,");
|
|
|
strSql.Append("isnull(SUM(CASE FEETYPE WHEN 2 THEN (CASE CURRENCY WHEN 'RMB' THEN f.AMOUNT-ISNULL(INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBINVCR");
|
|
|
strSql.Append(" ,(select name from company where gid=b.corpid ) COMPANYNAME ");
|
|
|
strSql.Append(" FROM CH_FEE f ");
|
|
|
strSql.Append(" INNER JOIN V_OP_BILL B ON (F.BSNO=B.BSNO) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where (f.AMOUNT-isnull(f.SETTLEMENT,0))<>0 and " + strCondition);
|
|
|
}
|
|
|
strSql.Append("GROUP BY b.BSNO,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.OPTYPE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP,b.CUSTOMNO,f.CUSTOMERNAME,B.CORPID");
|
|
|
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
sortstring = sortstring.Replace("FEEOBJNAME", "F.CUSTOMERNAME");
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by b.BsNo");
|
|
|
|
|
|
}
|
|
|
return SetAddBillData(strSql);
|
|
|
}
|
|
|
|
|
|
static public List<BillCustDetail> GetShenAddBillList(string strCondition, string ShenNo,string userid, string usercode, string orgcode, string sort, int billtype)
|
|
|
{
|
|
|
|
|
|
var rangstr = "";
|
|
|
rangstr = GetRangDAStr("modRecvSettleSearch", userid, usercode, orgcode);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append("b.BSNO,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.OPTYPE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP,b.CUSTOMNO");
|
|
|
strSql.Append(",F.CUSTOMERNAME AS CUSTNAME ");
|
|
|
strSql.Append(",isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'RMB' THEN ISNULL(F.AMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS RMBDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'RMB' THEN ISNULL(F.AMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS RMBCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'RMB' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS BALRMBDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'RMB' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN ISNULL(F.AMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS USDDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN ISNULL(F.AMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS USDCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE ISNULL(F.AMOUNT,0) END) END)ELSE 0 END),0) AS OTDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE ISNULL(F.AMOUNT,0) END) END)ELSE 0 END),0) AS OTCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) END) END) ELSE 0 END),0) AS BALOTDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) END) END) ELSE 0 END),0) AS BALOTCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDINVDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDINVCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'RMB' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBINVDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'RMB' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBINVCR");
|
|
|
strSql.Append(" ,(select name from company where gid=b.corpid ) COMPANYNAME ");
|
|
|
strSql.Append(" FROM CH_FEE_DO d ");
|
|
|
strSql.Append(" left join CH_FEE f on (f.GID=d.FEEID)");
|
|
|
// strSql.Append(" left join (SELECT BILLNO,FEEID,SUM(ORIGAMOUNT) ORIGAMOUNT FROM CH_FEE_DO where ISNULL(ORIGSTLAMOUNT,0)<>ORIGAMOUNT and BILLNO='" + ShenNo + "' and CATEGORY=4 GROUP BY BILLNO,FEEID ) D ON (D.FEEID=F.GID) ");
|
|
|
strSql.Append(" left join ch_fee_payapplication p on (p.BILLNO=d.BILLNO) ");
|
|
|
strSql.Append(" INNER JOIN V_OP_BILL B ON (F.BSNO=B.BSNO) WHERE D.BILLNO='" + ShenNo + "' and p.BILLSTATUS IN (0,4,5) and d.AMOUNT<>D.DOAMOUNT AND (((D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))>=0 AND f.AMOUNT-isnull(f.SETTLEMENT,0)>=(D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))) OR ((D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))<=0 AND f.AMOUNT-isnull(f.SETTLEMENT,0)<=(D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))) ) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" AND (f.AMOUNT-isnull(f.SETTLEMENT,0))<>0 and " + strCondition);
|
|
|
}
|
|
|
strSql.Append("GROUP BY b.BSNO,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.OPTYPE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP,b.CUSTOMNO,f.CUSTOMERNAME,B.CORPID");
|
|
|
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
sortstring = sortstring.Replace("FEEOBJNAME", "F.CUSTOMERNAME");
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by b.BsNo");
|
|
|
|
|
|
}
|
|
|
return SetAddBillData(strSql);
|
|
|
}
|
|
|
|
|
|
|
|
|
static public List<BillCustDetail> GetInvAddBillList(string strCondition, string ShenNo, string userid, string usercode, string orgcode, string sort, int billtype)
|
|
|
{
|
|
|
|
|
|
var rangstr = "";
|
|
|
rangstr = GetRangDAStr("modRecvSettleSearch", userid, usercode, orgcode);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append("b.BSNO,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.OPTYPE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP,b.CUSTOMNO");
|
|
|
strSql.Append(",F.CUSTOMERNAME AS CUSTNAME ");
|
|
|
strSql.Append(",isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'RMB' THEN ISNULL(F.AMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS RMBDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'RMB' THEN ISNULL(F.AMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS RMBCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'RMB' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END) ELSE 0 END),0) AS BALRMBDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'RMB' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN ISNULL(F.AMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS USDDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN ISNULL(F.AMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS USDCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE ISNULL(F.AMOUNT,0) END) END)ELSE 0 END),0) AS OTDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE ISNULL(F.AMOUNT,0) END) END)ELSE 0 END),0) AS OTCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) END) END) ELSE 0 END),0) AS BALOTDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN 0 ELSE (CASE F.CURRENCY WHEN 'RMB' THEN 0 ELSE D.ORIGAMOUNT-isnull(ORIGSTLAMOUNT,0) END) END) ELSE 0 END),0) AS BALOTCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'USD' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDINVDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'USD' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALUSDINVCR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 1 THEN (CASE F.CURRENCY WHEN 'RMB' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBINVDR,");
|
|
|
strSql.Append("isnull(SUM(CASE F.FEETYPE WHEN 2 THEN (CASE F.CURRENCY WHEN 'RMB' THEN f.AMOUNT-ISNULL(F.INVOICE,0) ELSE 0 END)ELSE 0 END),0) AS BALRMBINVCR");
|
|
|
strSql.Append(" ,(select name from company where gid=b.corpid ) COMPANYNAME ");
|
|
|
strSql.Append(" FROM CH_FEE_DO d ");
|
|
|
strSql.Append(" left join CH_FEE f on (f.GID=d.FEEID)");
|
|
|
// strSql.Append(" left join (SELECT BILLNO,FEEID,SUM(ORIGAMOUNT) ORIGAMOUNT FROM CH_FEE_DO where ISNULL(ORIGSTLAMOUNT,0)<>ORIGAMOUNT and BILLNO='" + ShenNo + "' and CATEGORY=4 GROUP BY BILLNO,FEEID ) D ON (D.FEEID=F.GID) ");
|
|
|
strSql.Append(" left join ch_fee_invoice p on (p.BILLNO=d.BILLNO) ");
|
|
|
strSql.Append(" INNER JOIN V_OP_BILL B ON (F.BSNO=B.BSNO) WHERE D.INVOICENO='" + ShenNo + "' and d.AMOUNT<>d.DOAMOUNT ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" AND (f.AMOUNT-isnull(f.SETTLEMENT,0))<>0 and " + strCondition);
|
|
|
}
|
|
|
strSql.Append("GROUP BY b.BSNO,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
|
|
|
strSql.Append(",b.CUSTOMERNAME");
|
|
|
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD");
|
|
|
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.OPTYPE");
|
|
|
strSql.Append(",b.DOC,b.SALE,b.ENTERP,b.CUSTOMNO,f.CUSTOMERNAME,B.CORPID");
|
|
|
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
sortstring = sortstring.Replace("FEEOBJNAME", "F.CUSTOMERNAME");
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by b.BsNo");
|
|
|
|
|
|
}
|
|
|
return SetAddBillData(strSql);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static List<BillCustDetail> SetAddBillData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<BillCustDetail>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
SqlCommand cmd = new SqlCommand();
|
|
|
cmd.CommandText = strSql.ToString();
|
|
|
cmd.CommandTimeout = 120000; //要加这一句
|
|
|
using (IDataReader reader = db.ExecuteReader(cmd))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
BillCustDetail data = new BillCustDetail();
|
|
|
#region Set DB data to Object
|
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
|
if (reader["ETD"] != DBNull.Value)
|
|
|
data.ETD = Convert.ToString(reader["ETD"]);
|
|
|
data.ACCDATE = Convert.ToString(reader["ACCDATE"]);
|
|
|
data.OPLB = Convert.ToString(reader["OPLB"]);
|
|
|
data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]);
|
|
|
data.MBLNO = Convert.ToString(reader["MBLNO"]);
|
|
|
data.HBLNO = Convert.ToString(reader["HBLNO"]);
|
|
|
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
|
|
|
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
|
|
|
data.VESSEL = Convert.ToString(reader["VESSEL"]);
|
|
|
data.VOYNO = Convert.ToString(reader["VOYNO"]);
|
|
|
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
|
|
|
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
|
|
|
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
|
|
|
data.OP = Convert.ToString(reader["OP"]);
|
|
|
data.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]);
|
|
|
data.DOC = Convert.ToString(reader["DOC"]);
|
|
|
data.SALE = Convert.ToString(reader["SALE"]);
|
|
|
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
|
|
|
data.ENTERP = Convert.ToString(reader["ENTERP"]);
|
|
|
|
|
|
data.BSSTATUS = Convert.ToBoolean(reader["BSSTATUS"]);
|
|
|
data.FEEOBJNAME = Convert.ToString(reader["CUSTNAME"]);
|
|
|
data.OPTYPE = Convert.ToString(reader["OPTYPE"]);
|
|
|
|
|
|
if (reader["RMBDR"] != DBNull.Value)
|
|
|
data.RMBDrAmount = Convert.ToDecimal(reader["RMBDR"]);
|
|
|
if (reader["BALRMBDR"] != DBNull.Value)
|
|
|
data.RMBDrBalAmount = Convert.ToDecimal(reader["BALRMBDR"]);
|
|
|
if (reader["BALRMBDR"] != DBNull.Value)
|
|
|
data.RMBDrDoAmount = Convert.ToDecimal(reader["BALRMBDR"]);
|
|
|
|
|
|
if (reader["RMBCR"] != DBNull.Value)
|
|
|
data.RMBCrAmount = Convert.ToDecimal(reader["RMBCR"]);
|
|
|
if (reader["BALRMBCR"] != DBNull.Value)
|
|
|
data.RMBCrBalAmount = Convert.ToDecimal(reader["BALRMBCR"]);
|
|
|
if (reader["BALRMBCR"] != DBNull.Value)
|
|
|
data.RMBCrDoAmount = Convert.ToDecimal(reader["BALRMBCR"]);
|
|
|
if (reader["USDDR"] != DBNull.Value)
|
|
|
data.USDDrAmount = Convert.ToDecimal(reader["USDDR"]);
|
|
|
if (reader["BALUSDDR"] != DBNull.Value)
|
|
|
data.USDDrBalAmount = Convert.ToDecimal(reader["BALUSDDR"]);
|
|
|
if (reader["BALUSDDR"] != DBNull.Value)
|
|
|
data.USDDrDoAmount = Convert.ToDecimal(reader["BALUSDDR"]);
|
|
|
if (reader["USDCR"] != DBNull.Value)
|
|
|
data.USDCrAmount = Convert.ToDecimal(reader["USDCR"]);
|
|
|
if (reader["BALUSDCR"] != DBNull.Value)
|
|
|
data.USDCrBalAmount = Convert.ToDecimal(reader["BALUSDCR"]);
|
|
|
if (reader["BALUSDCR"] != DBNull.Value)
|
|
|
data.USDCrDoAmount = Convert.ToDecimal(reader["BALUSDCR"]);
|
|
|
|
|
|
if (reader["OTDR"] != DBNull.Value)
|
|
|
data.OTDrAmount = Convert.ToDecimal(reader["OTDR"]);
|
|
|
if (reader["BALOTDR"] != DBNull.Value)
|
|
|
data.OTDrBalAmount = Convert.ToDecimal(reader["BALOTDR"]);
|
|
|
if (reader["BALOTDR"] != DBNull.Value)
|
|
|
data.OTDrDoAmount = Convert.ToDecimal(reader["BALOTDR"]);
|
|
|
if (reader["OTCR"] != DBNull.Value)
|
|
|
data.OTCrAmount = Convert.ToDecimal(reader["OTCR"]);
|
|
|
if (reader["BALOTCR"] != DBNull.Value)
|
|
|
data.OTCrBalAmount = Convert.ToDecimal(reader["BALOTCR"]);
|
|
|
if (reader["BALOTCR"] != DBNull.Value)
|
|
|
data.OTCrDoAmount = Convert.ToDecimal(reader["BALOTCR"]);
|
|
|
|
|
|
if (reader["BALRMBINVDR"] != DBNull.Value)
|
|
|
data.BALRMBINVDR = Convert.ToDecimal(reader["BALRMBINVDR"]);
|
|
|
if (reader["BALRMBINVCR"] != DBNull.Value)
|
|
|
data.BALRMBINVCR = Convert.ToDecimal(reader["BALRMBINVCR"]);
|
|
|
if (reader["BALUSDINVDR"] != DBNull.Value)
|
|
|
data.BALUSDINVDR = Convert.ToDecimal(reader["BALUSDINVDR"]);
|
|
|
if (reader["BALUSDINVCR"] != DBNull.Value)
|
|
|
data.BALUSDINVCR = Convert.ToDecimal(reader["BALUSDINVCR"]);
|
|
|
|
|
|
data.COMPANYNAME = Convert.ToString(reader["COMPANYNAME"]);
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
static public List<Chfee_do_Sum> GetAddSum(string strCondition, string userid, string usercode, string orgcode, int billtype)
|
|
|
{
|
|
|
|
|
|
var rangstr = "";
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append(" SELECT f.FEETYPE,(CASE f.FEETYPE WHEN 1 THEN '收' ELSE '付' END) AS FEETYPEREF,f.CURRENCY,Sum(f.amount-isnull(f.SETTLEMENT,0))) AMOUNT ");
|
|
|
strSql.Append(" from ch_fee f ");
|
|
|
strSql.Append(" left join v_op_bill b on (b.bsno=f.bsno)");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" Group by f.FEETYPE,f.CURRENCY");
|
|
|
|
|
|
return BodySumSetData(strSql);
|
|
|
}
|
|
|
|
|
|
|
|
|
#region 20160404 增加连接通用子表 GetChildDataList
|
|
|
|
|
|
static public List<SysChildmb> GetChildDataList(string strCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" select GID,BSNO,CHILDNAME,CHILDNO,REMARK from tSys_child ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
|
|
|
return ChildSetData(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<SysChildmb> ChildSetData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<SysChildmb>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
SysChildmb data = new SysChildmb();
|
|
|
|
|
|
#region Set DB data to Object
|
|
|
data.GID = Convert.ToString(reader["GID"]);
|
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
|
data.CHILDNAME = Convert.ToString(reader["CHILDNAME"]);
|
|
|
data.CHILDNO = Convert.ToString(reader["CHILDNO"]);
|
|
|
data.REMARK = Convert.ToString(reader["REMARK"]);
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 费用列表明细
|
|
|
static public List<ChFeeDetail> GetFeeDetailList(string strCondition, string sort = null)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append("SELECT * from (select ");
|
|
|
strSql.Append("f.BSNO,f.GID AS CH_ID,'' FEEDOID,FeeType");
|
|
|
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99020 and EnumValueID=f.FeeType) as FeeType_Ref");
|
|
|
strSql.Append(",f.feeName,f.customerName,f.amount,f.amount-isnull(f.SETTLEMENT,0) as balamount");
|
|
|
strSql.Append(",f.currency,f.exChangerate,f.INVOICE,f.Remark,f.INPUTMODE,f.currency ORIGCURRENCY,f.amount-isnull(f.SETTLEMENT,0) ORIGAMOUNT,f.exChangerate ORIGEXCHANGERATE");
|
|
|
strSql.Append(" from ch_fee f ");
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" ) AS VF ");
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
sortstring = sortstring.Replace("StlAmount", "balamount");
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by feeName");
|
|
|
|
|
|
}
|
|
|
|
|
|
return SetFeeDetailData(strSql);
|
|
|
}
|
|
|
|
|
|
static public List<ChFeeDetail> GetShenFeeDetailList(string strCondition, string ShenNo, string sort = null)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append("SELECT * from (select ");
|
|
|
strSql.Append("f.BSNO,f.GID AS CH_ID,d.GID FEEDOID,f.FeeType");
|
|
|
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99020 and EnumValueID=f.FeeType) as FeeType_Ref");
|
|
|
strSql.Append(",f.feeName,f.customerName,d.amount,d.amount-d.doamount as balamount");
|
|
|
strSql.Append(",d.currency,d.exChangerate,f.INVOICE,f.Remark,f.INPUTMODE,d.ORIGCURRENCY,d.ORIGAMOUNT,f.exChangerate ORIGEXCHANGERATE");
|
|
|
strSql.Append(" from ch_fee_do d ");
|
|
|
strSql.Append(" left join ch_fee f on (f.GID=d.FEEID) ");
|
|
|
// strSql.Append(" left join (SELECT GID FEEDOID,BILLNO,FEEID,ORIGAMOUNT FROM CH_FEE_DO where ORIGSTLAMOUNT<>ORIGAMOUNT and BILLNO='" + ShenNo + "' and CATEGORY=4 ) d on (d.feeid=f.gid) ");
|
|
|
strSql.Append(" left join ch_fee_payapplication p on (p.BILLNO=d.BILLNO) ");
|
|
|
|
|
|
strSql.Append(" where d.BILLNO='" + ShenNo + "' and d.AMOUNT<>D.DOAMOUNT AND (((D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))>=0 AND f.AMOUNT-isnull(f.SETTLEMENT,0)>=(D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))) OR ((D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))<0 AND f.AMOUNT-isnull(f.SETTLEMENT,0)<=(D.ORIGAMOUNT-isnull(d.ORIGSTLAMOUNT,0))) ) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" AND " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" ) AS VF ");
|
|
|
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
sortstring = sortstring.Replace("StlAmount", "balamount");
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by feeName");
|
|
|
|
|
|
}
|
|
|
|
|
|
return SetFeeDetailData(strSql);
|
|
|
}
|
|
|
|
|
|
|
|
|
private static List<ChFeeDetail> SetFeeDetailData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<ChFeeDetail>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
ChFeeDetail data = new ChFeeDetail();
|
|
|
#region Set DB data to Object
|
|
|
data.BSNO = Convert.ToString(reader["BSNO"]);
|
|
|
data.CH_ID = Convert.ToString(reader["CH_ID"]);
|
|
|
data.FEEDOID = Convert.ToString(reader["FEEDOID"]);
|
|
|
data.FeeType = Convert.ToInt16(reader["FeeType"]);
|
|
|
data.FeeType_Ref = Convert.ToString(reader["FeeType_Ref"]);
|
|
|
data.FeeName = Convert.ToString(reader["feeName"]);
|
|
|
data.CustomerName = Convert.ToString(reader["customerName"]);
|
|
|
data.Amount = Convert.ToDecimal(reader["Amount"]);
|
|
|
if (reader["BalAmount"] != DBNull.Value)
|
|
|
data.BalAmount = Convert.ToDecimal(reader["BalAmount"]);
|
|
|
if (reader["BalAmount"] != DBNull.Value)
|
|
|
data.StlAmount = Convert.ToDecimal(reader["BalAmount"]);
|
|
|
data.Currency = Convert.ToString(reader["Currency"]);
|
|
|
data.ExChangerate = Convert.ToDecimal(reader["exChangerate"]);
|
|
|
if (reader["INVOICE"] != DBNull.Value)
|
|
|
data.Invoice = Convert.ToDecimal(reader["INVOICE"]);
|
|
|
data.Remark = Convert.ToString(reader["Remark"]);
|
|
|
data.INPUTMODE = Convert.ToString(reader["INPUTMODE"]);
|
|
|
data.ORIGCURRENCY = Convert.ToString(reader["ORIGCURRENCY"]);
|
|
|
if (reader["ORIGAMOUNT"] != DBNull.Value)
|
|
|
data.ORIGAMOUNT = Convert.ToDecimal(reader["ORIGAMOUNT"]);
|
|
|
if (reader["ORIGEXCHANGERATE"] != DBNull.Value)
|
|
|
data.ORIGEXCHANGERATE = Convert.ToDecimal(reader["ORIGEXCHANGERATE"]);
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
static public List<ChFeeExrate> GetCurrExrateData(string billcust, string billcurr, string feesql, bool custgroup = false)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append(" SELECT DISTINCT CURRENCY,EXCHANGERATE ");
|
|
|
if (!custgroup)
|
|
|
strSql.Append(" FROM ch_fee f where CURRENCY<>'" + billcurr + "' AND CUSTOMERNAME='" + billcust + "'");
|
|
|
else
|
|
|
strSql.Append(" FROM ch_fee f where CURRENCY<>'" + billcurr + "'");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(feesql))
|
|
|
{
|
|
|
strSql.Append(" and " + feesql);
|
|
|
}
|
|
|
|
|
|
return SetCurrExrateData(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<ChFeeExrate> SetCurrExrateData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<ChFeeExrate>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
ChFeeExrate data = new ChFeeExrate();
|
|
|
#region Set DB data to Object
|
|
|
data.CURR = Convert.ToString(reader["CURRENCY"]);
|
|
|
data.EXRATE = 0;
|
|
|
if (reader["EXCHANGERATE"] != DBNull.Value)
|
|
|
data.DFEXRATE = Convert.ToDecimal(reader["EXCHANGERATE"]);
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
public static DBResult AddDetail(string billno, List<BillChfeeDetail> bodyList, string curr, string companyid)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
var cmdInsert =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"insert into ch_fee_do (GID,BILLNO,BSNO,MBLNO,HBLNO,CUSTOMERNAME,BSTYPE,FEEID,FEENAME,CURRENCY
|
|
|
,AMOUNT,DOAMOUNT,FEETYPE,CATEGORY,BILLSTATUS,ISDELETED,CREATETIME
|
|
|
,EXCHANGERATE,ORIGCURRENCY,ORIGAMOUNT,INVOICESETTLENO,COMPANYID)
|
|
|
values (@GID,@BILLNO,@BSNO,@MBLNO,@HBLNO,@CUSTOMERNAME,@BSTYPE,@FEEID,@FEENAME,@CURRENCY
|
|
|
,@AMOUNT,@DOAMOUNT,@FEETYPE,@CATEGORY,@BILLSTATUS,@ISDELETED,@CREATETIME
|
|
|
,@EXCHANGERATE,@ORIGCURRENCY,@ORIGAMOUNT,@INVOICESETTLENO,@COMPANYID) ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET SETTLEMENT=ISNULL(SETTLEMENT,0)+@SETTLEMENT,FEESTATUS=(case when AMOUNT<>0 AND AMOUNT=(SETTLEMENT+@SETTLEMENT2) then 9 WHEN AMOUNT<>0 AND AMOUNT<>(SETTLEMENT+@SETTLEMENT3) AND (SETTLEMENT+@SETTLEMENT4)<>0 THEN 8 ELSE FEESTATUS end) WHERE GID=@GID ");
|
|
|
|
|
|
|
|
|
if (bodyList != null)
|
|
|
{
|
|
|
foreach (var enumValue in bodyList)
|
|
|
{
|
|
|
|
|
|
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
|
db.AddInParameter(cmdInsert, "@BILLNO", DbType.String, billno);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, enumValue.BSNO);
|
|
|
db.AddInParameter(cmdInsert, "@MBLNO", DbType.String, enumValue.MBLNO);
|
|
|
db.AddInParameter(cmdInsert, "@HBLNO", DbType.String, enumValue.HBLNO);
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, enumValue.FeeObjName);
|
|
|
var tops = enumValue.BSNO.Substring(0, 7);
|
|
|
if (tops == "topseae")
|
|
|
db.AddInParameter(cmdInsert, "@BSTYPE", DbType.Boolean, true);
|
|
|
else
|
|
|
db.AddInParameter(cmdInsert, "@BSTYPE", DbType.Boolean, false);
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, enumValue.CH_ID);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, curr);
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.DoAmount);
|
|
|
db.AddInParameter(cmdInsert, "@DOAMOUNT", DbType.Decimal, 0);
|
|
|
db.AddInParameter(cmdInsert, "@FEETYPE", DbType.Int16, enumValue.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@CATEGORY", DbType.Int16, 8);
|
|
|
db.AddInParameter(cmdInsert, "@BILLSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@ISDELETED", DbType.Boolean, false);
|
|
|
db.AddInParameter(cmdInsert, "@CREATETIME", DbType.DateTime, DateTime.Now);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, enumValue.EXRATE);
|
|
|
db.AddInParameter(cmdInsert, "@ORIGCURRENCY", DbType.String, enumValue.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@ORIGAMOUNT", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdInsert, "@INVOICESETTLENO", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@COMPANYID", DbType.String, companyid);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.CH_ID);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT2", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT3", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT4", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
tran.Commit();
|
|
|
result.Success = true;
|
|
|
result.Message = "保存成功" + result.Message;
|
|
|
return result;
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
result.Success = false;
|
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "保存成功" + result.Message;
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult AddBill(string billno, string billcust, string billcurr, string feesql, List<ChFeeExrate> exratelist, string companyid,bool custgroup=false)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
if (!custgroup)
|
|
|
feesql = feesql + " AND CUSTOMERNAME='" + billcust + "' ";
|
|
|
var feelist = GetFeeDetailList(feesql);
|
|
|
|
|
|
|
|
|
var cmdInsert =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"insert into ch_fee_do (GID,BILLNO,BSNO,MBLNO,HBLNO,CUSTOMERNAME,BSTYPE,FEEID,FEENAME,CURRENCY
|
|
|
,AMOUNT,DOAMOUNT,FEETYPE,CATEGORY,BILLSTATUS,ISDELETED,CREATETIME
|
|
|
,EXCHANGERATE,ORIGCURRENCY,ORIGAMOUNT,INVOICESETTLENO,COMPANYID)
|
|
|
values (@GID,@BILLNO,@BSNO,@MBLNO,@HBLNO,@CUSTOMERNAME,@BSTYPE,@FEEID,@FEENAME,@CURRENCY
|
|
|
,@AMOUNT,@DOAMOUNT,@FEETYPE,@CATEGORY,@BILLSTATUS,@ISDELETED,@CREATETIME
|
|
|
,@EXCHANGERATE,@ORIGCURRENCY,@ORIGAMOUNT,@INVOICESETTLENO,@COMPANYID) ");
|
|
|
|
|
|
var cmdUpdate =
|
|
|
db.GetSqlStringCommand(
|
|
|
@"UPDATE CH_FEE SET SETTLEMENT=ISNULL(SETTLEMENT,0)+@SETTLEMENT,FEESTATUS=(case when AMOUNT<>0 AND AMOUNT=(SETTLEMENT+@SETTLEMENT2) then 9 WHEN AMOUNT<>0 AND AMOUNT<>(SETTLEMENT+@SETTLEMENT3) AND (SETTLEMENT+@SETTLEMENT4)<>0 THEN 8 ELSE FEESTATUS end) WHERE GID=@GID ");
|
|
|
|
|
|
|
|
|
|
|
|
if (feelist != null)
|
|
|
{
|
|
|
foreach (var enumValue in feelist)
|
|
|
{
|
|
|
cmdInsert.Parameters.Clear();
|
|
|
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
|
|
|
db.AddInParameter(cmdInsert, "@BILLNO", DbType.String, billno);
|
|
|
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, enumValue.BSNO);
|
|
|
db.AddInParameter(cmdInsert, "@MBLNO", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@HBLNO", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, enumValue.CustomerName);
|
|
|
var tops = enumValue.BSNO.Substring(0, 7);
|
|
|
if (tops == "topseae")
|
|
|
db.AddInParameter(cmdInsert, "@BSTYPE", DbType.Boolean, true);
|
|
|
else
|
|
|
db.AddInParameter(cmdInsert, "@BSTYPE", DbType.Boolean, false);
|
|
|
db.AddInParameter(cmdInsert, "@FEEID", DbType.String, enumValue.CH_ID);
|
|
|
db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FeeName);
|
|
|
db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, billcurr);
|
|
|
|
|
|
if (billcurr == enumValue.Currency)
|
|
|
{
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdInsert, "@DOAMOUNT", DbType.Decimal, 0);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, 1);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
var UExrate = GetExrate(enumValue.Currency, exratelist);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@AMOUNT", DbType.Decimal, enumValue.StlAmount * UExrate);
|
|
|
db.AddInParameter(cmdInsert, "@DOAMOUNT", DbType.Decimal, 0);
|
|
|
db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, UExrate);
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@FEETYPE", DbType.Int16, enumValue.FeeType);
|
|
|
db.AddInParameter(cmdInsert, "@ORIGCURRENCY", DbType.String, enumValue.Currency);
|
|
|
db.AddInParameter(cmdInsert, "@ORIGAMOUNT", DbType.Decimal, enumValue.StlAmount);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@CATEGORY", DbType.Int16, 8);
|
|
|
db.AddInParameter(cmdInsert, "@BILLSTATUS", DbType.Int16, 1);
|
|
|
db.AddInParameter(cmdInsert, "@ISDELETED", DbType.Boolean, false);
|
|
|
db.AddInParameter(cmdInsert, "@CREATETIME", DbType.DateTime, DateTime.Now);
|
|
|
|
|
|
db.AddInParameter(cmdInsert, "@INVOICESETTLENO", DbType.String, "");
|
|
|
db.AddInParameter(cmdInsert, "@COMPANYID", DbType.String, companyid);
|
|
|
|
|
|
db.ExecuteNonQuery(cmdInsert, tran);
|
|
|
|
|
|
cmdUpdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.CH_ID);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT2", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT3", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.AddInParameter(cmdUpdate, "@SETTLEMENT4", DbType.Decimal, enumValue.StlAmount);
|
|
|
db.ExecuteNonQuery(cmdUpdate, tran);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "成功";
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "保存出现错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "保存成功";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static Decimal GetExrate(string curr, List<ChFeeExrate> exratelist)
|
|
|
{
|
|
|
decimal exrate = 0;
|
|
|
if (exratelist != null)
|
|
|
{
|
|
|
foreach (var enumValue in exratelist)
|
|
|
{
|
|
|
if (enumValue.CURR == curr)
|
|
|
{
|
|
|
exrate = enumValue.EXRATE;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return exrate;
|
|
|
}
|
|
|
|
|
|
public static DBResult DelFeeDo(List<Chfee_do_detail> boday)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
//var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
if (boday != null)
|
|
|
{
|
|
|
|
|
|
|
|
|
// var cmddelete = db.GetSqlStringCommand("delete from ch_fee_do where GID=@FEEDOID");
|
|
|
|
|
|
// var cmdupdate = db.GetSqlStringCommand("update ch_fee set SETTLEMENT=SETTLEMENT-@SETTLEMENT,FEESTATUS=(case when AMOUNT<>0 AND AMOUNT=(SETTLEMENT-@SETTLEMENT2) then 9 WHEN AMOUNT<>0 AND AMOUNT<>(SETTLEMENT-@SETTLEMENT3) AND (SETTLEMENT-@SETTLEMENT4)<>0 THEN 8 ELSE 0 end) where GID=@GID");
|
|
|
// var cmdupdate = db.GetSqlStringCommand("update ch_fee set SETTLEMENT=SETTLEMENT-@SETTLEMENT,FEESTATUS=(case when AMOUNT<>0 AND AMOUNT=(SETTLEMENT-@SETTLEMENT2) then 9 WHEN AMOUNT<>0 AND AMOUNT<>(SETTLEMENT-@SETTLEMENT3) AND (SETTLEMENT-@SETTLEMENT4)<>0 THEN 8 ELSE 0 end) where GID=@GID");
|
|
|
var cmdupdatefeedo = db.GetSqlStringCommand("update ch_fee_do set DOAMOUNT=DOAMOUNT-ISNULL((SELECT SUM(PAYDOAMOUNT) FROM ch_fee_do_payapplication WHERE FEEDOID=@FEEDOID),0),ORIGSTLAMOUNT=ORIGSTLAMOUNT-@ORIGSTLAMOUNT where GID=(SELECT TOP 1 PAY_FEEDOID FROM ch_fee_do_payapplication WHERE FEEDOID=@PAYFEEDOID)");
|
|
|
|
|
|
var cmddeleteappfeedo = db.GetSqlStringCommand("delete from ch_fee_do_payapplication where FEEDOID=@FEEDOID");
|
|
|
|
|
|
|
|
|
foreach (var enumValue in boday)
|
|
|
{
|
|
|
|
|
|
cmdupdatefeedo.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdatefeedo, "@FEEDOID", DbType.String, enumValue.FEEDOID);
|
|
|
db.AddInParameter(cmdupdatefeedo, "@ORIGSTLAMOUNT", DbType.Decimal, enumValue.ORIGAMOUNT);
|
|
|
db.AddInParameter(cmdupdatefeedo, "@PAYFEEDOID", DbType.String, enumValue.FEEDOID);
|
|
|
db.ExecuteNonQuery(cmdupdatefeedo);
|
|
|
|
|
|
|
|
|
var cmd = db.GetStoredProcCommand("p_del_stlfeedo");
|
|
|
db.AddInParameter(cmd, "@feedoid", DbType.String, enumValue.FEEDOID);
|
|
|
db.AddInParameter(cmd, "@feeid", DbType.String, enumValue.FEEID);
|
|
|
db.ExecuteNonQuery(cmd);
|
|
|
|
|
|
cmddeleteappfeedo.Parameters.Clear();
|
|
|
db.AddInParameter(cmddeleteappfeedo, "@FEEDOID", DbType.String, enumValue.FEEDOID);
|
|
|
db.ExecuteNonQuery(cmddeleteappfeedo);
|
|
|
|
|
|
//cmddelete.Parameters.Clear();
|
|
|
//db.AddInParameter(cmddelete, "@FEEDOID", DbType.String, enumValue.FEEDOID);
|
|
|
//db.ExecuteNonQuery(cmddelete, tran);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//cmdupdate.Parameters.Clear();
|
|
|
//db.AddInParameter(cmdupdate, "@SETTLEMENT", DbType.Decimal, enumValue.ORIGAMOUNT);
|
|
|
//db.AddInParameter(cmdupdate, "@SETTLEMENT2", DbType.Decimal, enumValue.ORIGAMOUNT);
|
|
|
//db.AddInParameter(cmdupdate, "@SETTLEMENT3", DbType.Decimal, enumValue.ORIGAMOUNT);
|
|
|
//db.AddInParameter(cmdupdate, "@SETTLEMENT4", DbType.Decimal, enumValue.ORIGAMOUNT);
|
|
|
//db.AddInParameter(cmdupdate, "@GID", DbType.String, enumValue.FEEID);
|
|
|
//db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "成功";
|
|
|
|
|
|
//tran.Commit();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
//tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "删除出现错误("+e.Message+"),请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "删除成功";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static int p_update_Amount(string billno,int billtype)
|
|
|
{
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
var cmd = db.GetStoredProcCommand("p_update_settlement");
|
|
|
db.AddInParameter(cmd, "@con_no", DbType.String, billno);
|
|
|
db.AddInParameter(cmd, "@billtype", DbType.Int16, billtype);
|
|
|
db.ExecuteNonQuery(cmd);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static List<MsFeeCurr> GetFeeCurrList(string sCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("Select CODENAME,DEFAULTRATE ");
|
|
|
strSql.Append(" from code_currency ");
|
|
|
if (!string.IsNullOrEmpty(sCondition))
|
|
|
{
|
|
|
strSql.Append(" where " + sCondition);
|
|
|
}
|
|
|
strSql.Append(" order by CODENAME");
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
var evList = new List<MsFeeCurr>();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
var evData = new MsFeeCurr();
|
|
|
evData.CURR = Convert.ToString(reader["CODENAME"]);
|
|
|
evData.DEFRATE = Convert.ToDecimal(reader["DEFAULTRATE"]);
|
|
|
evList.Add(evData);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
return evList;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region 提交审核和撤销审核
|
|
|
|
|
|
public static DBResult Lock(string bill, string remark)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee_hexiao set BILLSTATUS=1,REMARK=@REMARK where BILLNO=@BILLNO");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@REMARK", DbType.String, remark);
|
|
|
db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
|
|
|
var cmdupdate2 = db.GetSqlStringCommand("update ch_fee_settlement set BILLSTATUS=1 where HXBILLNO=@BILLNO");
|
|
|
|
|
|
|
|
|
cmdupdate2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate2, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate2, tran);
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "锁定成功";
|
|
|
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "锁定错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static DBResult LockList(String bills)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
var billList = bills.Split(',');
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee_hexiao set BILLSTATUS=1 where BILLNO=@BILLNO");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdate2 = db.GetSqlStringCommand("update ch_fee_settlement set BILLSTATUS=1 where HXBILLNO=@BILLNO");
|
|
|
|
|
|
|
|
|
cmdupdate2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate2, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate2, tran);
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "锁定成功";
|
|
|
|
|
|
}
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "锁定错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
static public int GetRdCount(string strCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT Count(GID) AS CT from ch_fee_hexiao");
|
|
|
if (strCondition.Trim() != String.Empty)
|
|
|
{
|
|
|
strSql.Append(" where " + strCondition);
|
|
|
}
|
|
|
var ct = 0;
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
ct = Convert.ToInt16(reader["CT"]);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return ct;
|
|
|
}
|
|
|
|
|
|
public static DBResult UnLock(String bill)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee_hexiao set BILLSTATUS=2 where BILLNO=@BILLNO");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdate2 = db.GetSqlStringCommand("update ch_fee_settlement set BILLSTATUS=2 where HXBILLNO=@BILLNO");
|
|
|
|
|
|
|
|
|
cmdupdate2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate2, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate2, tran);
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "撤销锁定成功";
|
|
|
|
|
|
|
|
|
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "撤销锁定错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult UnLockList(String bills)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
|
|
|
var billList = bills.Split(',');
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
foreach (var bill in billList)
|
|
|
{
|
|
|
|
|
|
|
|
|
var cmdupdate = db.GetSqlStringCommand("update ch_fee_hexiao set BILLSTATUS=2 where BILLNO=@BILLNO");
|
|
|
|
|
|
|
|
|
cmdupdate.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate, tran);
|
|
|
|
|
|
var cmdupdate2 = db.GetSqlStringCommand("update ch_fee_settlement set BILLSTATUS=2 where HXBILLNO=@BILLNO");
|
|
|
|
|
|
cmdupdate2.Parameters.Clear();
|
|
|
db.AddInParameter(cmdupdate2, "@BILLNO", DbType.String, bill);
|
|
|
db.ExecuteNonQuery(cmdupdate2, tran);
|
|
|
|
|
|
result = new DBResult();
|
|
|
result.Success = true;
|
|
|
result.Message = "撤销锁定成功";
|
|
|
|
|
|
}
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "撤销锁定错误,请重试或联系系统管理员";
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 权限范围
|
|
|
|
|
|
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID,VSSQL ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='" + tb + "' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
string AUTHORITYID = "";
|
|
|
string VSSQL = "";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
|
|
|
operaterange = Convert.ToString(reader["OPERATERANGE"]);
|
|
|
AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]);
|
|
|
VSSQL = Convert.ToString(reader["VSSQL"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = " (OP='" + username + "' OR INPUTBY='" + username + "' OR SALE='" + username + "' OR CUSTSERVICE='" + username + "')";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
str = " (OP='" + username + "' OR INPUTBY='" + username + "' OR SALE='" + username + "' OR CUSTSERVICE='" + username + "')";
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptid = rangeDa.GetDEPTGID(userid);
|
|
|
str = " (OP in (select showname from vw_user where deptgid='" + deptid + "') OR SALE in (select showname from vw_user where deptgid='" + deptid + "') OR CUSTSERVICE in (select showname from vw_user where deptgid='" + deptid + "') "
|
|
|
+ " OR FRCUSTSERVICE in (select showname from vw_user where deptgid='" + deptid + "') OR INPUTBY in (select showname from vw_user where deptgid='" + deptid + "'))";
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
//str = " (OP in (select showname from vw_user where companyid='" + companyid + "') OR SALE in (select showname from vw_user where companyid='" + companyid + "') OR CUSTSERVICE in (select showname from vw_user where companyid='" + companyid + "') "
|
|
|
//+ " OR FRCUSTSERVICE in (select showname from vw_user where companyid='" + companyid + "') OR INPUTBY in (select showname from vw_user where companyid='" + companyid + "'))";
|
|
|
str = " exists (select 1 from vw_user where COMPANYID='" + companyid + "' and showname in(OP,SALE,CUSTSERVICE,FRCUSTSERVICE,INPUTBY)) ";
|
|
|
}
|
|
|
else if (visiblerange == "5")
|
|
|
{
|
|
|
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (b.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or b.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "6")
|
|
|
{
|
|
|
str = " EXISTS (select 1 from user_authority_range_op P left join [user] u on (u.GID=P.OPID) where (B.OP=U.SHOWNAME OR B.SALE=U.SHOWNAME OR B.CUSTSERVICE=U.SHOWNAME OR B.DOC=U.SHOWNAME OR B.FRCUSTSERVICE=U.SHOWNAME OR B.INPUTBY=U.SHOWNAME) AND P.userid='" + userid + "' and P.AUTHORITYID='" + AUTHORITYID + "' and P.VISIBLERANGE=1) ";
|
|
|
|
|
|
//var userstr = new StringBuilder();
|
|
|
//userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
//Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
//using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
//{
|
|
|
// str = "";
|
|
|
// while (reader.Read())
|
|
|
// {
|
|
|
// if (str == "")
|
|
|
// {
|
|
|
// str = " (b.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR b.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR b.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR b.INPUTBY='" + Convert.ToString(reader["SHOWNAME"]) + "' ";
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// str = str + " or b.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR b.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR b.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR b.INPUTBY='" + Convert.ToString(reader["SHOWNAME"]) + "' ";
|
|
|
// };
|
|
|
// }
|
|
|
// str = str + ")";
|
|
|
// reader.Close();
|
|
|
//}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "0")
|
|
|
{
|
|
|
str = " 1=1 ";
|
|
|
}
|
|
|
VSSQL = VSSQL.Trim();
|
|
|
if (!string.IsNullOrEmpty(VSSQL))
|
|
|
{
|
|
|
|
|
|
if (!string.IsNullOrEmpty(str))
|
|
|
{
|
|
|
str = str + " and (" + VSSQL + ") ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " (" + VSSQL + ") ";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static string GetRangDAListStr(string tb, string userid, string username, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='"+tb+"' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
string AUTHORITYID = "";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
|
|
|
operaterange = Convert.ToString(reader["OPERATERANGE"]);
|
|
|
AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = " (CREATEUSER='" + userid + "')";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
str = " (CREATEUSER='" + userid + "')";
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptid = rangeDa.GetDEPTGID(userid);
|
|
|
str = " CREATEUSER in (select USERID from vw_user where deptid='" + deptid + "') ";
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
str = " CREATEUSER in (select USERID from vw_user where COMPANYID='" + companyid + "')";
|
|
|
}
|
|
|
else if (visiblerange == "5")
|
|
|
{
|
|
|
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (COMPANYID='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or COMPANYID='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "6")
|
|
|
{
|
|
|
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (CREATEUSER='" + Convert.ToString(reader["OPID"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or CREATEUSER='" + Convert.ToString(reader["OPID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (visiblerange == "0")
|
|
|
{
|
|
|
str = " 1=1 ";
|
|
|
}
|
|
|
|
|
|
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 生成接口凭证
|
|
|
//public static DBResult onAddCwVouchersJK(string strGIDS, MsCwVouchersGl3 headData, List<MsCwVouchersGl4> bodyList, string strUserID, string strSHOWNAME, string companyid)
|
|
|
//{
|
|
|
// var result = new DBResult();
|
|
|
// T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
// string sSQL = "";
|
|
|
// int iResult = 0;
|
|
|
// string zt = "";
|
|
|
// string sError = "操作完成!";
|
|
|
// //
|
|
|
// if (strGIDS.Trim() != "")
|
|
|
// {
|
|
|
// //帐套设置
|
|
|
// sSQL = "SELECT top 1 * from cw_design";
|
|
|
// DataSet dsCwDesign = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
// if (dsCwDesign == null)
|
|
|
// {
|
|
|
// result.Success = false;
|
|
|
// result.Message = "请先设置帐套信息!" + result.Message;
|
|
|
// return result;
|
|
|
// }
|
|
|
// //
|
|
|
// string sGids = strGIDS.Trim().Replace(",", "','");
|
|
|
// sGids = "'" + sGids.Trim() + "'";
|
|
|
// //合并生成结算凭证
|
|
|
// CwVouchersAddingDo CwVouchersAddingDo = new CW.CwVouchersAddingDo();
|
|
|
|
|
|
// string[] items = sGids.Trim().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
// if (items.Length > 0)
|
|
|
// {
|
|
|
// for (int i = 0; i < items.Length; i++)
|
|
|
// {
|
|
|
// DBResult result2 = GetIsVoucherJK(items[i].ToString().Trim().Replace("'", ""));
|
|
|
// if (!result2.Success)
|
|
|
// {
|
|
|
// iResult = -1;
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// var BLCOUNT = T_ALL_DA.GetStrSQL("BLCOUNT", "select count(*) BLCOUNT from ch_fee_settlement WHERE HXBILLNO='" + items[i].ToString().Trim().Replace("'", "") + "' AND (ISNULL(AMOUNTRMB,0)<>0 OR ISNULL(AMOUNTUSD,0)<>0 OR ISNULL(FINANCIAL_MONEY,0)<>0 OR ISNULL(ADVANCE_MONEY,0)<>0) ");
|
|
|
// if (BLCOUNT == "0")
|
|
|
// {
|
|
|
// iResult = 1;
|
|
|
// } else
|
|
|
// iResult = getSC(dsCwDesign, items[i].ToString().Trim(), bodyList, headData.VOUDATE.ToString(), headData.PREPARED.ToString(), strUserID, companyid);
|
|
|
// }
|
|
|
// zt += "," + iResult;
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
// //
|
|
|
// if (zt.IndexOf("-") > 0)
|
|
|
// {
|
|
|
// result.Success = false;
|
|
|
// result.Message = "部分凭证生成出错!" + result.Message;
|
|
|
// return result;
|
|
|
// }
|
|
|
// }
|
|
|
// //
|
|
|
// result.Success = true;
|
|
|
// result.Message = sError;//"操作完成!";
|
|
|
// return result;
|
|
|
//}
|
|
|
|
|
|
protected static String getgid()
|
|
|
{
|
|
|
string strgid = Guid.NewGuid().ToString();
|
|
|
strgid = strgid.Replace("-", "");
|
|
|
strgid = "VOU" + strgid;
|
|
|
return strgid;
|
|
|
}
|
|
|
|
|
|
public static int getSC(DataSet dsCwDesign, string sGids,List<MsCwVouchersGl4> bodyList, string sVOUDATE, string sPREPARED, string userid, string strCompanyID)//, string strEXPLAN, string strDEPTID, string strEMPLID, string strSALE)
|
|
|
{
|
|
|
#region 基本变量
|
|
|
//全部
|
|
|
string sSQL = "";
|
|
|
string sSQL_Y = "";
|
|
|
string sSQL_Z = "";
|
|
|
string strEXPLAN = "";
|
|
|
int iResult = 0;
|
|
|
int n = 0;
|
|
|
Decimal dEXCHANGERATE = 0;
|
|
|
//应收应付账款
|
|
|
Decimal iAMTDR = 0;
|
|
|
Decimal iAMTCR = 0;
|
|
|
//差额主营业务收入
|
|
|
Decimal dRMBS = 0;
|
|
|
Decimal dRMBF = 0;
|
|
|
Decimal dUSDS = 0;
|
|
|
Decimal dUSDF = 0;
|
|
|
//总合计
|
|
|
Decimal strJie = 0;
|
|
|
Decimal strDai = 0;
|
|
|
string ls = "";
|
|
|
string strBPVW = dsCwDesign.Tables[0].Rows[0]["TVW"].ToString().Trim();
|
|
|
#endregion
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
|
|
|
|
|
|
#region 其他常用科目设置
|
|
|
//其他常用科目设置 应收RMB
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() + "'";
|
|
|
DataSet dsAR = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
//其他常用科目设置 应收USD
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim() + "'";
|
|
|
DataSet dsARFC = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
|
|
|
//其他常用科目设置 应付RMB
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["AP"].ToString().Trim() + "'";
|
|
|
DataSet dsAP = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
//其他常用科目设置 应付USD
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["APFC"].ToString().Trim() + "'";
|
|
|
DataSet dsAPFC = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
|
|
|
//其他常用科目设置 付费结算借方默认科目代码
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["APMBSPENDING"].ToString().Trim() + "'";
|
|
|
DataSet dsAPMBSPENDING = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
//其他常用科目设置 付费结算外币借方默认科目代码
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["APTMSFC"].ToString().Trim() + "'";
|
|
|
DataSet dsAPTMSFC = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
|
|
|
|
|
|
//其他常用科目设置 汇兑损益
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["EGOL"].ToString().Trim() + "'";
|
|
|
DataSet dsEGOL = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
|
|
|
//财务费用
|
|
|
sSQL = "SELECT top 1 * from cw_accitems where ACCID='" + dsCwDesign.Tables[0].Rows[0]["FC"].ToString().Trim() + "'";
|
|
|
DataSet dsFC= T_ALL_DA.GetAllSQL(sSQL);
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 摘要
|
|
|
//ISRPCLIENTNAME 是否收付客户名称
|
|
|
//ISRPCOTCODE 是否收付业务编号
|
|
|
//ISRPETD 是否收付航期
|
|
|
|
|
|
//ISRPMBLNO 是否收付主提单号
|
|
|
//ISRPCUSTNO 是否收付委托编号
|
|
|
//ISRPVESSEL 是否收付船名
|
|
|
//ISRPVOYNO 是否收付航次
|
|
|
|
|
|
string strISEXPLAN = "";
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPEXPLANMODEL"].ToString().Trim() == "True")
|
|
|
{
|
|
|
string sRPEXPLANAR = dsCwDesign.Tables[0].Rows[0]["RPEXPLANAR"].ToString().Trim();
|
|
|
string sRPEXPLANAP = dsCwDesign.Tables[0].Rows[0]["RPEXPLANAP"].ToString().Trim();
|
|
|
//if (sRPEXPLANAR.IndexOf("《结算单位》") > -1 || sRPEXPLANAP.IndexOf("《结算单位》") > -1)
|
|
|
//{
|
|
|
// strISEXPLAN += ",CUSTOMERNAME";
|
|
|
//}
|
|
|
if (sRPEXPLANAR.IndexOf("《委托编号》") > -1 || sRPEXPLANAP.IndexOf("《委托编号》") > -1)
|
|
|
{
|
|
|
strISEXPLAN += ",CUSTNO";
|
|
|
}
|
|
|
if (sRPEXPLANAR.IndexOf("《主提单号》") > -1 || sRPEXPLANAP.IndexOf("《主提单号》") > -1)
|
|
|
{
|
|
|
strISEXPLAN += ",MBLNO";
|
|
|
}
|
|
|
if (sRPEXPLANAR.IndexOf("《船名》") > -1 || sRPEXPLANAP.IndexOf("《船名》") > -1)
|
|
|
{
|
|
|
strISEXPLAN += ",VESSEL";
|
|
|
}
|
|
|
if (sRPEXPLANAR.IndexOf("《航次》") > -1 || sRPEXPLANAP.IndexOf("《航次》") > -1)
|
|
|
{
|
|
|
strISEXPLAN += ",VOYNO";
|
|
|
}
|
|
|
if (sRPEXPLANAR.IndexOf("《申请单号》") > -1 || sRPEXPLANAP.IndexOf("《申请单号》") > -1)
|
|
|
{
|
|
|
strISEXPLAN += ",BILLNO_ACAD";
|
|
|
}
|
|
|
if (sRPEXPLANAR.IndexOf("《委托单位》") > -1 || sRPEXPLANAP.IndexOf("《委托单位》") > -1)
|
|
|
{
|
|
|
strISEXPLAN += ",BS_CUSTOMERNAME";
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
|
|
|
{
|
|
|
strISEXPLAN += ",CUSTNO";
|
|
|
}
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
|
|
|
{
|
|
|
strISEXPLAN += ",MBLNO";
|
|
|
}
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPVESSEL"].ToString().Trim() == "True")
|
|
|
{
|
|
|
strISEXPLAN += ",VESSEL";
|
|
|
}
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPVOYNO"].ToString().Trim() == "True")
|
|
|
{
|
|
|
strISEXPLAN += ",VOYNO";
|
|
|
}
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPBILLNO"].ToString().Trim() == "True")
|
|
|
{
|
|
|
strISEXPLAN += ",BILLNO_ACAD";
|
|
|
}
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPCUSTOMERNAME"].ToString().Trim() == "True")
|
|
|
{
|
|
|
strISEXPLAN += ",BS_CUSTOMERNAME";
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 基本数据集
|
|
|
|
|
|
var tbRATE = " CASE WHEN CURR='RMB' THEN 1 ELSE ";
|
|
|
if (bodyList != null)
|
|
|
{
|
|
|
if (bodyList.Count > 0)
|
|
|
{
|
|
|
tbRATE += " CASE CURR";
|
|
|
for (int i = 0; i < bodyList.Count; i++)
|
|
|
{
|
|
|
tbRATE += " WHEN '" + bodyList[i].CURR.ToString().Trim() + "' THEN " + bodyList[i].FCYEXRATE.ToString().Trim()+" ";
|
|
|
}
|
|
|
tbRATE += " ELSE 1 END ";
|
|
|
|
|
|
}
|
|
|
}
|
|
|
tbRATE += " END ";
|
|
|
|
|
|
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 合计金额
|
|
|
|
|
|
//是否按照系统录入汇率
|
|
|
|
|
|
#region 应收应付
|
|
|
sSQL = "SELECT BILLNO,(CASE WHEN FEETYPE = 1 THEN '应收账款' WHEN FEETYPE=2 THEN '应付账款' ELSE '' END) as FEETYPE"
|
|
|
+ ",CUSTOMERNAME,origexchangerate"
|
|
|
+ ",SUM(CASE WHEN ORIGCURRENCY='RMB' THEN ORIGAMOUNT ELSE ORIGAMOUNT*ORIGEXCHANGERATE END) AS hj"//
|
|
|
+ strISEXPLAN
|
|
|
+ " From v_fee_do_settlement_bs WHERE 1=1 "
|
|
|
+ " and HXBILLNO=" + sGids.Trim() + " "
|
|
|
+ " GROUP BY BILLNO,FEETYPE,CUSTOMERNAME,origexchangerate" + strISEXPLAN
|
|
|
+ " ORDER BY FEETYPE desc";//,CURRENCY
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
//对抵结算是否生成银行账款
|
|
|
|
|
|
#region 现金、账户合计
|
|
|
sSQL_Z = "select BILLNO,BILLTYPE,SETTLETYPE,CUSTOMERNAME,CURR,isnull((CASE WHEN CURR='RMB' THEN AMOUNTRMB ELSE AMOUNTUSD END),0) AMOUNT, ACCOUNTRMB,ACCOUNTUSD,isnull(FINANCIAL_MONEY,0) FINANCIAL_MONEY,isnull(ADVANCE_MONEY,0) ADVANCE_MONEY"//,EXCHANGERATE
|
|
|
+ ",isnull((select top 1 ORIGEXCHANGERATE from v_fee_do_settlement_bs where BILLNO = ch_fee_settlement.BILLNO),0) as ORIGEXCHANGERATE"
|
|
|
+ ",isnull((CASE WHEN CURR='RMB' THEN AMOUNTRMB+isnull(FINANCIAL_MONEY,0)+isnull(ADVANCE_MONEY,0) ELSE AMOUNTUSD+isnull(FINANCIAL_MONEY,0)+isnull(ADVANCE_MONEY,0) END),0)* " + tbRATE + " as hj," + tbRATE +" as EXRATE "
|
|
|
+ " ,isnull((select SUM(CASE WHEN ORIGCURRENCY='RMB' THEN CASE WHEN FEETYPE=BILLTYPE THEN ORIGAMOUNT ELSE -ORIGAMOUNT END ELSE CASE WHEN FEETYPE=BILLTYPE THEN ORIGAMOUNT*ORIGEXCHANGERATE ELSE -ORIGAMOUNT*ORIGEXCHANGERATE END END) "
|
|
|
//+ " ,isnull((select SUM(CASE WHEN ORIGCURRENCY='RMB' THEN CASE WHEN FEETYPE=1 THEN ORIGAMOUNT ELSE -ORIGAMOUNT END ELSE CASE WHEN FEETYPE=1 THEN ORIGAMOUNT*ORIGEXCHANGERATE ELSE -ORIGAMOUNT*ORIGEXCHANGERATE END END) "
|
|
|
+ " FROM v_fee_do_settlement_bs WHERE BILLNO=ch_fee_settlement.BILLNO ),0) as stlttl "
|
|
|
+ " From ch_fee_settlement WHERE 1=1 "
|
|
|
+ " and HXBILLNO=" + sGids.Trim() + " "
|
|
|
+ " ORDER BY BILLTYPE,CURR";//
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
DataSet dsVWChFeeSettlementDo = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
DataSet dsVWChFeeSettlementDo_Z = T_ALL_DA.GetAllSQL(sSQL_Z);
|
|
|
#endregion
|
|
|
|
|
|
if (dsVWChFeeSettlementDo != null)
|
|
|
{
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////
|
|
|
|
|
|
#region 插入明细表 应收账款、应付账款
|
|
|
for (int i = 0; i < dsVWChFeeSettlementDo.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
CwVouitemsEntity CwVouitemsEntity = new CwVouitemsEntity();
|
|
|
//CwVouitemsEntity.GID 唯一编码 newid()
|
|
|
CwVouitemsEntity.ORDNO = strORDNO.Trim();
|
|
|
CwVouitemsEntity.ITEMNO = n;// 行号
|
|
|
CwVouitemsEntity.PACCID = "";//父级科目贷码
|
|
|
CwVouitemsEntity.PROPERTY = 0;//科目属性
|
|
|
CwVouitemsEntity.GRADE = 0;//科目级别
|
|
|
//
|
|
|
Decimal dl = Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim());
|
|
|
if (dl != 0)
|
|
|
{
|
|
|
n = n + 1;
|
|
|
if (dsVWChFeeSettlementDo.Tables[0].Rows[i]["FEETYPE"].ToString().Trim() == "应收账款")
|
|
|
{
|
|
|
#region 应收账款
|
|
|
if (dsAR != null)
|
|
|
{
|
|
|
CwVouitemsEntity.ACCID = dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim();//应收账款科目贷码
|
|
|
if (dsAR.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity.AMTDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity.AMTCR = 0;//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity.DC = "D";//借方向
|
|
|
iAMTDR = iAMTDR + dl;//预收支资料_金额
|
|
|
strJie +=Math.Round( Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
CwVouitemsEntity.AMTDR = 0;//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity.AMTCR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity.DC = "C";//贷方向
|
|
|
iAMTCR += dl;//预收支资料_金额
|
|
|
strDai += Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);
|
|
|
}
|
|
|
CwVouitemsEntity.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity.FCYNO = "RMB";//外币编号usd
|
|
|
dRMBS += Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);//本位币借方金额(互斥)
|
|
|
//
|
|
|
CwVouitemsEntity.ACCNAME = dsAR.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
CwVouitemsEntity.ISDEPTACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity.ISEMPLACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity.ISCORPACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity.ISITEMACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
CwVouitemsEntity.CORPID ="";//客户(系统)
|
|
|
CwVouitemsEntity.CUSTOMERNAME = dsVWChFeeSettlementDo.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
|
|
|
#endregion
|
|
|
|
|
|
strEXPLAN = "收";
|
|
|
strEXPLAN += "/"+dsVWChFeeSettlementDo.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo.Tables[0].Rows[i]["CUSTNO"].ToString().Trim();
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (dsVWChFeeSettlementDo.Tables[0].Rows[i]["FEETYPE"].ToString().Trim() == "应付账款")
|
|
|
{
|
|
|
#region 应付账款
|
|
|
if (dsAP != null)
|
|
|
{
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISAPMBSPENDING"].ToString().Trim() == "True")
|
|
|
{
|
|
|
CwVouitemsEntity.ACCID = dsCwDesign.Tables[0].Rows[0]["APMBSPENDING"].ToString().Trim();//应付账款科目贷码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
CwVouitemsEntity.ACCID = dsCwDesign.Tables[0].Rows[0]["AP"].ToString().Trim();//应付账款科目贷码
|
|
|
}
|
|
|
if (dsAP.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity.AMTDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity.FCYDR = 0;//外币借方金额
|
|
|
|
|
|
CwVouitemsEntity.FCYCR = 0;//外币贷方金额
|
|
|
// CwVouitemsEntity.FCYCR = Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["AMOUNT"].ToString().Trim());
|
|
|
CwVouitemsEntity.DC = "D";//借方向
|
|
|
iAMTDR = iAMTDR + dl;
|
|
|
strJie += Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
CwVouitemsEntity.AMTDR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity.AMTCR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity.FCYDR = 0;//外币借方金额
|
|
|
//CwVouitemsEntity.FCYDR = Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["AMOUNT"].ToString().Trim());
|
|
|
CwVouitemsEntity.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity.DC = "C";//贷方向
|
|
|
iAMTCR = iAMTCR + dl;
|
|
|
strDai += Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);
|
|
|
}
|
|
|
CwVouitemsEntity.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity.FCYNO = "RMB";//外币编号usd
|
|
|
dRMBF += Math.Round(Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["hj"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISAPMBSPENDING"].ToString().Trim() == "True")
|
|
|
{
|
|
|
if (dsAPMBSPENDING == null)
|
|
|
{
|
|
|
CwVouitemsEntity.ACCNAME = "";//科目名称
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
CwVouitemsEntity.ACCNAME = dsAPMBSPENDING.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
}
|
|
|
CwVouitemsEntity.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity.CUSTOMERNAME = "";//客户(系统)
|
|
|
CwVouitemsEntity.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
CwVouitemsEntity.ACCNAME = dsAP.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
CwVouitemsEntity.CORPID ="";//客户(系统)
|
|
|
CwVouitemsEntity.CUSTOMERNAME = dsVWChFeeSettlementDo.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
|
|
|
CwVouitemsEntity.ISCORPACC = Boolean.Parse(dsAP.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
|
|
|
}
|
|
|
CwVouitemsEntity.ISDEPTACC = Boolean.Parse(dsAP.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity.ISEMPLACC = Boolean.Parse(dsAP.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity.ISITEMACC = Boolean.Parse(dsAP.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
strEXPLAN = "付";
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPCUSTNO"].ToString().Trim() == "True")
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo.Tables[0].Rows[i]["CUSTNO"].ToString().Trim();
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
// CwVouitemsEntity.FCYEXRATE = Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["origexchangerate"].ToString().Trim());//汇率
|
|
|
CwVouitemsEntity.FCYEXRATE =1;//汇率
|
|
|
//dEXCHANGERATE = Decimal.Parse(dsVWChFeeSettlementDo.Tables[0].Rows[i]["ACCOUNTS_RATE"].ToString().Trim());//汇率
|
|
|
|
|
|
CwVouitemsEntity.QTYUNIT = "";//数量包装单位
|
|
|
CwVouitemsEntity.QTYDR = 0;//借方数量
|
|
|
CwVouitemsEntity.QTYCR = 0;//贷方数量
|
|
|
CwVouitemsEntity.FSETTLCODE = "";//结算方式 //
|
|
|
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 (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
|
|
|
{
|
|
|
CwVouitemsEntity.ISSYS = false;//是否手动录入
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
CwVouitemsEntity.ISSYS = true;//是否手动录入
|
|
|
}
|
|
|
CwVouitemsEntity.FSETTLENO = "";//财务辅助编号
|
|
|
CwVouitemsEntity.MODIFIEDUSER = userid;//最后一次更新操作人
|
|
|
CwVouitemsEntity.BLNO = "";//BILLNO
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
|
|
|
{
|
|
|
CwVouitemsEntity.BLNO = dsVWChFeeSettlementDo.Tables[0].Rows[i]["mblno"].ToString().Trim();//
|
|
|
}
|
|
|
CwVouitemsEntities.Add(CwVouitemsEntity);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
///////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
//end
|
|
|
|
|
|
///////////////////////////////////////////////////////
|
|
|
|
|
|
#region 插入明细表 实付支资料 账户,收入\成本 生成 全额\差额
|
|
|
for (int i = 0; i < dsVWChFeeSettlementDo_Z.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
CwVouitemsEntity CwVouitemsEntity2 = new CwVouitemsEntity();
|
|
|
//CwVouitemsEntity2.GID 唯一编码 newid()
|
|
|
CwVouitemsEntity2.ORDNO = strORDNO.Trim();
|
|
|
CwVouitemsEntity2.ITEMNO = n;// 行号
|
|
|
CwVouitemsEntity2.PACCID = "";//父级科目贷码
|
|
|
CwVouitemsEntity2.PROPERTY = 0;//科目属性
|
|
|
CwVouitemsEntity2.GRADE = 0;//科目级别
|
|
|
#region 2018年2月12日10:16:50 李进举 凭证生成汇率
|
|
|
// CwVouitemsEntity2.FCYEXRATE = decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ORIGEXCHANGERATE"].ToString()==""?"0":dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ORIGEXCHANGERATE"].ToString().Trim());
|
|
|
CwVouitemsEntity2.FCYEXRATE = decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["EXRATE"].ToString() == "" ? "0" : dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["EXRATE"].ToString().Trim());
|
|
|
|
|
|
#endregion
|
|
|
Decimal dl = Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["AMOUNT"].ToString().Trim())+ Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()) + Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim());
|
|
|
if (dl != 0)
|
|
|
{
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "1")
|
|
|
{
|
|
|
#region 实收支资料
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() == "RMB")
|
|
|
{
|
|
|
ls = "select FINANCESOFTCODE from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTRMB"].ToString().Trim() + "'";
|
|
|
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
|
|
|
if (strACCID.Trim() == "")
|
|
|
{
|
|
|
strACCID = "1001";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
|
|
|
ls = "select BANKNAME from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTRMB"].ToString().Trim() + "'";
|
|
|
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
|
|
|
if (strACCNAME.Trim() == "")
|
|
|
{
|
|
|
strACCNAME = "现金";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
|
|
|
//
|
|
|
CwVouitemsEntity2.AMTDR = dl;//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity2.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity2.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity2.FCYCR = 0;//外币贷方金额
|
|
|
strJie += dl;
|
|
|
//
|
|
|
CwVouitemsEntity2.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity2.FCYNO = "RMB";//外币编号usd
|
|
|
CwVouitemsEntity2.FCYEXRATE =1;
|
|
|
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
CwVouitemsEntity2.DC = "D";//借方向
|
|
|
}
|
|
|
else if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() != "RMB")
|
|
|
{
|
|
|
ls = "select FINANCESOFTCODE from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTUSD"].ToString().Trim() + "'";
|
|
|
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
|
|
|
if (strACCID.Trim() == "")
|
|
|
{
|
|
|
strACCID = "1001";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
|
|
|
ls = "select BANKNAME from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTUSD"].ToString().Trim() + "'";
|
|
|
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
|
|
|
if (strACCNAME.Trim() == "")
|
|
|
{
|
|
|
strACCNAME = "现金";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
|
|
|
//
|
|
|
CwVouitemsEntity2.AMTDR = Math.Round(dl * CwVouitemsEntity2.FCYEXRATE, 2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity2.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity2.FCYDR = dl;//外币借方金额
|
|
|
CwVouitemsEntity2.FCYCR = 0;//外币贷方金额
|
|
|
strJie += Math.Round(dl * CwVouitemsEntity2.FCYEXRATE, 2);
|
|
|
//
|
|
|
CwVouitemsEntity2.ISFCY = true;//是否外币
|
|
|
CwVouitemsEntity2.FCYNO = "USD";//外币编号usd
|
|
|
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
CwVouitemsEntity2.DC = "D";//借方向
|
|
|
}
|
|
|
//CwVouitemsEntity2.CORPID = dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FARCODE"].ToString().Trim();//客户(系统)
|
|
|
//CwVouitemsEntity2.CUSTOMERNAME = dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
|
|
|
CwVouitemsEntity2.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity2.CUSTOMERNAME = "";//客户(系统)
|
|
|
strBPVW = dsCwDesign.Tables[0].Rows[0]["BRTW"].ToString().Trim();
|
|
|
#endregion
|
|
|
strEXPLAN = "收" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
}
|
|
|
else if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "2")
|
|
|
{
|
|
|
#region 实付支资料
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() == "RMB")
|
|
|
{
|
|
|
ls = "select FINANCESOFTCODE from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTRMB"].ToString().Trim() + "'";
|
|
|
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
|
|
|
if (strACCID.Trim() == "")
|
|
|
{
|
|
|
strACCID = "1001";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
|
|
|
ls = "select BANKNAME from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTRMB"].ToString().Trim() + "'";
|
|
|
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
|
|
|
if (strACCNAME.Trim() == "")
|
|
|
{
|
|
|
strACCNAME = "现金";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
|
|
|
//
|
|
|
CwVouitemsEntity2.AMTDR = 0;//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity2.AMTCR = dl;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity2.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity2.FCYCR = 0;//外币贷方金额
|
|
|
strDai +=dl;
|
|
|
//
|
|
|
CwVouitemsEntity2.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity2.FCYNO = "RMB";//外币编号usd
|
|
|
CwVouitemsEntity2.FCYEXRATE = 1;
|
|
|
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
CwVouitemsEntity2.DC = "C";//贷方向
|
|
|
}
|
|
|
else if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() != "RMB")
|
|
|
{
|
|
|
ls = "select FINANCESOFTCODE from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTUSD"].ToString().Trim() + "'";
|
|
|
string strACCID = T_ALL_DA.GetStrSQL("FINANCESOFTCODE", ls);
|
|
|
if (strACCID.Trim() == "")
|
|
|
{
|
|
|
strACCID = "1001";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCID = strACCID.Trim();//科目贷码
|
|
|
ls = "select BANKNAME from sys_bank where gid='" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ACCOUNTUSD"].ToString().Trim() + "'";
|
|
|
string strACCNAME = T_ALL_DA.GetStrSQL("BANKNAME", ls);
|
|
|
if (strACCNAME.Trim() == "")
|
|
|
{
|
|
|
strACCNAME = "现金";
|
|
|
continue;
|
|
|
}
|
|
|
CwVouitemsEntity2.ACCNAME = strACCNAME.Trim();//科目名称
|
|
|
//
|
|
|
CwVouitemsEntity2.AMTDR = 0;//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity2.AMTCR = Math.Round(dl * CwVouitemsEntity2.FCYEXRATE, 2);//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity2.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity2.FCYCR = dl;//外币贷方金额
|
|
|
strDai += Math.Round(dl * CwVouitemsEntity2.FCYEXRATE, 2);
|
|
|
//
|
|
|
CwVouitemsEntity2.ISFCY = true;//是否外币
|
|
|
CwVouitemsEntity2.FCYNO = "USD";//外币编号usd
|
|
|
CwVouitemsEntity2.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity2.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity2.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity2.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
CwVouitemsEntity2.DC = "C";//贷方向
|
|
|
}
|
|
|
//CwVouitemsEntity2.CORPID = dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FAPCODE"].ToString().Trim();//客户(系统)
|
|
|
//CwVouitemsEntity2.CUSTOMERNAME = dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
|
|
|
CwVouitemsEntity2.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity2.CUSTOMERNAME = "";//客户(系统)
|
|
|
strBPVW = dsCwDesign.Tables[0].Rows[0]["BPVW"].ToString().Trim();
|
|
|
#endregion
|
|
|
|
|
|
strEXPLAN = "付" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
n = n + 1;
|
|
|
|
|
|
CwVouitemsEntity2.QTYUNIT = "";//数量包装单位
|
|
|
CwVouitemsEntity2.QTYDR = 0;//借方数量
|
|
|
CwVouitemsEntity2.QTYCR = 0;//贷方数量
|
|
|
//
|
|
|
CwVouitemsEntity2.EXPLAN = strEXPLAN;//摘要,规则生成ALL
|
|
|
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 = userid;//最后一次更新操作人
|
|
|
CwVouitemsEntity2.BLNO = "";//BILLNOstrBILLNOALL
|
|
|
//if (dsCwDesign.Tables[0].Rows[0]["ISRPMBLNO"].ToString().Trim() == "True")
|
|
|
//{
|
|
|
// CwVouitemsEntity2.BLNO = dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["mblno"].ToString().Trim();//BILLNO
|
|
|
//}
|
|
|
CwVouitemsEntities.Add(CwVouitemsEntity2);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 插入明细表 财务费用
|
|
|
Decimal dlAMTDR = 0;//本位币贷方金额(互斥)
|
|
|
Decimal dlAMTCR = 0;//本位币借方金额(互斥)
|
|
|
Decimal dlFCYDR = 0;//外币借方金额
|
|
|
Decimal dlFCYCR = 0;//外币贷方金额
|
|
|
//
|
|
|
for (int i = 0; i < dsVWChFeeSettlementDo_Z.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
Decimal dl = Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim());
|
|
|
if (dl != 0)
|
|
|
{
|
|
|
CwVouitemsEntity CwVouitemsEntity4 = new CwVouitemsEntity();
|
|
|
//CwVouitemsEntity4.GID 唯一编码 newid()
|
|
|
CwVouitemsEntity4.ORDNO = strORDNO.Trim();
|
|
|
CwVouitemsEntity4.ITEMNO = n;// 行号
|
|
|
CwVouitemsEntity4.PACCID = "";//父级科目贷码
|
|
|
CwVouitemsEntity4.PROPERTY = 0;//科目属性
|
|
|
CwVouitemsEntity4.GRADE = 0;//科目级别
|
|
|
#region 2018年2月12日10:17:50 凭证汇率 李进举
|
|
|
// CwVouitemsEntity4.FCYEXRATE = decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ORIGEXCHANGERATE"].ToString() == "" ? "0" : dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ORIGEXCHANGERATE"].ToString().Trim());
|
|
|
CwVouitemsEntity4.FCYEXRATE = decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["EXRATE"].ToString() == "" ? "0" : dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["EXRATE"].ToString().Trim());
|
|
|
|
|
|
#endregion
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "1")
|
|
|
{
|
|
|
|
|
|
if (dsFC != null)
|
|
|
{
|
|
|
#region 实收支资料
|
|
|
CwVouitemsEntity4.ACCID = dsCwDesign.Tables[0].Rows[0]["FC"].ToString().Trim();
|
|
|
CwVouitemsEntity4.ACCNAME = dsFC.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
//
|
|
|
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() == "RMB")
|
|
|
{
|
|
|
CwVouitemsEntity4.AMTDR = -Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = "RMB";//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie =strJie- Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);
|
|
|
dlAMTDR=dlAMTDR- Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
dlAMTCR += 0;//本位币借方金额(互斥)
|
|
|
dlFCYDR += 0;//外币借方金额
|
|
|
dlFCYCR += 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.FCYEXRATE = 1;//汇率
|
|
|
|
|
|
}
|
|
|
else {
|
|
|
|
|
|
CwVouitemsEntity4.AMTDR = -Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = -Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = true;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim();//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie =strJie-Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);
|
|
|
dlAMTDR =dlAMTDR- Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币贷方金额(互斥)
|
|
|
dlAMTCR += 0;//本位币借方金额(互斥)
|
|
|
dlFCYDR =dlFCYDR- Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//外币借方金额
|
|
|
dlFCYCR += 0;//外币贷方金额
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CwVouitemsEntity4.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity4.CUSTOMERNAME = "";//客户(系统)
|
|
|
strBPVW = dsCwDesign.Tables[0].Rows[0]["BRTW"].ToString().Trim();
|
|
|
strEXPLAN = "收";
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "2")
|
|
|
{
|
|
|
#region 实付支资料
|
|
|
|
|
|
CwVouitemsEntity4.ACCID = dsCwDesign.Tables[0].Rows[0]["FC"].ToString().Trim();
|
|
|
CwVouitemsEntity4.ACCNAME = dsFC.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
//
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() == "RMB")
|
|
|
{
|
|
|
CwVouitemsEntity4.AMTDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = "RMB";//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie =strJie+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);
|
|
|
dlAMTCR += 0;//本位币贷方金额(互斥)
|
|
|
dlAMTDR =dlAMTDR+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//本位币借方金额(互斥)
|
|
|
dlFCYDR += 0;//外币借方金额
|
|
|
dlFCYCR += 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.FCYEXRATE = 1;//汇率
|
|
|
|
|
|
}
|
|
|
else {
|
|
|
|
|
|
CwVouitemsEntity4.AMTDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = true;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = "USD";//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie =strJie+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);
|
|
|
dlAMTCR += 0;//本位币贷方金额(互斥)
|
|
|
dlAMTDR =dlAMTDR+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币借方金额(互斥)
|
|
|
dlFCYCR += 0;//外币借方金额
|
|
|
dlFCYDR =dlFCYDR+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["FINANCIAL_MONEY"].ToString().Trim()),2);//外币贷方金额
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
CwVouitemsEntity4.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity4.CUSTOMERNAME = "";//客户(系统)
|
|
|
strBPVW = dsCwDesign.Tables[0].Rows[0]["BPVW"].ToString().Trim();
|
|
|
strEXPLAN = "付";
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
n = n + 1;
|
|
|
CwVouitemsEntity4.QTYUNIT = "";//数量包装单位
|
|
|
CwVouitemsEntity4.QTYDR = 0;//借方数量
|
|
|
CwVouitemsEntity4.QTYCR = 0;//贷方数量
|
|
|
//
|
|
|
CwVouitemsEntity4.EXPLAN = strEXPLAN;//摘要,规则生成ALL
|
|
|
CwVouitemsEntity4.DEPTID = "";//strDEPTID;//部门(系统)
|
|
|
CwVouitemsEntity4.EMPLID = "";//strEMPLID;//人员(系统)
|
|
|
CwVouitemsEntity4.SALE = "";//strSALE;//人员名称
|
|
|
CwVouitemsEntity4.PITEMID = 0;//父级项目编号
|
|
|
CwVouitemsEntity4.ITEMID = "0";//项目编号
|
|
|
CwVouitemsEntity4.FIELD1 = "";//预留字段1
|
|
|
CwVouitemsEntity4.FIELD2 = "";//预留字段2
|
|
|
CwVouitemsEntity4.FIELD3 = "";//预留字段3
|
|
|
CwVouitemsEntity4.FIELD4 = "";//预留字段4
|
|
|
CwVouitemsEntity4.FIELD5 = "";//预留字段5
|
|
|
CwVouitemsEntity4.FIELD6 = "";//预留字段6
|
|
|
CwVouitemsEntity4.FIELD7 = "";//预留字段7
|
|
|
CwVouitemsEntity4.FIELD8 = "";//预留字段8
|
|
|
CwVouitemsEntity4.FIELD9 = "";//预留字段9
|
|
|
CwVouitemsEntity4.FIELD10 = "";//预留字段10
|
|
|
CwVouitemsEntity4.ISSYS = true;//是否手动录入
|
|
|
CwVouitemsEntity4.FSETTLCODE = "";//结算方式
|
|
|
CwVouitemsEntity4.FSETTLENO = "";//财务辅助编号
|
|
|
CwVouitemsEntity4.MODIFIEDUSER = userid;//最后一次更新操作人
|
|
|
CwVouitemsEntity4.BLNO = "";//BILLNOstrBILLNOALL
|
|
|
|
|
|
CwVouitemsEntities.Add(CwVouitemsEntity4);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 插入明细表 财务费用
|
|
|
dlAMTDR = 0;//本位币贷方金额(互斥)
|
|
|
dlAMTCR = 0;//本位币借方金额(互斥)
|
|
|
dlFCYDR = 0;//外币借方金额
|
|
|
dlFCYCR = 0;//外币贷方金额
|
|
|
//
|
|
|
for (int i = 0; i < dsVWChFeeSettlementDo_Z.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
Decimal dl = Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim());
|
|
|
if (dl != 0)
|
|
|
{
|
|
|
CwVouitemsEntity CwVouitemsEntity4 = new CwVouitemsEntity();
|
|
|
//CwVouitemsEntity4.GID 唯一编码 newid()
|
|
|
CwVouitemsEntity4.ORDNO = strORDNO.Trim();
|
|
|
CwVouitemsEntity4.ITEMNO = n;// 行号
|
|
|
CwVouitemsEntity4.PACCID = "";//父级科目贷码
|
|
|
CwVouitemsEntity4.PROPERTY = 0;//科目属性
|
|
|
CwVouitemsEntity4.GRADE = 0;//科目级别
|
|
|
#region 2018年2月12日10:17:50 凭证汇率 李进举
|
|
|
// CwVouitemsEntity4.FCYEXRATE = decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ORIGEXCHANGERATE"].ToString() == "" ? "0" : dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ORIGEXCHANGERATE"].ToString().Trim());
|
|
|
CwVouitemsEntity4.FCYEXRATE = decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["EXRATE"].ToString() == "" ? "0" : dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["EXRATE"].ToString().Trim());
|
|
|
|
|
|
#endregion
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "1")
|
|
|
{
|
|
|
|
|
|
if (dsFC != null)
|
|
|
{
|
|
|
#region 实收支资料
|
|
|
CwVouitemsEntity4.ACCID = dsCwDesign.Tables[0].Rows[0]["FC"].ToString().Trim();
|
|
|
CwVouitemsEntity4.ACCNAME = dsFC.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
//
|
|
|
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() == "RMB")
|
|
|
{
|
|
|
CwVouitemsEntity4.AMTDR = -Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = "RMB";//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie = strJie- Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);
|
|
|
dlAMTDR =dlAMTDR- Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
dlAMTCR += 0;//本位币借方金额(互斥)
|
|
|
dlFCYDR += 0;//外币借方金额
|
|
|
dlFCYCR += 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.FCYEXRATE = 1;//汇率
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.AMTDR = -Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = -Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = true;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim();//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie =strJie-Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);
|
|
|
dlAMTDR =dlAMTDR-Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币贷方金额(互斥)
|
|
|
dlAMTCR += 0;//本位币借方金额(互斥)
|
|
|
dlFCYDR =dlFCYDR-Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//外币借方金额
|
|
|
dlFCYCR += 0;//外币贷方金额
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CwVouitemsEntity4.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity4.CUSTOMERNAME = "";//客户(系统)
|
|
|
strBPVW = dsCwDesign.Tables[0].Rows[0]["BRTW"].ToString().Trim();
|
|
|
strEXPLAN = "收";
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
else if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "2")
|
|
|
{
|
|
|
#region 实付支资料
|
|
|
|
|
|
CwVouitemsEntity4.ACCID = dsCwDesign.Tables[0].Rows[0]["FC"].ToString().Trim();
|
|
|
CwVouitemsEntity4.ACCNAME = dsFC.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
//
|
|
|
if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CURR"].ToString().Trim() == "RMB")
|
|
|
{
|
|
|
CwVouitemsEntity4.AMTDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = "RMB";//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie =strJie+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);
|
|
|
dlAMTCR += 0;//本位币贷方金额(互斥)
|
|
|
dlAMTDR =dlAMTDR+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//本位币借方金额(互斥)
|
|
|
dlFCYDR += 0;//外币借方金额
|
|
|
dlFCYCR += 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.FCYEXRATE = 1;//汇率
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.AMTDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = true;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = "USD";//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie =strJie+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);
|
|
|
dlAMTCR += 0;//本位币贷方金额(互斥)
|
|
|
dlAMTDR =dlAMTDR+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()) * CwVouitemsEntity4.FCYEXRATE, 2);//本位币借方金额(互斥)
|
|
|
dlFCYCR += 0;//外币借方金额
|
|
|
dlFCYDR =dlFCYDR+Math.Round(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["ADVANCE_MONEY"].ToString().Trim()),2);//外币贷方金额
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
CwVouitemsEntity4.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity4.CUSTOMERNAME = "";//客户(系统)
|
|
|
strBPVW = dsCwDesign.Tables[0].Rows[0]["BPVW"].ToString().Trim();
|
|
|
strEXPLAN = "付";
|
|
|
strEXPLAN += "/" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
n = n + 1;
|
|
|
CwVouitemsEntity4.QTYUNIT = "";//数量包装单位
|
|
|
CwVouitemsEntity4.QTYDR = 0;//借方数量
|
|
|
CwVouitemsEntity4.QTYCR = 0;//贷方数量
|
|
|
//
|
|
|
CwVouitemsEntity4.EXPLAN = strEXPLAN;//摘要,规则生成ALL
|
|
|
CwVouitemsEntity4.DEPTID = "";//strDEPTID;//部门(系统)
|
|
|
CwVouitemsEntity4.EMPLID = "";//strEMPLID;//人员(系统)
|
|
|
CwVouitemsEntity4.SALE = "";//strSALE;//人员名称
|
|
|
CwVouitemsEntity4.PITEMID = 0;//父级项目编号
|
|
|
CwVouitemsEntity4.ITEMID = "0";//项目编号
|
|
|
CwVouitemsEntity4.FIELD1 = "";//预留字段1
|
|
|
CwVouitemsEntity4.FIELD2 = "";//预留字段2
|
|
|
CwVouitemsEntity4.FIELD3 = "";//预留字段3
|
|
|
CwVouitemsEntity4.FIELD4 = "";//预留字段4
|
|
|
CwVouitemsEntity4.FIELD5 = "";//预留字段5
|
|
|
CwVouitemsEntity4.FIELD6 = "";//预留字段6
|
|
|
CwVouitemsEntity4.FIELD7 = "";//预留字段7
|
|
|
CwVouitemsEntity4.FIELD8 = "";//预留字段8
|
|
|
CwVouitemsEntity4.FIELD9 = "";//预留字段9
|
|
|
CwVouitemsEntity4.FIELD10 = "";//预留字段10
|
|
|
CwVouitemsEntity4.ISSYS = true;//是否手动录入
|
|
|
CwVouitemsEntity4.FSETTLCODE = "";//结算方式
|
|
|
CwVouitemsEntity4.FSETTLENO = "";//财务辅助编号
|
|
|
CwVouitemsEntity4.MODIFIEDUSER = userid;//最后一次更新操作人
|
|
|
CwVouitemsEntity4.BLNO = "";//BILLNOstrBILLNOALL
|
|
|
|
|
|
CwVouitemsEntities.Add(CwVouitemsEntity4);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
//#region 插入明细表 汇兑损益
|
|
|
// dlAMTDR = 0;//本位币贷方金额(互斥)
|
|
|
//dlAMTCR = 0;//本位币借方金额(互斥)
|
|
|
//dlFCYDR = 0;//外币借方金额
|
|
|
// dlFCYCR = 0;//外币贷方金额
|
|
|
////
|
|
|
//for (int i = 0; i < dsVWChFeeSettlementDo_Z.Tables[0].Rows.Count; i++)
|
|
|
//{
|
|
|
// Decimal dl = Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["stlttl"].ToString().Trim())-(Decimal.Parse(dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["hj"].ToString().Trim()));
|
|
|
// if (dl != 0)
|
|
|
// {
|
|
|
// CwVouitemsEntity CwVouitemsEntity4 = new CwVouitemsEntity();
|
|
|
// //CwVouitemsEntity4.GID 唯一编码 newid()
|
|
|
// CwVouitemsEntity4.ORDNO = strORDNO.Trim();
|
|
|
// CwVouitemsEntity4.ITEMNO = n;// 行号
|
|
|
// CwVouitemsEntity4.PACCID = "";//父级科目贷码
|
|
|
// CwVouitemsEntity4.PROPERTY = 0;//科目属性
|
|
|
// CwVouitemsEntity4.GRADE = 0;//科目级别
|
|
|
|
|
|
// if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "1")
|
|
|
// {
|
|
|
|
|
|
// if (dsEGOL != null)
|
|
|
// {
|
|
|
// #region 实收支资料
|
|
|
// CwVouitemsEntity4.ACCID = dsCwDesign.Tables[0].Rows[0]["FC"].ToString().Trim();
|
|
|
// CwVouitemsEntity4.ACCNAME = dsEGOL.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
// //
|
|
|
// CwVouitemsEntity4.AMTDR = dl;//本位币贷方金额(互斥)
|
|
|
// CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
// CwVouitemsEntity4.FCYDR = 0;//外币借方金额
|
|
|
// CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
// CwVouitemsEntity4.ISFCY = false;//是否外币
|
|
|
// CwVouitemsEntity4.FCYNO = "RMB";//外币编号usd
|
|
|
// CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
// CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
// CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
// CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
// if (dsEGOL.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
// {
|
|
|
// CwVouitemsEntity4.DC = "D";//借方向
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
|
|
|
// CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
// }
|
|
|
// //
|
|
|
// strJie += dl;
|
|
|
// dlAMTDR += dl;//本位币贷方金额(互斥)
|
|
|
// dlAMTCR += 0;//本位币借方金额(互斥)
|
|
|
// dlFCYDR += 0;//外币借方金额
|
|
|
// dlFCYCR += 0;//外币贷方金额
|
|
|
|
|
|
// CwVouitemsEntity4.CORPID = "";//客户(系统)
|
|
|
// CwVouitemsEntity4.CUSTOMERNAME = "";//客户(系统)
|
|
|
// strBPVW = dsCwDesign.Tables[0].Rows[0]["BRTW"].ToString().Trim();
|
|
|
// strEXPLAN = "收";
|
|
|
// strEXPLAN += "/" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
|
|
|
// #endregion
|
|
|
// }
|
|
|
|
|
|
|
|
|
// }
|
|
|
// else if (dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["BILLTYPE"].ToString().Trim() == "2")
|
|
|
// {
|
|
|
// #region 实付支资料
|
|
|
|
|
|
// CwVouitemsEntity4.ACCID = dsCwDesign.Tables[0].Rows[0]["FC"].ToString().Trim();
|
|
|
// CwVouitemsEntity4.ACCNAME = dsEGOL.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
// //
|
|
|
// CwVouitemsEntity4.AMTDR = -dl;//本位币贷方金额(互斥)
|
|
|
// CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
// CwVouitemsEntity4.FCYDR = 0;//外币借方金额
|
|
|
// CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
// CwVouitemsEntity4.ISFCY = false;//是否外币
|
|
|
// CwVouitemsEntity4.FCYNO = "RMB";//外币编号usd
|
|
|
// CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
// CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
// CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
// CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
// if (dsEGOL.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
// {
|
|
|
// CwVouitemsEntity4.DC = "D";//借方向
|
|
|
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
|
|
|
// CwVouitemsEntity4.DC = "C";//借方向
|
|
|
// }
|
|
|
// //
|
|
|
// strDai += dl;
|
|
|
// dlAMTDR += -dl;//本位币贷方金额(互斥)
|
|
|
// dlAMTCR += 0;//本位币借方金额(互斥)
|
|
|
// dlFCYDR += 0;//外币借方金额
|
|
|
// dlFCYCR += 0;//外币贷方金额
|
|
|
|
|
|
// CwVouitemsEntity4.CORPID = "";//客户(系统)
|
|
|
// CwVouitemsEntity4.CUSTOMERNAME = "";//客户(系统)
|
|
|
// strBPVW = dsCwDesign.Tables[0].Rows[0]["BPVW"].ToString().Trim();
|
|
|
// strEXPLAN = "付";
|
|
|
// strEXPLAN += "/" + dsVWChFeeSettlementDo_Z.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
|
|
|
// #endregion
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
// n = n + 1;
|
|
|
// CwVouitemsEntity4.FCYEXRATE = 0;//汇率
|
|
|
// CwVouitemsEntity4.QTYUNIT = "";//数量包装单位
|
|
|
// CwVouitemsEntity4.QTYDR = 0;//借方数量
|
|
|
// CwVouitemsEntity4.QTYCR = 0;//贷方数量
|
|
|
// //
|
|
|
// CwVouitemsEntity4.EXPLAN = strEXPLAN;//摘要,规则生成ALL
|
|
|
// CwVouitemsEntity4.DEPTID = "";//strDEPTID;//部门(系统)
|
|
|
// CwVouitemsEntity4.EMPLID = "";//strEMPLID;//人员(系统)
|
|
|
// CwVouitemsEntity4.SALE = "";//strSALE;//人员名称
|
|
|
// CwVouitemsEntity4.PITEMID = 0;//父级项目编号
|
|
|
// CwVouitemsEntity4.ITEMID = "0";//项目编号
|
|
|
// CwVouitemsEntity4.FIELD1 = "";//预留字段1
|
|
|
// CwVouitemsEntity4.FIELD2 = "";//预留字段2
|
|
|
// CwVouitemsEntity4.FIELD3 = "";//预留字段3
|
|
|
// CwVouitemsEntity4.FIELD4 = "";//预留字段4
|
|
|
// CwVouitemsEntity4.FIELD5 = "";//预留字段5
|
|
|
// CwVouitemsEntity4.FIELD6 = "";//预留字段6
|
|
|
// CwVouitemsEntity4.FIELD7 = "";//预留字段7
|
|
|
// CwVouitemsEntity4.FIELD8 = "";//预留字段8
|
|
|
// CwVouitemsEntity4.FIELD9 = "";//预留字段9
|
|
|
// CwVouitemsEntity4.FIELD10 = "";//预留字段10
|
|
|
// CwVouitemsEntity4.ISSYS = true;//是否手动录入
|
|
|
// CwVouitemsEntity4.FSETTLCODE = "";//结算方式
|
|
|
// CwVouitemsEntity4.FSETTLENO = "";//财务辅助编号
|
|
|
// CwVouitemsEntity4.MODIFIEDUSER = userid;//最后一次更新操作人
|
|
|
// CwVouitemsEntity4.BLNO = "";//BILLNOstrBILLNOALL
|
|
|
|
|
|
// CwVouitemsEntities.Add(CwVouitemsEntity4);
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 插入明细表 汇兑损益
|
|
|
dlAMTDR = 0;//本位币贷方金额(互斥)
|
|
|
dlAMTCR = 0;//本位币借方金额(互斥)
|
|
|
dlFCYDR = 0;//外币借方金额
|
|
|
dlFCYCR = 0;//外币贷方金额
|
|
|
//
|
|
|
|
|
|
decimal TTLDR = 0;
|
|
|
decimal TTLCR = 0;
|
|
|
|
|
|
foreach (var enumValue in CwVouitemsEntities)
|
|
|
{
|
|
|
TTLDR = TTLDR + enumValue.AMTDR;
|
|
|
TTLCR = TTLCR + enumValue.AMTCR;
|
|
|
strEXPLAN = enumValue.EXPLAN;
|
|
|
}
|
|
|
|
|
|
|
|
|
if (TTLDR - TTLCR != 0)
|
|
|
{
|
|
|
CwVouitemsEntity CwVouitemsEntity4 = new CwVouitemsEntity();
|
|
|
//CwVouitemsEntity4.GID 唯一编码 newid()
|
|
|
CwVouitemsEntity4.ORDNO = strORDNO.Trim();
|
|
|
CwVouitemsEntity4.ITEMNO = n;// 行号
|
|
|
CwVouitemsEntity4.PACCID = "";//父级科目贷码
|
|
|
CwVouitemsEntity4.PROPERTY = 0;//科目属性
|
|
|
CwVouitemsEntity4.GRADE = 0;//科目级别
|
|
|
|
|
|
if (dsEGOL != null)
|
|
|
{
|
|
|
#region 实收支资料
|
|
|
CwVouitemsEntity4.ACCID = dsCwDesign.Tables[0].Rows[0]["EGOL"].ToString().Trim();
|
|
|
CwVouitemsEntity4.ACCNAME = dsEGOL.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
|
|
|
//
|
|
|
CwVouitemsEntity4.AMTDR = (TTLCR - TTLDR);//本位币贷方金额(互斥)
|
|
|
CwVouitemsEntity4.AMTCR = 0;//本位币借方金额(互斥)
|
|
|
CwVouitemsEntity4.FCYDR = 0;//外币借方金额
|
|
|
CwVouitemsEntity4.FCYCR = 0;//外币贷方金额
|
|
|
CwVouitemsEntity4.ISFCY = false;//是否外币
|
|
|
CwVouitemsEntity4.FCYNO = "RMB";//外币编号usd
|
|
|
CwVouitemsEntity4.ISDEPTACC = false;//核算部门,按规则设置生成
|
|
|
CwVouitemsEntity4.ISEMPLACC = false;//核算人员,按规则设置生成
|
|
|
CwVouitemsEntity4.ISCORPACC = false;//核算客户,按规则设置生成
|
|
|
CwVouitemsEntity4.ISITEMACC = false;//核算项目,按规则设置生成
|
|
|
if (dsEGOL.Tables[0].Rows[0]["DC"].ToString().Trim() == "贷")
|
|
|
{
|
|
|
CwVouitemsEntity4.DC = "D";//借方向
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
CwVouitemsEntity4.DC = "C";//借方向
|
|
|
|
|
|
}
|
|
|
//
|
|
|
strJie += (TTLCR - TTLDR);
|
|
|
dlAMTDR += (TTLCR - TTLDR);//本位币贷方金额(互斥)
|
|
|
dlAMTCR += 0;//本位币借方金额(互斥)
|
|
|
dlFCYDR += 0;//外币借方金额
|
|
|
dlFCYCR += 0;//外币贷方金额
|
|
|
|
|
|
CwVouitemsEntity4.CORPID = "";//客户(系统)
|
|
|
CwVouitemsEntity4.CUSTOMERNAME = "";//客户(系统)
|
|
|
strBPVW = dsCwDesign.Tables[0].Rows[0]["BRTW"].ToString().Trim();
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n = n + 1;
|
|
|
CwVouitemsEntity4.FCYEXRATE =1;//汇率
|
|
|
CwVouitemsEntity4.QTYUNIT = "";//数量包装单位
|
|
|
CwVouitemsEntity4.QTYDR = 0;//借方数量
|
|
|
CwVouitemsEntity4.QTYCR = 0;//贷方数量
|
|
|
//
|
|
|
CwVouitemsEntity4.EXPLAN = strEXPLAN;//摘要,规则生成ALL
|
|
|
CwVouitemsEntity4.DEPTID = "";//strDEPTID;//部门(系统)
|
|
|
CwVouitemsEntity4.EMPLID = "";//strEMPLID;//人员(系统)
|
|
|
CwVouitemsEntity4.SALE = "";//strSALE;//人员名称
|
|
|
CwVouitemsEntity4.PITEMID = 0;//父级项目编号
|
|
|
CwVouitemsEntity4.ITEMID = "0";//项目编号
|
|
|
CwVouitemsEntity4.FIELD1 = "";//预留字段1
|
|
|
CwVouitemsEntity4.FIELD2 = "";//预留字段2
|
|
|
CwVouitemsEntity4.FIELD3 = "";//预留字段3
|
|
|
CwVouitemsEntity4.FIELD4 = "";//预留字段4
|
|
|
CwVouitemsEntity4.FIELD5 = "";//预留字段5
|
|
|
CwVouitemsEntity4.FIELD6 = "";//预留字段6
|
|
|
CwVouitemsEntity4.FIELD7 = "";//预留字段7
|
|
|
CwVouitemsEntity4.FIELD8 = "";//预留字段8
|
|
|
CwVouitemsEntity4.FIELD9 = "";//预留字段9
|
|
|
CwVouitemsEntity4.FIELD10 = "";//预留字段10
|
|
|
CwVouitemsEntity4.ISSYS = true;//是否手动录入
|
|
|
CwVouitemsEntity4.FSETTLCODE = "";//结算方式
|
|
|
CwVouitemsEntity4.FSETTLENO = "";//财务辅助编号
|
|
|
CwVouitemsEntity4.MODIFIEDUSER = userid;//最后一次更新操作人
|
|
|
CwVouitemsEntity4.BLNO = "";//BILLNOstrBILLNOALL
|
|
|
|
|
|
CwVouitemsEntities.Add(CwVouitemsEntity4);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 插入主表
|
|
|
string rq = sVOUDATE.Trim();
|
|
|
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(dsCwDesign, 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 = strBPVW.Trim()+strVOUALLNO.Trim();//月初清零 varchar (16)
|
|
|
CwVouchersEntity.VKNO = strBPVW.Trim();//凭证字="";//varchar="";//(8)
|
|
|
CwVouchersEntity.ATTACHS = int.Parse(dsCwDesign.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 = sPREPARED;//制单人="";//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
|
|
|
#endregion
|
|
|
|
|
|
//生成入库
|
|
|
string strSel = " and BILLNO=" + sGids + " " ;
|
|
|
|
|
|
if (CwVouitemsEntities.Count == 0) {
|
|
|
iResult = 2;
|
|
|
} else
|
|
|
iResult = CwVouchersDA.setInsertAll(CwVouchersEntity, CwVouitemsEntities, "ch_fee_hexiao", strBPVW.Trim() + strVOUALLNO, strSel, userid, 2);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return -1;
|
|
|
}
|
|
|
return iResult;
|
|
|
}
|
|
|
|
|
|
protected static String getVOUNO(DataSet dsCwDesign, string strY, string strM)
|
|
|
{
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
string sVOUNO = "";
|
|
|
string strVOUNO = "select top 1 VOUNO from cw_vouchers where ACCYEAR='" + strY + "' and ACCMONTH='" + strM + "' and (ISDELETE=0 or ISDELETE is null) order by convert(decimal(10),VOUNO) desc";
|
|
|
strVOUNO = T_ALL_DA.GetStrSQL("VOUNO", strVOUNO);
|
|
|
if (strVOUNO.Trim() == "")
|
|
|
{
|
|
|
strVOUNO = "0001";
|
|
|
DataSet ds = T_ALL_DA.GetAllSQL("select * from code_rule where RULENAME='凭证号' and RULETYPE=5");
|
|
|
if (ds != null)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["RULENOSTART"].ToString().Trim() != "")
|
|
|
{
|
|
|
strVOUNO = ds.Tables[0].Rows[0]["RULENOSTART"].ToString().Trim();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (dsCwDesign.Tables[0].Rows[0]["ISFILLSERIALNO"].ToString().Trim() == "True")
|
|
|
{
|
|
|
string strFILL = "select top 1 serialno from code_fill_serialno where ISDELETE=0 and tablename='cw_vouchers' and serialno like '%" + strY + strM + "%' and serialno not in (select VOUALLNO from cw_vouchers where (ISDELETE=0 or ISDELETE is null)) order by serialno";
|
|
|
strFILL = T_ALL_DA.GetStrSQL("serialno", strFILL);
|
|
|
if (strFILL.Trim() != "")
|
|
|
{
|
|
|
strVOUNO = strFILL.Trim().Substring(strFILL.Length - 4);
|
|
|
//strVOUNO = strFILL.Trim().Substring(6);
|
|
|
return strVOUNO;
|
|
|
}
|
|
|
}
|
|
|
sVOUNO = (int.Parse(strVOUNO) + 1).ToString().Trim();
|
|
|
strVOUNO = sVOUNO;
|
|
|
for (int i = 0; i < 4 - sVOUNO.Length; i++)
|
|
|
{
|
|
|
strVOUNO = "0" + strVOUNO;
|
|
|
}
|
|
|
}
|
|
|
return strVOUNO;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static DBResult GetIsVoucherJK(string strGids)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
string sSQL = "SELECT count(*) as inum from (select *,(select STLNAME from [code_stlmode] where STLCODE=ch_fee_settlement.SETTLETYPE) as SETTLETYPEREF,(case when CURR='RMB' then (select BANKNAME from [sys_bank] where GID=ch_fee_settlement.ACCOUNTRMB) else (select BANKNAME from [sys_bank] where GID=ch_fee_settlement.ACCOUNTUSD) end) as ACCOUNTREF from ch_fee_settlement) as a where HXBILLNO IN ('" + strGids.Trim().Replace(",", "','") + "') and (SETTLETYPEREF <> '现金' and ISNULL(ACCOUNTREF,'') = '')";
|
|
|
int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", sSQL));
|
|
|
if (inum == 0)
|
|
|
{
|
|
|
result.Success = true;
|
|
|
result.Message = "";
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
#region 2018年2月13日11:53:03 鼎世 李进举 批量提生成凭证增加异常单号的提醒
|
|
|
string hxnoStr = "";
|
|
|
try
|
|
|
{
|
|
|
string sqlHxNoList = @"SELECT hxnoStr = ( STUFF(( SELECT ',' + b.HXBILLNO FROM ch_fee_settlement b WHERE b.HXBILLNO = a.HXBILLNO FOR XML PATH('') ), 1, 1, '') ) from (select *,(select STLNAME from [code_stlmode] where STLCODE=ch_fee_settlement.SETTLETYPE) as SETTLETYPEREF,(case when CURR='RMB' then (select BANKNAME from [sys_bank] where GID=ch_fee_settlement.ACCOUNTRMB) else (select BANKNAME from [sys_bank] where GID=ch_fee_settlement.ACCOUNTUSD) end) as ACCOUNTREF from ch_fee_settlement) as a where HXBILLNO IN ('" + strGids.Trim().Replace(",", "','") + "') and (SETTLETYPEREF <> '现金' and ISNULL(ACCOUNTREF,'') = '')";
|
|
|
hxnoStr = T_ALL_DA.GetStrSQL("hxnoStr", sqlHxNoList).ToString();
|
|
|
if (hxnoStr!="")
|
|
|
{
|
|
|
hxnoStr = "异常数据:[" + hxnoStr + "]";
|
|
|
}
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
hxnoStr = "";
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
result.Success = false;
|
|
|
result.Message = "请选择已锁定,且未生成凭证的单据!"+hxnoStr;
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static public List<MsCwVouchersGl4> GetCodeCurrencyListJK(string sVOUDATE, string companyid)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("select top 1 CURRENCY=(select top 1 CODENAME from code_currency where GID=currency_exchange.CURRENCYID),[VALUE] as FCYEXRATE from currency_exchange where COMPANYID='" + companyid + "' and ISDELETE=0");
|
|
|
if (!string.IsNullOrEmpty(sVOUDATE))
|
|
|
{
|
|
|
strSql.Append(" and STARTTIME<='" + sVOUDATE + "' and ENDTIME>='" + sVOUDATE + "'");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" and STARTTIME<=GETDATE() and ENDTIME>=GETDATE()");
|
|
|
}
|
|
|
strSql.Append(" order by ENDTIME desc");
|
|
|
List<MsCwVouchersGl4> ListMsCwVouchersGl4 = new List<MsCwVouchersGl4>();
|
|
|
ListMsCwVouchersGl4 = SetCodeCurrencyData(strSql);
|
|
|
if (ListMsCwVouchersGl4.Count < 1)
|
|
|
{
|
|
|
strSql.Clear();
|
|
|
strSql.Append("select top 1 CODENAME as CURRENCY,[DEFAULTRATE] as FCYEXRATE from code_currency where CODENAME='USD'");
|
|
|
}
|
|
|
return SetCodeCurrencyData(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<MsCwVouchersGl4> SetCodeCurrencyData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<MsCwVouchersGl4>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
MsCwVouchersGl4 data = new MsCwVouchersGl4();
|
|
|
#region Set DB data to Object
|
|
|
data.CURR = (reader["CURRENCY"] == null ? "" : Convert.ToString(reader["CURRENCY"]));
|
|
|
data.FCYEXRATE = (reader["FCYEXRATE"] == null ? "" : Convert.ToString(reader["FCYEXRATE"]));
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 是否自动弹出结算接口凭证
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public static DBResult onIsSettlementsopenJK()
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
string sSQL = "SELECT top 1 ISSETTLEMENTSOPEN from cw_design";
|
|
|
Boolean blISSETTLEMENTSOPEN = Boolean.Parse(T_ALL_DA.GetStrSQL("ISSETTLEMENTSOPEN", sSQL));
|
|
|
if (blISSETTLEMENTSOPEN)
|
|
|
{
|
|
|
result.Success = true;
|
|
|
result.Message = "";
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|