using System; using System.Data; using System.Collections.Generic; using System.Text; using DSWeb.MvcShipping.DAL.MsCtInitialBalanceDAL; using DSWeb.MvcShipping.Models.MsCtBankJournal; using DSWeb.MvcShipping.Models.RptCtGenlegAccitems; 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; namespace DSWeb.MvcShipping.DAL.MsCtBankJournalDAL { public class MsCtBankJournalDAL { #region 查询主表 static public List GetDataList2(string strCondition, string userid, string usercode, string companyid,string sort = null) { string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); var strSql = new StringBuilder(); strSql.Append("SELECT *,CREATEUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.CREATEUSER),MODIFIEDUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.MODIFIEDUSER),ACCNAME=(select top 1 ACCNAME from [cw_accitems_gl] where gid=ct_bank_journal.ACCGID),SETTLETYPENAME=isnull((select top 1 STLNAME from [code_stlmode] where STLCODE=ct_bank_journal.SETTLETYPE),''),ISCHECKING=(case when CHECKINGGID='' then '' else (case when CHECKINGGID like 'auto%' then '*' else '**' end) end) from ct_bank_journal WITH(NOLOCK) where STARTGID='" + strCtSTARTGID + "'"); 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 VOUDATE desc,convert(decimal(10),ITEMNO) desc"); } return SetData(strSql); } static public MsCtBankJournal GetData(string condition, string companyid, string strUserID) { string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(strUserID); var strSql = new StringBuilder(); strSql.Append("SELECT *,CREATEUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.CREATEUSER),MODIFIEDUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.MODIFIEDUSER),ACCNAME=(select top 1 ACCNAME from [cw_accitems_gl] where gid=ct_bank_journal.ACCGID),SETTLETYPENAME=isnull((select top 1 STLNAME from [code_stlmode] where STLCODE=ct_bank_journal.SETTLETYPE),''),ISCHECKING=(case when CHECKINGGID='' then '' else (case when CHECKINGGID like 'auto%' then '*' else '**' end) end) from ct_bank_journal WITH(NOLOCK) where STARTGID='" + strCtSTARTGID + "'"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } var list=SetData(strSql); if (list.Count > 0) return list[0]; return new MsCtBankJournal(); } private static List SetData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsCtBankJournal data = new MsCtBankJournal(); #region Set DB data to Object data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//惟一值 data.ACCGID = (reader["ACCGID"] == null ? "" : Convert.ToString(reader["ACCGID"]));//科目GID data.FCYNO = (reader["FCYNO"] == null ? "" : Convert.ToString(reader["FCYNO"]));//外币编号usd //data.VOUDATE = (reader["VOUDATE"] == null ? "" : Convert.ToString(reader["VOUDATE"]));//凭证日期 if (reader["VOUDATE"] != null && reader["VOUDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["VOUDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["VOUDATE"].ToString().Trim() != "") { data.VOUDATE = Convert.ToDateTime(reader["VOUDATE"]);//凭证日期 } data.ITEMNO = (reader["ITEMNO"] == null ? 0 : Convert.ToInt32(reader["ITEMNO"]));//当日序号 data.VGID = (reader["VGID"] == null ? "" : Convert.ToString(reader["VGID"]));//凭证明细GID data.VKNO = (reader["VKNO"] == null ? "" : Convert.ToString(reader["VKNO"]));//凭证字 data.VOUNO = (reader["VOUNO"] == null ? "" : Convert.ToString(reader["VOUNO"]));//凭证号 data.FENTRYID = (reader["FENTRYID"] == null ? 0 : Convert.ToInt32(reader["FENTRYID"]));//分录号 data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//会计期间 data.SETTLETYPE = (reader["SETTLETYPE"] == null ? 0 : Convert.ToInt32(reader["SETTLETYPE"]));//结算方式 data.BILLNO = (reader["BILLNO"] == null ? "" : Convert.ToString(reader["BILLNO"]));//结算号 //data.SVOUDATE = (reader["SVOUDATE"] == null ? "" : Convert.ToString(reader["SVOUDATE"]));//结算日期 if (reader["SVOUDATE"] != null && reader["SVOUDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["SVOUDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["SVOUDATE"].ToString().Trim() != "") { data.SVOUDATE = Convert.ToDateTime(reader["SVOUDATE"]);//结算日期 } data.DC = (reader["DC"] == null ? "" : Convert.ToString(reader["DC"]));//借贷方向 data.DR = (reader["DR"] == null ? 0 : Convert.ToDecimal(reader["DR"]));//原币借方金额(互斥) data.CR = (reader["CR"] == null ? 0 : Convert.ToDecimal(reader["CR"]));//原币贷方金额(互斥) data.FCYEXRATE = (reader["FCYEXRATE"] == null ? 0 : Convert.ToDecimal(reader["FCYEXRATE"]));//汇率 data.QTYDR = (reader["QTYDR"] == null ? 0 : Convert.ToDecimal(reader["QTYDR"]));//折合本位币借方 data.QTYCR = (reader["QTYCR"] == null ? 0 : Convert.ToDecimal(reader["QTYCR"]));//折合本位币贷方 data.BLC = (reader["BLC"] == null ? 0 : Convert.ToDecimal(reader["BLC"]));//原币余额 data.EXPLAN = (reader["EXPLAN"] == null ? "" : Convert.ToString(reader["EXPLAN"]));//摘要,规则生成 data.ENTERED = (reader["ENTERED"] == null ? "" : Convert.ToString(reader["ENTERED"]));//经手人 data.ISINITIAL = (reader["ISINITIAL"] == null ? false : Convert.ToBoolean(reader["ISINITIAL"]));//是否期初 data.CHECKINGGID = (reader["CHECKINGGID"] == null ? "" : Convert.ToString(reader["CHECKINGGID"]));//对账GID data.STARTGID = (reader["STARTGID"] == null ? "" : Convert.ToString(reader["STARTGID"]));//账套启用GID data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//分公司GID data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//制单人GID if (reader["CREATETIME"] != null && reader["CREATETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["CREATETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["CREATETIME"].ToString().Trim() != "") { data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间 } data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//最后一次更改操作人GID if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "") { data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//最后一次更改操作时间 } data.SETTLETYPENAME = (reader["SETTLETYPENAME"] == null ? "" : Convert.ToString(reader["SETTLETYPENAME"]));//结算方式 data.CREATEUSERNAME = (reader["CREATEUSERNAME"] == null ? "" : Convert.ToString(reader["CREATEUSERNAME"]));//制单人 data.MODIFIEDUSERNAME = (reader["MODIFIEDUSERNAME"] == null ? "" : Convert.ToString(reader["MODIFIEDUSERNAME"]));//最后一次更改操作人 data.ACCNAME = (reader["ACCNAME"] == null ? "" : Convert.ToString(reader["ACCNAME"]));//科目 data.ISCHECKING = (reader["ISCHECKING"] == null ? "" : Convert.ToString(reader["ISCHECKING"]));//对账状态 #endregion headList.Add(data); } reader.Close(); } return headList; } static public List GetDataList(string strCondition, string strCondition3, string userid, string usercode, string companyid, string sort = null) { string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); var strSql = new StringBuilder(); strSql.Append("( "); strSql.Append("SELECT *,CREATEUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.CREATEUSER),MODIFIEDUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.MODIFIEDUSER),ACCNAME=(select top 1 ACCNAME from [cw_accitems_gl] where gid=ct_bank_journal.ACCGID),SETTLETYPENAME=(select top 1 STLNAME from [code_stlmode] where STLCODE=ct_bank_journal.SETTLETYPE),ISCHECKING=(case when CHECKINGGID='' then '' else (case when CHECKINGGID like 'auto%' then '*' else '**' end) end),linenum=1,convert(decimal(10),ITEMNO) as ITEMNO1 from ct_bank_journal WITH(NOLOCK) where ISINITIAL=0 and STARTGID='" + strCtSTARTGID + "'"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(") union ("); //本日合计 strSql.Append("select newid() as GID,'','',VOUDATE,0 as ITEMNO,'','','',0,'','','','',DC=(case when isnull(SUM(BLC),0)<0 then '贷' else '借' end),DR=isnull(SUM(DR),0),CR=isnull(SUM(CR),0),1,QTYDR=0,QTYCR=0,BLC,'本日合计' as EXPLAN,'','','','','','','','','','','','','','',2 as linenum,'0' as ITEMNO1 "); strSql.Append("from (select newid() as GID,VOUDATE,DR=isnull(DR,0),CR=isnull(CR,0),QTYDR=0,QTYCR=0,BLC=isnull((SELECT top 1 (CASE WHEN CURRENCY='RMB' THEN AMTLASTBLC ELSE FCYLASTBLC END) as BLC from ct_genleg_accitems WITH(NOLOCK) WHERE STARTGID='" + strCtSTARTGID + "' AND ([YEAR]+'-'+[MONTH]+'-'+[DAY])=convert(varchar,ct_bank_journal.VOUDATE,23)"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition.Trim().Replace("FCYNO", "CURRENCY").Replace("ACCGID", "LINKGID").Replace("ACCDATE", "([YEAR]+'-'+[MONTH])").Replace("VOUDATE", "([YEAR]+'-'+[MONTH]+'-'+[DAY])")); } strSql.Append(" ORDER by [YEAR] desc,[MONTH] desc,[DAY] desc),0) from ct_bank_journal WITH(NOLOCK) where ISINITIAL=0 and STARTGID='" + strCtSTARTGID + "'"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(") as als group by VOUDATE,BLC"); strSql.Append(") union ("); //本期合计 strSql.Append("select newid() as GID,'','',VOUDATE,0 as ITEMNO,'','','',0,'','','','',DC=(case when isnull(SUM(BLC),0)<0 then '贷' else '借' end),DR=isnull(SUM(DR),0),CR=isnull(SUM(CR),0),1,QTYDR=0,QTYCR=0,BLC,EXPLAN='本期合计','','','','','','','','','','','','','','',linenum=3,'0' as ITEMNO1 from ("); strSql.Append("select newid() as GID,(ACCDATE+'-'+CONVERT(nvarchar(2), DATEDIFF(day,(ACCDATE+'-01'),DATEADD(month,1,(ACCDATE+'-01'))))) as VOUDATE,DR=isnull(DR,0),CR=isnull(CR,0),QTYDR=0,QTYCR=0,BLC=isnull((SELECT top 1 (CASE WHEN CURRENCY='RMB' THEN AMTLASTBLC ELSE FCYLASTBLC END) as BLC from ct_genleg_accitems WHERE STARTGID='" + strCtSTARTGID + "' AND ([YEAR]+'-'+[MONTH])=ct_bank_journal.ACCDATE"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition.Trim().Replace("FCYNO", "CURRENCY").Replace("ACCGID", "LINKGID").Replace("ACCDATE", "([YEAR]+'-'+[MONTH])").Replace("VOUDATE", "([YEAR]+'-'+[MONTH]+'-'+[DAY])")); } strSql.Append(" ORDER by [YEAR] desc,[MONTH] desc,[DAY] desc),0) from ct_bank_journal WITH(NOLOCK) where ISINITIAL=0 and STARTGID='" + strCtSTARTGID + "'"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(") as bls group by VOUDATE,BLC"); strSql.Append(") union ("); //合计 strSql.Append("select newid() as GID,'','','9999-12-31 00:00:00.000',0,'','','',0,'','','','',DC=(case when BLC<0 then '贷' else '借' end),DR=isnull(SUM(DR),0),CR=isnull(SUM(CR),0),1,QTYDR=0,QTYCR=0,BLC,EXPLAN='合计','','','','','','','','','','','','','','',linenum=4,'0' as ITEMNO1 from ("); strSql.Append("select newid() as GID,DR=isnull(DR,0),CR=isnull(CR,0),QTYDR=0,QTYCR=0,BLC=isnull((SELECT top 1 (CASE WHEN CURRENCY='RMB' THEN AMTLASTBLC ELSE FCYLASTBLC END) as BLC from ct_genleg_accitems WITH(NOLOCK) WHERE STARTGID='" + strCtSTARTGID + "'"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition.Trim().Replace("FCYNO", "CURRENCY").Replace("ACCGID", "LINKGID").Replace("ACCDATE", "([YEAR]+'-'+[MONTH])").Replace("VOUDATE", "([YEAR]+'-'+[MONTH]+'-'+[DAY])")); } strSql.Append(" ORDER by [YEAR] desc,[MONTH] desc,[DAY] desc),0) from ct_bank_journal WITH(NOLOCK) where ISINITIAL=0 and STARTGID='" + strCtSTARTGID + "'"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(") as bls group by BLC"); strSql.Append(") union ("); //期初余额 strSql.Append("select top 1 GID,'','','' as VOUDATE,0,'','','',0,'','','','',DC=(case when (case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end)<0 then '贷' else '借' end),DR=0,CR=0,1,QTYDR=0,QTYCR=0,BLC=isnull((case when (case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end)<0 then -(case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end) else (case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end) end),0),EXPLAN='(期初余额)','','','','','','','','','','','','','','',linenum=0,'0' as ITEMNO1 from ct_genleg_accitems WITH(NOLOCK) where STARTGID='" + strCtSTARTGID + "'"); if (!string.IsNullOrEmpty(strCondition3)) { strSql.Append(" and " + strCondition3); } strSql.Append(" and DAY='01' )"); // var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by VOUDATE,linenum,ITEMNO1"); } return SetData(strSql); } #endregion #region 查询明细表 static public List GetDetailList(string strCondition, string userid, string usercode, string companyid) { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string sCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); // string sSQL = "select top 1 ACCDAY from ct_carry_over where STARTGID='" + sCtSTARTGID.Trim() + "' order by STARTGID,ACCDAY desc"; string sACCDAY = T_ALL_DA.GetStrSQL("ACCDAY", sSQL); if (sACCDAY != "") { sACCDAY = DateTime.Parse(sACCDAY).ToString("yyyy-MM-dd"); sACCDAY = " and VOUDATE>'" + sACCDAY + "'"; } // var strSql = new StringBuilder(); strSql.Append("SELECT *,CREATEUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.CREATEUSER),MODIFIEDUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.MODIFIEDUSER),ACCNAME=(select top 1 ACCNAME from [cw_accitems_gl] where gid=ct_bank_journal.ACCGID),SETTLETYPENAME=isnull((select top 1 STLNAME from [code_stlmode] where STLCODE=ct_bank_journal.SETTLETYPE),''),ISCHECKING=(case when CHECKINGGID='' then '' else (case when CHECKINGGID like 'auto%' then '*' else '**' end) end) from ct_bank_journal WITH(NOLOCK) where STARTGID='" + sCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null)" + sACCDAY); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(" order by VOUDATE,convert(decimal(10),ITEMNO)"); return SetData(strSql); } #endregion #region 返回出纳当前账套和会计期间 public static string GetInitData(string isInitial, string strCompanyID, string strUserID) { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(strUserID); if (strCtSTARTGID == "") { return "-1"; } string sSTARTMONTH = T_ALL_DA.GetStrSQL("STARTMONTH", "select top 1 STARTMONTH from ct_design_startusing WITH(NOLOCK) where gid='" + strCtSTARTGID + "' and (ISDELETE=0 or ISDELETE is null)"); string strACCDATE = BasicDataRefDAL.GetCtACCDATE(strUserID); if (strACCDATE == "") { return "-1"; } // if (isInitial=="1") { string strACCDAY = DateTime.Parse(sSTARTMONTH + "-01").AddDays(-1).ToString("yyyy-MM-dd"); sSTARTMONTH = strACCDAY.Substring(0, 7); string strACCTODAY = sSTARTMONTH + "-" + DateTime.Now.Day.ToString(); return strCtSTARTGID + "," + sSTARTMONTH + "," + strACCDAY + "," + strACCTODAY; } else { string strACCDAY = DateTime.Parse(strACCDATE + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd"); string strACCTODAY = strACCDATE + "-" + DateTime.Now.Day.ToString(); return strCtSTARTGID + "," + strACCDATE + "," + strACCDAY + "," + strACCTODAY; } } #endregion #region 更新科目总账表ct_genleg_accitems public static void onCtGenlegAccitems(MsCtBankJournal headRow, string companyid, string userid) { #region 默认值 T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string sYear = headRow.VOUDATE.Year.ToString(); string sMonth = headRow.VOUDATE.Month.ToString(); if (sMonth.Trim().Length == 1) { sMonth = "0" + sMonth; } string sDay = headRow.VOUDATE.Day.ToString(); if (sDay.Trim().Length == 1) { sDay = "0" + sDay; } string sYear2 = headRow.VOUDATE.AddDays(1).Year.ToString(); string sMonth2 = headRow.VOUDATE.AddDays(1).Month.ToString(); if (sMonth2.Trim().Length == 1) { sMonth2 = "0" + sMonth2; } string sDay2 = headRow.VOUDATE.AddDays(1).Day.ToString(); if (sDay2.Trim().Length == 1) { sDay2 = "0" + sDay2; } string strCtACCDATE = BasicDataRefDAL.GetCtACCDATE(userid); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); string sSQL = "select DC from cw_accitems_gl where STARTGID='" + strCtSTARTGID + "' AND GID='" + headRow.ACCGID.ToString() + "'"; string ACCDC = T_ALL_DA.GetStrSQL("DC", sSQL); sSQL = "select top 1 GID from ct_genleg_accitems WITH(NOLOCK) WHERE STARTGID='" + strCtSTARTGID + "' AND YEAR='" + sYear + "' and MONTH='" + sMonth + "' and DAY='" + sDay + "' and LINKGID='" + headRow.ACCGID.ToString() + "' and CURRENCY='" + headRow.FCYNO.ToString() + "'"; string sGID = T_ALL_DA.GetStrSQL("GID", sSQL); sSQL = "select top 1 GID from ct_genleg_accitems WITH(NOLOCK) WHERE STARTGID='" + strCtSTARTGID + "' AND YEAR='" + sYear2 + "' and MONTH='" + sMonth2 + "' and DAY='" + sDay2 + "' and LINKGID='" + headRow.ACCGID.ToString() + "' and CURRENCY='" + headRow.FCYNO.ToString() + "'"; string sGID2 = T_ALL_DA.GetStrSQL("GID", sSQL); sSQL = "select top 1 * from ct_genleg_accitems WITH(NOLOCK) WHERE STARTGID='" + strCtSTARTGID + "' AND LINKGID='" + headRow.ACCGID.ToString() + "' and CURRENCY='" + headRow.FCYNO.ToString() + "' and convert(varchar,([Year] + '-' + [Month] + '-' + [Day]),23)<'" + headRow.VOUDATE.ToString("yyyy-MM-dd") + "' order by [YEAR] desc,[MONTH] desc,[DAY] desc"; DataSet dsCtGenlegAccitems = T_ALL_DA.GetAllSQL(sSQL); #endregion #region 当日总账表 Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { if (sGID.Trim() == "") { #region 插入当日总账表 sSQL = "INSERT INTO [ct_genleg_accitems]([GID],[YEAR],[MONTH],[DAY],[LINKGID],[CURRENCY],[AMTYEARDR],[AMTYEARCR],[AMTYEARBLC],[AMTDR],[AMTCR],[AMTBLC],[AMTLASTDR],[AMTLASTCR],[AMTLASTBLC],[FCYYEARDR],[FCYYEARCR],[FCYYEARBLC],[FCYDR],[FCYCR],[FCYBLC],[FCYLASTDR],[FCYLASTCR],[FCYLASTBLC],[QTYYEARDR],[QTYYEARCR],[QTYYEARBLC],[QTYDR],[QTYCR],[QTYBLC],[QTYLASTDR],[QTYLASTCR],[QTYLASTBLC],[IsInitialEntry],[CORPID],[CREATEUSER],[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],[ACCDATE],[STARTGID])" + " select NEWID() as GID,'" + sYear + "' as [YEAR],'" + sMonth + "' as [MONTH],'" + sDay + "' as [DAY],'" + headRow.ACCGID.ToString() + "' as [LINKGID],'" + headRow.FCYNO.ToString() + "' as [CURRENCY]"; #region 判断是否有之前数据余额 if (dsCtGenlegAccitems!=null) { if(dsCtGenlegAccitems.Tables[0].Rows.Count>0) { sSQL += ",AMTYEARDR=" + (ACCDC=="借" ? dsCtGenlegAccitems.Tables[0].Rows[0]["AMTLASTBLC"].ToString() : "0") + ",AMTYEARCR=" + (ACCDC == "贷" ? dsCtGenlegAccitems.Tables[0].Rows[0]["AMTLASTBLC"].ToString() : "0") + ",AMTYEARBLC=" + dsCtGenlegAccitems.Tables[0].Rows[0]["AMTLASTBLC"].ToString() + ",AMTDR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end)" + ",AMTCR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end)" + ",AMTBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",AMTLASTDR=" + (ACCDC == "借" ? dsCtGenlegAccitems.Tables[0].Rows[0]["AMTLASTBLC"].ToString() : "0") + "+(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end)" + ",AMTLASTCR=" + (ACCDC == "贷" ? dsCtGenlegAccitems.Tables[0].Rows[0]["AMTLASTBLC"].ToString() : "0") + "+(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end)" + ",AMTLASTBLC=" + dsCtGenlegAccitems.Tables[0].Rows[0]["AMTLASTBLC"].ToString() + "+(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",FCYYEARDR=" + (ACCDC == "借" ? dsCtGenlegAccitems.Tables[0].Rows[0]["FCYLASTBLC"].ToString() : "0") + ",FCYYEARCR=" + (ACCDC == "贷" ? dsCtGenlegAccitems.Tables[0].Rows[0]["FCYLASTBLC"].ToString() : "0") + ",FCYYEARBLC=" + dsCtGenlegAccitems.Tables[0].Rows[0]["FCYLASTBLC"].ToString() + ",FCYDR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end)" + ",FCYCR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end)" + ",FCYBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",FCYLASTDR=" + (ACCDC == "借" ? dsCtGenlegAccitems.Tables[0].Rows[0]["FCYLASTBLC"].ToString() : "0") + "+(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end)" + ",FCYLASTCR=" + (ACCDC == "贷" ? dsCtGenlegAccitems.Tables[0].Rows[0]["FCYLASTBLC"].ToString() : "0") + "+(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end)" + ",FCYLASTBLC=" + dsCtGenlegAccitems.Tables[0].Rows[0]["FCYLASTBLC"].ToString() + "+(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",QTYYEARDR=" + (ACCDC == "借" ? dsCtGenlegAccitems.Tables[0].Rows[0]["QTYLASTBLC"].ToString() : "0") + ",QTYYEARCR=" + (ACCDC == "贷" ? dsCtGenlegAccitems.Tables[0].Rows[0]["QTYLASTBLC"].ToString() : "0") + ",QTYYEARBLC=" + dsCtGenlegAccitems.Tables[0].Rows[0]["QTYLASTBLC"].ToString() + ",QTYDR=isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)" + ",QTYCR=isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)" + ",QTYBLC=(case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end)" + ",QTYLASTDR=" + (ACCDC == "借" ? dsCtGenlegAccitems.Tables[0].Rows[0]["QTYLASTBLC"].ToString() : "0") + "+isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)" + ",QTYLASTCR=" + (ACCDC == "贷" ? dsCtGenlegAccitems.Tables[0].Rows[0]["QTYLASTBLC"].ToString() : "0") + "+isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)" + ",QTYLASTBLC=" + dsCtGenlegAccitems.Tables[0].Rows[0]["QTYLASTBLC"].ToString() + "+(case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end)"; } else { sSQL += ",AMTYEARDR=0,AMTYEARCR=0,AMTYEARBLC=0" + ",AMTDR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end)" + ",AMTCR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end)" + ",AMTBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",AMTLASTDR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end)" + ",AMTLASTCR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end)" + ",AMTLASTBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",FCYYEARDR=0,FCYYEARCR=0,FCYYEARBLC=0" + ",FCYDR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end)" + ",FCYCR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end)" + ",FCYBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",FCYLASTDR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end)" + ",FCYLASTCR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end)" + ",FCYLASTBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",QTYYEARDR=0,QTYYEARCR=0,QTYYEARBLC=0" + ",QTYDR=isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)" + ",QTYCR=isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)" + ",QTYBLC=(case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end)" + ",QTYLASTDR=isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)" + ",QTYLASTCR=isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)" + ",QTYLASTBLC=(case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end)"; } } else { sSQL += ",AMTYEARDR=0,AMTYEARCR=0,AMTYEARBLC=0" + ",AMTDR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end)" + ",AMTCR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end)" + ",AMTBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",AMTLASTDR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end)" + ",AMTLASTCR=(case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end)" + ",AMTLASTBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",FCYYEARDR=0,FCYYEARCR=0,FCYYEARBLC=0" + ",FCYDR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end)" + ",FCYCR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end)" + ",FCYBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",FCYLASTDR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end)" + ",FCYLASTCR=(case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end)" + ",FCYLASTBLC=(case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end)" + ",QTYYEARDR=0,QTYYEARCR=0,QTYYEARBLC=0" + ",QTYDR=isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)" + ",QTYCR=isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)" + ",QTYBLC=(case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end)" + ",QTYLASTDR=isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)" + ",QTYLASTCR=isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)" + ",QTYLASTBLC=(case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end)"; } #endregion sSQL += ",0 as IsInitialEntry,'" + companyid + "' as CORPID,'" + userid + "' as CREATEUSER,getdate() as CREATETIME,'" + userid + "' as MODIFIEDUSER,getdate() as MODIFIEDTIME,'" + sYear + "-" + sMonth + "' as ACCDATE,'" + strCtSTARTGID + "' as STARTGID" + " FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0"; #endregion var cmdSql = db.GetSqlStringCommand(sSQL); db.ExecuteNonQuery(cmdSql, tran); } else//edit { #region 更新当日总账表 sSQL = "update [ct_genleg_accitems] set" + " AMTDR=(select (case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",AMTCR=(select (case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",AMTBLC=(select (case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",AMTLASTDR=AMTYEARDR+(select (case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(DR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",AMTLASTCR=AMTYEARCR+(select (case when '" + headRow.FCYNO.ToString() + "'='RMB' then isnull(sum(CR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",AMTLASTBLC=AMTYEARBLC+(select (case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",FCYDR=(select (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",FCYCR=(select (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",FCYBLC=(select (case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",FCYLASTDR=FCYYEARDR+(select (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(DR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",FCYLASTCR=FCYYEARCR+(select (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then isnull(sum(CR),0) else 0 end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",FCYLASTBLC=FCYYEARBLC+(select (case when '" + ACCDC + "'='借' then (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else 0 end) else (case when '" + headRow.FCYNO.ToString() + "'<>'RMB' then (isnull(sum(CR),0)-isnull(sum(DR),0)) else 0 end) end) FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",QTYDR=(select isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0) as QTYDR FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",QTYCR=(select isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0) as QTYCR FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",QTYBLC=(select (case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end) as QTYBLC FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",QTYLASTDR=QTYYEARDR+(select isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0) as QTYDR FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",QTYLASTCR=QTYYEARCR+(select isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0) as QTYCR FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",QTYLASTBLC=QTYYEARBLC+(select (case when '" + ACCDC + "'='借' then (isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)) else (isnull(sum(Convert(decimal(18,2),(CR*FCYEXRATE))),0)-isnull(sum(Convert(decimal(18,2),(DR*FCYEXRATE))),0)) end) as QTYBLC FROM ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0)" + ",[MODIFIEDUSER]='" + userid + "',[MODIFIEDTIME]=getdate() where STARTGID='" + strCtSTARTGID + "' and GID='" + sGID + "'"; #endregion var cmdSql = db.GetSqlStringCommand(sSQL); db.ExecuteNonQuery(cmdSql, tran); } tran.Commit(); } catch (Exception) { tran.Rollback(); } } #endregion #region 今日父类总账表 MsCtInitialBalanceDAL.MsCtInitialBalanceDAL.SaveRow(headRow.ACCGID.ToString(), headRow.FCYNO.ToString(), headRow.VOUDATE.ToString("yyyy-MM-dd"), strCtSTARTGID, false, companyid, userid); #endregion #region 明日总账表 MsCtInitialBalanceDAL.MsCtInitialBalanceDAL.onCtGenlegAccitemsFor(headRow.ACCGID.ToString(), headRow.FCYNO.ToString(), headRow.VOUDATE.ToString("yyyy-MM-dd"), strCtSTARTGID, strCtACCDATE, companyid, userid); #endregion } #endregion #region 插入更新余额 public static void onBLC(MsCtBankJournal headRow, bool isHJ, string companyid, string userid) { #region 默认值 string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string sSQL = "select DC from cw_accitems_gl where GID='" + headRow.ACCGID.ToString() + "'"; string ACCDC = T_ALL_DA.GetStrSQL("DC", sSQL); //本期期初数 string sSQL2 = "select top 1 GID,LINKGID as ACCGID,CURRENCY as FCYNO,([YEAR]+'-'+[MONTH]+'-'+[DAY]) as VOUDATE,0 as ITEMNO,'' as VGID,'' as VKNO,'' as VOUNO,'' as FENTRYID,([YEAR]+'-'+[MONTH]) as ACCDATE,'' as SETTLETYPE,'' as BILLNO,([YEAR]+'-'+[MONTH]+'-'+[DAY]) as SVOUDATE" + ",DC=(case when (case when CURRENCY='RMB' then AMTLASTBLC else FCYLASTBLC end)<0 then '贷' else '借' end)" + ",DR=isnull((case when (case when CURRENCY='RMB' then AMTLASTDR else FCYLASTDR end)<0 then -(case when CURRENCY='RMB' then AMTLASTDR else FCYLASTDR end) else (case when CURRENCY='RMB' then AMTLASTDR else FCYLASTDR end) end),0)" + ",CR=isnull((case when (case when CURRENCY='RMB' then AMTLASTCR else FCYLASTCR end)<0 then -(case when CURRENCY='RMB' then AMTLASTCR else FCYLASTCR end) else (case when CURRENCY='RMB' then AMTLASTCR else FCYLASTCR end) end),0)" + ",1 as FCYEXRATE,0 as QTYDR,0 as QTYCR" + ",BLC=isnull((case when (case when CURRENCY='RMB' then AMTLASTBLC else FCYLASTBLC end)<0 then -(case when CURRENCY='RMB' then AMTLASTBLC else FCYLASTBLC end) else (case when CURRENCY='RMB' then AMTLASTBLC else FCYLASTBLC end) end),0)" + ",'' as EXPLAN,'' as ENTERED,0 as ISINITIAL,'' as CHECKINGGID,STARTGID,CORPID,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME" + " from ct_genleg_accitems WITH(NOLOCK)" + " where STARTGID='" + strCtSTARTGID + "' and LINKGID='" + headRow.ACCGID.ToString() + "' and CURRENCY='" + headRow.FCYNO.ToString() + "' and ([YEAR]+'-'+[MONTH])<'" + headRow.VOUDATE.ToString("yyyy-MM") + "' order by ACCDATE desc,VOUDATE desc"; DataSet dsCtGenlegAccitems = T_ALL_DA.GetAllSQL(sSQL2); Decimal dlCtGenlegAccitemsBLC = 0; if (dsCtGenlegAccitems != null) { dlCtGenlegAccitemsBLC = Decimal.Parse(dsCtGenlegAccitems.Tables[0].Rows[0]["BLC"].ToString()); } //本期日记账数据 sSQL = "select GID,ACCGID,FCYNO,VOUDATE,ITEMNO,VGID,VKNO,VOUNO,FENTRYID,ACCDATE,SETTLETYPE,BILLNO,SVOUDATE,DC,DR,CR,FCYEXRATE,QTYDR,QTYCR,BLC,EXPLAN,ENTERED,ISINITIAL,CHECKINGGID,STARTGID,CORPID,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME from ct_bank_journal WITH(NOLOCK) where STARTGID='" + strCtSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0 and VOUDATE>='" + headRow.VOUDATE.ToString("yyyy-MM") + "-01'" + " order by VOUDATE,ITEMNO,VKNO,VOUNO,FENTRYID"; DataSet dsCtBankJournal = T_ALL_DA.GetAllSQL(sSQL); #endregion #region 循环更新余额 Decimal dBLC = dlCtGenlegAccitemsBLC; if (dsCtBankJournal != null) { if (dsCtBankJournal.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsCtBankJournal.Tables[0].Rows.Count; i++) { if (ACCDC == "借") { dBLC = Decimal.Parse((Decimal.Parse(dsCtBankJournal.Tables[0].Rows[i]["DR"].ToString()) - Decimal.Parse(dsCtBankJournal.Tables[0].Rows[i]["CR"].ToString()) + dBLC).ToString("F2")); } else { dBLC = Decimal.Parse((Decimal.Parse(dsCtBankJournal.Tables[0].Rows[i]["CR"].ToString()) - Decimal.Parse(dsCtBankJournal.Tables[0].Rows[i]["DR"].ToString()) + dBLC).ToString("F2")); } // sSQL = "update [ct_bank_journal] set BLC=" + dBLC + " where gid='" + dsCtBankJournal.Tables[0].Rows[i]["GID"].ToString() + "'"; bool bl = T_ALL_DA.GetExecuteSqlCommand(sSQL); } } } #endregion #region 单个更新余额语句_停用 /* Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { #region 循环更新余额 sSQL = "update [ct_bank_journal] set BLC=(" + "select (case when '" + headRow.FCYNO.ToString() + "'='RMB' then (case when '" + ACCDC + "'='借' then (isnull(sum(DR),0)-isnull(sum(CR),0)) else (isnull(sum(CR),0)-isnull(sum(DR),0)) end) else 0 end)" + " FROM (" + "select top 1 GID,LINKGID as ACCGID,CURRENCY as FCYNO,([YEAR]+'-'+[MONTH]+'-'+[DAY]) as VOUDATE,0 as ITEMNO,'' as VGID,'' as VKNO,'' as VOUNO,'' as FENTRYID,([YEAR]+'-'+[MONTH]) as ACCDATE,'' as SETTLETYPE,'' as BILLNO,([YEAR]+'-'+[MONTH]+'-'+[DAY]) as SVOUDATE" + ",DC=(case when (case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end)<0 then '贷' else '借' end)" + ",DR=isnull((case when (case when CURRENCY='RMB' then AMTYEARDR else FCYYEARDR end)<0 then -(case when CURRENCY='RMB' then AMTYEARDR else FCYYEARDR end) else (case when CURRENCY='RMB' then AMTYEARDR else FCYYEARDR end) end),0)" + ",CR=isnull((case when (case when CURRENCY='RMB' then AMTYEARCR else FCYYEARCR end)<0 then -(case when CURRENCY='RMB' then AMTYEARCR else FCYYEARCR end) else (case when CURRENCY='RMB' then AMTYEARCR else FCYYEARCR end) end),0)" + ",1 as FCYEXRATE,0 as QTYDR,0 as QTYCR" + ",BLC=isnull((case when (case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end)<0 then -(case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end) else (case when CURRENCY='RMB' then AMTYEARBLC else FCYYEARBLC end) end),0)" + ",'' as EXPLAN,'' as ENTERED,0 as ISINITIAL,'' as CHECKINGGID,STARTGID,CORPID,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME" + " from ct_genleg_accitems WITH(NOLOCK)" + " where STARTGID='" + strSTARTGID + "' and ([YEAR]+'-'+[MONTH])='" + headRow.VOUDATE.ToString("yyyy-MM") + "' and LINKGID='" + headRow.ACCGID.ToString() + "' and CURRENCY='" + headRow.FCYNO.ToString() + "'" + " union " + "select GID,ACCGID,FCYNO,VOUDATE,ITEMNO,VGID,VKNO,VOUNO,FENTRYID,ACCDATE,SETTLETYPE,BILLNO,SVOUDATE,DC,DR,CR,FCYEXRATE,QTYDR,QTYCR,BLC,EXPLAN,ENTERED,ISINITIAL,CHECKINGGID,STARTGID,CORPID,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME from ct_bank_journal WITH(NOLOCK) where STARTGID='" + strSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0"// and VOUDATE>='" + headRow.VOUDATE.ToString() + "' + ") as a where STARTGID='" + strSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and a.ITEMNO<=ct_bank_journal.ITEMNO and a.VOUDATE<=ct_bank_journal.VOUDATE" + ") where STARTGID='" + strSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0";// and VOUDATE>='" + headRow.VOUDATE.ToString() + "' #endregion var cmdSql = db.GetSqlStringCommand(sSQL); db.ExecuteNonQuery(cmdSql, tran); // tran.Commit(); } catch (Exception) { tran.Rollback(); } } */ #endregion #region 根据科目方向更新余额和余额方向 Database db2 = DatabaseFactory.CreateDatabase(); using (var conn = db2.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { #region 循环更新余额 //sSQL = "update [ct_bank_journal] set " //+ "DC=(select (case when '" + ACCDC + "'='借' then (case when BLC>=0 then '借' else '贷' end) else (case when BLC>=0 then '贷' else '借' end) end) as DC FROM ct_bank_journal as a where a.STARTGID='" + strCtSTARTGID + "' and a.GID=ct_bank_journal.GID)" //+ ",BLC=(select (case when BLC>=0 then BLC else -BLC end) as BLC FROM ct_bank_journal as b where b.STARTGID='" + strCtSTARTGID + "' and b.GID=ct_bank_journal.GID)" //+ " where STARTGID='" + strCtSTARTGID + "' and VOUDATE>='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0"; sSQL = "update [ct_bank_journal] set " + "DC=(select (case when '" + ACCDC + "'='借' then (case when BLC>=0 then 'D' else 'C' end) else (case when BLC>=0 then 'C' else 'D' end) end) as DC FROM ct_bank_journal as a where a.STARTGID='" + strCtSTARTGID + "' and a.GID=ct_bank_journal.GID)" + ",BLC=(select (case when BLC>=0 then BLC else -BLC end) as BLC FROM ct_bank_journal as b where b.STARTGID='" + strCtSTARTGID + "' and b.GID=ct_bank_journal.GID)" + " where STARTGID='" + strCtSTARTGID + "' and VOUDATE>='" + headRow.VOUDATE.ToString() + "' and ACCGID='" + headRow.ACCGID.ToString() + "' and FCYNO='" + headRow.FCYNO.ToString() + "' and ISINITIAL=0"; #endregion var cmdSql = db2.GetSqlStringCommand(sSQL); db2.ExecuteNonQuery(cmdSql, tran); // tran.Commit(); } catch (Exception) { tran.Rollback(); } } #endregion } #endregion #region 更新期初余额 public static void onINITIAL(MsCtBankJournal headRow, string companyid, string userid) { string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); #region 更新期初余额 Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { #region 更新期初对账单 string sSQL = "update [ct_initial_balance] set QTYYEARDR_B=(select isnull(sum(DR),0) as DR from ct_bank_journal where ISINITIAL=1 and STARTGID='" + strCtSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString().Trim() + "' and FCYNO='" + headRow.FCYNO.ToString().Trim() + "'),QTYYEARCR_B=(select isnull(sum(CR),0) as CR from ct_bank_journal where ISINITIAL=1 and STARTGID='" + strCtSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString().Trim() + "' and FCYNO='" + headRow.FCYNO.ToString().Trim() + "') where STARTGID='" + strCtSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString().Trim() + "' and CURRENCY='" + headRow.FCYNO.ToString().Trim() + "'"; var cmdSql = db.GetSqlStringCommand(sSQL); db.ExecuteNonQuery(cmdSql, tran); sSQL = "update [ct_initial_balance] set QTYYEARBLC_BH=isnull((QTYYEARBLC_B+QTYYEARDR_B-QTYYEARCR_B),0) where STARTGID='" + strCtSTARTGID + "' and ACCGID='" + headRow.ACCGID.ToString().Trim() + "' and CURRENCY='" + headRow.FCYNO.ToString().Trim() + "'"; cmdSql = db.GetSqlStringCommand(sSQL); db.ExecuteNonQuery(cmdSql, tran); #endregion // tran.Commit(); } catch (Exception) { tran.Rollback(); } } #endregion } #endregion #region 删除 public static DBResult Delete(string gids, string companyid, string userid) { #region 默认值 string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); var result = new DBResult(); var sGids = " and GID in ('" + gids.Replace(",", "','") + "')"; var headList = new List(); var strSql = new StringBuilder(); strSql.Append("SELECT *,CREATEUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.CREATEUSER),MODIFIEDUSERNAME=(select top 1 SHOWNAME from [user] where gid=ct_bank_journal.MODIFIEDUSER),ACCNAME=(select top 1 ACCNAME from [cw_accitems_gl] where gid=ct_bank_journal.ACCGID),SETTLETYPENAME=isnull((select top 1 STLNAME from [code_stlmode] where STLCODE=ct_bank_journal.SETTLETYPE),''),ISCHECKING=(case when CHECKINGGID='' then '' else (case when CHECKINGGID like 'auto%' then '*' else '**' end) end) from ct_bank_journal WITH(NOLOCK) where STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null)" + sGids); strSql.Append(" order by VOUDATE,convert(decimal(10),ITEMNO)"); headList = SetData(strSql); #endregion #region 判断是否符合删除条件 T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string sSQL = "select count(*) as inum from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID<>'' and CHECKINGGID is not null)" + sGids; int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", sSQL)); if (inum > 0) { result.Success = false; result.Message = "操作错误,已经对账的数据,不允许操作!";//或轧账 return result; } #endregion #region 插入更新余额_查询符合条件的数据 strSql.Clear(); strSql.Append("SELECT ACCGID,FCYNO,VOUDATE=(dateadd(dd,-day(ACCDATE+'-01'),dateadd(m,1,(ACCDATE+'-01'))))"); strSql.Append(" from ct_bank_journal WITH(NOLOCK)"); strSql.Append(" where STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null)" + sGids); strSql.Append(" group by ACCGID,FCYNO,ACCDATE order by ACCGID,FCYNO"); DataSet ds2 = T_ALL_DA.GetAllSQL(strSql.ToString()); #endregion #region 插入更新总账表_查询符合条件的数据 strSql.Clear(); strSql.Append("SELECT ACCGID,FCYNO,VOUDATE"); strSql.Append(" from ct_bank_journal WITH(NOLOCK)"); strSql.Append(" where STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null)" + sGids); strSql.Append(" group by ACCGID,FCYNO,VOUDATE order by ACCGID,FCYNO,VOUDATE"); DataSet ds3 = T_ALL_DA.GetAllSQL(strSql.ToString()); #endregion #region 删除 Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdDelete = db.GetSqlStringCommand("delete from ct_bank_journal where STARTGID='" + strCtSTARTGID + "'" + sGids); db.ExecuteNonQuery(cmdDelete, tran); tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "删除出现错误,请重试!"; return result; } } #endregion #region 插入更新余额 if (ds2 != null) { if (ds2.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds2.Tables[0].Rows) { MsCtBankJournal headRow = new MsCtBankJournal(); headRow.ACCGID = dr["ACCGID"].ToString();//科目GID headRow.FCYNO = dr["FCYNO"].ToString();//外币编号usd headRow.VOUDATE = DateTime.Parse(dr["VOUDATE"].ToString());//凭证日期 //插入更新余额 onBLC(headRow, true, companyid, userid); } } } #endregion #region 插入更新总账表 if (ds3 != null) { if (ds3.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds3.Tables[0].Rows) { MsCtBankJournal headRow = new MsCtBankJournal(); headRow.ACCGID = dr["ACCGID"].ToString();//科目GID headRow.FCYNO = dr["FCYNO"].ToString();//外币编号usd headRow.VOUDATE = DateTime.Parse(dr["VOUDATE"].ToString());//凭证日期 //插入更新总账表 onCtGenlegAccitems(headRow, companyid, userid); } } } #endregion result.Success = true; result.Message = "操作成功"; return result; } public static void DeleteDetail(MsCtBankJournal headRow, string companyid, string userid) { string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdDelete = db.GetSqlStringCommand("delete from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and GID='" + headRow.GID.ToString() + "'"); db.ExecuteNonQuery(cmdDelete, tran); tran.Commit(); } catch (Exception) { tran.Rollback(); } } onCtGenlegAccitems(headRow, companyid, userid); } #endregion #region 导入 //判断是否有重复数据 public static DBResult isImportExcelGID(string condition, string companyid, string userid) { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var result = new DBResult(); string strCtACCDATE = BasicDataRefDAL.GetCtACCDATE(userid); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); string sGID = ""; #region 查询出符合条件的_重复GID var strSql2 = new StringBuilder(); strSql2.Append("SELECT *,sCtGID=isnull((select gid from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VGID=VW_cw_vouchers_vouitems_gl.GID),'') from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null))"); if (!string.IsNullOrEmpty(condition)) { strSql2.Append(" and " + condition); } DataSet ds = T_ALL_DA.GetAllSQL(strSql2.ToString()); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (i == ds.Tables[0].Rows.Count-1) { sGID += "第" + ds.Tables[0].Rows[i]["ACCMONTH"].ToString() + "期" + ds.Tables[0].Rows[i]["VKNO"].ToString() + "字" + ds.Tables[0].Rows[i]["VOUNO"].ToString() + "号第" + ds.Tables[0].Rows[i]["ITEMNO"].ToString() + "条分录
";//以上数据已经存在对应的日记账记录,是否覆盖,请确认? } else { sGID += "第" + ds.Tables[0].Rows[i]["ACCMONTH"].ToString() + "期" + ds.Tables[0].Rows[i]["VKNO"].ToString() + "字" + ds.Tables[0].Rows[i]["VOUNO"].ToString() + "号第" + ds.Tables[0].Rows[i]["ITEMNO"].ToString() + "条分录
";//以上数据已经存在对应的日记账记录,是否覆盖,请确认? } } } } #endregion // #region 重复但不覆盖的GID 行数 var strSql3 = new StringBuilder(); strSql3.Append("SELECT count(*) as inum from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "' and CHECKINGGID<>'' and CHECKINGGID is not null)"); if (!string.IsNullOrEmpty(condition)) { strSql3.Append(" and " + condition); } #endregion int inumContinue = int.Parse(T_ALL_DA.GetStrSQL("inum", strSql3.ToString())); #region 查询出符合条件的_不重复GID var strSql = new StringBuilder(); strSql.Append("SELECT count(*) as inum from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid not in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "')"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } #endregion int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", strSql.ToString())); if (sGID == "") { if (inum == 0) { result.Success = true; result.Message = ""; return result; } else { result.Success = true; result.Message = "true"; return result; } } if (inumContinue == 0) { sGID = "以下" + ds.Tables[0].Rows.Count + "条数据已经存在对应的日记账记录,是否覆盖,请确认?
" + sGID; } else { sGID = "以下" + (ds.Tables[0].Rows.Count + inumContinue) + "条数据已经存在对应的日记账记录,其中有已经对账的" + inumContinue + "条数据不允许覆盖,其他的是否覆盖,请确认?
" + sGID; } result.Success = true; result.Message = sGID; return result; } //获取符合条件的所有GID的字符串 public static DBResult onImportExcelData(string condition, string sTYPE, string companyid, string userid) { var strSql = new StringBuilder(); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var result = new DBResult(); string strCtACCDATE = BasicDataRefDAL.GetCtACCDATE(userid); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); string sError = ""; int inumINSERT = 0; int inumUpdate = 0; int inumContinue = 0; #region 重复GID 行数 strSql.Append("SELECT count(*) as inum from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null))"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } #endregion inumUpdate = int.Parse(T_ALL_DA.GetStrSQL("inum", strSql.ToString())); // #region 重复但不覆盖的GID 行数 strSql.Clear(); strSql.Append("SELECT count(*) as inum from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "' and CHECKINGGID<>'' and CHECKINGGID is not null)"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } #endregion inumContinue = int.Parse(T_ALL_DA.GetStrSQL("inum", strSql.ToString())); // #region 不重复GID 行数 strSql.Clear(); strSql.Append("SELECT count(*) as inum from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid not in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "')"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } #endregion inumINSERT = int.Parse(T_ALL_DA.GetStrSQL("inum", strSql.ToString())); sError = "导入" + inumINSERT + "条数据"; // if (sTYPE == "UPDATE") { #region 覆盖出符合条件的_重复GID strSql.Clear(); strSql.Append("SELECT *,sCtGID=isnull((select gid from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VGID=VW_cw_vouchers_vouitems_gl.GID),'') from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null))"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } strSql.Append("order by voudate,vouno,vkno,itemno"); #endregion DataSet ds = T_ALL_DA.GetAllSQL(strSql.ToString()); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { onImportExcelGID(ds, sTYPE, companyid, userid); } } sError += ",覆盖" + inumUpdate + "条数据!"; if (inumContinue!=0) { sError += "因已经对账不允许覆盖的" + inumContinue + "条数据!"; } } else { sError += ",跳过" + (inumUpdate + inumContinue) + "条数据!"; } #region 查询出符合条件的_不重复GID strSql.Clear(); strSql.Append("SELECT *,sCtGID=isnull((select gid from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VGID=VW_cw_vouchers_vouitems_gl.GID),'') from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid not in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "')"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } strSql.Append("order by voudate,vouno,vkno,itemno"); #endregion DataSet ds1 = T_ALL_DA.GetAllSQL(strSql.ToString()); if (ds1 != null) { if (ds1.Tables[0].Rows.Count > 0) { onImportExcelGID(ds1, "INSERT", companyid, userid); } } // #region 插入更新余额 strSql.Clear(); strSql.Append("SELECT ACCGID,FCYNO,VOUDATE=(dateadd(dd,-day(ACCDATE+'-01'),dateadd(m,1,(ACCDATE+'-01'))))"); strSql.Append(" from ct_bank_journal WITH(NOLOCK)"); strSql.Append(" where STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null)"); strSql.Append(" and VGID in (SELECT GID from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "'"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } strSql.Append(")"); strSql.Append(" group by ACCGID,FCYNO,ACCDATE order by ACCGID,FCYNO"); DataSet ds2 = T_ALL_DA.GetAllSQL(strSql.ToString()); if (ds2 != null) { if (ds2.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds2.Tables[0].Rows) { MsCtBankJournal headRow = new MsCtBankJournal(); headRow.ACCGID = dr["ACCGID"].ToString();//科目GID headRow.FCYNO = dr["FCYNO"].ToString();//外币编号usd headRow.VOUDATE = DateTime.Parse(dr["VOUDATE"].ToString());//凭证日期 //插入更新余额 onBLC(headRow, true, companyid, userid); } } } #endregion #region 插入更新总账表 strSql.Clear(); strSql.Append("SELECT ACCGID,FCYNO,VOUDATE"); strSql.Append(" from ct_bank_journal WITH(NOLOCK)"); strSql.Append(" where STARTGID='" + strCtSTARTGID + "' and (CHECKINGGID='' or CHECKINGGID is null)"); strSql.Append(" and VGID in(SELECT GID from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "'"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } strSql.Append(")"); strSql.Append(" group by ACCGID,FCYNO,VOUDATE order by ACCGID,FCYNO,VOUDATE"); DataSet ds3 = T_ALL_DA.GetAllSQL(strSql.ToString()); if (ds3 != null) { if (ds3.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds3.Tables[0].Rows) { MsCtBankJournal headRow = new MsCtBankJournal(); headRow.ACCGID = dr["ACCGID"].ToString();//科目GID headRow.FCYNO = dr["FCYNO"].ToString();//外币编号usd headRow.VOUDATE = DateTime.Parse(dr["VOUDATE"].ToString());//凭证日期 //插入更新总账表 onCtGenlegAccitems(headRow, companyid, userid); } } } #endregion result.Success = true; result.Message = sError; return result; } //按条导入或覆盖数据 public static void onImportExcelGID(DataSet ds, string sTYPE, string companyid, string userid) { DBResult result = new DBResult(); var sVOUDATE = ""; string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); // for (int i = 0; i < ds.Tables[0].Rows.Count;i++) { #region 按条导入或覆盖数据 MsCtBankJournal headRow = new MsCtBankJournal(); #region 默认值 headRow.ISINITIAL = false;//是否期初 headRow.ACCGID = ds.Tables[0].Rows[i]["ACCGID"].ToString();//科目GID headRow.FCYNO = ds.Tables[0].Rows[i]["FCYNO"].ToString();//外币编号usd headRow.VOUDATE = DateTime.Parse(ds.Tables[0].Rows[i]["VOUDATE"].ToString());//凭证日期 sVOUDATE = headRow.VOUDATE.ToString("yyyy-MM-dd"); string sMonth = headRow.VOUDATE.Month.ToString(); if (sMonth.Length == 1) { sMonth = "0" + sMonth; } string sSQL = "select isnull((select top 1 isnull(ITEMNO,0) as iITEMNO from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + sVOUDATE + "' order by VOUDATE desc,convert(decimal(10),ITEMNO) desc),0) as iITEMNO"; int iITEMNO = int.Parse(T_ALL_DA.GetStrSQL("iITEMNO", sSQL)); headRow.ITEMNO = iITEMNO + 1;//当日序号 headRow.VGID = ds.Tables[0].Rows[i]["GID"].ToString();//凭证明细GID headRow.VKNO = ds.Tables[0].Rows[i]["VKNO"].ToString();//凭证字 headRow.VOUNO = ds.Tables[0].Rows[i]["VOUNO"].ToString();//凭证号 headRow.FENTRYID = ds.Tables[0].Rows[i]["ITEMNO"].ToString() == "" ? 0 : int.Parse(ds.Tables[0].Rows[i]["ITEMNO"].ToString());//分录号 headRow.ACCDATE = ds.Tables[0].Rows[i]["ACCDATE"].ToString();//会计期间 headRow.SETTLETYPE = ds.Tables[0].Rows[i]["FSETTLCODE"].ToString() == "" ? 0 : int.Parse(ds.Tables[0].Rows[i]["FSETTLCODE"].ToString());//结算方式 headRow.BILLNO = ds.Tables[0].Rows[i]["FSETTLENO"].ToString();//结算号 headRow.SVOUDATE = headRow.VOUDATE;//结算日期 headRow.DC = ds.Tables[0].Rows[i]["DC"].ToString();//余额方向 headRow.DR = ds.Tables[0].Rows[i]["AMTDR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[i]["AMTDR"].ToString());//原币借方金额(互斥) headRow.CR = ds.Tables[0].Rows[i]["AMTCR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[i]["AMTCR"].ToString());//原币贷方金额(互斥) if (headRow.FCYNO.ToString().Trim() != "RMB") { headRow.DR = ds.Tables[0].Rows[i]["FCYDR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[i]["FCYDR"].ToString());//原币借方金额(互斥) headRow.CR = ds.Tables[0].Rows[i]["FCYCR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[i]["FCYCR"].ToString());//原币贷方金额(互斥) } headRow.FCYEXRATE = ds.Tables[0].Rows[i]["FCYEXRATE"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[i]["FCYEXRATE"].ToString());//汇率 headRow.QTYDR = Math.Round((headRow.DR * headRow.FCYEXRATE), 2, MidpointRounding.AwayFromZero);//折合本位币借方 headRow.QTYCR = Math.Round((headRow.CR * headRow.FCYEXRATE), 2, MidpointRounding.AwayFromZero);//折合本位币贷方 headRow.BLC = 0;//原币余额 headRow.EXPLAN = ds.Tables[0].Rows[i]["EXPLAN"].ToString();//摘要,规则生成 headRow.ENTERED = ds.Tables[0].Rows[i]["PREPARED"].ToString();//经手人 headRow.CHECKINGGID = "";//对账GID headRow.STARTGID = strCtSTARTGID;//账套启用GID headRow.CORPID = companyid;//分公司GID headRow.CREATEUSER = userid;//制单人GID headRow.CREATETIME = DateTime.Now;//创建时间 headRow.MODIFIEDUSER = userid;//最后一次更改操作人GID headRow.MODIFIEDTIME = DateTime.Now;//最后一次更改操作时间 #endregion if (sTYPE.Trim() == "INSERT")//"add" { headRow.GID = Guid.NewGuid().ToString(); headRow.DbOperationType = DbOperationType.DbotIns; } else//"edit" { headRow.GID = ds.Tables[0].Rows[i]["sCtGID"].ToString().Trim();//唯一编码 headRow.DbOperationType = DbOperationType.DbotUpd; headRow.ModelUIStatus = "E"; } var modb = new ModelObjectDB(); result = modb.Save(headRow); #endregion } } //获取符合条件的所有GID的字符串 public static DBResult onImportExcelData2(string condition, string companyid, string userid) { #region 查询出符合条件的_重复GID T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var result = new DBResult(); string strCtACCDATE = BasicDataRefDAL.GetCtACCDATE(userid); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); string sGID = ""; var strSql2 = new StringBuilder(); strSql2.Append("SELECT *,sCtGID=isnull((select gid from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VGID=VW_cw_vouchers_vouitems_gl.GID),'') from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "')"); if (!string.IsNullOrEmpty(condition)) { strSql2.Append(" and " + condition); } DataSet ds = T_ALL_DA.GetAllSQL(strSql2.ToString()); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sGID += "," + ds.Tables[0].Rows[i]["GID"].ToString().Trim() + "。" + "第" + ds.Tables[0].Rows[i]["ACCMONTH"].ToString() + "期" + ds.Tables[0].Rows[i]["VKNO"].ToString() + "字" + ds.Tables[0].Rows[i]["VOUNO"].ToString() + "号第" + ds.Tables[0].Rows[i]["ITEMNO"].ToString() + "条分录已经存在对应的日记账记录,是否覆盖,请确认?" + "。" + ds.Tables[0].Rows[i]["sCtGID"].ToString().Trim(); } } } #endregion #region 查询出符合条件的_不重复GID int inum = 0; var strSql = new StringBuilder(); strSql.Append("SELECT *,sCtGID=isnull((select gid from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VGID=VW_cw_vouchers_vouitems_gl.GID),'') from [VW_cw_vouchers_vouitems_gl] WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ACCDATE='" + strCtACCDATE + "' and gid not in (select VGID from ct_bank_journal where VGID<>'' and VGID is not null and STARTGID='" + strCtSTARTGID + "')"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } ds = T_ALL_DA.GetAllSQL(strSql.ToString()); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DBResult result3 = onImportExcelGID2(ds.Tables[0].Rows[i]["GID"].ToString().Trim(), "INSERT", "", companyid, userid); if (result3.Success) { inum++; } } } } #endregion if (sGID == "" && inum == 0) { result.Success = true; result.Message = ""; return result; } sGID = inum.ToString() + sGID; result.Success = true; result.Message = sGID; return result; } //判断是否有重复数据 public static DBResult isImportExcelGID2(string gids, string companyid, string userid) { #region 判断是否有重复数据 string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var result = new DBResult(); var strSql = new StringBuilder(); strSql.Append("SELECT top 1 * from VW_cw_vouchers_vouitems_gl where STARTGID='" + strCwSTARTGID + "' and GID in (SELECT VGID from [ct_bank_journal] where STARTGID='" + strCtSTARTGID + "' and VGID='" + gids + "')"); DataSet ds = T_ALL_DA.GetAllSQL(strSql.ToString()); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { result.Success = false; result.Message = "第" + ds.Tables[0].Rows[0]["ACCMONTH"].ToString() + "期" + ds.Tables[0].Rows[0]["VKNO"].ToString() + "字" + ds.Tables[0].Rows[0]["VOUNO"].ToString() + "号第" + ds.Tables[0].Rows[0]["ITEMNO"].ToString() + "条分录已经存在对应的日记账记录,是否覆盖,请确认?"; return result; } } #endregion result.Success = true; result.Message = ""; return result; } //按条导入或覆盖数据 public static DBResult onImportExcelGID2(string gids, string sTYPE, string sCtGID, string companyid, string userid) { #region 按条导入或覆盖数据 DBResult result = new DBResult(); var sVOUDATE = ""; string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); string strCtSTARTGID = BasicDataRefDAL.GetCtSTARTGID(userid); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string strSql = "SELECT top 1 * from VW_cw_vouchers_vouitems_gl where STARTGID='" + strCwSTARTGID + "' and GID='" + gids + "'"; DataSet ds = T_ALL_DA.GetAllSQL(strSql); if (ds != null) { if (ds.Tables[0].Rows.Count > 0) { MsCtBankJournal headRow = new MsCtBankJournal(); #region 默认值 headRow.ISINITIAL = false;//是否期初 headRow.ACCGID = ds.Tables[0].Rows[0]["ACCGID"].ToString();//科目GID headRow.FCYNO = ds.Tables[0].Rows[0]["FCYNO"].ToString();//外币编号usd headRow.VOUDATE = DateTime.Parse(ds.Tables[0].Rows[0]["VOUDATE"].ToString());//凭证日期 sVOUDATE = headRow.VOUDATE.ToString("yyyy-MM-dd"); string sMonth = headRow.VOUDATE.Month.ToString(); if (sMonth.Length == 1) { sMonth = "0" + sMonth; } int iITEMNO = int.Parse(T_ALL_DA.GetStrSQL("iITEMNO", "select isnull((select top 1 isnull(ITEMNO,0) as iITEMNO from ct_bank_journal where STARTGID='" + strCtSTARTGID + "' and VOUDATE='" + sVOUDATE + "' order by VOUDATE desc,convert(decimal(10),ITEMNO) desc),0) as iITEMNO")); headRow.ITEMNO = iITEMNO + 1;//当日序号 headRow.VGID = ds.Tables[0].Rows[0]["GID"].ToString();//凭证明细GID headRow.VKNO = ds.Tables[0].Rows[0]["VKNO"].ToString();//凭证字 headRow.VOUNO = ds.Tables[0].Rows[0]["VOUNO"].ToString();//凭证号 headRow.FENTRYID = ds.Tables[0].Rows[0]["ITEMNO"].ToString() == "" ? 0 : int.Parse(ds.Tables[0].Rows[0]["ITEMNO"].ToString());//分录号 headRow.ACCDATE = ds.Tables[0].Rows[0]["ACCDATE"].ToString();//会计期间 headRow.SETTLETYPE = ds.Tables[0].Rows[0]["FSETTLCODE"].ToString() == "" ? 0 : int.Parse(ds.Tables[0].Rows[0]["FSETTLCODE"].ToString());//结算方式 headRow.BILLNO = ds.Tables[0].Rows[0]["FSETTLENO"].ToString();//结算号 headRow.SVOUDATE = headRow.VOUDATE;//结算日期 headRow.DC = ds.Tables[0].Rows[0]["DC"].ToString();//余额方向 headRow.DR = ds.Tables[0].Rows[0]["AMTDR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[0]["AMTDR"].ToString());//原币借方金额(互斥) headRow.CR = ds.Tables[0].Rows[0]["AMTCR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[0]["AMTCR"].ToString());//原币贷方金额(互斥) if (headRow.FCYNO.ToString().Trim()!="RMB") { headRow.DR = ds.Tables[0].Rows[0]["FCYDR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[0]["FCYDR"].ToString());//原币借方金额(互斥) headRow.CR = ds.Tables[0].Rows[0]["FCYCR"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[0]["FCYCR"].ToString());//原币贷方金额(互斥) } headRow.FCYEXRATE = ds.Tables[0].Rows[0]["FCYEXRATE"].ToString() == "" ? 0 : Decimal.Parse(ds.Tables[0].Rows[0]["FCYEXRATE"].ToString());//汇率 headRow.QTYDR = Math.Round((headRow.DR * headRow.FCYEXRATE), 2, MidpointRounding.AwayFromZero);//折合本位币借方 headRow.QTYCR = Math.Round((headRow.CR * headRow.FCYEXRATE), 2, MidpointRounding.AwayFromZero);//折合本位币贷方 headRow.BLC = 0;//原币余额 headRow.EXPLAN = ds.Tables[0].Rows[0]["EXPLAN"].ToString();//摘要,规则生成 headRow.ENTERED = ds.Tables[0].Rows[0]["PREPARED"].ToString();//经手人 headRow.CHECKINGGID = "";//对账GID headRow.STARTGID = strCtSTARTGID;//账套启用GID headRow.CORPID = companyid;//分公司GID headRow.CREATEUSER = userid;//制单人GID headRow.CREATETIME = DateTime.Now;//创建时间 headRow.MODIFIEDUSER = userid;//最后一次更改操作人GID headRow.MODIFIEDTIME = DateTime.Now;//最后一次更改操作时间 #endregion if (sTYPE.Trim() == "INSERT")//"add" { headRow.GID = Guid.NewGuid().ToString(); headRow.DbOperationType = DbOperationType.DbotIns; } else//"edit" { headRow.GID = sCtGID.Trim();//唯一编码 headRow.DbOperationType = DbOperationType.DbotUpd; headRow.ModelUIStatus = "E"; } var modb = new ModelObjectDB(); result = modb.Save(headRow); if (result.Success) { //插入更新余额 MsCtBankJournalDAL.onBLC(headRow, false, companyid, userid); //插入更新总账表 MsCtBankJournalDAL.onCtGenlegAccitems(headRow, companyid, userid); } } } #endregion return result; } #endregion } }