using System; using System.Data; using System.Collections.Generic; using System.Text; using DSWeb.MvcShipping.Models.RptCwGLDetail; 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.RptCwGLDetailDAL { public class RptCwGLDetailDAL { #region 查询 static public List GetDataList(string strCondition, string ACCDATEbgn, string ACCDATEend, string strCURRENCY, string strACCID, string strCustNAME, string strDeptName, string strSALE, string strITEMNAME, string userid, string usercode, string companyid, string sort = null) { var strSql = new StringBuilder(); string sSql = GetDataListSQL(strCondition, ACCDATEbgn, ACCDATEend, strCURRENCY, strACCID, strCustNAME, strDeptName, strSALE, strITEMNAME, userid, usercode, companyid); strSql.Append(sSql); // var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by VOUDATE,EXPLAN2,VKNO,convert(INT,VOUNO),ITEMNO"); } return SetData(strSql); } static public List GetDataList2(string strCondition, string ACCDATEbgn, string ACCDATEend, string strCURRENCY, string strACCID, string strCustNAME, string strDeptName, string strSALE, string strITEMNAME, string userid, string usercode, string companyid, string sort = null) { string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); var strSql = new StringBuilder(); strSql.Append("SELECT * from [cw_glDetail_rpt_temp] where STARTGID='" + strCwSTARTGID + "' and CREATEUSER='" + userid + "' and CORPID='" + companyid + "'"); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by VOUDATE,EXPLAN2,VKNO,convert(INT,VOUNO),ITEMNO"); } return SetData(strSql); } static public string GetDataListStr(string strCondition, string ACCDATEbgn, string ACCDATEend, string strCURRENCY, string strACCID, string strCustNAME, string strDeptName, string strSALE, string strITEMNAME, bool isPrint, string userid, string usercode, string companyid) { string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); var strSql = new StringBuilder(); string sSql = "SELECT * from [cw_glDetail_rpt_temp] where STARTGID='" + strCwSTARTGID + "' and CREATEUSER='" + userid + "' and CORPID='" + companyid + "'"; if (isPrint) { sSql = "select VOUDATE,VOUDATE as 日期,VKNO,VKNO as 凭证字,VOUNO,VOUNO as 凭证号,EXPLAN,EXPLAN as 摘要,DR,DR as 借方,CR,CR as 贷方,DC,DC as 方向,BLC,BLC as 余额 from (" + sSql + ") as y "; } else { sSql = "select VOUDATE as 日期,VKNO as 凭证字,VOUNO as 凭证号,EXPLAN as 摘要,DR as 借方,CR as 贷方,DC as 方向,BLC as 余额 from (" + sSql + ") as y "; } strSql.Append(sSql); strSql.Append(" order by VOUDATE,EXPLAN2,VKNO,convert(INT,VOUNO),ITEMNO"); return strSql.ToString(); } static public string GetDataListSQL(string strCondition, string ACCDATEbgn, string ACCDATEend, string strCURRENCY, string strACCID, string strCustNAME, string strDeptName, string strSALE, string strITEMNAME, string userid, string usercode, string companyid) { #region 基本变量 T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); int iState = 0; int result = 0; string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid); string strACCDATE = ACCDATEbgn.Replace(" and ACCDATE='", "").Replace("'", ""); string sYear = DateTime.Parse(strACCDATE + "-01").Year.ToString(); string strCwSTARTMONTH = BasicDataRefDAL.GetCwSTARTMONTH(userid); if (strCwSTARTMONTH.IndexOf(sYear) < 0) { string sCwSTARTMONTH = sYear+"-01"; if (DateTime.Parse(strCwSTARTMONTH + "-01") < DateTime.Parse(sCwSTARTMONTH + "-01")) { strCwSTARTMONTH = sCwSTARTMONTH; } } if (DateTime.Parse(strCwSTARTMONTH + "-01") > DateTime.Parse(strACCDATE + "-01")) { ACCDATEbgn = ACCDATEbgn.Replace(strACCDATE, strCwSTARTMONTH); strCondition = strCondition.Replace(strACCDATE, strCwSTARTMONTH); strACCDATE = strCwSTARTMONTH; } string strACCDATE_end = ACCDATEend.Replace(" and ACCDATE='", "").Replace("'", ""); if (DateTime.Parse(strCwSTARTMONTH + "-01") > DateTime.Parse(strACCDATE_end + "-01")) { ACCDATEend = ACCDATEend.Replace(strACCDATE_end, strCwSTARTMONTH); strCondition = strCondition.Replace(strACCDATE_end, strCwSTARTMONTH); strACCDATE_end = strCwSTARTMONTH; } // string strCustNAME1 = strCustNAME; if (!string.IsNullOrEmpty(strCustNAME)) { strCustNAME1 = " and CUSTOMERNAME='" + strCustNAME + "'"; } string strCustNAME2 = strCustNAME; if (!string.IsNullOrEmpty(strCustNAME)) { strCustNAME2 = " and CORPACC='" + strCustNAME + "'"; } // string strDeptName1 = strDeptName; if (!string.IsNullOrEmpty(strDeptName)) { strDeptName1 = " and DEPTNAME='" + strDeptName + "'"; } string strDeptName2 = strDeptName; if (!string.IsNullOrEmpty(strDeptName)) { strDeptName2 = " and DEPTACC='" + strDeptName + "'"; } // string strSALE1 = strSALE; if (!string.IsNullOrEmpty(strSALE)) { strSALE1 = " and SALE='" + strSALE + "'"; } string strSALE2 = strSALE; if (!string.IsNullOrEmpty(strSALE)) { strSALE2 = " and EMPLACC='" + strSALE + "'"; } // string strITEMNAME1 = strITEMNAME; if (!string.IsNullOrEmpty(strITEMNAME)) { strITEMNAME1 = " and ITEMNAME='" + strITEMNAME + "'"; } string strITEMNAME2 = strITEMNAME; if (!string.IsNullOrEmpty(strITEMNAME)) { strITEMNAME2 = " and ITEMACC='" + strITEMNAME + "'"; } #endregion #region 基本查询语句 var strSql = new StringBuilder(); if (strCURRENCY.Trim() == "综合本位币") { #region 综合本位币 strSql.Append("(select GID,ORDNO,VKNO,VOUNO,ITEMNO,VOUDATE,EXPLAN,EXPLAN2,DC=(SELECT top 1 DC FROM cw_accitems_gl WHERE GID=a.LINKGID),DR,CR,isnull((CASE WHEN DC='借' THEN (DR-CR) ELSE (CR-DR) END),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID] from (select GID,ORDNO,LINKGID=(SELECT top 1 GID FROM cw_accitems_gl WHERE ACCID=VW_cw_vouchers_vouitems_gl.ACCID and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "'),VKNO,VOUNO,ITEMNO,VOUDATE,(ACCYEAR+'-'+ACCMONTH) as ACCDATE,EXPLAN,2 as EXPLAN2,DC=(CASE WHEN DC='D' THEN '借' ELSE '贷' END),(case when isnull(AMTDR,0)=0 THEN isnull(convert(numeric(8,2),round(FCYDR*FCYEXRATE,2)),0) else isnull(AMTDR,0) END) as DR,(case when isnull(AMTCR,0)=0 THEN isnull(convert(numeric(8,2),round(FCYCR*FCYEXRATE,2)),0) else isnull(AMTCR,0) END) as CR from VW_cw_vouchers_vouitems_gl where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ISCHECKED=1" + strCustNAME1 + strDeptName1 + strSALE1 + strITEMNAME1 + ") as a where (DR<>0 OR CR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "%' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')"); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(")"); strSql.Append(" union "); strSql.Append("(SELECT newid() as GID,'' as VKNO,'' as ORDNO,0 as VOUNO,0 as ITEMNO,ACCDATE+'-01' as VOUDATE,'期初余额' as EXPLAN,1 as EXPLAN2,DC"); strSql.Append(",isnull(sum(QTYYEARDR),0) as DR,isnull(sum(QTYYEARCR),0) as CR,isnull(sum(QTYYEARBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + ACCDATEbgn + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append(" union "); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本期合计' as EXPLAN,3 as EXPLAN2,DC"); strSql.Append(",isnull(sum(QTYDR),0) as DR,isnull(sum(QTYCR),0) as CR,isnull(sum(QTYBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append(" union "); //strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本年累计' as EXPLAN,4 as EXPLAN2,DC"); //strSql.Append(",isnull(sum(QTYLASTDR),0) as DR,isnull(sum(QTYLASTCR),0) as CR,isnull(sum(QTYLASTBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); //strSql.Append(" from ("); //strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // strSql.Append(" and " + strCondition); //} ////strSql.Append(" and CORPID='" + companyid + "'"); //strSql.Append(") as a"); //strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本年累计' as EXPLAN,4 as EXPLAN2,DC"); strSql.Append(",isnull(sum(QTYDR),0) as DR,isnull(sum(QTYCR),0) as CR,isnull(sum(QTYLASTBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select LINKGID,ACCDATE,[CORPID],isnull(sum(QTYLASTBLC),0) as [QTYLASTBLC],DC=(select top 1 DC from [cw_accitems_gl] where gid=f.LINKGID)");//,[CREATEUSER] strSql.Append(",QTYDR=((select isnull(sum(QTYDR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", "ACCDATE>='" + sYear + "-01'"); sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE<=f.ACCDATE"); strSql.Append(" and " + sls); } strSql.Append(")"); //strSql.Append("+(select isnull(sum(QTYYEARDR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", ""); // sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE='" + sYear + "-01'"); // strSql.Append(sls); //} //strSql.Append(")"); strSql.Append(")"); strSql.Append(",QTYCR=((select isnull(sum(QTYCR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", "ACCDATE>='" + sYear + "-01'"); sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE<=f.ACCDATE"); strSql.Append(" and " + sls); } strSql.Append(")"); //strSql.Append("+(select isnull(sum(QTYYEARCR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", ""); // sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE='" + sYear + "-01'"); // strSql.Append(sls); //} //strSql.Append(")"); strSql.Append(")"); strSql.Append(" from cw_genleg_accitems as f where f.[STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(" GROUP BY LINKGID,ACCDATE,[CORPID]");//,[CREATEUSER] strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); #endregion } else if (strCURRENCY.Trim() == "RMB") { #region RMB strSql.Append("(select GID,ORDNO,VKNO,VOUNO,ITEMNO,VOUDATE,EXPLAN,EXPLAN2,DC=(SELECT top 1 DC FROM cw_accitems_gl WHERE GID=a.LINKGID),DR,CR,BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID] from (select GID,ORDNO,LINKGID=(SELECT top 1 GID FROM cw_accitems_gl WHERE ACCID=VW_cw_vouchers_vouitems_gl.ACCID and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "'),VKNO,VOUNO,ITEMNO,VOUDATE,(ACCYEAR+'-'+ACCMONTH) as ACCDATE,EXPLAN,2 as EXPLAN2,DC=(CASE WHEN DC='D' THEN '借' ELSE '贷' END),AMTDR as DR,AMTCR as CR,isnull((CASE WHEN DC='D' THEN (AMTDR-AMTCR) ELSE (AMTCR-AMTDR) END),0) as BLC from VW_cw_vouchers_vouitems_gl where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ISCHECKED=1 and (AMTDR<>0 OR AMTCR<>0)" + strCustNAME1 + strDeptName1 + strSALE1 + strITEMNAME1 //+ " and (case when FCY='USD' then FCY else 'RMB' end)='" + strCURRENCY + "'" + " and FCYNO='" + strCURRENCY + "'" + ") as a where LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "%' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')");// and CURRENCY='" + strCURRENCY + "' if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(")"); strSql.Append(" union "); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,ACCDATE+'-01' as VOUDATE,'期初余额' as EXPLAN,1 as EXPLAN2,DC"); strSql.Append(",isnull(sum(AMTYEARDR),0) as DR,isnull(sum(AMTYEARCR),0) as CR,isnull(sum(AMTYEARBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (AMTLASTBLC<>0 OR AMTDR<>0 OR AMTCR<>0 or AMTLASTDR<>0 or AMTLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + ACCDATEbgn + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append(" union "); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本期合计' as EXPLAN,3 as EXPLAN2,DC"); strSql.Append(",isnull(sum(AMTDR),0) as DR,isnull(sum(AMTCR),0) as CR,isnull(sum(AMTBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (AMTLASTBLC<>0 OR AMTDR<>0 OR AMTCR<>0 or AMTLASTDR<>0 or AMTLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append(" union "); //strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本年累计' as EXPLAN,4 as EXPLAN2,DC"); //strSql.Append(",isnull(sum(AMTLASTDR),0) as DR,isnull(sum(AMTLASTCR),0) as CR,isnull(sum(AMTLASTBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); //strSql.Append(" from ("); //strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // strSql.Append(" and " + strCondition); //} ////strSql.Append(" and CORPID='" + companyid + "'"); //strSql.Append(") as a"); //strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本年累计' as EXPLAN,4 as EXPLAN2,DC"); strSql.Append(",isnull(sum(AMTDR),0) as DR,isnull(sum(AMTCR),0) as CR,isnull(sum(AMTLASTBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select LINKGID,ACCDATE,[CORPID],isnull(sum(AMTLASTBLC),0) as [AMTLASTBLC],DC=(select top 1 DC from [cw_accitems_gl] where gid=f.LINKGID)");//,[CREATEUSER] strSql.Append(",AMTDR=((select isnull(sum(AMTDR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (AMTLASTBLC<>0 OR AMTDR<>0 OR AMTCR<>0 or AMTLASTDR<>0 or AMTLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", "ACCDATE>='" + sYear + "-01'"); sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE<=f.ACCDATE"); strSql.Append(" and " + sls); } strSql.Append(")"); //strSql.Append("+(select isnull(sum(AMTYEARDR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (AMTLASTBLC<>0 OR AMTDR<>0 OR AMTCR<>0 or AMTLASTDR<>0 or AMTLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", ""); // sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE='" + sYear + "-01'"); // strSql.Append(sls); //} //strSql.Append(")"); strSql.Append(")"); strSql.Append(",AMTCR=((select isnull(sum(AMTCR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (AMTLASTBLC<>0 OR AMTDR<>0 OR AMTCR<>0 or AMTLASTDR<>0 or AMTLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", "ACCDATE>='" + sYear + "-01'"); sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE<=f.ACCDATE"); strSql.Append(" and " + sls); } strSql.Append(")"); //strSql.Append("+(select isnull(sum(AMTYEARCR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (AMTLASTBLC<>0 OR AMTDR<>0 OR AMTCR<>0 or AMTLASTDR<>0 or AMTLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", ""); // sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE='" + sYear + "-01'"); // strSql.Append(sls); //} //strSql.Append(")"); strSql.Append(")"); strSql.Append(" from cw_genleg_accitems as f where f.[STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (AMTLASTBLC<>0 OR AMTDR<>0 OR AMTCR<>0 or AMTLASTDR<>0 or AMTLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(" GROUP BY LINKGID,ACCDATE,[CORPID]");//,[CREATEUSER] strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); #endregion } else//外币 { #region 外币 strSql.Append("(select GID,ORDNO,VKNO,VOUNO,ITEMNO,VOUDATE,EXPLAN,EXPLAN2,DC=(SELECT top 1 DC FROM cw_accitems_gl WHERE GID=a.LINKGID),DR,CR,BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID] from (select GID,ORDNO,LINKGID=(SELECT top 1 GID FROM cw_accitems_gl WHERE ACCID=VW_cw_vouchers_vouitems_gl.ACCID and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "'),VKNO,VOUNO,ITEMNO,VOUDATE,(ACCYEAR+'-'+ACCMONTH) as ACCDATE,EXPLAN,2 as EXPLAN2,DC=(CASE WHEN DC='D' THEN '借' ELSE '贷' END),FCYDR as DR,FCYCR as CR,isnull((CASE WHEN DC='D' THEN (FCYDR-FCYCR) ELSE (FCYCR-FCYDR) END),0) as BLC from VW_cw_vouchers_vouitems_gl where STARTGID='" + strCwSTARTGID + "' and (ISDELETE=0 or ISDELETE is null) and ISCHECKED=1 and (FCYDR<>0 OR FCYCR<>0)" + strCustNAME1 + strDeptName1 + strSALE1 + strITEMNAME1 //+ " and (case when FCY='USD' then FCY else 'RMB' end)='" + strCURRENCY + "'" + " and FCYNO='" + strCURRENCY + "'" + ") as a where LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "%' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')");// and CURRENCY='" + strCURRENCY + "' if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(")"); strSql.Append(" union "); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,ACCDATE+'-01' as VOUDATE,'期初余额' as EXPLAN,1 as EXPLAN2,DC"); strSql.Append(",isnull(sum(FCYYEARDR),0) as DR,isnull(sum(FCYYEARCR),0) as CR,isnull(sum(FCYYEARBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (FCYLASTBLC<>0 OR FCYDR<>0 OR FCYCR<>0 or FCYLASTDR<>0 or FCYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + ACCDATEbgn + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append(" union "); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本期合计' as EXPLAN,3 as EXPLAN2,DC"); strSql.Append(",isnull(sum(FCYDR),0) as DR,isnull(sum(FCYCR),0) as CR,isnull(sum(FCYBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (FCYLASTBLC<>0 OR FCYDR<>0 OR FCYCR<>0 or FCYLASTDR<>0 or FCYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append(" union "); //strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本年累计' as EXPLAN,4 as EXPLAN2,DC"); //strSql.Append(",isnull(sum(FCYLASTDR),0) as DR,isnull(sum(FCYLASTCR),0) as CR,isnull(sum(FCYLASTBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); //strSql.Append(" from ("); //strSql.Append("select *,DC=(select top 1 DC from [cw_accitems_gl] where gid=cw_genleg_accitems.LINKGID) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (QTYLASTBLC<>0 OR QTYDR<>0 OR QTYCR<>0 or QTYLASTDR<>0 or QTYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // strSql.Append(" and " + strCondition); //} ////strSql.Append(" and CORPID='" + companyid + "'"); //strSql.Append(") as a"); //strSql.Append(" group by LINKGID,ACCDATE,DC)"); strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,0 as ITEMNO,CONVERT(varchar(100),(DATEADD(mm,1,(ACCDATE+'-01'))-1),23) as VOUDATE,'本年累计' as EXPLAN,4 as EXPLAN2,DC"); strSql.Append(",isnull(sum(FCYDR),0) as DR,isnull(sum(FCYCR),0) as CR,isnull(sum(FCYLASTBLC),0) as BLC,'" + userid + "' as [CREATEUSER],'" + companyid + "' as [CORPID],'" + strCwSTARTGID + "' as [STARTGID]"); strSql.Append(" from ("); strSql.Append("select LINKGID,ACCDATE,[CORPID],isnull(sum(FCYLASTBLC),0) as [FCYLASTBLC],DC=(select top 1 DC from [cw_accitems_gl] where gid=f.LINKGID)");//,[CREATEUSER] strSql.Append(",FCYDR=((select isnull(sum(FCYDR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (FCYLASTBLC<>0 OR FCYDR<>0 OR FCYCR<>0 or FCYLASTDR<>0 or FCYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", "ACCDATE>='" + sYear + "-01'"); sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE<=f.ACCDATE"); strSql.Append(" and " + sls); } strSql.Append(")"); //strSql.Append("+(select isnull(sum(FCYYEARDR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (FCYLASTBLC<>0 OR FCYDR<>0 OR FCYCR<>0 or FCYLASTDR<>0 or FCYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", ""); // sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE='" + sYear + "-01'"); // strSql.Append(sls); //} //strSql.Append(")"); strSql.Append(")"); strSql.Append(",FCYCR=((select isnull(sum(FCYCR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (FCYLASTBLC<>0 OR FCYDR<>0 OR FCYCR<>0 or FCYLASTDR<>0 or FCYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", "ACCDATE>='" + sYear + "-01'"); sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE<=f.ACCDATE"); strSql.Append(" and " + sls); } strSql.Append(")"); //strSql.Append("+(select isnull(sum(FCYYEARCR),0) from cw_genleg_accitems where [STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (FCYLASTBLC<>0 OR FCYDR<>0 OR FCYCR<>0 or FCYLASTDR<>0 or FCYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); //if (!string.IsNullOrEmpty(strCondition)) //{ // string sls = strCondition.Replace("ACCDATE>='" + strACCDATE + "'", ""); // sls = sls.Replace("ACCDATE<='" + strACCDATE_end + "'", "ACCDATE='" + sYear + "-01'"); // strSql.Append(sls); //} //strSql.Append(")"); strSql.Append(")"); strSql.Append(" from cw_genleg_accitems as f where f.[STARTGID]='" + strCwSTARTGID + "' and ISDELETE=0 and ISENABLE=1 and CURRENCY='" + strCURRENCY + "' and (FCYLASTBLC<>0 OR FCYDR<>0 OR FCYCR<>0 or FCYLASTDR<>0 or FCYLASTCR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "' and [YEAR]='" + sYear + "' and [STARTGID]='" + strCwSTARTGID + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } //strSql.Append(" and CORPID='" + companyid + "'"); strSql.Append(" GROUP BY LINKGID,ACCDATE,[CORPID]");//,[CREATEUSER] strSql.Append(") as a"); strSql.Append(" group by LINKGID,ACCDATE,DC)"); #endregion } #endregion #region 清理临时表 using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { #region 清理临时表 String sSql = "delete from [cw_glDetail_rpt_temp] where CREATEUSER='" + userid + "' and CORPID='" + companyid + "'";//STARTGID='" + strCwSTARTGID + "' and iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null); if (iState < 0) { result = -3; sqlTran.Rollback(); } #endregion result = 1;//状态为1表示删除成功 sqlTran.Commit(); } catch (Exception execError) { sqlTran.Rollback(); result = -6;//插入异常,事务已回滚成功 throw execError; } finally { SqlHelper.CloseConnection(); } } #endregion #region 插入临时表 using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { #region 插入临时表【[cw_glDetail_rpt_temp]】 //GID,VKNO,VOUNO,ITEMNO,VOUDATE,EXPLAN,EXPLAN2,DC,DR,CR,BLC string sSql = "insert into [cw_glDetail_rpt_temp]([GID],[ORDNO],[VKNO],[VOUNO],ITEMNO,[VOUDATE],[EXPLAN],[EXPLAN2],[DC],[DR],[CR],[BLC],[CREATEUSER],[CORPID],[STARTGID]) " + strSql; iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSql, null); if (iState < 0) { result = -4; sqlTran.Rollback(); } #endregion result = 1;//状态为1表示删除成功 sqlTran.Commit(); } catch (Exception execError) { sqlTran.Rollback(); result = -6;//插入异常,事务已回滚成功 //违反了 PRIMARY KEY 约束 'PK_cw_glDetail_rpt_temp'。不能在对象 'dbo.cw_glDetail_rpt_temp' 中插入重复键。 if (execError.Message.IndexOf("不能在对象 'dbo.cw_glDetail_rpt_temp' 中插入重复键") > -1) { String sSql = "delete from [cw_glDetail_rpt_temp]"; bool bl = T_ALL_DA.GetExecuteSqlCommand(sSql); } throw execError; } finally { SqlHelper.CloseConnection(); } } #endregion #region 更新临时表 using (SqlTransaction sqlTran1 = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { #region 插入合计到【[cw_glDetail_rpt_temp]】表 string sSql = "select * from cw_glDetail_rpt_temp where STARTGID='" + strCwSTARTGID + "' and [CREATEUSER]='" + userid + "' and [CORPID]='" + companyid + "' order by VOUDATE,EXPLAN2,VKNO,convert(INT,VOUNO),ITEMNO"; DataSet dsCGRT = T_ALL_DA.GetAllSQL(sSql); if (dsCGRT != null) { if (dsCGRT.Tables[0].Rows.Count > 0) { Decimal iBLD = 0; Decimal iBLC = 0; Decimal iBL = 0; for (int i = 0; i < dsCGRT.Tables[0].Rows.Count; i++) { #region 更新合计【[cw_glDetail_rpt_temp]】 string strDC = dsCGRT.Tables[0].Rows[i]["DC"].ToString(); if (dsCGRT.Tables[0].Rows[i]["EXPLAN"].ToString() != "本年累计") { if (dsCGRT.Tables[0].Rows[i]["EXPLAN"].ToString() != "本期合计") { //if (strDC.Trim() == "借") //{ // iBLD = iBLD + Decimal.Parse(dsCGRT.Tables[0].Rows[i]["BLC"].ToString()); //} //else //{ // iBLC = iBLC + Decimal.Parse(dsCGRT.Tables[0].Rows[i]["BLC"].ToString()); //} Decimal dlDR_F = Decimal.Parse(dsCGRT.Tables[0].Rows[i]["DR"].ToString()); if (dlDR_F < 0) { dlDR_F = dlDR_F * (-1); } Decimal dlCR_F = Decimal.Parse(dsCGRT.Tables[0].Rows[i]["CR"].ToString()); if (dlCR_F < 0) { dlCR_F = dlCR_F * (-1); } if (dlDR_F > dlCR_F) { iBLD = iBLD + Decimal.Parse(dsCGRT.Tables[0].Rows[i]["DR"].ToString()); } else { iBLC = iBLC + Decimal.Parse(dsCGRT.Tables[0].Rows[i]["CR"].ToString()); } //if (iBLD == 0) //{ // iBL = iBLC; //} //else //{ iBL = iBLD - iBLC; if (strDC.Trim() == "借") { iBL = iBLD - iBLC; } else { iBL = iBLC - iBLD; } //} // sSql = "update [cw_glDetail_rpt_temp] set BLC=" + iBL + " where GID='" + dsCGRT.Tables[0].Rows[i]["GID"].ToString() + "' and STARTGID='" + strCwSTARTGID + "' and [CREATEUSER]='" + userid + "' and [CORPID]='" + companyid + "'"; iState = SqlHelper.ExecuteNonQuery(sqlTran1, CommandType.Text, sSql, null); if (iState < 0) { result = -5; sqlTran1.Rollback(); } } else { sSql = "update [cw_glDetail_rpt_temp] set BLC=" + iBL + " where GID='" + dsCGRT.Tables[0].Rows[i]["GID"].ToString() + "' and STARTGID='" + strCwSTARTGID + "' and [CREATEUSER]='" + userid + "' and [CORPID]='" + companyid + "'"; iState = SqlHelper.ExecuteNonQuery(sqlTran1, CommandType.Text, sSql, null); if (iState < 0) { result = -5; sqlTran1.Rollback(); } } } #endregion } } } #endregion result = 1;//状态为1表示删除成功 sqlTran1.Commit(); } catch (Exception execError) { sqlTran1.Rollback(); result = -6;//插入异常,事务已回滚成功 throw execError; } finally { SqlHelper.CloseConnection(); } } #endregion #region 查询临时表 var strSql2 = new StringBuilder(); strSql2.Append("SELECT * from [cw_glDetail_rpt_temp] where STARTGID='" + strCwSTARTGID + "' and CREATEUSER='" + userid + "' and CORPID='" + companyid + "'"); #endregion return strSql2.ToString(); } 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()) { RptCwGLDetail data = new RptCwGLDetail(); #region Set DB data to Object data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//唯一编码 data.VKNO = (reader["VKNO"] == null ? "" : Convert.ToString(reader["VKNO"])); data.VOUNO = (reader["VOUNO"] == null ? "" : Convert.ToString(reader["VOUNO"])); data.VOUDATE = (reader["VOUDATE"] == null ? "" : Convert.ToString(reader["VOUDATE"])); data.DR = (reader["DR"] == null ? 0 : Convert.ToDecimal(reader["DR"]));//借方 data.CR = (reader["CR"] == null ? 0 : Convert.ToDecimal(reader["CR"]));//贷方 data.BLC = (reader["BLC"] == null ? 0 : Convert.ToDecimal(reader["BLC"]));//余额 data.EXPLAN = (reader["EXPLAN"] == null ? "" : Convert.ToString(reader["EXPLAN"])); data.DC = (reader["DC"] == null ? "" : Convert.ToString(reader["DC"])); data.ORDNO = (reader["ORDNO"] == null ? "" : Convert.ToString(reader["ORDNO"])); //data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//分公司代码 data.STARTGID = (reader["STARTGID"] == null ? "" : Convert.ToString(reader["STARTGID"])); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region 币别_下拉框 static public List GetCodeCurrencyList() { String strSql = "select * from [code_currency]"; return SetCodeCurrencyData(strSql); } private static List SetCodeCurrencyData(String strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql)) { while (reader.Read()) { CodeCurrencyModel data = new CodeCurrencyModel(); #region Set DB data to Object data.CODENAME = Convert.ToString(reader["CODENAME"]); #endregion headList.Add(data); } reader.Close(); } // CodeCurrencyModel data2 = new CodeCurrencyModel(); data2.CODENAME = "综合本位币"; headList.Add(data2); return headList; } #endregion } }