You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6514 lines
392 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using DSWeb.MvcShipping.Models.MsCwVouchersGlInvoiceEntity;
using DSWeb.MvcShipping.Models.MsCwAccitemsGl;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using DSWeb.Areas.CommMng.Models;
using HcUtility.Comm;
using System.Data.SqlClient;
using DSWeb.DataAccess;
using HcUtility.Core;
using DSWeb.Areas.CommMng.DAL;
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.MsSysParamSet;
using System.Linq;
namespace DSWeb.MvcShipping.DAL.MsCwVouchersGlInvoiceDAL
{
public class MsCwVouchersGlInvoiceDAL
{
#region 按业务_查询、导出、打印
static public List<MsCwVouchersGlInvoiceEntity> GetDataList(string strCondition, string companyid, string strUSERID, string sort = null)
{
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
var strSql = new StringBuilder();
strSql.Append(" SELECT GID,INVOICENO,BILLNO,CUSTOMERNAME,ACTUALCUSTOMERNAME,INVOICECUSTNAME,INVOICEMAKETIME,BANK,ACCOUNT,BSNO,VESSELVOYAGE,ETD,POL,POD");
strSql.Append(" ,FEEITEM,AMOUNT,INVAMOUNT,AMOUNTCAPITAL,OTCURRAMOUNT,CURRENCY,REMARK,APPLICANT,APPLYTIME,OPERATOR,LICENSECODE,TAXCODE,INVOICETYPE,BILLSTATUS");
strSql.Append(" ,ISNEEDPRINT,ISNEEDFEE,OPERATETIME,MBLNO,EXCHANGERATE,PRINTCAPITAL,PRINTAMOUNT,PRINTTITLE,COMPANYID,VOUCHERNO ");
strSql.Append(" ,CUSTRATENO,CUSTADDRTEL,CUSTBANK,INVOICECATEGORY,ISDELETE,DELETEOPERATOR,DELETETIME,PTORRED,SETRED ");
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97008 and EnumValueID=cm.INVOICECATEGORY) as INVOICECATEGORYREF");
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97009 and EnumValueID=cm.INVOICETYPE) as INVOICETYPEREF");
strSql.Append(",(case cm.billstatus when 1 then '已锁定' else '未锁定' end) as BILLSTATUSREF");
strSql.Append(",(select ShowName from [user] where GID=cm.OPERATOR) as OPERATORNAME");
strSql.Append(",(select ShowName from [user] where GID=cm.DELETEOPERATOR) as DELOPERATORNAME");
strSql.Append(",dbo.GetFeeNoStlByInvNo(cm.BILLNO) as NOSTL,FEEAMOUNT ");
// strSql.Append(",VOUNO=(select top 1 VOUALLNO from cw_vouno_bs_gl WITH(NOLOCK) where BSGID=cm.GID and BSTABLENAME='ch_fee_invoice' and STARTGID='" + strCwSTARTGID + "')");
strSql.Append(",VOUNO=(select top 1 VOUALLNO from cw_vouno_bs_gl WITH(NOLOCK) where BSGID=cm.GID and BSTABLENAME='ch_fee_invoice')");
strSql.Append(" FROM ch_fee_invoice cm where 1=1 ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
//
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by CURRENCY,OPERATETIME DESC");
}
return SetData(strSql);
}
private static List<MsCwVouchersGlInvoiceEntity> SetData(StringBuilder strSql)
{
var headList = new List<MsCwVouchersGlInvoiceEntity>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCwVouchersGlInvoiceEntity data = new MsCwVouchersGlInvoiceEntity();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.BILLNO = Convert.ToString(reader["BILLNO"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.ACTUALCUSTOMERNAME = Convert.ToString(reader["ACTUALCUSTOMERNAME"]);
if (reader["CURRENCY"] != DBNull.Value)
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);
data.INVOICENO = Convert.ToString(reader["INVOICENO"]);
data.INVOICECUSTNAME = Convert.ToString(reader["INVOICECUSTNAME"]);
data.INVOICECATEGORY = Convert.ToString(reader["INVOICECATEGORY"]);
data.INVOICECATEGORYREF = Convert.ToString(reader["INVOICECATEGORYREF"]);
if (reader["INVOICETYPE"] != DBNull.Value)
data.INVOICETYPE = Convert.ToInt32(reader["INVOICETYPE"]);
data.INVOICETYPEREF = Convert.ToString(reader["INVOICETYPEREF"]);
if (reader["BILLSTATUS"] != DBNull.Value)
data.BILLSTATUS = Convert.ToInt32(reader["BILLSTATUS"]);
data.BILLSTATUSREF = Convert.ToString(reader["BILLSTATUSREF"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.VESSELVOYAGE = Convert.ToString(reader["VESSELVOYAGE"]);
data.ETD = Convert.ToString(reader["ETD"]);
data.POL = Convert.ToString(reader["POL"]);
data.POD = Convert.ToString(reader["POD"]);
if (reader["AMOUNT"] != DBNull.Value)
data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
if (reader["INVAMOUNT"] != DBNull.Value)
data.INVAMOUNT = Convert.ToDecimal(reader["INVAMOUNT"]);
data.AMOUNTCAPITAL = Convert.ToString(reader["AMOUNTCAPITAL"]);
if (reader["OTCURRAMOUNT"] != DBNull.Value)
data.OTCURRAMOUNT = Convert.ToDecimal(reader["OTCURRAMOUNT"]);
if (reader["EXCHANGERATE"] != DBNull.Value)
data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]);
else
data.EXCHANGERATE = 0;
data.APPLICANT = Convert.ToString(reader["APPLICANT"]);
// data.APPLICANTNAME = Convert.ToString(reader["APPLICANTNAME"]);
if (reader["APPLYTIME"] != DBNull.Value)
data.APPLYTIME = Convert.ToDateTime(reader["APPLYTIME"]);
if (reader["INVOICEMAKETIME"] != DBNull.Value)
data.INVOICEMAKETIME = Convert.ToDateTime(reader["INVOICEMAKETIME"]).ToString("yyyy-MM-dd");
data.OPERATOR = Convert.ToString(reader["OPERATOR"]);
data.OPERATORNAME = Convert.ToString(reader["OPERATORNAME"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.COMPANYID = Convert.ToString(reader["COMPANYID"]);
data.CUSTRATENO = Convert.ToString(reader["CUSTRATENO"]);
data.CUSTADDRTEL = Convert.ToString(reader["CUSTADDRTEL"]);
data.CUSTBANK = Convert.ToString(reader["CUSTBANK"]);
if (reader["ISNEEDPRINT"] != DBNull.Value)
data.ISNEEDPRINT = Convert.ToString(reader["ISNEEDPRINT"]);
if (reader["ISNEEDFEE"] != DBNull.Value)
data.ISNEEDFEE = Convert.ToString(reader["ISNEEDFEE"]);
if (reader["ISDELETE"] != DBNull.Value)
data.ISDELETE = Convert.ToString(reader["ISDELETE"]);
data.DELETEOPERATOR = Convert.ToString(reader["DELETEOPERATOR"]);
data.DELOPERATORNAME = Convert.ToString(reader["DELOPERATORNAME"]);
if (reader["DELETETIME"] != DBNull.Value)
data.DELETETIME = Convert.ToDateTime(reader["DELETETIME"]);
data.NOSTL = Convert.ToString(reader["NOSTL"]);
data.FEEAMOUNT = Convert.ToString(reader["FEEAMOUNT"]);
data.VOUNO = (reader["VOUNO"] == null ? "" : Convert.ToString(reader["VOUNO"]));
data.SETRED = Convert.ToString(reader["SETRED"]);
data.PTORRED = Convert.ToString(reader["PTORRED"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
//查询、导出
static public string GetDataListSQL(string strCondition, string companyid, string strUSERID)
{
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
var strSql = new StringBuilder();
strSql.Append(" SELECT GID,INVOICENO,BILLNO,CUSTOMERNAME,ACTUALCUSTOMERNAME,INVOICECUSTNAME,INVOICEMAKETIME,BANK,ACCOUNT,BSNO,VESSELVOYAGE,ETD,POL,POD");
strSql.Append(" ,FEEITEM,AMOUNT,INVAMOUNT,AMOUNTCAPITAL,OTCURRAMOUNT,CURRENCY,REMARK,APPLICANT,APPLYTIME,OPERATOR,LICENSECODE,TAXCODE,INVOICETYPE,BILLSTATUS");
strSql.Append(" ,ISNEEDPRINT,ISNEEDFEE,OPERATETIME,MBLNO,EXCHANGERATE,PRINTCAPITAL,PRINTAMOUNT,PRINTTITLE,COMPANYID,VOUCHERNO ");
strSql.Append(" ,CUSTRATENO,CUSTADDRTEL,CUSTBANK,INVOICECATEGORY,ISDELETE,DELETEOPERATOR,DELETETIME,PTORRED,SETRED ");
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97008 and EnumValueID=cm.INVOICECATEGORY) as INVOICECATEGORYREF");
strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97009 and EnumValueID=cm.INVOICETYPE) as INVOICETYPEREF");
strSql.Append(",(case cm.billstatus when 1 then '已锁定' else '未锁定' end) as BILLSTATUSREF");
strSql.Append(",(select ShowName from [user] where GID=cm.OPERATOR) as OPERATORNAME");
strSql.Append(",(select ShowName from [user] where GID=cm.DELETEOPERATOR) as DELOPERATORNAME");
strSql.Append(",dbo.GetFeeNoStlByInvNo(cm.BILLNO) as NOSTL,FEEAMOUNT ");
// strSql.Append(",VOUNO=(select top 1 VOUALLNO from cw_vouno_bs_gl WITH(NOLOCK) where BSGID=cm.GID and BSTABLENAME='ch_fee_invoice' and STARTGID='" + strCwSTARTGID + "')");
strSql.Append(",VOUNO=(select top 1 VOUALLNO from cw_vouno_bs_gl WITH(NOLOCK) where BSGID=cm.GID and BSTABLENAME='ch_fee_invoice')");
strSql.Append(" FROM ch_fee_invoice cm where 1=1 ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" and " + strCondition);
}
return strSql.ToString();
}
#endregion
#region 生成结转凭证
#region 币别列表
static public List<MsCwVouchersGl4> GetCodeCurrencyList(string strGids, string companyid, string strUserID)
{
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(strUserID);
var strSql = new StringBuilder();
strSql.Append("select CURRENCY,(select top 1 BEGRATE from cw_currency_rate where ACCDATE='" + strCwACCDATE + "' and STARTGID='" + strCwSTARTGID + "' and LINKGID in (select GID from code_currency where CODENAME=v_ch_fee_invoice_pz.CURRENCY)) as FCYEXRATE from v_ch_fee_invoice_pz where CURRENCY<>'RMB'");
if (!string.IsNullOrEmpty(strGids))
{
strSql.Append(strGids);
}
else
{
strSql.Append(" and 1<0");
}
strSql.Append(" group by CURRENCY order by CURRENCY");
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;
}
#endregion
#region 按费用_判断是否生成
public static DBResult onIsCwVouchers(string strGids, string strUserID)
{
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
var result = new DBResult();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
strGids = "'" + strGids.Trim().Replace(",", "','") + "'";
string sSQL = "SELECT count(*) as iNum From VW_ch_fee_invoice WHERE 1=1 and GID in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and STARTGID='" + strCwSTARTGID + "') and GID in (" + strGids.Trim() + ")";
int iNum = int.Parse(T_ALL_DA.GetStrSQL("iNum", sSQL));
result.Success = true;
result.Message = "";
if (iNum > 0)
{
result.Success = false;
result.Message = "有已经生成凭证的数据,不允许重复生成,请重新选择!";
return result;
}
result.Success = true;
result.Message = "";
return result;
}
#endregion
public static DBResult onAddCwVouchers(string strGids, MsCwVouchersGl3 headData, List<MsCwVouchersGl4> bodyList, string strUserID, string strSHOWNAME, string companyid)
{
Database db = DatabaseFactory.CreateDatabase();
var result = new DBResult();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
string sSQL = "";
int iResult = 0;
string zt = "";
string sError = "操作完成!";
var invlist = strGids.Split(',');
string sAndGids = " and GID in ('" + strGids.Trim().Replace(",", "','") + "')";
var CWSTARTUSING = MsSysParamSetDAL.GetData("PARAMNAME='CWSTARTUSING'");
if (CWSTARTUSING.PARAMVALUE != "")
{
if (strCwSTARTGID != CWSTARTUSING.PARAMVALUE)
{
result.Success = false;
result.Message = "当前账套不是设置的账套,不能生成凭证!";
return result;
}
}
var VOUAUTOCHECK = MsSysParamSetDAL.GetData("PARAMNAME='VOUAUTOCHECK'").PARAMVALUE;
#region 生成前的判断
//帐套设置
sSQL = "SELECT top 1 * from cw_design_gl where [STARTGID]='" + strCwSTARTGID + "' and AR<>'' and ARFC<>'' and MBINCOME<>'' and TMFCI<>'' and OUTPUTTAX<>''";// and CORPID='"+companyid+"'
DataSet dsCwDesign = T_ALL_DA.GetAllSQL(sSQL);
if (dsCwDesign == null)
{
result.Success = false;
result.Message = "请先设置帐套信息!" + result.Message;
return result;
}
//帐套设置_核算科目
sSQL = "SELECT [GID],[LINKGID],[ITEMGID],[OPTYPE],[MODIFIEDUSER],[MODIFIEDTIME],[MODIFIEDUSERNAME]=(select top 1 SHOWNAME from [user] where gid=[cw_design_gl_item].MODIFIEDUSER),[ITEMCODE]=(SELECT top 1 ITEMCODE from cw_item where GID=[cw_design_gl_item].[ITEMGID]),[ITEMNAME]=(SELECT top 1 ITEMNAME from cw_item where GID=[cw_design_gl_item].[ITEMGID]) FROM [cw_design_gl_item] WITH(NOLOCK) where LINKGID in (SELECT top 1 GID from cw_design_gl WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "') ORDER BY [ITEMCODE]";
DataSet dsCwDesignItem = T_ALL_DA.GetAllSQL(sSQL);
//判断总账科目是否完全配置好
//科目设置 应收USD
sSQL = "SELECT count(CURRENCY) as inum From VW_ch_fee_invoice WHERE 1=1 and GID not in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and STARTGID='" + strCwSTARTGID + "')" + sAndGids + " and CURRENCY<>'RMB' and CURRENCY not in (SELECT CURRENCY from cw_accitems_currency where LINKGID in (SELECT GID from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim() + "')) GROUP BY CURRENCY ORDER BY CURRENCY";
string sNum = T_ALL_DA.GetStrSQL("inum", sSQL);
if (sNum != "" && sNum != "0")
{
result.Success = false;
result.Message = "请先设置应收账款外币科目(" + dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim() + ")的币别信息!" + result.Message;
return result;
}
//判断是否有核算项目的科目
if (dsCwDesignItem == null)
{
sSQL = "SELECT COUNT(*) as inum from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "' and ISITEMACC=1 and ACCID in ('" + dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() + "','" + dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim() + "','" + dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() + "','" + dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim() + "','" + dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim() + "','" + dsCwDesign.Tables[0].Rows[0]["INPUTTAX"].ToString().Trim() + "')";
sNum = T_ALL_DA.GetStrSQL("inum", sSQL);
if (sNum != "" && sNum != "0")
{
result.Success = false;
result.Message = "请先设置帐套信息中的核算项目匹配设置!" + result.Message;
return result;
}
}
#endregion
//合并生成发票开出凭证凭证
string[] itemsGID = strGids.Trim().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(strUserID);
var accitemslist = BasicDataRefDAL.GetCwAccitemsGlAll("", strUserID, strCwSTARTGID, strCwACCDATE);
if (dsCwDesign.Tables[0].Rows[0]["ISCTGCIC"].ToString().Trim() == "True")
{
#region 合并生成发票开出凭证凭证
#region 提前生成凭证号
string sACCDATE = headData.VOUDATE.Substring(0, 7);
if (DateTime.Parse(sACCDATE + "-01") < DateTime.Parse(strCwACCDATE + "-01"))
{
sACCDATE = strCwACCDATE;
}
string strBPVW = dsCwDesign.Tables[0].Rows[0]["TVW"].ToString().Trim();
string strVOUNOhj = DSWeb.MvcShipping.DAL.MsBaseInfoDAL.MsBaseInfoDAL.GetCwVOUNO(strBPVW, sACCDATE, strUserID);
string[] items = strVOUNOhj.Trim().Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
string strVOUNO = items[3].ToString().Trim();
string sACCMONTH = DateTime.Parse(headData.VOUDATE.ToString()).Month.ToString();//月
if (sACCMONTH.ToString().Length == 1)
{
sACCMONTH = "0" + sACCMONTH.ToString();//月
}
string cfVOUALLNO = strBPVW + DateTime.Parse(headData.VOUDATE.ToString()).Year.ToString() + sACCMONTH + strVOUNO;//年+月+自动生成编号=凭证号
#endregion
DBResult result2 = onIsCwVouchers(strGids, strUserID);//判断是否有已经生成凭证的数据
if (!result2.Success)
{
sError = result.Message;
}
else
{
//把凭证号更新到ch_fee_invoice
//string blSQL = "update ch_fee_invoice set VOUNO='" + cfVOUALLNO + "' where 1=1 and GID not in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and STARTGID='" + strCwSTARTGID + "')" + sAndGids + " and '" + cfVOUALLNO + "' NOT in (select VOUNO from ch_fee_invoice where VOUNO<>'' and VOUNO is not NULL)";
//把凭证号和业务GID插入到凭证生成的关系表
string blSQL = "INSERT INTO [cw_vouno_bs_gl]([GID],[BSTABLENAME],[BSGID],[VOUALLNO],[ORDNO],[STARTGID],[CREATEUSER],[CREATETIME])"
+ "select newid() as [GID],'ch_fee_invoice' as [BSTABLENAME],GID as [BSGID],'" + cfVOUALLNO + "' as [VOUALLNO],'' as [ORDNO],'" + strCwSTARTGID + "' as [STARTGID],'" + strUserID + "' as [CREATEUSER],getdate() as [CREATETIME]"
+ " from ch_fee_invoice where 1=1" + sAndGids + " and gid not in (select BSGID from cw_vouno_bs_gl WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "')";
int iCount = db.ExecuteNonQuery(CommandType.Text, blSQL);
//
if (iCount != 0)
{
iResult = getHxtSC(dsCwDesign, dsCwDesignItem, sAndGids.Trim(), headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK, accitemslist);
//if (dsCwDesign.Tables[0].Rows[0]["ISINVAMOUNTASSUM"].ToString().Trim() == "True")
//{
// iResult = getInvSumSC(dsCwDesign, dsCwDesignItem, sAndGids.Trim(), headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK, invlist);
//}
//else
//{
// if (dsCwDesign.Tables[0].Rows[0]["ISINVRATESELF"].ToString().Trim() == "True")
// iResult = getInvSC(dsCwDesign, dsCwDesignItem, sAndGids.Trim(), headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK);
// else iResult = getHxtSC(dsCwDesign, dsCwDesignItem, sAndGids.Trim(), headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK);
//}
zt += "," + iResult;
if (zt.IndexOf("-") > 0)
{
sError = "共" + itemsGID.Length + "票发票单生成0条凭证失败1条凭证";
}
else
{
sError = "共" + itemsGID.Length + "票发票单生成1条凭证失败0条凭证";
}
}
else
{
sError = "共" + itemsGID.Length + "票发票单生成1条凭证失败0条凭证";
}
}
#endregion
}
else
{
#region 不 合并生成发票开出凭证凭证
int n = 0;
if (itemsGID.Length > 0)
{
for (int k = 0; k < itemsGID.Length; k++)
{
//按业务
sAndGids = " and GID in ('" + itemsGID[k].ToString().Trim() + "')";
#region 提前生成凭证号
string sACCDATE = headData.VOUDATE.Substring(0, 7);
if (DateTime.Parse(sACCDATE + "-01") < DateTime.Parse(strCwACCDATE + "-01"))
{
sACCDATE = strCwACCDATE;
}
string strBPVW = dsCwDesign.Tables[0].Rows[0]["TVW"].ToString().Trim();
string strVOUNOhj = DSWeb.MvcShipping.DAL.MsBaseInfoDAL.MsBaseInfoDAL.GetCwVOUNO(strBPVW, sACCDATE, strUserID);
string[] items2 = strVOUNOhj.Trim().Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
string strVOUNO = items2[3].ToString().Trim();
string sACCMONTH = DateTime.Parse(headData.VOUDATE.ToString()).Month.ToString();//月
if (sACCMONTH.ToString().Length == 1)
{
sACCMONTH = "0" + sACCMONTH.ToString();//月
}
string cfVOUALLNO = strBPVW + DateTime.Parse(headData.VOUDATE.ToString()).Year.ToString() + sACCMONTH + strVOUNO;//年+月+自动生成编号=凭证号
#endregion
//把凭证号更新到ch_fee_invoice
//string blSQL = "update ch_fee_invoice set VOUNO='" + cfVOUALLNO + "' where 1=1 and GID not in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and STARTGID='" + strCwSTARTGID + "')" + sAndGids + " and '" + cfVOUALLNO + "' NOT in (select VOUNO from ch_fee_invoice where VOUNO<>'' and VOUNO is not NULL)";
//把凭证号和业务GID插入到凭证生成的关系表
string blSQL = "INSERT INTO [cw_vouno_bs_gl]([GID],[BSTABLENAME],[BSGID],[VOUALLNO],[ORDNO],[STARTGID],[CREATEUSER],[CREATETIME])"
+ "select newid() as [GID],'ch_fee_invoice' as [BSTABLENAME],GID as [BSGID],'" + cfVOUALLNO + "' as [VOUALLNO],'' as [ORDNO],'" + strCwSTARTGID + "' as [STARTGID],'" + strUserID + "' as [CREATEUSER],getdate() as [CREATETIME]"
+ " from ch_fee_invoice where 1=1" + sAndGids + " and gid not in (select BSGID from cw_vouno_bs_gl WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "')";
int iCount = db.ExecuteNonQuery(CommandType.Text, blSQL);
//
if (iCount != 0)
{
//if (dsCwDesign.Tables[0].Rows[0]["ISINVAMOUNTASSUM"].ToString().Trim() == "True")
//{
// iResult = getInvSumSC(dsCwDesign, dsCwDesignItem, sAndGids.Trim(), headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK, invlist);
//}
//else
//{
// if (dsCwDesign.Tables[0].Rows[0]["ISINVRATESELF"].ToString().Trim() == "True")
// iResult = getInvSC(dsCwDesign, dsCwDesignItem, sAndGids.Trim(), headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK);
// else
// iResult = getHxtSC(dsCwDesign, dsCwDesignItem, sAndGids, headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK);
//}
iResult = getHxtSC(dsCwDesign, dsCwDesignItem, sAndGids, headData, bodyList, strUserID, companyid, cfVOUALLNO, VOUAUTOCHECK, accitemslist);
zt += "," + iResult;
if (zt.IndexOf("-") < 0)
{
n++;
}
}
else
{
sError = "有已经生成凭证的数据,不允许重复生成,请重新选择!";
continue;
}
}
}
sError = "共" + itemsGID.Length + "票发票单,生成" + n + "条凭证,失败" + (itemsGID.Length - n) + "条凭证!";
#endregion
}
//
//if (zt.IndexOf("-") > 0)
//{
// result.Success = false;
// result.Message = "操作出错" + result.Message;//部分凭证生成
// return result;
//}
result.Success = true;
result.Message = sError;//"操作完成!";
return result;
}
/// <summary>
/// 生成凭证
/// </summary>
/// <param name="ds">帐套设置数据集</param>
/// <param name="sGids">gid业务编号</param>
/// <returns></returns>
///
/* 按发票开票金额生成凭证*/
protected static int getInvSumSC(DataSet dsCwDesign, DataSet dsCwDesignItem, string sAndGids, MsCwVouchersGl3 headData, List<MsCwVouchersGl4> bodyList, string strUserID, string strCompanyID, string cfVOUALLNO, string VOUAUTOCHECK,string[] invlist)
{
var result = new DBResult();
#region 基本变量
//全部
string sSQL = "";
string strEXPLAN = "";
string strFCY = "RMB";
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 strBPVW = dsCwDesign.Tables[0].Rows[0]["TVW"].ToString().Trim();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(strUserID);
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
#endregion
#region 科目设置
//科目设置 应收RMB
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() + "'";
DataSet dsAR = T_ALL_DA.GetAllSQL(sSQL);
//科目设置 应收USD
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim() + "'";
DataSet dsARFC = T_ALL_DA.GetAllSQL(sSQL);
//主营业务收入 收入RMB
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() + "'";
DataSet dsMBINCOME = T_ALL_DA.GetAllSQL(sSQL);
//主营收入外币 收入USD
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim() + "'";
DataSet dsTMFCI = T_ALL_DA.GetAllSQL(sSQL);
//销项税
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim() + "'";
DataSet dsOUTPUTTAX = T_ALL_DA.GetAllSQL(sSQL);
#endregion
string DREXPLAN = dsCwDesign.Tables[0].Rows[0]["INVDREXPLAN"].ToString().Trim();
string CREXPLAN = dsCwDesign.Tables[0].Rows[0]["INVCREXPLAN"].ToString().Trim();
string MBINCOMEEXPLAN = dsCwDesign.Tables[0].Rows[0]["INVMBINCOMEEXPLAN"].ToString().Trim();
string MBSPENDINGEXPLAN = dsCwDesign.Tables[0].Rows[0]["INVMBSPENDINGEXPLAN"].ToString().Trim();
#region 摘要
string strISEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLAN += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",MBLNO";//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strISEXPLAN += ",SALE";//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",BSSOURCE";//是否业务来源
//}
string strISEXPLANnull = "";
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLANnull += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",MBLNO";//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strISEXPLANnull += ",SALE";//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BSSOURCE";//是否业务来源
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBILLNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BILLNO_ACAD";//是否申请单号
//}
}
#endregion
#region 票号
if (strISEXPLAN.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLAN += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (strISEXPLANnull.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLANnull += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
}
#endregion
#region 核算科目_分录
//string sqlItemAR = "";
//string sqlItemARFC = "";
//string sqlItemMBINCOME = "";
//string sqlItemTMFCI = "";
#endregion
#region 基本数据集
string strORDNO = getGid();
string sqlAR = "";
string sqlARFC = "";
string sqlMBINCOME = "";
string sqlTMFCI = "";
string sqlOUTPUTTAX = "";
string sqlOUTPUTTAXUSD = "";
IList<MsCwVouitemsGl> CwVouitemsEntities = new List<MsCwVouitemsGl>();
string strCondition = sAndGids + " and GID in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and VOUALLNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "')";
//是否按照系统录入汇率
#endregion
sqlARFC = "SELECT * from ch_fee_invoice WHERE 1=1" + strCondition ;
DataSet dsVWChFeeAR = T_ALL_DA.GetAllSQL(sqlARFC);
Decimal strJie = 0;
Decimal strDai = 0;
if (dsVWChFeeAR != null)
{
int n = 1;
foreach (var invgid in invlist) {
for (int i = 0; i < dsVWChFeeAR.Tables[0].Rows.Count; i++)
{
if (dsVWChFeeAR.Tables[0].Rows[i]["GID"].ToString().Trim() == invgid) {
var sqlARFCEXCHANGE = "select distinct ORIGCURRENCY,EXCHANGERATE from ch_fee_do WHERE BILLNO='" + dsVWChFeeAR.Tables[0].Rows[i]["BILLNO"].ToString().Trim() + "'";
DataSet dsVWChFeeARExChange = T_ALL_DA.GetAllSQL(sqlARFCEXCHANGE);
#region 摘要内容
strEXPLAN = "";
strEXPLAN = DREXPLAN;
var ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[客户名称]", dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim());
}
else
{
strEXPLAN += "应收 " + dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim() + dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();
}
#endregion
#region 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = n;// 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
if (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim()) == 0)
{
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
//
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim();//应收账款科目贷码
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币编号usd
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
dRMBS += Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.ACCNAME = dsAR.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsAR.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
}
else
{
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
//
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim();//应收账款科目贷码
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = true;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString();//外币编号usd
MsCwVouitemsGl.FCYDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
dRMBS += Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.ACCNAME = dsARFC.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsARFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
if (dsVWChFeeARExChange != null)
{
for (int j = 0; j < dsVWChFeeARExChange.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeARExChange.Tables[0].Rows[j]["ORIGCURRENCY"].ToString().Trim() == dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString())
{
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeARExChange.Tables[0].Rows[j]["EXCHANGERATE"].ToString().Trim());//汇率
}
}
}
}
strJie = strJie + MsCwVouitemsGl.AMTCR;
//
string strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
dEXCHANGERATE = 1;//汇率
MsCwVouitemsGl.BLNO = "";
//string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
//if (strBLNONAME.Trim() != "")
//{
// MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
//}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
if (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim()) == 0)
{
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsAR.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
}
else
{
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsARFC.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
#region 摘要内容
strEXPLAN = "";
strEXPLAN = MBINCOMEEXPLAN;
ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[客户名称]", dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim());
}
else
{
strEXPLAN += "应收 " + dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim() + dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();
}
#endregion
#region 收入
n++;
MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = n;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
if (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim()) == 0)
{
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币贷方金额(互斥)
strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsMBINCOME.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsMBINCOME.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
}
else {
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币贷方金额(互斥)
strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = true;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString();//外币编号usd
MsCwVouitemsGl.FCYCR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//外币借方金额
MsCwVouitemsGl.FCYDR = 0;//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsTMFCI.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
if (dsVWChFeeARExChange != null)
{
for (int j = 0; j < dsVWChFeeARExChange.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeARExChange.Tables[0].Rows[j]["ORIGCURRENCY"].ToString().Trim() == dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString())
{
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeARExChange.Tables[0].Rows[j]["EXCHANGERATE"].ToString().Trim());//汇率
}
}
}
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsTMFCI.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
}
if (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim()) == 0)
{
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsMBINCOME.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
}
else
{
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsTMFCI.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = "";//
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
n++;
}
}
}
}
if (CwVouitemsEntities.Count == 0)
{
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -3;//结算无明细数据
}
else
{
#region 插入主表
MsCwVouchersGl MsCwVouchersGl = new MsCwVouchersGl();
MsCwVouchersGl.ORDNO = strORDNO.Trim();//唯一编码 newid() varchar (36)
MsCwVouchersGl.VOUDATE = headData.VOUDATE;//凭证日期
//strY + "~" + strM + "~" + sVOUNO + "~" + strVOUNO + "~" + strVOUDATE + "~" + strACCDATE;
//string sACCDATE = headData.VOUDATE.Substring(0, 7);
//if (DateTime.Parse(sACCDATE + "-01") < DateTime.Parse(strACCDATE + "-01"))
//{
// sACCDATE = strACCDATE;
//}
//string strVOUNOhj = DSWeb.MvcShipping.DAL.MsBaseInfoDAL.MsBaseInfoDAL.GetCwVOUNO(strBPVW.Trim(), sACCDATE);
//string[] items = strVOUNOhj.Trim().Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
//string sVOUNO = items[2].ToString().Trim();
//string strVOUNO = items[3].ToString().Trim();
MsCwVouchersGl.VOUNO = int.Parse(cfVOUALLNO.Substring(cfVOUALLNO.Length - 4)).ToString();//sVOUNO;//月初清零 varchar (16)
MsCwVouchersGl.ACCYEAR = DateTime.Parse(headData.VOUDATE.ToString()).Year.ToString();//年
MsCwVouchersGl.ACCMONTH = DateTime.Parse(headData.VOUDATE.ToString()).Month.ToString();//月
if (MsCwVouchersGl.ACCMONTH.ToString().Length == 1)
{
MsCwVouchersGl.ACCMONTH = "0" + MsCwVouchersGl.ACCMONTH.ToString();//月
}
MsCwVouchersGl.VKNO = strBPVW.Trim();//凭证字
//MsCwVouchersGl.VOUALLNO = MsCwVouchersGl.VKNO + MsCwVouchersGl.ACCYEAR + MsCwVouchersGl.ACCMONTH + strVOUNO;//年+月+自动生成编号=凭证号
MsCwVouchersGl.VOUALLNO = cfVOUALLNO.Replace("记", strBPVW.Trim());//年+月+自动生成编号=凭证号
MsCwVouchersGl.ATTACHS = 1;// int.Parse(dsCwDesign.Tables[0].Rows[0]["AFFIXNO"].ToString().Trim());//附件(单据)数
MsCwVouchersGl.AMTDR = strJie;// iAMTDR;//本位币借方
MsCwVouchersGl.AMTCR = strDai;//iAMTDR;// iAMTCR;//本位币贷方
MsCwVouchersGl.FCY = strFCY;//是否含有外币科目
MsCwVouchersGl.QTY = "";//是否含有数量科目
MsCwVouchersGl.VOUPROP = "";//凭证属性
MsCwVouchersGl.PREPARED = headData.PREPARED.ToString().Trim();//制单人
MsCwVouchersGl.CHECKED = "";//审核人
MsCwVouchersGl.ENTERED = "";//记账人
MsCwVouchersGl.ERRMSG = "";//错误信息
MsCwVouchersGl.ISDELETE = false;//是否废除
MsCwVouchersGl.DELETEUSER = "";//废除操作人
MsCwVouchersGl.STARTGID = strCwSTARTGID;
MsCwVouchersGl.DbOperationType = DbOperationType.DbotIns;
MsCwVouchersGl.CREATEUSER = strUserID;//创建人
MsCwVouchersGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouchersGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouchersGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
MsCwVouchersGl.ISAUTO = true;
#endregion
#region 生成入库
var modb = new ModelObjectDB();
result = modb.Save(MsCwVouchersGl);
if (result.Success == true)
{
foreach (var enumValue in CwVouitemsEntities)
{
enumValue.GID = Guid.NewGuid().ToString();
//enumValue.ITEMNO = n;
enumValue.DbOperationType = DbOperationType.DbotIns;
var modb2 = new ModelObjectDB();
DBResult result2 = modb2.Save(enumValue);
}
//更新凭证生成关系表中的ORDNO数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "update [cw_vouno_bs_gl] set ORDNO='" + MsCwVouchersGl.ORDNO + "' where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
blSQL = "update code_fill_serialno set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=GETDATE() where TABLENAME='cw_vouchers_gl' and SERIALNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "'";
bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
if (VOUAUTOCHECK == "1")
{
string blSQL2 = "update cw_vouchers_gl set ISCHECKED=1,CHECKED='" + strUserID + "',CHECKEDTIME=getdate() where VOUALLNO='" + cfVOUALLNO + "' and [STARTGID]='" + strCwSTARTGID + "'";
bool bl2 = T_ALL_DA.GetExecuteSqlCommand(blSQL2);
}
}
else
{
//result.Success = false;
//result.Message = result.Message;
//return result;
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -2;//重复数据
}
#endregion
}
//result.Success = true;
//result.Message = result.Message;
//return result;
return 1;
}
/* 按原币生成凭证*/
protected static int getHxtSC(DataSet dsCwDesign, DataSet dsCwDesignItem, string sAndGids, MsCwVouchersGl3 headData, List<MsCwVouchersGl4> bodyList, string strUserID, string strCompanyID, string cfVOUALLNO, string VOUAUTOCHECK, List<CwAccitemsGlModel> accitemslist)
{
var result = new DBResult();
#region 基本变量
//全部
string sSQL = "";
string strEXPLAN = "";
string strFCY = "RMB";
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 strBPVW = dsCwDesign.Tables[0].Rows[0]["TVW"].ToString().Trim();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(strUserID);
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
#endregion
#region 科目设置
var dsAR = BasicDataRefDAL.GetCwAccitems(dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim(), accitemslist);
var dsARFC = BasicDataRefDAL.GetCwAccitems(dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim(), accitemslist);
var dsMBINCOME = BasicDataRefDAL.GetCwAccitems(dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim(), accitemslist);
var dsTMFCI = BasicDataRefDAL.GetCwAccitems(dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim(), accitemslist);
var dsOUTPUTTAX = BasicDataRefDAL.GetCwAccitems(dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim(), accitemslist);
#endregion
string DREXPLAN = dsCwDesign.Tables[0].Rows[0]["INVDREXPLAN"].ToString().Trim();
string CREXPLAN = dsCwDesign.Tables[0].Rows[0]["INVCREXPLAN"].ToString().Trim();
string MBINCOMEEXPLAN = dsCwDesign.Tables[0].Rows[0]["INVMBINCOMEEXPLAN"].ToString().Trim();
string MBSPENDINGEXPLAN = dsCwDesign.Tables[0].Rows[0]["INVMBSPENDINGEXPLAN"].ToString().Trim();
#region 摘要
string strISEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLAN += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",MBLNO";//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strISEXPLAN += ",SALE";//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",BSSOURCE";//是否业务来源
//}
string strISEXPLANnull = "";
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLANnull += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",MBLNO";//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strISEXPLANnull += ",SALE";//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BSSOURCE";//是否业务来源
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBILLNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BILLNO_ACAD";//是否申请单号
//}
}
#endregion
#region 票号
if (strISEXPLAN.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLAN += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (strISEXPLANnull.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLANnull += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
}
#endregion
#region 核算科目_分录
//string sqlItemAR = "";
//string sqlItemARFC = "";
//string sqlItemMBINCOME = "";
//string sqlItemTMFCI = "";
#endregion
#region 基本数据集
string strORDNO = getGid();
string sqlAR = "";
string sqlARFC = "";
string sqlMBINCOME = "";
string sqlTMFCI = "";
string sqlOUTPUTTAX = "";
string sqlOUTPUTTAXUSD = "";
IList<MsCwVouitemsGl> CwVouitemsEntities = new List<MsCwVouitemsGl>();
string strCondition = sAndGids + " and GID in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and VOUALLNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "')";
#endregion
DataSet dsVWChFeeInvoiceAR = null;
DataSet dsVWChFeeInvoiceARFC = null;
sqlARFC = "SELECT * from V_INVOICE_PZ WHERE 1=1" + strCondition + " ORDER BY INVOICENO ";
DataSet dsVWChFeeAR = T_ALL_DA.GetAllSQL(sqlARFC);
Decimal strJie = 0;
Decimal strDai = 0;
if (dsVWChFeeAR != null)
{
for (int i = 0; i < dsVWChFeeAR.Tables[0].Rows.Count; i++)
{
#region 摘要内容
strEXPLAN = "";
strEXPLAN = DREXPLAN;
var ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[客户名称]", dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim());
}
else
{
strEXPLAN += "开票 " + dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + " 发票抬头:" + dsVWChFeeAR.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString();
}
#endregion
#region 应收账款RMB
if (dsVWChFeeAR.Tables[0].Rows[i]["DRACCID"].ToString().Trim() == "" && dsVWChFeeAR.Tables[0].Rows[i]["CRACCID"].ToString().Trim() == "" &&
(dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim() == "RMB"
|| (dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim() != "RMB" && dsAR.ACCID == dsARFC.ACCID && !dsAR.ISFCY)))
{
var isfind = false;
foreach (var items in CwVouitemsEntities)
{
if (items.ACCID == dsAR.ACCID && items.FCYNO == "RMB" &&
((dsAR.ISCORPACC && items.CUSTOMERNAME == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim()) || !dsAR.ISCORPACC)
&& ((dsAR.ISDEPTACC && items.DEPTGID == dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim()) || !dsAR.ISDEPTACC)
&& ((dsAR.ISEMPLACC && items.SALE == dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim()) || !dsAR.ISEMPLACC)
&& ((items.BLNO == dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim()) )
)
{
isfind = true;
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
items.AMTDR = items.AMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
dRMBS += Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
break;
}
}
if (!isfind)
{
#region 插入明细表 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;// 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim();//应收账款科目贷码
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
dRMBS += Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币编号usd
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
//
MsCwVouitemsGl.ACCNAME = dsAR.ACCLNAME;//科目名称
MsCwVouitemsGl.ISDEPTACC = dsAR.ISDEPTACC;//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = dsAR.ISEMPLACC;//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = dsAR.ISCORPACC;//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = dsAR.ISITEMACC;//核算项目,按规则设置生成
if (dsAR.DC == "借")
MsCwVouitemsGl.DC = "D";
else MsCwVouitemsGl.DC = "C";
//if (dsAR.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
//{
// MsCwVouitemsGl.DC = "D";//借方向
//}
//else
//{
// MsCwVouitemsGl.DC = "C";//贷方向
//}
//
var strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
if (dsAR.ISCORPACC)
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsAR.ISDEPTACC)
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsAR.ISEMPLACC)
{
MsCwVouitemsGl.SALE = dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
//if (dsAR.ISITEMACC)
//{
// MsCwVouitemsGl.ITEMGID = "";
// if (dsCwDesignItem != null)
// {
// for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
// {
// if (dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
// {
// MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
// strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
// }
// }
// }
//}
MsCwVouitemsGl.ACCALL = dsAR.ACCNAME + strACCALL;
// BasicDataRefDAL.setCAGA(dsAR.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
dEXCHANGERATE = 1;//汇率
MsCwVouitemsGl.BLNO = "";
//string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
//if (strBLNONAME.Trim() != "")
//{
MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
//{
// MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
//}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#region 应收账款外币
if (dsVWChFeeAR.Tables[0].Rows[i]["DRACCID"].ToString().Trim() == "" && dsVWChFeeAR.Tables[0].Rows[i]["CRACCID"].ToString().Trim() == "" &&
dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim() != "RMB"
&& ((dsAR.ACCID == dsARFC.ACCID && dsAR.ISFCY) || dsAR.ACCID != dsARFC.ACCID))
{
var isfind = false;
if (dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim() != "INVOICENO")
{
foreach (var items in CwVouitemsEntities)
{
if (items.ACCID == dsARFC.ACCID
&& items.FCYNO == dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim()
&& ((dsARFC.ISCORPACC && items.CUSTOMERNAME == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim()) || !dsARFC.ISCORPACC)
&& ((dsARFC.ISDEPTACC && items.DEPTGID == dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim()) || !dsARFC.ISDEPTACC)
&& ((dsARFC.ISEMPLACC && items.SALE == dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim()) || !dsARFC.ISEMPLACC)
&& ((items.BLNO == dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim()))
)
{
isfind = true;
items.FCYDR = items.FCYDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["AMOUNT"].ToString().Trim());//外币借方金额
items.AMTDR = items.AMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
dRMBS += Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
break;
}
}
}
if (!isfind)
{
#region 插入明细表 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;// 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.FCYDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//外币借方金额
dRMBS += Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币借方金额(互斥)
//
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim();//应收账款科目贷码
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim();//外币
strFCY = MsCwVouitemsGl.FCYNO;
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
//
MsCwVouitemsGl.ACCNAME = dsARFC.ACCLNAME;//科目名称
MsCwVouitemsGl.ISDEPTACC = dsARFC.ISDEPTACC;//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = dsARFC.ISEMPLACC;//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = dsARFC.ISCORPACC;//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = dsARFC.ISITEMACC;//核算项目,按规则设置生成
if (dsARFC.DC == "借")
MsCwVouitemsGl.DC = "D";
else MsCwVouitemsGl.DC = "C";
//if (dsARFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
//{
// MsCwVouitemsGl.DC = "D";//借方向
//}
//else
//{
// MsCwVouitemsGl.DC = "C";//贷方向
//}
//
var strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
if (dsARFC.ISCORPACC)
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsARFC.ISDEPTACC)
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsARFC.ISEMPLACC)
{
MsCwVouitemsGl.SALE = dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsARFC.ISITEMACC)
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = dsARFC.ACCNAME + strACCALL;
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
if (dsARFC.ISFCY)
{
if (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim()) != 0)
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim()) / Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//汇率
else
MsCwVouitemsGl.FCYEXRATE = 1;
}
else {
MsCwVouitemsGl.FCYEXRATE = 1;
}
dEXCHANGERATE = MsCwVouitemsGl.FCYEXRATE;//汇率
MsCwVouitemsGl.BLNO = "";
MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();
//if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
//{
// MsCwVouitemsGl.BLNO = dsVWChFeeARFC.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
//}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#region 收入RMB
if (dsVWChFeeAR.Tables[0].Rows[i]["DRACCID"].ToString().Trim() != "")
{
var DRACCID = BasicDataRefDAL.GetCwAccitems(dsVWChFeeAR.Tables[0].Rows[i]["DRACCID"].ToString().Trim(), accitemslist);
#region 收入RMB
if (DRACCID.ACCID != "")
{
var isfind = false;
foreach (var items in CwVouitemsEntities)
{
if (items.ACCID == DRACCID.ACCID
&& items.FCYNO == dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim() &&
((DRACCID.ISCORPACC && items.CUSTOMERNAME == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim()) || !DRACCID.ISCORPACC)
&& ((DRACCID.ISDEPTACC && items.DEPTGID == dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim()) || !DRACCID.ISDEPTACC)
&& ((DRACCID.ISEMPLACC && items.SALE == dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim()) || !DRACCID.ISEMPLACC)
&& ((items.BLNO == dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim()))
)
{
isfind = true;
if (DRACCID.DC == "借")
{
if (DRACCID.ISFCY)
{
items.FCYDR = items.FCYDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());
}
items.AMTDR = items.AMTDR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
}
else
{
if (DRACCID.ISFCY)
{
items.FCYCR = items.FCYCR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());
}
items.AMTCR = items.AMTCR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());
}
break;
}
}
if (!isfind)
{
#region 收入
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 2;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = DRACCID.ACCID;//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim());//本位币贷方金额(互斥)
if (DRACCID.ISFCY)
{
MsCwVouitemsGl.ISFCY = true;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim();//外币
MsCwVouitemsGl.FCYDR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//本位币贷方金额(互斥)
}
else
{
//strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
}
MsCwVouitemsGl.ACCNAME = DRACCID.ACCLNAME;//科目名称
MsCwVouitemsGl.ISDEPTACC = DRACCID.ISDEPTACC;//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = DRACCID.ISEMPLACC;//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = DRACCID.ISCORPACC;//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = DRACCID.ISITEMACC;//核算项目,按规则设置生成
if (DRACCID.DC == "借")
MsCwVouitemsGl.DC = "D";
else MsCwVouitemsGl.DC = "C";
// MsCwVouitemsGl.DC = DRACCID.DC;
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (DRACCID.ISCORPACC)
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (DRACCID.ISDEPTACC)
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (DRACCID.ISEMPLACC)
{
MsCwVouitemsGl.SALE = dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (DRACCID.ISITEMACC)
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
string ss = dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim();
string sw = dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim();
if (dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = DRACCID.ACCNAME + strACCALL;
if (DRACCID.ISFCY)
{
if (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim()) != 0)
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim()) / Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//汇率
else
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
}
else {
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = "";//
MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
}
#endregion
#endregion
#region 收入RMB
strEXPLAN = "";
strEXPLAN = MBINCOMEEXPLAN;
ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[客户名称]", dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim());
}
else
{
strEXPLAN += "开票 " + dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + " 发票抬头:" + dsVWChFeeAR.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString();
}
if (dsVWChFeeAR.Tables[0].Rows[i]["PROFITACCID"].ToString().Trim() == "" &&
(dsVWChFeeAR.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() == "RMB"
|| (dsVWChFeeAR.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() != "RMB" && dsMBINCOME.ACCID == dsTMFCI.ACCID && !dsMBINCOME.ISFCY)))
{
var isfind = false;
if (dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim() != "INVOICENO")
{
foreach (var items in CwVouitemsEntities)
{
if (items.ACCID == dsMBINCOME.ACCID && items.FCYNO == "RMB" &&
((dsMBINCOME.ISCORPACC && items.CUSTOMERNAME == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim()) || !dsMBINCOME.ISCORPACC)
&& ((dsMBINCOME.ISDEPTACC && items.DEPTGID == dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim()) || !dsMBINCOME.ISDEPTACC)
&& ((dsMBINCOME.ISEMPLACC && items.SALE == dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim()) || !dsMBINCOME.ISEMPLACC)
&& ((items.BLNO == dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim()))
// && (items.FIELD10 == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim())
//&& ((dsMBINCOME.ISITEMACC && items.ITEMGID == dsVWChFeeAR.Tables[0].Rows[i]["ITEMGID"].ToString().Trim()) || !dsMBINCOME.ISITEMACC)
)
{
isfind = true;
items.AMTCR = items.AMTCR + (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim()) - Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["TAX"].ToString().Trim()));
break;
}
}
}
if (!isfind)
{
#region 收入
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 2;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim()) - Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["TAX"].ToString().Trim()));//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsMBINCOME.ACCLNAME;//科目名称
MsCwVouitemsGl.ISDEPTACC = dsMBINCOME.ISDEPTACC;//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = dsMBINCOME.ISEMPLACC;//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = dsMBINCOME.ISCORPACC;//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = dsMBINCOME.ISITEMACC;//核算项目,按规则设置生成
if (dsMBINCOME.DC == "借")
MsCwVouitemsGl.DC = "D";
else MsCwVouitemsGl.DC = "C";
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsMBINCOME.ISCORPACC)
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsMBINCOME.ISDEPTACC)
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsMBINCOME.ISEMPLACC)
{
MsCwVouitemsGl.SALE = dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsMBINCOME.ISITEMACC)
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
string ss = dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim();
string sw = dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim();
if (dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = dsMBINCOME.ACCNAME + strACCALL;
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//
//string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
//if (strBLNONAME.Trim() != "")
//{
// if (dsVWChFeeAR.Tables[0].Columns.Contains(strBLNONAME))
// MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
//}
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#region 收入RMB
if (dsVWChFeeAR.Tables[0].Rows[i]["PROFITACCID"].ToString().Trim() != "" && dsVWChFeeAR.Tables[0].Rows[i]["PROFITACCID"].ToString().Trim() != "-1")
{
var CRACCID = BasicDataRefDAL.GetCwAccitems(dsVWChFeeAR.Tables[0].Rows[i]["PROFITACCID"].ToString().Trim(), accitemslist);
#region 收入RMB
if (CRACCID.ACCID != "")
{
var isfind = false;
foreach (var items in CwVouitemsEntities)
{
if (items.ACCID == CRACCID.ACCID
&& items.FCYNO == dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim() &&
((CRACCID.ISCORPACC && items.CUSTOMERNAME == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim()) || !CRACCID.ISCORPACC)
&& ((CRACCID.ISDEPTACC && items.DEPTGID == dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim()) || !CRACCID.ISDEPTACC)
&& ((CRACCID.ISEMPLACC && items.SALE == dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim()) || !CRACCID.ISEMPLACC)
&& ((items.BLNO == dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim()))
// && (items.FIELD10 == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim())
//&& ((CRACCID.ISITEMACC && items.ITEMGID == dsVWChFeeAR.Tables[0].Rows[i]["ITEMGID"].ToString().Trim()) || !CRACCID.ISITEMACC)
)
{
isfind = true;
if (CRACCID.ISFCY)
{
items.FCYCR = items.FCYCR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());
}
items.AMTCR = items.AMTCR +(Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim())- Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["TAX"].ToString().Trim()));
break;
}
}
if (!isfind)
{
#region 收入
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 2;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = CRACCID.ACCID;//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim())- Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["TAX"].ToString().Trim());//本位币贷方金额(互斥)
if (CRACCID.ISFCY)
{
MsCwVouitemsGl.ISFCY = true;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeAR.Tables[0].Rows[i]["RECVCURR"].ToString().Trim();//外币
MsCwVouitemsGl.FCYCR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//本位币贷方金额(互斥)
}
else
{
//strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
}
MsCwVouitemsGl.ACCNAME = CRACCID.ACCLNAME;//科目名称
MsCwVouitemsGl.ISDEPTACC = CRACCID.ISDEPTACC;//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = CRACCID.ISEMPLACC;//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = CRACCID.ISCORPACC;//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = CRACCID.ISITEMACC;//核算项目,按规则设置生成
if (CRACCID.DC == "借")
MsCwVouitemsGl.DC = "D";
else MsCwVouitemsGl.DC = "C";
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (CRACCID.ISCORPACC)
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (CRACCID.ISDEPTACC)
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (CRACCID.ISEMPLACC)
{
MsCwVouitemsGl.SALE = dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (CRACCID.ISITEMACC)
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
string ss = dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim();
string sw = dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim();
if (dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = CRACCID.ACCNAME + strACCALL;
if (CRACCID.ISFCY)
{
if (Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim()) != 0)
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["INVAMOUNT"].ToString().Trim()) / Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["OTCURRAMOUNT"].ToString().Trim());//汇率
else
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
}
else {
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//
//string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
//if (strBLNONAME.Trim() != "")
//{
// if (dsVWChFeeAR.Tables[0].Columns.Contains(strBLNONAME))
// MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
//}
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
}
#endregion
#endregion
#region 增值税
if (dsVWChFeeAR.Tables[0].Rows[i]["TAXACCID"].ToString().Trim() != "")
{
var TAXACCID = BasicDataRefDAL.GetCwAccitems(dsVWChFeeAR.Tables[0].Rows[i]["TAXACCID"].ToString().Trim(), accitemslist);
#region 增值税
if (TAXACCID.ACCID != "")
{
#region 增值税
if (dsVWChFeeAR.Tables[0].Rows[i]["TAXACCID"].ToString().Trim() == TAXACCID.ACCID)
{
var isfind = false;
foreach (var items in CwVouitemsEntities)
{
if (items.ACCID == TAXACCID.ACCID &&
((TAXACCID.ISCORPACC && items.CUSTOMERNAME == dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim()) || !TAXACCID.ISCORPACC)
&& ((TAXACCID.ISDEPTACC && items.DEPTGID == dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim()) || !TAXACCID.ISDEPTACC)
&& ((TAXACCID.ISEMPLACC && items.SALE == dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim()) || !TAXACCID.ISEMPLACC)
&& ((items.BLNO == dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim()))
//&& ((dsMBINCOME.ISITEMACC && items.ITEMGID == dsVWChFeeAR.Tables[0].Rows[i]["ITEMGID"].ToString().Trim()) || !dsMBINCOME.ISITEMACC)
)
{
isfind = true;
items.AMTCR = items.AMTCR + Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["TAX"].ToString().Trim());
break;
}
}
if (!isfind)
{
#region 收入
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 1;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = TAXACCID.ACCID;//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeAR.Tables[0].Rows[i]["TAX"].ToString().Trim());//本位币贷方金额(互斥)
//strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
MsCwVouitemsGl.ACCNAME = TAXACCID.ACCLNAME;//科目名称
MsCwVouitemsGl.ISDEPTACC = TAXACCID.ISDEPTACC;//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = TAXACCID.ISEMPLACC;//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = TAXACCID.ISCORPACC;//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = TAXACCID.ISITEMACC;//核算项目,按规则设置生成
if (TAXACCID.DC == "借")
MsCwVouitemsGl.DC = "D";
else MsCwVouitemsGl.DC = "C";
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (TAXACCID.ISCORPACC)
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (TAXACCID.ISDEPTACC)
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (TAXACCID.ISEMPLACC)
{
MsCwVouitemsGl.SALE = dsVWChFeeAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (TAXACCID.ISITEMACC)
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
string ss = dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim();
string sw = dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim();
if (dsVWChFeeAR.Tables[0].Rows[i]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = TAXACCID.ACCNAME + strACCALL;
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//
//string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
//if (strBLNONAME.Trim() != "")
//{
// if (dsVWChFeeAR.Tables[0].Columns.Contains(strBLNONAME))
// MsCwVouitemsGl.BLNO = dsVWChFeeAR.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
//}
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
if (TAXACCID.ISCORPACC)
{
MsCwVouitemsGl.FIELD10 = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//预留字段10
}
else {
MsCwVouitemsGl.FIELD10 ="战争";//预留字段10
}
MsCwVouitemsGl.FIELD10 = dsVWChFeeAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
}
#endregion
}
#endregion
}
}
#region 汇兑损益
decimal TTLDR = 0;
decimal TTLCR = 0;
var tmpCwVouitemsEntities = new List<MsCwVouitemsGl>();
var sortint = 1;
foreach (var vouitem in CwVouitemsEntities)
{
vouitem.TMPGID = sortint.ToString();
tmpCwVouitemsEntities.Add(vouitem);
sortint = sortint + 1;
}
var item = 1;
foreach (var enumValue in CwVouitemsEntities)
{
TTLDR = TTLDR + enumValue.AMTDR;
TTLCR = TTLCR + enumValue.AMTCR;
if (enumValue.EXPLAN == "")
{
foreach (var enumValue2 in tmpCwVouitemsEntities)
{
if (enumValue2.TMPBILLNO == enumValue.TMPBILLNO && enumValue2.EXPLAN != "")
{
if (enumValue.EXPLAN != "") enumValue.EXPLAN = enumValue2.EXPLAN;
}
}
};
if (enumValue.EXPLAN != "")
strEXPLAN = enumValue.EXPLAN;
if (enumValue.EXPLAN == "")
{
enumValue.EXPLAN = strEXPLAN;
}
if (enumValue.FCYNO == "RMB")
{
enumValue.FCYEXRATE = 1;
enumValue.FCYDR = 0;
enumValue.FCYCR = 0;
}
enumValue.ITEMNO = item;
item = item + 1;
}
if (TTLDR != TTLCR)
{
var dsEGOL = BasicDataRefDAL.GetCwAccitems(dsCwDesign.Tables[0].Rows[0]["EGOL"].ToString().Trim(), accitemslist);
#region 插入明细表 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = item;
item = item + 1; // 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
CwAccitemsGlModel dsGL = dsEGOL;
dsGL = dsEGOL;
#region 汇兑收益
iAMTDR = iAMTDR + (TTLCR - TTLDR);
//
MsCwVouitemsGl.AMTDR = (TTLCR - TTLDR);//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币编号usd
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
#endregion
MsCwVouitemsGl.ACCID = dsGL.ACCID;//应收账款科目贷码
MsCwVouitemsGl.ACCNAME = dsGL.ACCLNAME;//科目名称
MsCwVouitemsGl.ISDEPTACC = dsGL.ISDEPTACC;//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = dsGL.ISEMPLACC;//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = dsGL.ISCORPACC;//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = dsGL.ISITEMACC;//核算项目,按规则设置生成
if (dsGL.DC == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
//string strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
MsCwVouitemsGl.ACCALL = dsGL.ACCNAME;
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
dEXCHANGERATE = 1;//汇率
MsCwVouitemsGl.BLNO = "";
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "战争";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
#endregion
if (CwVouitemsEntities.Count == 0)
{
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -3;//结算无明细数据
}
else {
#region 插入主表
MsCwVouchersGl MsCwVouchersGl = new MsCwVouchersGl();
MsCwVouchersGl.ORDNO = strORDNO.Trim();//唯一编码 newid() varchar (36)
MsCwVouchersGl.VOUDATE = headData.VOUDATE;//凭证日期
//strY + "~" + strM + "~" + sVOUNO + "~" + strVOUNO + "~" + strVOUDATE + "~" + strACCDATE;
//string sACCDATE = headData.VOUDATE.Substring(0, 7);
//if (DateTime.Parse(sACCDATE + "-01") < DateTime.Parse(strACCDATE + "-01"))
//{
// sACCDATE = strACCDATE;
//}
//string strVOUNOhj = DSWeb.MvcShipping.DAL.MsBaseInfoDAL.MsBaseInfoDAL.GetCwVOUNO(strBPVW.Trim(), sACCDATE);
//string[] items = strVOUNOhj.Trim().Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
//string sVOUNO = items[2].ToString().Trim();
//string strVOUNO = items[3].ToString().Trim();
MsCwVouchersGl.VOUNO = int.Parse(cfVOUALLNO.Substring(cfVOUALLNO.Length - 4)).ToString();//sVOUNO;//月初清零 varchar (16)
MsCwVouchersGl.ACCYEAR = DateTime.Parse(headData.VOUDATE.ToString()).Year.ToString();//年
MsCwVouchersGl.ACCMONTH = DateTime.Parse(headData.VOUDATE.ToString()).Month.ToString();//月
if (MsCwVouchersGl.ACCMONTH.ToString().Length == 1)
{
MsCwVouchersGl.ACCMONTH = "0" + MsCwVouchersGl.ACCMONTH.ToString();//月
}
MsCwVouchersGl.VKNO = strBPVW.Trim();//凭证字
//MsCwVouchersGl.VOUALLNO = MsCwVouchersGl.VKNO + MsCwVouchersGl.ACCYEAR + MsCwVouchersGl.ACCMONTH + strVOUNO;//年+月+自动生成编号=凭证号
MsCwVouchersGl.VOUALLNO = cfVOUALLNO;//年+月+自动生成编号=凭证号
MsCwVouchersGl.ATTACHS = 1;// int.Parse(dsCwDesign.Tables[0].Rows[0]["AFFIXNO"].ToString().Trim());//附件(单据)数
MsCwVouchersGl.AMTDR = strJie;// iAMTDR;//本位币借方
MsCwVouchersGl.AMTCR = strDai;//iAMTDR;// iAMTCR;//本位币贷方
MsCwVouchersGl.FCY = strFCY;//是否含有外币科目
MsCwVouchersGl.QTY = "";//是否含有数量科目
MsCwVouchersGl.VOUPROP = "";//凭证属性
MsCwVouchersGl.PREPARED = headData.PREPARED.ToString().Trim();//制单人
MsCwVouchersGl.CHECKED = "";//审核人
MsCwVouchersGl.ENTERED = "";//记账人
MsCwVouchersGl.ERRMSG = "";//错误信息
MsCwVouchersGl.ISDELETE = false;//是否废除
MsCwVouchersGl.DELETEUSER = "";//废除操作人
MsCwVouchersGl.STARTGID = strCwSTARTGID;
MsCwVouchersGl.DbOperationType = DbOperationType.DbotIns;
MsCwVouchersGl.CREATEUSER = strUserID;//创建人
MsCwVouchersGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouchersGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouchersGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
MsCwVouchersGl.ISAUTO = true;
#endregion
#region 生成入库
var modb = new ModelObjectDB();
result = modb.Save(MsCwVouchersGl);
if (result.Success == true)
{
int n = 1;
//CwVouitemsEntities= CwVouitemsEntities.OrderBy(Z=>Z.FIELD10).ToList();
foreach (var enumValue in CwVouitemsEntities)
{
enumValue.GID = Guid.NewGuid().ToString();
enumValue.ITEMNO = n;
enumValue.DbOperationType = DbOperationType.DbotIns;
var modb2 = new ModelObjectDB();
DBResult result2 = modb2.Save(enumValue);
n++;
}
//更新凭证生成关系表中的ORDNO数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "update [cw_vouno_bs_gl] set ORDNO='" + MsCwVouchersGl.ORDNO + "' where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
blSQL = "update code_fill_serialno set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=GETDATE() where TABLENAME='cw_vouchers_gl' and SERIALNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "'";
bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
if (VOUAUTOCHECK == "1")
{
string blSQL2 = "update cw_vouchers_gl set ISCHECKED=1,CHECKED='" + strUserID + "',CHECKEDTIME=getdate() where VOUALLNO='" + cfVOUALLNO + "' and [STARTGID]='" + strCwSTARTGID + "'";
bool bl2 = T_ALL_DA.GetExecuteSqlCommand(blSQL2);
}
}
else
{
//result.Success = false;
//result.Message = result.Message;
//return result;
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -2;//重复数据
}
#endregion
}
//result.Success = true;
//result.Message = result.Message;
//return result;
return 1;
}
protected static int getInvSC(DataSet dsCwDesign, DataSet dsCwDesignItem, string sAndGids, MsCwVouchersGl3 headData, List<MsCwVouchersGl4> bodyList, string strUserID, string strCompanyID, string cfVOUALLNO, string VOUAUTOCHECK)
{
var result = new DBResult();
#region 基本变量
//全部
string sSQL = "";
string strEXPLAN = "";
string strFCY = "RMB";
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 strBPVW = dsCwDesign.Tables[0].Rows[0]["TVW"].ToString().Trim();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(strUserID);
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
#endregion
#region 科目设置
//科目设置 应收RMB
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() + "'";
DataSet dsAR = T_ALL_DA.GetAllSQL(sSQL);
//科目设置 应收USD
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim() + "'";
DataSet dsARFC = T_ALL_DA.GetAllSQL(sSQL);
//主营业务收入 收入RMB
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() + "'";
DataSet dsMBINCOME = T_ALL_DA.GetAllSQL(sSQL);
//主营收入外币 收入USD
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim() + "'";
DataSet dsTMFCI = T_ALL_DA.GetAllSQL(sSQL);
//销项税
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim() + "'";
DataSet dsOUTPUTTAX = T_ALL_DA.GetAllSQL(sSQL);
#endregion
#region 摘要
string DREXPLAN = dsCwDesign.Tables[0].Rows[0]["INVDREXPLAN"].ToString().Trim();
string CREXPLAN = dsCwDesign.Tables[0].Rows[0]["INVCREXPLAN"].ToString().Trim();
string MBINCOMEEXPLAN = dsCwDesign.Tables[0].Rows[0]["INVMBINCOMEEXPLAN"].ToString().Trim();
string MBSPENDINGEXPLAN = dsCwDesign.Tables[0].Rows[0]["INVMBSPENDINGEXPLAN"].ToString().Trim();
string strISEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLAN += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
//if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",INVOICENO";//是否委托编号CUSTNO//发票号
//}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",MBLNO";//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strISEXPLAN += ",SALE";//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISINVEXPLANONRATE"].ToString().Trim() == "True")
{
strISEXPLAN += ",INVRATE,INVOICENO";//是否主提单号
}else
{
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",BSSOURCE";//是否业务来源
//}
string strISEXPLANnull = "";
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLANnull += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",MBLNO";//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strISEXPLANnull += ",SALE";//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BSSOURCE";//是否业务来源
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBILLNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BILLNO_ACAD";//是否申请单号
//}
}
#endregion
#region 票号
if (strISEXPLAN.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLAN += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (strISEXPLANnull.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLANnull += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
}
#endregion
#region 核算科目_分录
//string sqlItemAR = "";
//string sqlItemARFC = "";
//string sqlItemMBINCOME = "";
//string sqlItemTMFCI = "";
#endregion
#region 基本数据集
string strORDNO = getGid();
string sqlAR = "";
string sqlARFC = "";
string sqlMBINCOME = "";
string sqlTMFCI = "";
string sqlOUTPUTTAX = "";
string sqlOUTPUTTAXUSD = "";
IList<MsCwVouitemsGl> CwVouitemsEntities = new List<MsCwVouitemsGl>();
string strCondition = sAndGids + " and GID in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and VOUALLNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "')";
//是否按照系统录入汇率
if (headData.ISRATE == true)
{
#region 科目设置应收RMB dsAR、应收USD dsARFC
if (dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim())
{
#region 应收RMB==应收USD
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLAN.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsAR.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlAR = "SELECT INVOICECUSTNAME,EXCHANGERATE,CURRENCY,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " GROUP BY INVOICECUSTNAME,EXCHANGERATE,CURRENCY" + strISEXPLAN + sISEXPLAN;//
sqlAR += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
//
sqlARFC = "SELECT EXCHANGERATE,CURRENCY,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " GROUP BY EXCHANGERATE,CURRENCY" + strISEXPLAN + sISEXPLAN;//
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
}
else
{
sqlAR = "SELECT INVOICECUSTNAME,'RMB' CURRENCY,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + "";
sqlAR += " GROUP BY INVOICECUSTNAME,VOUNO" + strISEXPLAN + sISEXPLAN;//
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
}
#endregion
}
else
{
#region 应收RMB!=应收USD
//应收RMB
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLAN.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlAR = "SELECT INVOICECUSTNAME,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " GROUP BY INVOICECUSTNAME,VOUNO" + strISEXPLAN + sISEXPLAN;//
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
//应收USD
#region 核算项目
sISEXPLAN = "";
//是否核算客户
if (dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLAN.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlARFC = "SELECT INVOICECUSTNAME,EXCHANGERATE,CURRENCY,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " GROUP BY INVOICECUSTNAME,EXCHANGERATE,CURRENCY" + strISEXPLAN + sISEXPLAN;//
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置主营业务收入RMB dsMBINCOME、主营收入外币USD dsTMFCI
if (dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim())
{
#region 主营业务收入RMB==主营收入外币USD
string sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLANnull.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
sISEXPLAN += ",INVOICECUSTNAME";//是否核算项目
}
#endregion
//ISFCY 是否核算外币
if (dsMBINCOME.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlMBINCOME = "SELECT EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlMBINCOME += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
//
sqlTMFCI = "SELECT EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlTMFCI += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
}
else
{
sqlMBINCOME = "SELECT (SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + "";
sqlMBINCOME += " group BY VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
}
#endregion
}
else
{
#region 主营业务收入RMB!=主营收入外币USD
//主营业务收入RMB
string sISEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
#region 核算项目
//是否核算客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLANnull.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
}
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlMBINCOME = "SELECT INVOICECUSTNAME,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlMBINCOME += " group BY INVOICECUSTNAME,VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
//主营收入外币USD
sISEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
#region 核算项目
//是否核算客户
if (dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLANnull.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
}
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlTMFCI = "SELECT INVOICECUSTNAME,EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlTMFCI += " group BY INVOICECUSTNAME,EXCHANGERATE,CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置:销项税 dsOUTPUTTAX
#region 核算项目
string ssISEXPLAN = "";
//是否核算客户
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
ssISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
ssISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
ssISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlOUTPUTTAX = "SELECT INVOICECUSTNAME,EXCHANGERATE,CURRENCY,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " From v_ch_fee_invoice_pz WHERE 1=1 and TAX<>0" + strCondition + " and CURRENCY='RMB'";
sqlOUTPUTTAX += " group BY INVOICECUSTNAME,EXCHANGERATE,CURRENCY" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " ORDER BY CURRENCY" + strISEXPLANnull + ssISEXPLAN;
//
sqlOUTPUTTAXUSD = "SELECT INVOICECUSTNAME,EXCHANGERATE,CURRENCY,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAXUSD += " From v_ch_fee_invoice_pz WHERE 1=1 and TAX<>0" + strCondition + " and CURRENCY<>'RMB'";
sqlOUTPUTTAXUSD += " group BY INVOICECUSTNAME,EXCHANGERATE,CURRENCY" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAXUSD += " ORDER BY CURRENCY" + strISEXPLANnull + ssISEXPLAN;
}
else
{
sqlOUTPUTTAX = "SELECT INVOICECUSTNAME,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " From v_ch_fee_invoice_pz WHERE 1=1 and TAX<>0" + strCondition;
sqlOUTPUTTAX += " group BY INVOICECUSTNAME,VOUNO" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " ORDER BY VOUNO" + strISEXPLANnull + ssISEXPLAN;
}
#endregion
}
else
{
#region 提取费率
string tbRATE = "";
if (bodyList != null)
{
if (bodyList.Count > 0)
{
for (int i = 0; i < bodyList.Count; i++)
{
tbRATE += " WHEN CURRENCY='" + bodyList[i].CURR.ToString().Trim() + "' THEN " + bodyList[i].FCYEXRATE.ToString().Trim();
}
}
}
#endregion
#region 科目设置应收RMB dsAR、应收USD dsARFC
if (dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim())
{
#region 应收RMB==应收USD
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLAN.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsAR.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlAR = "SELECT INVOICECUSTNAME,EXCHANGERATE,CURRENCY,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " group BY INVOICECUSTNAME,EXCHANGERATE,CURRENCY" + strISEXPLAN + sISEXPLAN;
sqlAR += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
//
sqlARFC = "SELECT INVOICECUSTNAME,(CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " group BY INVOICECUSTNAME,(CASE" + tbRATE + " ELSE EXCHANGERATE END),CURRENCY" + strISEXPLAN + sISEXPLAN;
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
}
else
{
sqlAR = "SELECT INVOICECUSTNAME,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + "";
sqlAR += " group BY INVOICECUSTNAME,VOUNO" + strISEXPLAN + sISEXPLAN;
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
}
#endregion
}
else
{
#region 应收RMB!=应收USD
//应收RMB
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLAN.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlAR = "SELECT INVOICECUSTNAME,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " group BY INVOICECUSTNAME,VOUNO" + strISEXPLAN + sISEXPLAN;
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
//应收USD
#region 核算项目
sISEXPLAN = "";
//是否核算客户
if (dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLAN.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlARFC = "SELECT INVOICECUSTNAME,(CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,MAX(GOODSNAME) AS GOODSNAME,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " group BY INVOICECUSTNAME,(CASE" + tbRATE + " ELSE EXCHANGERATE END),CURRENCY" + strISEXPLAN + sISEXPLAN;
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置主营业务收入RMB dsMBINCOME、主营收入外币USD dsTMFCI
if (dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim())
{
#region 主营业务收入RMB==主营收入外币USD
string sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLANnull.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
sISEXPLAN += ",INVOICECUSTNAME";//是否核算项目
}
#endregion
//ISFCY 是否核算外币
sqlMBINCOME = "SELECT SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + "";
sqlMBINCOME += " group BY VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
#endregion
}
else
{
#region 主营业务收入RMB!=主营收入外币USD
//主营业务收入RMB
string sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLANnull.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
sISEXPLAN += ",INVOICECUSTNAME";//是否核算项目
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlMBINCOME = "SELECT SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlMBINCOME += " group BY VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
//主营收入外币USD
sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
if (strISEXPLANnull.IndexOf("SALE") < 0)
{
sISEXPLAN += ",SALE";//是否揽货人
}
}
//是否核算部门
if (dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
sISEXPLAN += ",INVOICECUSTNAME";//是否核算项目
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlTMFCI = "SELECT (CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,SUM(AMOUNT) AS je,SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " From v_ch_fee_invoice_pz WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlTMFCI += " group BY (CASE" + tbRATE + " ELSE EXCHANGERATE END),CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置:销项税 dsOUTPUTTAX
#region 核算项目
string ssISEXPLAN = "";
//是否核算客户
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
ssISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
ssISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
ssISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
sqlOUTPUTTAX = "SELECT INVOICECUSTNAME,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " From v_ch_fee_invoice_pz WHERE 1=1 and TAX<>0" + strCondition + "";
sqlOUTPUTTAX += " group BY INVOICECUSTNAME,VOUNO" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " ORDER BY VOUNO" + strISEXPLANnull + ssISEXPLAN;
#endregion
}
DataSet dsVWChFeeInvoiceAR = T_ALL_DA.GetAllSQL(sqlAR);
DataSet dsVWChFeeInvoiceARFC = null;
if (sqlARFC.Trim() != "")
{
dsVWChFeeInvoiceARFC = T_ALL_DA.GetAllSQL(sqlARFC);
}
DataSet dsVWChFeeInvoiceMBINCOME = T_ALL_DA.GetAllSQL(sqlMBINCOME);
DataSet dsVWChFeeInvoiceTMFCI = null;
if (sqlTMFCI.Trim() != "")
{
dsVWChFeeInvoiceTMFCI = T_ALL_DA.GetAllSQL(sqlTMFCI);
}
DataSet dsVWChFeeInvoiceOUTPUTTAX = T_ALL_DA.GetAllSQL(sqlOUTPUTTAX);
DataSet dsVWChFeeInvoiceOUTPUTTAXUSD = null;
if (sqlOUTPUTTAXUSD.Trim() != "")
{
dsVWChFeeInvoiceOUTPUTTAXUSD = T_ALL_DA.GetAllSQL(sqlOUTPUTTAXUSD);
}
#endregion
if (dsVWChFeeInvoiceAR != null || dsVWChFeeInvoiceARFC != null)
{
#region 明细表_实体类
#region 插入明细表应收RMB dsAR
if (dsVWChFeeInvoiceAR != null)
{
for (int i = 0; i < dsVWChFeeInvoiceAR.Tables[0].Rows.Count; i++)
{
#region 摘要内容
strEXPLAN = "";
strEXPLAN = DREXPLAN;
var ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
}
else
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISINVEXPLANONRATE"].ToString().Trim() == "True")
{
if (dsVWChFeeInvoiceAR.Tables[0].Rows[i]["GOODSNAME"].ToString().Trim() == "仓储费")
{
strEXPLAN += " 应收仓储费(" + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
else
{
if (Convert.ToDecimal(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVRATE"].ToString()) == 0)
{
if (dsVWChFeeInvoiceAR.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() == "RMB")
{
strEXPLAN += " 应收代理运杂费(" + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
else if (dsVWChFeeInvoiceAR.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() == "USD")
{
strEXPLAN += " 应收代理海运费(" + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
}
else if (Convert.ToDecimal(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVRATE"].ToString()) == 6)
{
strEXPLAN += " 应收代理杂费(" + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
else if (Convert.ToDecimal(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVRATE"].ToString()) == 10)
{
strEXPLAN += " 应收陆运费(" + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
}
}
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否收付船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
#endregion
#region 插入明细表 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;// 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["hj"].ToString().Trim());
//
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim();//应收账款科目贷码
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币编号usd
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
dRMBS += Decimal.Parse(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
//
MsCwVouitemsGl.ACCNAME = dsAR.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsAR.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceAR.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsAR.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
dEXCHANGERATE = 1;//汇率
MsCwVouitemsGl.BLNO = "";
string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
if (strBLNONAME.Trim() != "")
{
MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceAR.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
}
//if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
//{
// MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
//}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#region 插入明细表:应收外币 dsARFC
if (dsVWChFeeInvoiceARFC != null)
{
for (int i = 0; i < dsVWChFeeInvoiceARFC.Tables[0].Rows.Count; i++)
{
#region 摘要内容
strEXPLAN = "";
strEXPLAN = DREXPLAN;
var ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
}
else
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["SALE"].ToString().Trim();//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISINVEXPLANONRATE"].ToString().Trim() == "True")
{
if (dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["GOODSNAME"].ToString().Trim() == "仓储费")
{
strEXPLAN += " 应收仓储费(" + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
else
{
if (Convert.ToDecimal(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVRATE"].ToString()) == 0)
{
if (dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() == "RMB")
{
strEXPLAN += " 应收代理运杂费(" + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
else if (dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CURRENCY"].ToString().Trim() == "USD")
{
strEXPLAN += " 应收代理海运费(" + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
}
else if (Convert.ToDecimal(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVRATE"].ToString()) == 6)
{
strEXPLAN += " 应收代理杂费(" + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
else if (Convert.ToDecimal(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVRATE"].ToString()) == 10)
{
strEXPLAN += " 应收陆运费(" + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim() + ")";
}
}
}
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否收付船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否收付航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
#endregion
#region 插入明细表 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;// 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["hj"].ToString().Trim());
//
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim();//应收账款科目贷码
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CURRENCY"].ToString().Trim();//外币
strFCY = MsCwVouitemsGl.FCYNO;
MsCwVouitemsGl.FCYDR = Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["je"].ToString().Trim());//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
dRMBS += Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
//
MsCwVouitemsGl.ACCNAME = dsARFC.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsARFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
if (dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceARFC.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsARFC.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["EXCHANGERATE"].ToString().Trim());//汇率
dEXCHANGERATE = MsCwVouitemsGl.FCYEXRATE;//汇率
MsCwVouitemsGl.BLNO = "";
string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
if (strBLNONAME.Trim() != "")
{
MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceARFC.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
}
//if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
//{
// MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
//}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#region 插入明细表:主营业务收入
Decimal dRMB = dRMBS - dRMBF;
Decimal dUSD = dUSDS - dUSDF;
//收入\成本 生成 全额\差额
Decimal strJie = dRMBS + dUSDS * dEXCHANGERATE;
Decimal strDai = dRMBF + dUSDF * dEXCHANGERATE;
//
#region 全额
if (dsVWChFeeInvoiceMBINCOME != null)
{
for (int i = 0; i < dsVWChFeeInvoiceMBINCOME.Tables[0].Rows.Count; i++)
{
#region 摘要内容
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
strEXPLAN = "";
strEXPLAN = MBINCOMEEXPLAN;
var ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
}
else
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["SALE"].ToString().Trim();//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
}
//else
//{
// strEXPLAN = dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim();
//}
#endregion
#region 收入
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsMBINCOME.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsMBINCOME.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsMBINCOME.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = "";//
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
if (dsVWChFeeInvoiceTMFCI != null)
{
for (int i = 0; i < dsVWChFeeInvoiceTMFCI.Tables[0].Rows.Count; i++)
{
#region 摘要内容
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
strEXPLAN = "";
strEXPLAN = MBINCOMEEXPLAN;
var ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
}
else
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
if (dsCwDesign.Tables[0].Rows[0]["ISSALE"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["SALE"].ToString().Trim();//是否主提单号
}
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
}
//else
//{
// strEXPLAN = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim();
//}
#endregion
#region 收入_外币
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["CURRENCY"].ToString().Trim();//外币
strFCY = MsCwVouitemsGl.FCYNO;
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = Decimal.Parse(dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["je"].ToString().Trim());//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsTMFCI.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsTMFCI.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceTMFCI.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsTMFCI.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["EXCHANGERATE"].ToString().Trim());//汇率
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = "";//
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#endregion
#region 插入明细表:销项税
if (dsVWChFeeInvoiceOUTPUTTAX != null)
{
for (int i = 0; i < dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows.Count; i++)
{
#region 摘要内容
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
strEXPLAN = "";
strEXPLAN = MBINCOMEEXPLAN;
var ISEXPLAN = false;
if (strEXPLAN != "") ISEXPLAN = true;
if (ISEXPLAN)
{
strEXPLAN = strEXPLAN.Replace("[发票抬头]", dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["INVOICECUSTNAME"].ToString().Trim());
strEXPLAN = strEXPLAN.Replace("[发票号]", dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["INVOICENO"].ToString().Trim());
}
else
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
}
#endregion
#region 收入
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsOUTPUTTAX.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsOUTPUTTAX.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsOUTPUTTAX.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = "";//
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#endregion
#region 插入主表
MsCwVouchersGl MsCwVouchersGl = new MsCwVouchersGl();
MsCwVouchersGl.ORDNO = strORDNO.Trim();//唯一编码 newid() varchar (36)
MsCwVouchersGl.VOUDATE = headData.VOUDATE;//凭证日期
MsCwVouchersGl.ISAUTO = true;
//strY + "~" + strM + "~" + sVOUNO + "~" + strVOUNO + "~" + strVOUDATE + "~" + strACCDATE;
//string sACCDATE = headData.VOUDATE.Substring(0, 7);
//if (DateTime.Parse(sACCDATE + "-01") < DateTime.Parse(strACCDATE + "-01"))
//{
// sACCDATE = strACCDATE;
//}
//string strVOUNOhj = DSWeb.MvcShipping.DAL.MsBaseInfoDAL.MsBaseInfoDAL.GetCwVOUNO(strBPVW.Trim(), sACCDATE);
//string[] items = strVOUNOhj.Trim().Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
//string sVOUNO = items[2].ToString().Trim();
//string strVOUNO = items[3].ToString().Trim();
MsCwVouchersGl.VOUNO = int.Parse(cfVOUALLNO.Substring(cfVOUALLNO.Length - 4)).ToString();//sVOUNO;//月初清零 varchar (16)
MsCwVouchersGl.ACCYEAR = DateTime.Parse(headData.VOUDATE.ToString()).Year.ToString();//年
MsCwVouchersGl.ACCMONTH = DateTime.Parse(headData.VOUDATE.ToString()).Month.ToString();//月
if (MsCwVouchersGl.ACCMONTH.ToString().Length == 1)
{
MsCwVouchersGl.ACCMONTH = "0" + MsCwVouchersGl.ACCMONTH.ToString();//月
}
MsCwVouchersGl.VKNO = strBPVW.Trim();//凭证字
//MsCwVouchersGl.VOUALLNO = MsCwVouchersGl.VKNO + MsCwVouchersGl.ACCYEAR + MsCwVouchersGl.ACCMONTH + strVOUNO;//年+月+自动生成编号=凭证号
MsCwVouchersGl.VOUALLNO = cfVOUALLNO.Replace("记", strBPVW.Trim());//年+月+自动生成编号=凭证号
MsCwVouchersGl.ATTACHS = 1;// int.Parse(dsCwDesign.Tables[0].Rows[0]["AFFIXNO"].ToString().Trim());//附件(单据)数
MsCwVouchersGl.AMTDR = strJie;// iAMTDR;//本位币借方
MsCwVouchersGl.AMTCR = strDai;//iAMTDR;// iAMTCR;//本位币贷方
MsCwVouchersGl.FCY = strFCY;//是否含有外币科目
MsCwVouchersGl.QTY = "";//是否含有数量科目
MsCwVouchersGl.VOUPROP = "";//凭证属性
MsCwVouchersGl.PREPARED = headData.PREPARED.ToString().Trim();//制单人
MsCwVouchersGl.CHECKED = "";//审核人
MsCwVouchersGl.ENTERED = "";//记账人
MsCwVouchersGl.ERRMSG = "";//错误信息
MsCwVouchersGl.ISDELETE = false;//是否废除
MsCwVouchersGl.DELETEUSER = "";//废除操作人
MsCwVouchersGl.STARTGID = strCwSTARTGID;
MsCwVouchersGl.DbOperationType = DbOperationType.DbotIns;
MsCwVouchersGl.CREATEUSER = strUserID;//创建人
MsCwVouchersGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouchersGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouchersGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
#region 生成入库
var modb = new ModelObjectDB();
result = modb.Save(MsCwVouchersGl);
var strexplan = "";
if (result.Success == true)
{
int n = 1;
foreach (var enumValue in CwVouitemsEntities)
{
if (!string.IsNullOrEmpty(enumValue.EXPLAN)) strexplan = enumValue.EXPLAN;
else {
if (!string.IsNullOrEmpty(strexplan)) enumValue.EXPLAN = strexplan;
else enumValue.EXPLAN = "发票";
}
enumValue.GID = Guid.NewGuid().ToString();
enumValue.ITEMNO = n;
enumValue.DbOperationType = DbOperationType.DbotIns;
var modb2 = new ModelObjectDB();
DBResult result2 = modb2.Save(enumValue);
n++;
}
//更新凭证生成关系表中的ORDNO数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "update [cw_vouno_bs_gl] set ORDNO='" + MsCwVouchersGl.ORDNO + "' where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
blSQL = "update code_fill_serialno set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=GETDATE() where TABLENAME='cw_vouchers_gl' and SERIALNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "'";
bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
if (VOUAUTOCHECK == "1")
{
string blSQL2 = "update cw_vouchers_gl set ISCHECKED=1,CHECKED='" + strUserID + "',CHECKEDTIME=getdate() where VOUALLNO='" + cfVOUALLNO + "' and [STARTGID]='" + strCwSTARTGID + "'";
bool bl2 = T_ALL_DA.GetExecuteSqlCommand(blSQL2);
}
}
else
{
//result.Success = false;
//result.Message = result.Message;
//return result;
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -2;//重复数据
}
#endregion
}
else
{
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -3;//结算无明细数据
}
//result.Success = true;
//result.Message = result.Message;
//return result;
return 1;
}
protected static int getSC(DataSet dsCwDesign, DataSet dsCwDesignItem, string sAndGids, MsCwVouchersGl3 headData, List<MsCwVouchersGl4> bodyList, string strUserID, string strCompanyID, string cfVOUALLNO)
{
var result = new DBResult();
#region 基本变量
//全部
string sSQL = "";
string strEXPLAN = "";
string strFCY = "RMB";
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 strBPVW = dsCwDesign.Tables[0].Rows[0]["TVW"].ToString().Trim();
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(strUserID);
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
#endregion
#region 科目设置
//科目设置 应收RMB
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() + "'";
DataSet dsAR = T_ALL_DA.GetAllSQL(sSQL);
//科目设置 应收USD
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim() + "'";
DataSet dsARFC = T_ALL_DA.GetAllSQL(sSQL);
//主营业务收入 收入RMB
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() + "'";
DataSet dsMBINCOME = T_ALL_DA.GetAllSQL(sSQL);
//主营收入外币 收入USD
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim() + "'";
DataSet dsTMFCI = T_ALL_DA.GetAllSQL(sSQL);
//销项税
sSQL = "SELECT top 1 * from cw_accitems_gl where [YEAR]=SUBSTRING('" + strCwACCDATE + "',1,4) and [STARTGID]='" + strCwSTARTGID + "' and ACCID='" + dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim() + "'";
DataSet dsOUTPUTTAX = T_ALL_DA.GetAllSQL(sSQL);
#endregion
#region 摘要
string strISEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLAN += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLAN += ",MBLNO";//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLAN += ",BSSOURCE";//是否业务来源
//}
string strISEXPLANnull = "";
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strISEXPLANnull += ",CUSTOMERNAME";//是否收付客户名称CUSTOMERNAME
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",INVOICENO";//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strISEXPLANnull += ",MBLNO";//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VESSEL";//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",VOYNO";//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BSSOURCE";//是否业务来源
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBILLNO"].ToString().Trim() == "True")
//{
// strISEXPLANnull += ",BILLNO_ACAD";//是否申请单号
//}
}
#endregion
#region 票号
if (strISEXPLAN.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLAN += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
if (strISEXPLANnull.IndexOf(dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim()) < 0)
{
strISEXPLANnull += "," + dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
}
}
#endregion
#region 核算科目_分录
//string sqlItemAR = "";
//string sqlItemARFC = "";
//string sqlItemMBINCOME = "";
//string sqlItemTMFCI = "";
#endregion
#region 基本数据集
string strORDNO = getGid();
string sqlAR = "";
string sqlARFC = "";
string sqlMBINCOME = "";
string sqlTMFCI = "";
string sqlOUTPUTTAX = "";
string sqlOUTPUTTAXUSD = "";
IList<MsCwVouitemsGl> CwVouitemsEntities = new List<MsCwVouitemsGl>();
string strCondition = sAndGids + " and GID in (select [BSGID] from [cw_vouno_bs_gl] WITH(NOLOCK) where BSTABLENAME='ch_fee_invoice' and VOUALLNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "')";
//是否按照系统录入汇率
if (headData.ISRATE == true)
{
#region 科目设置应收RMB dsAR、应收USD dsARFC
if (dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim())
{
#region 应收RMB==应收USD
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsAR.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlAR = "SELECT EXCHANGERATE,CURRENCY,AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
//
sqlARFC = "SELECT EXCHANGERATE,CURRENCY,AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
}
else
{
sqlAR = "SELECT AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + "";
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
}
#endregion
}
else
{
#region 应收RMB!=应收USD
//应收RMB
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlAR = "SELECT AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
//应收USD
#region 核算项目
sISEXPLAN = "";
//是否核算客户
if (dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlARFC = "SELECT EXCHANGERATE,CURRENCY,AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置主营业务收入RMB dsMBINCOME、主营收入外币USD dsTMFCI
if (dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim())
{
#region 主营业务收入RMB==主营收入外币USD
string sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsMBINCOME.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlMBINCOME = "SELECT EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlMBINCOME += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
//
sqlTMFCI = "SELECT EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlTMFCI += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
}
else
{
sqlMBINCOME = "SELECT (SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + "";
sqlMBINCOME += " group BY VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
}
#endregion
}
else
{
#region 主营业务收入RMB!=主营收入外币USD
//主营业务收入RMB
string sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlMBINCOME = "SELECT (SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlMBINCOME += " group BY VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
//主营收入外币USD
sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlTMFCI = "SELECT EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlTMFCI += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置:销项税 dsOUTPUTTAX
#region 核算项目
string ssISEXPLAN = "";
//是否核算客户
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
ssISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
ssISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
ssISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlOUTPUTTAX = "SELECT EXCHANGERATE,CURRENCY,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " From VW_ch_fee_invoice WHERE 1=1 and TAX<>0" + strCondition + " and CURRENCY='RMB'";
sqlOUTPUTTAX += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " ORDER BY CURRENCY" + strISEXPLANnull + ssISEXPLAN;
//
sqlOUTPUTTAXUSD = "SELECT EXCHANGERATE,CURRENCY,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAXUSD += " From VW_ch_fee_invoice WHERE 1=1 and TAX<>0" + strCondition + " and CURRENCY<>'RMB'";
sqlOUTPUTTAXUSD += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAXUSD += " ORDER BY CURRENCY" + strISEXPLANnull + ssISEXPLAN;
}
else
{
sqlOUTPUTTAX = "SELECT SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " From VW_ch_fee_invoice WHERE 1=1 and TAX<>0" + strCondition;
sqlOUTPUTTAX += " group BY VOUNO" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " ORDER BY VOUNO" + strISEXPLANnull + ssISEXPLAN;
}
#endregion
}
else
{
#region 提取费率
string tbRATE = "";
if (bodyList != null)
{
if (bodyList.Count > 0)
{
for (int i = 0; i < bodyList.Count; i++)
{
tbRATE += " WHEN CURRENCY='" + bodyList[i].CURR.ToString().Trim() + "' THEN " + bodyList[i].FCYEXRATE.ToString().Trim();
}
}
}
#endregion
#region 科目设置应收RMB dsAR、应收USD dsARFC
if (dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim())
{
#region 应收RMB==应收USD
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsAR.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlAR = "SELECT EXCHANGERATE,CURRENCY,AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
//
sqlARFC = "SELECT (CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
}
else
{
sqlAR = "SELECT AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + "";
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
}
#endregion
}
else
{
#region 应收RMB!=应收USD
//应收RMB
#region 核算项目
string sISEXPLAN = "";
//是否核算客户
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlAR = "SELECT AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)) AS hj " + strISEXPLAN + sISEXPLAN;
sqlAR += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlAR += " ORDER BY VOUNO" + strISEXPLAN + sISEXPLAN;
//应收USD
#region 核算项目
sISEXPLAN = "";
//是否核算客户
if (dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLAN.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlARFC = "SELECT (CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,AMOUNT AS je,Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END))) AS hj " + strISEXPLAN + sISEXPLAN;
sqlARFC += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlARFC += " ORDER BY CURRENCY" + strISEXPLAN + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置主营业务收入RMB dsMBINCOME、主营收入外币USD dsTMFCI
if (dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim() == dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim())
{
#region 主营业务收入RMB==主营收入外币USD
string sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsMBINCOME.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlMBINCOME = "SELECT EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlMBINCOME += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
//
sqlTMFCI = "SELECT (CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END))))-SUM(Convert(decimal(18,2),(TAX*(CASE" + tbRATE + " ELSE EXCHANGERATE END))))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlTMFCI += " group BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
}
else
{
sqlMBINCOME = "SELECT (SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END))))-SUM(Convert(decimal(18,2),(TAX*(CASE" + tbRATE + " ELSE EXCHANGERATE END))))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + "";
sqlMBINCOME += " group BY VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
}
#endregion
}
else
{
#region 主营业务收入RMB!=主营收入外币USD
//主营业务收入RMB
string sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlMBINCOME = "SELECT (SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*EXCHANGERATE)))-SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE)))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY='RMB'";
sqlMBINCOME += " group BY VOUNO" + strISEXPLANnull + sISEXPLAN;
sqlMBINCOME += " ORDER BY VOUNO" + strISEXPLANnull + sISEXPLAN;
//主营收入外币USD
sISEXPLAN = "";
#region 核算项目
//是否核算客户
if (dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
sISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
sISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
sISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
sISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币,因 应收RMB!=应收USD所以此处不需核算外币
sqlTMFCI = "SELECT (CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,(SUM(AMOUNT)-SUM(TAX)) AS je,(SUM(Convert(decimal(18,2),(AMOUNT*(CASE" + tbRATE + " ELSE EXCHANGERATE END))))-SUM(Convert(decimal(18,2),(TAX*(CASE" + tbRATE + " ELSE EXCHANGERATE END))))) AS hj " + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " From VW_ch_fee_invoice WHERE 1=1" + strCondition + " and CURRENCY<>'RMB'";
sqlTMFCI += " group BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
sqlTMFCI += " ORDER BY CURRENCY" + strISEXPLANnull + sISEXPLAN;
#endregion
}
#endregion
#region 科目设置:销项税 dsOUTPUTTAX
#region 核算项目
string ssISEXPLAN = "";
//是否核算客户
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() != "True")
{
ssISEXPLAN += ",CUSTOMERNAME";//是否发票单位
}
else
{
if (strISEXPLANnull.IndexOf("CUSTOMERNAME") < 0)
{
ssISEXPLAN += ",CUSTOMERNAME";//是否委托单位
}
}
}
//是否核算人员
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",SALE";//是否揽货人
}
//是否核算部门
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
ssISEXPLAN += ",DEPTGID";//是否揽货人的部门
}
//是否核算项目
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
if (dsCwDesignItem != null)
{
ssISEXPLAN += ",OPLBNAME";//是否核算项目
}
}
#endregion
//ISFCY 是否核算外币
if (dsOUTPUTTAX.Tables[0].Rows[0]["ISFCY"].ToString().Trim() == "True")
{
sqlOUTPUTTAX = "SELECT EXCHANGERATE,CURRENCY,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*EXCHANGERATE))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " From VW_ch_fee_invoice WHERE 1=1 and TAX<>0" + strCondition + " and CURRENCY='RMB'";
sqlOUTPUTTAX += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " ORDER BY CURRENCY" + strISEXPLANnull + ssISEXPLAN;
//
sqlOUTPUTTAXUSD = "SELECT (CASE" + tbRATE + " ELSE EXCHANGERATE END) as EXCHANGERATE,CURRENCY,SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAXUSD += " From VW_ch_fee_invoice WHERE 1=1 and TAX<>0" + strCondition + " and CURRENCY<>'RMB'";
sqlOUTPUTTAXUSD += " group BY EXCHANGERATE,CURRENCY" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAXUSD += " ORDER BY CURRENCY" + strISEXPLANnull + ssISEXPLAN;
}
else
{
sqlOUTPUTTAX = "SELECT SUM(TAX) AS je,SUM(Convert(decimal(18,2),(TAX*(CASE" + tbRATE + " ELSE EXCHANGERATE END)))) AS hj " + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " From VW_ch_fee_invoice WHERE 1=1 and TAX<>0" + strCondition + "";
sqlOUTPUTTAX += " group BY VOUNO" + strISEXPLANnull + ssISEXPLAN;
sqlOUTPUTTAX += " ORDER BY VOUNO" + strISEXPLANnull + ssISEXPLAN;
}
#endregion
}
DataSet dsVWChFeeInvoiceAR = T_ALL_DA.GetAllSQL(sqlAR);
DataSet dsVWChFeeInvoiceARFC = null;
if (sqlARFC.Trim() != "")
{
dsVWChFeeInvoiceARFC = T_ALL_DA.GetAllSQL(sqlARFC);
}
DataSet dsVWChFeeInvoiceMBINCOME = T_ALL_DA.GetAllSQL(sqlMBINCOME);
DataSet dsVWChFeeInvoiceTMFCI = null;
if (sqlTMFCI.Trim() != "")
{
dsVWChFeeInvoiceTMFCI = T_ALL_DA.GetAllSQL(sqlTMFCI);
}
DataSet dsVWChFeeInvoiceOUTPUTTAX = T_ALL_DA.GetAllSQL(sqlOUTPUTTAX);
DataSet dsVWChFeeInvoiceOUTPUTTAXUSD = null;
if (sqlOUTPUTTAXUSD.Trim() != "")
{
dsVWChFeeInvoiceOUTPUTTAXUSD = T_ALL_DA.GetAllSQL(sqlOUTPUTTAXUSD);
}
#endregion
if (dsVWChFeeInvoiceAR != null || dsVWChFeeInvoiceARFC != null)
{
#region 明细表_实体类
#region 插入明细表应收RMB dsAR
if (dsVWChFeeInvoiceAR != null)
{
for (int i = 0; i < dsVWChFeeInvoiceAR.Tables[0].Rows.Count; i++)
{
#region 摘要内容
strEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否收付船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
#endregion
#region 插入明细表 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;// 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["hj"].ToString().Trim());
//
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["AR"].ToString().Trim();//应收账款科目贷码
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币编号usd
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
dRMBS += Decimal.Parse(dsVWChFeeInvoiceAR.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
//
MsCwVouitemsGl.ACCNAME = dsAR.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsAR.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
if (dsAR.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsAR.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceAR.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsAR.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsAR.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceAR.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsAR.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
dEXCHANGERATE = 1;//汇率
MsCwVouitemsGl.BLNO = "";
string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
if (strBLNONAME.Trim() != "")
{
MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceAR.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
}
//if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
//{
// MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceAR.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
//}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#region 插入明细表:应收外币 dsARFC
if (dsVWChFeeInvoiceARFC != null)
{
for (int i = 0; i < dsVWChFeeInvoiceARFC.Tables[0].Rows.Count; i++)
{
#region 摘要内容
strEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否收付船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否收付航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
#endregion
#region 插入明细表 应收账款
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;// 行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
#region 应收账款
iAMTDR = iAMTDR + Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["hj"].ToString().Trim());
//
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["ARFC"].ToString().Trim();//应收账款科目贷码
MsCwVouitemsGl.AMTDR = Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = 0;//本位币贷方金额(互斥)
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CURRENCY"].ToString().Trim();//外币
strFCY = MsCwVouitemsGl.FCYNO;
MsCwVouitemsGl.FCYDR = Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["je"].ToString().Trim());//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
dRMBS += Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币借方金额(互斥)
//
MsCwVouitemsGl.ACCNAME = dsARFC.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsARFC.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
//是否核算客户
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = "";//客户(系统)
if (dsARFC.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsARFC.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsARFC.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsARFC.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceARFC.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsARFC.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["EXCHANGERATE"].ToString().Trim());//汇率
dEXCHANGERATE = MsCwVouitemsGl.FCYEXRATE;//汇率
MsCwVouitemsGl.BLNO = "";
string strBLNONAME = dsCwDesign.Tables[0].Rows[0]["PiaoHao"].ToString().Trim();
if (strBLNONAME.Trim() != "")
{
MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceARFC.Tables[0].Rows[i][strBLNONAME].ToString().Trim();
}
//if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
//{
// MsCwVouitemsGl.BLNO = dsVWChFeeInvoiceARFC.Tables[0].Rows[i]["MBLNO"].ToString().Trim();
//}
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
#endregion
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#region 插入明细表:主营业务收入
Decimal dRMB = dRMBS - dRMBF;
Decimal dUSD = dUSDS - dUSDF;
//收入\成本 生成 全额\差额
Decimal strJie = dRMBS + dUSDS * dEXCHANGERATE;
Decimal strDai = dRMBF + dUSDF * dEXCHANGERATE;
//
#region 全额
if (dsVWChFeeInvoiceMBINCOME != null)
{
for (int i = 0; i < dsVWChFeeInvoiceMBINCOME.Tables[0].Rows.Count; i++)
{
#region 摘要内容
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
strEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
}
#endregion
#region 收入
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["MBINCOME"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = "RMB";//外币
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsMBINCOME.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsMBINCOME.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsMBINCOME.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsMBINCOME.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsMBINCOME.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsMBINCOME.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceMBINCOME.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsMBINCOME.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.FCYEXRATE = 1;//汇率
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = "";//
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
if (dsVWChFeeInvoiceTMFCI != null)
{
for (int i = 0; i < dsVWChFeeInvoiceTMFCI.Tables[0].Rows.Count; i++)
{
#region 摘要内容
if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
{
strEXPLAN = "";
if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
}
if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
}
if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
{
strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
}
//if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否船名
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
//}
//if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
//{
// strEXPLAN += " " + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
//}
}
#endregion
#region 收入_外币
MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
//MsCwVouitemsGl.GID 唯一编码 newid()
MsCwVouitemsGl.ORDNO = strORDNO.Trim();
MsCwVouitemsGl.ITEMNO = 0;//行号
MsCwVouitemsGl.PACCID = "";//父级科目贷码
MsCwVouitemsGl.PROPERTY = 0;//科目属性
MsCwVouitemsGl.GRADE = 0;//科目级别
MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["TMFCI"].ToString().Trim();//主营业务收入科目贷码
MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
strDai = strDai + MsCwVouitemsGl.AMTCR;
MsCwVouitemsGl.ISFCY = false;//是否外币
MsCwVouitemsGl.FCYNO = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["CURRENCY"].ToString().Trim();//外币
strFCY = MsCwVouitemsGl.FCYNO;
MsCwVouitemsGl.FCYDR = 0;//外币借方金额
MsCwVouitemsGl.FCYCR = Decimal.Parse(dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["je"].ToString().Trim());//外币贷方金额
MsCwVouitemsGl.ACCNAME = dsTMFCI.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
if (dsTMFCI.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
{
MsCwVouitemsGl.DC = "D";//借方向
}
else
{
MsCwVouitemsGl.DC = "C";//贷方向
}
//
string strACCALL = "";
MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
if (dsTMFCI.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.CORPID = "";//客户(系统)
MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
}
//是否核算部门
if (dsTMFCI.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
strACCALL += "▁" + dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
}
//是否核算人员_揽货人
if (dsTMFCI.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.SALE = dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
strACCALL += "▁" + MsCwVouitemsGl.SALE;
}
//是否核算项目
if (dsTMFCI.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ITEMGID = "";
if (dsCwDesignItem != null)
{
for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
{
if (dsVWChFeeInvoiceTMFCI.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
{
MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
}
}
}
}
MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsTMFCI.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeInvoiceTMFCI.Tables[0].Rows[i]["EXCHANGERATE"].ToString().Trim());//汇率
if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
{
MsCwVouitemsGl.ISSYS = false;//是否手动录入
}
else
{
MsCwVouitemsGl.ISSYS = true;//是否手动录入
}
MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
MsCwVouitemsGl.BLNO = "";//
MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
MsCwVouitemsGl.QTYDR = 0;//借方数量
MsCwVouitemsGl.QTYCR = 0;//贷方数量
MsCwVouitemsGl.DEPTID = "";//部门(系统)
MsCwVouitemsGl.EMPLID = "";//人员(系统)
MsCwVouitemsGl.PITEMID = 0;//父级项目编号
MsCwVouitemsGl.ITEMID = "";//项目编号
MsCwVouitemsGl.FIELD1 = "";//预留字段1
MsCwVouitemsGl.FIELD2 = "";//预留字段2
MsCwVouitemsGl.FIELD3 = "";//预留字段3
MsCwVouitemsGl.FIELD4 = "";//预留字段4
MsCwVouitemsGl.FIELD5 = "";//预留字段5
MsCwVouitemsGl.FIELD6 = "";//预留字段6
MsCwVouitemsGl.FIELD7 = "";//预留字段7
MsCwVouitemsGl.FIELD8 = "";//预留字段8
MsCwVouitemsGl.FIELD9 = "";//预留字段9
MsCwVouitemsGl.FIELD10 = "";//预留字段10
MsCwVouitemsGl.FSETTLCODE = "";//结算方式
MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
#endregion
CwVouitemsEntities.Add(MsCwVouitemsGl);
}
}
#endregion
#endregion
//#region 插入明细表:销项税
//if (dsVWChFeeInvoiceOUTPUTTAX != null)
//{
// for (int i = 0; i < dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows.Count; i++)
// {
// #region 摘要内容
// if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
// {
// strEXPLAN = "";
// if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
// }
// if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
// }
// if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
// }
// //if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
// //{
// // strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否船名
// //}
// //if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
// //{
// // strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
// //}
// //if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
// //{
// // strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
// //}
// }
// #endregion
// #region 收入
// MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
// //MsCwVouitemsGl.GID 唯一编码 newid()
// MsCwVouitemsGl.ORDNO = strORDNO.Trim();
// MsCwVouitemsGl.ITEMNO = 0;//行号
// MsCwVouitemsGl.PACCID = "";//父级科目贷码
// MsCwVouitemsGl.PROPERTY = 0;//科目属性
// MsCwVouitemsGl.GRADE = 0;//科目级别
// MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim();//主营业务收入科目贷码
// MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
// MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
// strDai = strDai + MsCwVouitemsGl.AMTCR;
// MsCwVouitemsGl.ISFCY = false;//是否外币
// MsCwVouitemsGl.FCYNO = "RMB";//外币
// MsCwVouitemsGl.FCYDR = 0;//外币借方金额
// MsCwVouitemsGl.FCYCR = 0;//外币贷方金额
// MsCwVouitemsGl.ACCNAME = dsOUTPUTTAX.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
// MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
// MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
// MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
// MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
// if (dsOUTPUTTAX.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
// {
// MsCwVouitemsGl.DC = "D";//借方向
// }
// else
// {
// MsCwVouitemsGl.DC = "C";//贷方向
// }
// //
// string strACCALL = "";
// MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
// MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.CORPID = "";//客户(系统)
// MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
// strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
// }
// //是否核算人员_揽货人
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.SALE = dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
// strACCALL += "▁" + MsCwVouitemsGl.SALE;
// }
// //是否核算部门
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
// strACCALL += "▁" + dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
// }
// //是否核算项目
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.ITEMGID = "";
// if (dsCwDesignItem != null)
// {
// for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
// {
// if (dsVWChFeeInvoiceOUTPUTTAX.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
// {
// MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
// strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
// }
// }
// }
// }
// MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsOUTPUTTAX.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
// MsCwVouitemsGl.FCYEXRATE = 1;//汇率
// if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.ISSYS = false;//是否手动录入
// }
// else
// {
// MsCwVouitemsGl.ISSYS = true;//是否手动录入
// }
// MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
// MsCwVouitemsGl.BLNO = "";//
// MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
// MsCwVouitemsGl.QTYDR = 0;//借方数量
// MsCwVouitemsGl.QTYCR = 0;//贷方数量
// MsCwVouitemsGl.DEPTID = "";//部门(系统)
// MsCwVouitemsGl.EMPLID = "";//人员(系统)
// MsCwVouitemsGl.PITEMID = 0;//父级项目编号
// MsCwVouitemsGl.ITEMID = "";//项目编号
// MsCwVouitemsGl.FIELD1 = "";//预留字段1
// MsCwVouitemsGl.FIELD2 = "";//预留字段2
// MsCwVouitemsGl.FIELD3 = "";//预留字段3
// MsCwVouitemsGl.FIELD4 = "";//预留字段4
// MsCwVouitemsGl.FIELD5 = "";//预留字段5
// MsCwVouitemsGl.FIELD6 = "";//预留字段6
// MsCwVouitemsGl.FIELD7 = "";//预留字段7
// MsCwVouitemsGl.FIELD8 = "";//预留字段8
// MsCwVouitemsGl.FIELD9 = "";//预留字段9
// MsCwVouitemsGl.FIELD10 = "";//预留字段10
// MsCwVouitemsGl.FSETTLCODE = "";//结算方式
// MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
// MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
// MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
// MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
// MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
// MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
// #endregion
// CwVouitemsEntities.Add(MsCwVouitemsGl);
// }
//}
//if (dsVWChFeeInvoiceOUTPUTTAXUSD != null)
//{
// for (int i = 0; i < dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows.Count; i++)
// {
// #region 摘要内容
// if (dsCwDesign.Tables[0].Rows[0]["ISMBINCOME"].ToString().Trim() == "False")//是否合并生成发票开出凭证中的主营业务科目
// {
// strEXPLAN = "";
// if (dsCwDesign.Tables[0].Rows[0]["ISCLIENTNAME"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();
// }
// if (dsCwDesign.Tables[0].Rows[0]["ISCUSTNO"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["INVOICENO"].ToString().Trim();//是否委托编号CUSTNO//发票号
// }
// if (dsCwDesign.Tables[0].Rows[0]["ISMBLNO"].ToString().Trim() == "True")
// {
// strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["MBLNO"].ToString().Trim();//是否主提单号
// }
// //if (dsCwDesign.Tables[0].Rows[0]["ISVESSEL"].ToString().Trim() == "True")
// //{
// // strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["VESSEL"].ToString().Trim();//是否船名
// //}
// //if (dsCwDesign.Tables[0].Rows[0]["ISVOYNO"].ToString().Trim() == "True")
// //{
// // strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["VOYNO"].ToString().Trim();//是否航次
// //}
// //if (dsCwDesign.Tables[0].Rows[0]["ISBSSOURCE"].ToString().Trim() == "True")
// //{
// // strEXPLAN += " " + dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["BSSOURCE"].ToString().Trim();//是否业务来源
// //}
// }
// #endregion
// #region 收入_外币
// MsCwVouitemsGl MsCwVouitemsGl = new MsCwVouitemsGl();
// //MsCwVouitemsGl.GID 唯一编码 newid()
// MsCwVouitemsGl.ORDNO = strORDNO.Trim();
// MsCwVouitemsGl.ITEMNO = 0;//行号
// MsCwVouitemsGl.PACCID = "";//父级科目贷码
// MsCwVouitemsGl.PROPERTY = 0;//科目属性
// MsCwVouitemsGl.GRADE = 0;//科目级别
// MsCwVouitemsGl.ACCID = dsCwDesign.Tables[0].Rows[0]["OUTPUTTAX"].ToString().Trim();//主营业务收入科目贷码
// MsCwVouitemsGl.AMTDR = 0;//本位币借方金额(互斥)
// MsCwVouitemsGl.AMTCR = Decimal.Parse(dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["hj"].ToString().Trim());//本位币贷方金额(互斥)
// strDai = strDai + MsCwVouitemsGl.AMTCR;
// MsCwVouitemsGl.ISFCY = false;//是否外币
// MsCwVouitemsGl.FCYNO = dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["CURRENCY"].ToString().Trim();//外币
// strFCY = MsCwVouitemsGl.FCYNO;
// MsCwVouitemsGl.FCYDR = 0;//外币借方金额
// MsCwVouitemsGl.FCYCR = Decimal.Parse(dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["je"].ToString().Trim());//外币贷方金额
// MsCwVouitemsGl.ACCNAME = dsOUTPUTTAX.Tables[0].Rows[0]["ACCNAME"].ToString().Trim();//科目名称
// MsCwVouitemsGl.ISDEPTACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim());//核算部门,按规则设置生成
// MsCwVouitemsGl.ISEMPLACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim());//核算人员,按规则设置生成
// MsCwVouitemsGl.ISCORPACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim());//核算客户,按规则设置生成
// MsCwVouitemsGl.ISITEMACC = Boolean.Parse(dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim());//核算项目,按规则设置生成
// if (dsOUTPUTTAX.Tables[0].Rows[0]["DC"].ToString().Trim() == "借")
// {
// MsCwVouitemsGl.DC = "D";//借方向
// }
// else
// {
// MsCwVouitemsGl.DC = "C";//贷方向
// }
// //
// string strACCALL = "";
// MsCwVouitemsGl.CORPID = "";// strEMPLID;//人员(系统)本来应该放客户
// MsCwVouitemsGl.CUSTOMERNAME = "";// strSALE;//人员(系统)本来应该放客户
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISCORPACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.CORPID = "";//客户(系统)
// MsCwVouitemsGl.CUSTOMERNAME = dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["CUSTOMERNAME"].ToString().Trim();//客户(系统)
// strACCALL += "▁" + MsCwVouitemsGl.CUSTOMERNAME;
// }
// //是否核算人员_揽货人
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISEMPLACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.SALE = dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["SALE"].ToString().Trim();//人员名称
// strACCALL += "▁" + MsCwVouitemsGl.SALE;
// }
// //是否核算部门
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISDEPTACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.DEPTGID = dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["DEPTGID"].ToString().Trim();//揽货人的部门
// strACCALL += "▁" + dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["DEPTNAME"].ToString().Trim();
// }
// //是否核算项目
// if (dsOUTPUTTAX.Tables[0].Rows[0]["ISITEMACC"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.ITEMGID = "";
// if (dsCwDesignItem != null)
// {
// for (int j = 0; j < dsCwDesignItem.Tables[0].Rows.Count; j++)
// {
// if (dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[0]["OPLBNAME"].ToString().Trim() == dsCwDesignItem.Tables[0].Rows[j]["OPTYPE"].ToString().Trim())
// {
// MsCwVouitemsGl.ITEMGID = dsCwDesignItem.Tables[0].Rows[j]["ITEMGID"].ToString().Trim();//是否核算项目
// strACCALL += "▁" + dsCwDesignItem.Tables[0].Rows[j]["ITEMNAME"].ToString().Trim();
// }
// }
// }
// }
// MsCwVouitemsGl.ACCALL = BasicDataRefDAL.setCAGA(dsOUTPUTTAX.Tables[0].Rows[0]["PACCGID"].ToString(), MsCwVouitemsGl.ACCNAME.ToString().Trim()) + strACCALL;
// MsCwVouitemsGl.FCYEXRATE = Decimal.Parse(dsVWChFeeInvoiceOUTPUTTAXUSD.Tables[0].Rows[i]["EXCHANGERATE"].ToString().Trim());//汇率
// if (dsCwDesign.Tables[0].Rows[0]["ISVBM"].ToString().Trim() == "True")
// {
// MsCwVouitemsGl.ISSYS = false;//是否手动录入
// }
// else
// {
// MsCwVouitemsGl.ISSYS = true;//是否手动录入
// }
// MsCwVouitemsGl.EXPLAN = strEXPLAN;//摘要,规则生成 "转运费" +
// MsCwVouitemsGl.BLNO = "";//
// MsCwVouitemsGl.QTYUNIT = "";//数量包装单位
// MsCwVouitemsGl.QTYDR = 0;//借方数量
// MsCwVouitemsGl.QTYCR = 0;//贷方数量
// MsCwVouitemsGl.DEPTID = "";//部门(系统)
// MsCwVouitemsGl.EMPLID = "";//人员(系统)
// MsCwVouitemsGl.PITEMID = 0;//父级项目编号
// MsCwVouitemsGl.ITEMID = "";//项目编号
// MsCwVouitemsGl.FIELD1 = "";//预留字段1
// MsCwVouitemsGl.FIELD2 = "";//预留字段2
// MsCwVouitemsGl.FIELD3 = "";//预留字段3
// MsCwVouitemsGl.FIELD4 = "";//预留字段4
// MsCwVouitemsGl.FIELD5 = "";//预留字段5
// MsCwVouitemsGl.FIELD6 = "";//预留字段6
// MsCwVouitemsGl.FIELD7 = "";//预留字段7
// MsCwVouitemsGl.FIELD8 = "";//预留字段8
// MsCwVouitemsGl.FIELD9 = "";//预留字段9
// MsCwVouitemsGl.FIELD10 = "";//预留字段10
// MsCwVouitemsGl.FSETTLCODE = "";//结算方式
// MsCwVouitemsGl.FSETTLENO = "";//财务辅助编号
// MsCwVouitemsGl.FSETTLDATE = DateTime.Parse(DateTime.Parse(headData.VOUDATE).ToString("yyyy-MM-dd"));//结算日期
// MsCwVouitemsGl.CREATEUSER = strUserID;//创建人
// MsCwVouitemsGl.CREATETIME = DateTime.Now;//创建时间
// MsCwVouitemsGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
// MsCwVouitemsGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
// #endregion
// CwVouitemsEntities.Add(MsCwVouitemsGl);
// }
//}
//#endregion
#endregion
#region 插入主表
MsCwVouchersGl MsCwVouchersGl = new MsCwVouchersGl();
MsCwVouchersGl.ORDNO = strORDNO.Trim();//唯一编码 newid() varchar (36)
MsCwVouchersGl.VOUDATE = headData.VOUDATE;//凭证日期
//strY + "~" + strM + "~" + sVOUNO + "~" + strVOUNO + "~" + strVOUDATE + "~" + strACCDATE;
//string sACCDATE = headData.VOUDATE.Substring(0, 7);
//if (DateTime.Parse(sACCDATE + "-01") < DateTime.Parse(strACCDATE + "-01"))
//{
// sACCDATE = strACCDATE;
//}
//string strVOUNOhj = DSWeb.MvcShipping.DAL.MsBaseInfoDAL.MsBaseInfoDAL.GetCwVOUNO(strBPVW.Trim(), sACCDATE);
//string[] items = strVOUNOhj.Trim().Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
//string sVOUNO = items[2].ToString().Trim();
//string strVOUNO = items[3].ToString().Trim();
MsCwVouchersGl.VOUNO = int.Parse(cfVOUALLNO.Substring(cfVOUALLNO.Length-4)).ToString();//sVOUNO;//月初清零 varchar (16)
MsCwVouchersGl.ACCYEAR = DateTime.Parse(headData.VOUDATE.ToString()).Year.ToString();//年
MsCwVouchersGl.ACCMONTH = DateTime.Parse(headData.VOUDATE.ToString()).Month.ToString();//月
if (MsCwVouchersGl.ACCMONTH.ToString().Length == 1)
{
MsCwVouchersGl.ACCMONTH = "0" + MsCwVouchersGl.ACCMONTH.ToString();//月
}
MsCwVouchersGl.VKNO = strBPVW.Trim();//凭证字
//MsCwVouchersGl.VOUALLNO = MsCwVouchersGl.VKNO + MsCwVouchersGl.ACCYEAR + MsCwVouchersGl.ACCMONTH + strVOUNO;//年+月+自动生成编号=凭证号
MsCwVouchersGl.VOUALLNO = cfVOUALLNO.Replace("记", strBPVW.Trim());//年+月+自动生成编号=凭证号
MsCwVouchersGl.ATTACHS = 1;// int.Parse(dsCwDesign.Tables[0].Rows[0]["AFFIXNO"].ToString().Trim());//附件(单据)数
MsCwVouchersGl.AMTDR = strJie;// iAMTDR;//本位币借方
MsCwVouchersGl.AMTCR = strDai;//iAMTDR;// iAMTCR;//本位币贷方
MsCwVouchersGl.FCY = strFCY;//是否含有外币科目
MsCwVouchersGl.QTY = "";//是否含有数量科目
MsCwVouchersGl.VOUPROP = "";//凭证属性
MsCwVouchersGl.PREPARED = headData.PREPARED.ToString().Trim();//制单人
MsCwVouchersGl.CHECKED = "";//审核人
MsCwVouchersGl.ENTERED = "";//记账人
MsCwVouchersGl.ERRMSG = "";//错误信息
MsCwVouchersGl.ISDELETE = false;//是否废除
MsCwVouchersGl.DELETEUSER = "";//废除操作人
MsCwVouchersGl.STARTGID = strCwSTARTGID;
MsCwVouchersGl.DbOperationType = DbOperationType.DbotIns;
MsCwVouchersGl.CREATEUSER = strUserID;//创建人
MsCwVouchersGl.CREATETIME = DateTime.Now;//创建时间
MsCwVouchersGl.MODIFIEDUSER = strUserID;//最后一次更新操作人
MsCwVouchersGl.MODIFIEDTIME = DateTime.Now;//最后一次更新操作时间
MsCwVouchersGl.ISAUTO = true;
#endregion
#region 生成入库
var modb = new ModelObjectDB();
result = modb.Save(MsCwVouchersGl);
if (result.Success == true)
{
int n = 1;
foreach (var enumValue in CwVouitemsEntities)
{
enumValue.GID = Guid.NewGuid().ToString();
enumValue.ITEMNO = n;
enumValue.DbOperationType = DbOperationType.DbotIns;
var modb2 = new ModelObjectDB();
DBResult result2 = modb2.Save(enumValue);
n++;
}
//更新凭证生成关系表中的ORDNO数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "update [cw_vouno_bs_gl] set ORDNO='" + MsCwVouchersGl.ORDNO + "' where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
blSQL = "update code_fill_serialno set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=GETDATE() where TABLENAME='cw_vouchers_gl' and SERIALNO='" + cfVOUALLNO + "' and STARTGID='" + strCwSTARTGID + "'";
bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
}
else
{
//result.Success = false;
//result.Message = result.Message;
//return result;
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -2;//重复数据
}
#endregion
}
else
{
//删除ch_fee_invoice中未生成的凭证号
//string blSQL = "update ch_fee_invoice set VOUNO='' where VOUNO='" + cfVOUALLNO + "'" + sAndGids.Trim();
//删除凭证生成关系表中的ch_fee_invoice的GID数据
string strLS = sAndGids.Replace("GID", "BSGID");
string blSQL = "delete from [cw_vouno_bs_gl] where VOUALLNO='" + cfVOUALLNO + "' and BSTABLENAME='ch_fee_invoice' and [STARTGID]='" + strCwSTARTGID + "'" + strLS;
bool bl = T_ALL_DA.GetExecuteSqlCommand(blSQL);
return -3;//结算无明细数据
}
//result.Success = true;
//result.Message = result.Message;
//return result;
return 1;
}
public static String getGid()
{
string strgid = Guid.NewGuid().ToString();
strgid = strgid.Replace("-", "");
strgid = "VOU" + strgid;
return strgid;
}
#endregion
}
}