You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/Areas/MvcShipping/DAL/RptCwGLDetail/RptCwGLDetailDAL.cs

711 lines
51 KiB
C#

2 years ago
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<RptCwGLDetail> 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<RptCwGLDetail> 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<RptCwGLDetail> SetData(StringBuilder strSql)
{
var headList = new List<RptCwGLDetail>();
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<CodeCurrencyModel> GetCodeCurrencyList()
{
String strSql = "select * from [code_currency]";
return SetCodeCurrencyData(strSql);
}
private static List<CodeCurrencyModel> SetCodeCurrencyData(String strSql)
{
var headList = new List<CodeCurrencyModel>();
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
}
}