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.CW ;
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 " ) ;
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 = " (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 + "'))";
str = " exists( select 1 from vw_user where deptgid='" + deptid + "' and(showname=OP OR showname=SALE OR showname=CUSTSERVICE OR showname=FRCUSTSERVICE OR showname=INPUTBY)) " ;
}
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=OP OR showname=SALE OR showname=CUSTSERVICE OR showname=v_op_bill.FRCUSTSERVICE OR showname=v_op_bill.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" )
{
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 " ;
}
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 ] [ "FC" ] . 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
}
}