|
|
using System;
|
|
|
using System.Data;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text;
|
|
|
using DSWeb.MvcShipping.Models.RptCwCfsEntity;
|
|
|
using DSWeb.MvcShipping.Models.MsCwAccitemsGl;
|
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
using DSWeb.EntityDA;
|
|
|
using DSWeb.Areas.CommMng.Models;
|
|
|
using HcUtility.Comm;
|
|
|
using System.Data.SqlClient;
|
|
|
using DSWeb.DataAccess;
|
|
|
using HcUtility.Core;
|
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
|
|
|
|
namespace DSWeb.MvcShipping.DAL.RptCwCfsDAL
|
|
|
{
|
|
|
public class RptCwCfsDAL
|
|
|
{
|
|
|
#region 查询
|
|
|
static public List<RptVWCwCfsTemplateModelItemEntity> GetDataList(string sMODELGID, string sACCDATE, string USERID, string SHOWNAME, string companyid, string sort = null)
|
|
|
{
|
|
|
isSaveRow(sMODELGID, sACCDATE, USERID, companyid);
|
|
|
var strSql = new StringBuilder();
|
|
|
string sSql = GetDataListSQL(sMODELGID, sACCDATE, companyid, USERID);
|
|
|
strSql.Append(sSql);
|
|
|
//
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by LINENUM");
|
|
|
}
|
|
|
return SetData(strSql);
|
|
|
}
|
|
|
|
|
|
static public List<RptVWCwCfsTemplateModelItemEntity> GetDataListTZ(string sMODELGID, string sACCDATE, string USERID, string SHOWNAME, string companyid, string sort = null)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
string sSql = GetDataListSQL(sMODELGID, sACCDATE, companyid, USERID);
|
|
|
strSql.Append(sSql);
|
|
|
//
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" order by LINENUM");
|
|
|
}
|
|
|
return SetData(strSql);
|
|
|
}
|
|
|
|
|
|
static public string GetDataListStr(string sMODELGID, string sACCDATE, string companyid, string strUSERID)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
string sSql = GetDataListSQL(sMODELGID, sACCDATE, companyid, strUSERID);
|
|
|
strSql.Append("select GID as 唯一编码, LINENUM as 行号, MODELNAME as 项目方案, ITEMNAME as 项目名称, ITEMTYPE as 项目类型, ACCDATE as 会计期间, QTYLASTBLC as 本年累计金额, QTYBLC as 本月金额, QTYLASTBLC_S as [本年累计金额(系统)], QTYBLC_S as [本月金额(系统)], QTYLASTBLC_H as [本年累计金额(调动)], QTYBLC_H as [本月金额(调动)],(select top 1 STARTNAME from [cw_design_startusing] where gid=a.STARTGID and (ISDELETE=0 or ISDELETE is null)) as 账套启用,(select top 1 [NAME] from [company] where gid=a.CORPID) as 分公司,(select top 1 SHOWNAME from [user] where gid=a.MODIFIEDUSER) as 更改操作人,MODIFIEDTIME as 更改操作时间 from (");
|
|
|
strSql.Append(sSql);
|
|
|
strSql.Append(") as a order by LINENUM");
|
|
|
return strSql.ToString();
|
|
|
}
|
|
|
|
|
|
static public string GetDataListSQL(string sMODELGID, string sACCDATE, string companyid, string strUserID)
|
|
|
{
|
|
|
#region 综合本位币
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("select * from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "'");
|
|
|
if (!string.IsNullOrEmpty(sMODELGID))
|
|
|
{
|
|
|
strSql.Append(" and MODELGID='" + sMODELGID + "'");
|
|
|
}
|
|
|
if (!string.IsNullOrEmpty(sACCDATE))
|
|
|
{
|
|
|
strSql.Append(" and ACCDATE='" + sACCDATE + "'");
|
|
|
}
|
|
|
//strSql.Append(" and CORPID='" + companyid + "'");//需求编号:SR2017082800002
|
|
|
#endregion
|
|
|
return strSql.ToString();
|
|
|
}
|
|
|
|
|
|
private static List<RptVWCwCfsTemplateModelItemEntity> SetData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<RptVWCwCfsTemplateModelItemEntity>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
RptVWCwCfsTemplateModelItemEntity data = new RptVWCwCfsTemplateModelItemEntity();
|
|
|
#region Set DB data to Object
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//GID
|
|
|
data.MODELGID = (reader["MODELGID"] == null ? "" : Convert.ToString(reader["MODELGID"]));//MODELGID
|
|
|
data.ITEMGID = (reader["ITEMGID"] == null ? "" : Convert.ToString(reader["ITEMGID"]));//ITEMGID
|
|
|
data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//ACCDATE
|
|
|
data.QTYLASTBLC = (reader["QTYLASTBLC"] == null ? 0 : Convert.ToDecimal(reader["QTYLASTBLC"]));//QTYLASTBLC
|
|
|
data.QTYBLC = (reader["QTYBLC"] == null ? 0 : Convert.ToDecimal(reader["QTYBLC"]));//QTYBLC
|
|
|
data.QTYLASTBLC_S = (reader["QTYLASTBLC_S"] == null ? 0 : Convert.ToDecimal(reader["QTYLASTBLC_S"]));//QTYLASTBLC_S
|
|
|
data.QTYBLC_S = (reader["QTYBLC_S"] == null ? 0 : Convert.ToDecimal(reader["QTYBLC_S"]));//QTYBLC_S
|
|
|
data.QTYLASTBLC_H = (reader["QTYLASTBLC_H"] == null ? 0 : Convert.ToDecimal(reader["QTYLASTBLC_H"]));//QTYLASTBLC_H
|
|
|
data.QTYBLC_H = (reader["QTYBLC_H"] == null ? 0 : Convert.ToDecimal(reader["QTYBLC_H"]));//QTYBLC_H
|
|
|
data.STARTGID = (reader["STARTGID"] == null ? "" : Convert.ToString(reader["STARTGID"]));//STARTGID
|
|
|
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//CORPID
|
|
|
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//MODIFIEDUSER
|
|
|
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.MODELNAME = (reader["MODELNAME"] == null ? "" : Convert.ToString(reader["MODELNAME"]));//MODELNAME
|
|
|
data.ISDEFAULT = (reader["ISDEFAULT"] == null ? false : Convert.ToBoolean(reader["ISDEFAULT"]));//ISDEFAULT
|
|
|
data.ITEMNAME = (reader["ITEMNAME"] == null ? "" : Convert.ToString(reader["ITEMNAME"]));//ITEMNAME
|
|
|
data.LINENUM = (reader["LINENUM"] == null ? 0 : Convert.ToInt32(reader["LINENUM"]));//LINENUM
|
|
|
data.DETAILED = (reader["DETAILED"] == null ? false : Convert.ToBoolean(reader["DETAILED"]));//DETAILED
|
|
|
data.ISALTER = (reader["ISALTER"] == null ? false : Convert.ToBoolean(reader["ISALTER"]));//ISALTER
|
|
|
data.PACCGID = (reader["PACCGID"] == null ? "" : Convert.ToString(reader["PACCGID"]));//PACCGID
|
|
|
data.ITEMTYPE = (reader["ITEMTYPE"] == null ? "" : Convert.ToString(reader["ITEMTYPE"]));//ITEMTYPE
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 查询明细表
|
|
|
static public List<RptCwCfsDetailEntity> GetDetailList(string sACCDATE, string strCondition, string companyid, string strUSERID)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT *,ACCNAME=ISNULL((select top 1 ACCNAME from cw_accitems_gl WITH(NOLOCK) where GID=cw_cfs_template_detail.ACCGID and [YEAR]=SUBSTRING(convert(varchar,'" + sACCDATE + "-01',23),1,4)),''),ACCDATE=(select top 1 ACCDATE from cw_cfs_template WITH(NOLOCK) where GID=cw_cfs_template_detail.LINKGID),ACCIDNAME=ISNULL((select top 1 (ACCID+'-'+ACCNAME) as ACCIDNAME from cw_accitems_gl WITH(NOLOCK) where GID=cw_cfs_template_detail.ACCGID and [YEAR]=SUBSTRING(convert(varchar,'" + sACCDATE + "-01',23),1,4)),'') from cw_cfs_template_detail WITH(NOLOCK) where LINKGID in (select GID from cw_cfs_template where [STARTGID]='" + strCwSTARTGID + "')");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by ACCIDNAME,MODIFIEDTIME");
|
|
|
return SetDetail(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<RptCwCfsDetailEntity> SetDetail(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<RptCwCfsDetailEntity>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
RptCwCfsDetailEntity data = new RptCwCfsDetailEntity();
|
|
|
#region Set DB data to Object
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//唯一编码
|
|
|
data.LINKGID = (reader["LINKGID"] == null ? "" : Convert.ToString(reader["LINKGID"]));//模板GID
|
|
|
data.ACCGID = (reader["ACCGID"] == null ? "" : Convert.ToString(reader["ACCGID"]));//科目GID
|
|
|
data.OPERATORS = (reader["OPERATORS"] == null ? "" : Convert.ToString(reader["OPERATORS"]));//运算符号
|
|
|
data.ACCESS = (reader["ACCESS"] == null ? "" : Convert.ToString(reader["ACCESS"]));//取数规则
|
|
|
data.QTYLASTBLC = (reader["QTYLASTBLC"] == null ? 0 : Convert.ToDecimal(reader["QTYLASTBLC"]));//本年累计余额
|
|
|
data.QTYBLC = (reader["QTYBLC"] == null ? 0 : Convert.ToDecimal(reader["QTYBLC"]));//本月金额
|
|
|
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.ACCNAME = (reader["ACCNAME"] == null ? "" : Convert.ToString(reader["ACCNAME"]));//科目名称
|
|
|
data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//会计期间
|
|
|
data.ACCIDNAME = (reader["ACCIDNAME"] == null ? "" : Convert.ToString(reader["ACCIDNAME"]));//科目名称
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 查询项目表
|
|
|
static public List<RptCwCfsModelEntity> GetCwCfsModelList(string strCondition, string companyid, string strUSERID)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT * from cw_cfs_model WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "'");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by ISDEFAULT,MODELNAME");
|
|
|
return SetCwCfsModel(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<RptCwCfsModelEntity> SetCwCfsModel(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<RptCwCfsModelEntity>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
RptCwCfsModelEntity data = new RptCwCfsModelEntity();
|
|
|
#region Set DB data to Object
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//唯一编码
|
|
|
data.MODELNAME = (reader["MODELNAME"] == null ? "" : Convert.ToString(reader["MODELNAME"]));//方案名称
|
|
|
data.ISDEFAULT = (reader["ISDEFAULT"] == null ? false : Convert.ToBoolean(reader["ISDEFAULT"]));//是否默认方案并不允许删除
|
|
|
data.STARTGID = (reader["STARTGID"] == null ? "" : Convert.ToString(reader["STARTGID"]));//账套启用GID
|
|
|
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//分公司代码
|
|
|
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"]);//最后一次更新操作时间
|
|
|
}
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 项目维护列表
|
|
|
static public List<RptCwCfsModelItemEntity> GetCwCfsModelItemList(string sMODELGID, string companyid, string strUSERID)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT * from cw_cfs_model_item WITH(NOLOCK) where PACCGID='0' and MODELGID in (SELECT GID from cw_cfs_model WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "')");
|
|
|
if (!string.IsNullOrEmpty(sMODELGID))
|
|
|
{
|
|
|
strSql.Append(" and MODELGID='" + sMODELGID + "'");
|
|
|
}
|
|
|
strSql.Append(" order by LINENUM");
|
|
|
return SetCwCfsModelItem(strSql);
|
|
|
}
|
|
|
|
|
|
static public List<RptCwCfsModelItemEntity> GetCwCfsModelItemList2(string sITEMGID, string companyid, string strUSERID)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT * from cw_cfs_model_item WITH(NOLOCK) where PACCGID<>'0' and ITEMTYPE<>'' and MODELGID in (SELECT GID from cw_cfs_model WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "')");
|
|
|
if (!string.IsNullOrEmpty(sITEMGID))
|
|
|
{
|
|
|
strSql.Append(" and PACCGID='" + sITEMGID + "'");
|
|
|
}
|
|
|
strSql.Append(" order by LINENUM");
|
|
|
return SetCwCfsModelItem(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<RptCwCfsModelItemEntity> SetCwCfsModelItem(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<RptCwCfsModelItemEntity>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
RptCwCfsModelItemEntity data = new RptCwCfsModelItemEntity();
|
|
|
#region Set DB data to Object
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//唯一编码
|
|
|
data.MODELGID = (reader["MODELGID"] == null ? "" : Convert.ToString(reader["MODELGID"]));//方案GID
|
|
|
data.ITEMNAME = (reader["ITEMNAME"] == null ? "" : Convert.ToString(reader["ITEMNAME"]));//项目名称
|
|
|
data.LINENUM = (reader["LINENUM"] == null ? 0 : Convert.ToInt32(reader["LINENUM"]));//项目行次
|
|
|
data.DETAILED = (reader["DETAILED"] == null ? false : Convert.ToBoolean(reader["DETAILED"]));//末级科目(标志)
|
|
|
data.ISALTER = (reader["ISALTER"] == null ? false : Convert.ToBoolean(reader["ISALTER"]));//是否允许修改项目
|
|
|
data.PACCGID = (reader["PACCGID"] == null ? "" : Convert.ToString(reader["PACCGID"]));//父级科目代码
|
|
|
data.ITEMTYPE = (reader["ITEMTYPE"] == null ? "" : Convert.ToString(reader["ITEMTYPE"]));//项目属性
|
|
|
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"]);//最后一次更新操作时间
|
|
|
}
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
#region 项目重新排序
|
|
|
static public void GetSort(string sMODELGID, string strUSERID)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
string sSQL = "SELECT * from cw_cfs_model_item WITH(NOLOCK) where MODELGID in (SELECT GID from cw_cfs_model WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "')";
|
|
|
if (!string.IsNullOrEmpty(sMODELGID))
|
|
|
{
|
|
|
sSQL += " and MODELGID='" + sMODELGID + "'";
|
|
|
}
|
|
|
sSQL += " order by LINENUM,PACCGID,ITEMTYPE desc";
|
|
|
DataSet ds = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
if (ds != null)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
sSQL = "update cw_cfs_model_item set LINENUM=" + (i + 1) + " where gid='" + ds.Tables[0].Rows[i]["GID"].ToString() + "'";
|
|
|
bool bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 新建方案//需求编号:SR2017082800002
|
|
|
static public DBResult onAddModel(string dataDiv, string USERID, string companyid)
|
|
|
{
|
|
|
var result = new DBResult();
|
|
|
if (string.IsNullOrEmpty(dataDiv))
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "方案名称不允许为空!";
|
|
|
return result;
|
|
|
}
|
|
|
//
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(USERID);
|
|
|
string strCwACCDATE = BasicDataRefDAL.GetCwACCDATE(USERID);
|
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
string strGID = Guid.NewGuid().ToString();
|
|
|
string sSQL = "select top 1 GID from [cw_cfs_model] where ISDEFAULT=1 and STARTGID='" + strCwSTARTGID + "'";// and [MODELNAME]='默认方案'
|
|
|
string sGIDMR = T_ALL_DA.GetStrSQL("GID",sSQL);
|
|
|
if (sGIDMR == "")
|
|
|
{
|
|
|
sSQL = "select top 1 GID from [cw_cfs_model] where ISDEFAULT=1";// and [MODELNAME]='默认方案' and STARTGID='" + strCwSTARTGID + "'
|
|
|
sGIDMR = T_ALL_DA.GetStrSQL("GID", sSQL);
|
|
|
if (sGIDMR == "")
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认方案,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
//
|
|
|
sSQL = "SELECT * from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sGIDMR + "' and [PACCGID]='0'";
|
|
|
DataSet dsMR = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
if (dsMR == null)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认方案项目,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (dsMR.Tables[0].Rows.Count == 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认方案项目,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
//
|
|
|
string strACCDATE = T_ALL_DA.GetStrSQL("ACCDATE", "select top 1 ACCDATE from cw_cfs_template WITH(NOLOCK) where MODELGID='" + sGIDMR + "' and ITEMGID in (SELECT gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sGIDMR + "') group by ACCDATE order by ACCDATE desc");
|
|
|
if (strACCDATE == "")
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认方案,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
//
|
|
|
sSQL = "SELECT * from cw_cfs_template WITH(NOLOCK) where MODELGID='" + sGIDMR + "' and ITEMGID in (SELECT gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sGIDMR + "') and ACCDATE='" + strACCDATE + "'";//STARTGID='" + strCwSTARTGID + "' and
|
|
|
DataSet dsFAXM = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
if (dsFAXM == null)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认项目,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (dsFAXM.Tables[0].Rows.Count == 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认项目,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
//
|
|
|
sSQL = "SELECT * from cw_cfs_template_detail WITH(NOLOCK) where LINKGID in (select gid from cw_cfs_template where MODELGID='" + sGIDMR + "' and ITEMGID in (SELECT gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sGIDMR + "') and ACCDATE='" + strACCDATE + "')";//STARTGID='" + strCwSTARTGID + "' and
|
|
|
DataSet dsXMGS = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
if (dsXMGS == null)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认项目公式,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (dsXMGS.Tables[0].Rows.Count == 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有默认项目公式,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
//插入新方案
|
|
|
sSQL = "INSERT INTO [cw_cfs_model] ([GID],[MODELNAME],[ISDEFAULT],[STARTGID],[CORPID],[MODIFIEDUSER],[MODIFIEDTIME]) VALUES ('" + strGID + "','" + dataDiv + "',0,'" + strCwSTARTGID + "','" + companyid + "','" + USERID + "',getdate())";
|
|
|
bool bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
if (bl)
|
|
|
{
|
|
|
//根据默认方案,插入新方案项目
|
|
|
sSQL = "INSERT INTO [cw_cfs_model_item] ([GID],[MODELGID],[ITEMNAME],[LINENUM],[DETAILED],[ISALTER],[PACCGID],[ITEMTYPE],[MODIFIEDUSER],[MODIFIEDTIME])"
|
|
|
+ "select (case when len(LINENUM)>1 then ('" + strGID.Substring(0, strGID.Length - 2) + "'+ CONVERT(nvarchar(2), [LINENUM])) else ('" + strGID.Substring(0, strGID.Length - 2) + "'+'0'+CONVERT(nvarchar(2), [LINENUM])) end) as [GID],'" + strGID + "' as [MODELGID],[ITEMNAME],[LINENUM],[DETAILED],[ISALTER],[PACCGID],[ITEMTYPE],[MODIFIEDUSER],[MODIFIEDTIME] from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sGIDMR + "'";
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
if (bl)
|
|
|
{
|
|
|
//查出新方案中的项目大类
|
|
|
sSQL = "SELECT * from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + strGID + "' and [PACCGID]='0'";
|
|
|
DataSet ds = T_ALL_DA.GetAllSQL(sSQL);
|
|
|
if (ds != null)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
//更新新方案项目的父类GID
|
|
|
sSQL = "update [cw_cfs_model_item] set [PACCGID]='" + ds.Tables[0].Rows[i]["GID"].ToString() + "' where [MODELGID]='" + strGID + "' and [PACCGID]<>'0' and [PACCGID]='" + dsMR.Tables[0].Rows[i]["GID"].ToString() + "'";
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//根据默认方案,插入新默认项目
|
|
|
sSQL = "INSERT INTO [cw_cfs_template]([GID],[MODELGID],[ITEMGID],[ACCDATE],[QTYLASTBLC],[QTYBLC],[QTYLASTBLC_S],[QTYBLC_S],[QTYLASTBLC_H],[QTYBLC_H],[STARTGID],[CORPID],[MODIFIEDUSER],[MODIFIEDTIME])"
|
|
|
+ "select newid() as [GID],'" + strGID + "' as [MODELGID],[ITEMGID]"
|
|
|
//+ ",[ITEMGID]=(select top 1 gid from cw_cfs_model_item where LINENUM=(select top 1 LINENUM from cw_cfs_model_item where gid=cw_cfs_template.ITEMGID))"
|
|
|
+ ",'" + strCwACCDATE + "' as [ACCDATE],0 as [QTYLASTBLC],0 as [QTYBLC],0 as [QTYLASTBLC_S],0 as [QTYBLC_S],0 as [QTYLASTBLC_H],0 as [QTYBLC_H],'" + strCwSTARTGID + "' as [STARTGID],'" + companyid + "' as [CORPID],'" + USERID + "' as [MODIFIEDUSER],getdate() as [MODIFIEDTIME] from cw_cfs_template WITH(NOLOCK) where MODELGID='" + sGIDMR + "' and ACCDATE='" + strACCDATE + "'";
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
if (!bl)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "插入新项目失败,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
//根据默认方案,插入新默认项目公式
|
|
|
sSQL = "INSERT INTO [cw_cfs_template_detail]([GID],[LINKGID],[ACCGID],[OPERATORS],[ACCESS],[QTYLASTBLC],[QTYBLC],[MODIFIEDUSER],[MODIFIEDTIME])"
|
|
|
+ "select newid() as [GID]"
|
|
|
+ ",[LINKGID]=(select top 1 gid from cw_cfs_template where MODELGID='" + strGID + "' and ITEMGID=(select top 1 ITEMGID from cw_cfs_template where MODELGID='" + sGIDMR + "' and GID=cw_cfs_template_detail.LINKGID))"
|
|
|
+ ",[ACCGID]=(select top 1 gid from cw_accitems_gl where STARTGID='" + strCwSTARTGID + "' and accid=(select top 1 accid from cw_accitems_gl where gid=cw_cfs_template_detail.ACCGID))"
|
|
|
+ ",[OPERATORS],[ACCESS],0 as [QTYLASTBLC],0 as [QTYBLC],'" + USERID + "' as [MODIFIEDUSER],getdate() as [MODIFIEDTIME] from cw_cfs_template_detail WITH(NOLOCK) where [LINKGID] in (select gid from cw_cfs_template where MODELGID='" + sGIDMR + "' and ACCDATE='" + strACCDATE + "')";
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
if (!bl)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "插入新项目公式失败,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
//根据默认方案,插入新默认项目
|
|
|
sSQL = "update [cw_cfs_template] set [ITEMGID]=(select top 1 gid from cw_cfs_model_item where MODELGID='" + strGID + "' and LINENUM=(select top 1 LINENUM from cw_cfs_model_item where gid=cw_cfs_template.ITEMGID))"
|
|
|
+ " where MODELGID='" + strGID + "' and ACCDATE='" + strCwACCDATE + "'";
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
if (!bl)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "更新新项目失败,请联系管理员!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "操作出错!";
|
|
|
return result;
|
|
|
}
|
|
|
result.Success = true;
|
|
|
result.Message = "操作成功";
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
#region 删除明细表
|
|
|
public static DBResult DeleteDetail(RptCwCfsDetailEntity head)
|
|
|
{
|
|
|
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 cw_cfs_template_detail where GID='" + head.GID.ToString().Trim() + "'");
|
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
tran.Rollback();
|
|
|
result.Success = false;
|
|
|
result.Message = "删除出现错误,请重试!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
result.Success = true;
|
|
|
result.Message = "操作成功";
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 重新计算
|
|
|
static public void GetRecount(string sMODELGID, string sACCDATE, string USERID, string companyid)
|
|
|
{
|
|
|
isSaveRow(sMODELGID, sACCDATE, USERID, companyid);
|
|
|
SaveRow(sMODELGID, sACCDATE, companyid, USERID);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 按规则合计明细表金额
|
|
|
public static void SaveRowDetail(string sACCDATE, string strCondition, string strUSERID)
|
|
|
{
|
|
|
string strVOUDATE = sACCDATE + "-01";
|
|
|
string sYEAR = DateTime.Parse(strVOUDATE).Year.ToString();
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
|
|
|
#region 更新_明细表金额
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
int iResult = 0;
|
|
|
|
|
|
#region 损益发生额_old
|
|
|
//string sSQL = "update cw_cfs_template_detail set"
|
|
|
//+ " QTYLASTBLC=isnull(("
|
|
|
//+ "isnull((select QTYLASTBLC from (select LINKGID,isnull(sum(case when ACCATTRIBUTE<>'损益' then QTYLASTBLC ELSE (case when DC='借' then QTYDR ELSE QTYCR END) END),0) as QTYLASTBLC"//累计余额
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID),0)"
|
|
|
//+ "-"
|
|
|
//+ "isnull((select QTYYEARBLC from (select LINKGID,isnull(sum(case when ACCATTRIBUTE<>'损益' then QTYYEARBLC ELSE 0 END),0) as QTYYEARBLC"//累计余额
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and SUBSTRING(ACCDATE,1,4)=SUBSTRING('" + sACCDATE + "',1,4) and IsInitialEntry=1"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID),0)"
|
|
|
//+ "),0)"
|
|
|
//+ ",QTYBLC=isnull(("
|
|
|
//+ "select QTYBLC from (select LINKGID,isnull(sum(case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE (case when DC='借' then QTYDR ELSE QTYCR END) END),0) as QTYBLC"//累计余额
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
//+ "),0)"
|
|
|
//+ " where ACCESS='损益发生额' and " + strCondition;
|
|
|
#endregion
|
|
|
|
|
|
#region 损益发生额
|
|
|
string sSQL = "update cw_cfs_template_detail set"
|
|
|
+ " QTYLASTBLC=isnull(("
|
|
|
+ "select QTYBLC from (select LINKGID,isnull(sum(case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE (case when DC='借' then QTYDR ELSE QTYCR END) END),0) as QTYBLC"//累计余额
|
|
|
+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "' and ACCDATE<='" + sACCDATE + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ ",QTYBLC=isnull(("
|
|
|
+ "select QTYBLC from (select LINKGID,isnull(sum(case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE (case when DC='借' then QTYDR ELSE QTYCR END) END),0) as QTYBLC"//累计余额
|
|
|
+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ " where ACCESS='损益发生额' and LINKGID in (select GID from cw_cfs_template where [STARTGID]='" + strCwSTARTGID + "') and " + strCondition;
|
|
|
#endregion
|
|
|
iResult = -1;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
#region 借方发生额_old
|
|
|
//sSQL = "update cw_cfs_template_detail set"
|
|
|
//+ " QTYLASTBLC=isnull(("
|
|
|
//+ "isnull((select QTYLASTBLC from (select LINKGID,isnull(sum(case when DC='贷' then (-(case when ACCATTRIBUTE<>'损益' then QTYLASTBLC ELSE QTYDR END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYLASTBLC ELSE QTYDR END) END),0) as QTYLASTBLC"//累计借方
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID),0)"
|
|
|
//+ "-"
|
|
|
//+ "isnull((select QTYYEARBLC from (select LINKGID,isnull(sum(case when DC='贷' then (-(case when ACCATTRIBUTE<>'损益' then QTYYEARBLC ELSE 0 END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYYEARBLC ELSE 0 END) END),0) as QTYYEARBLC"//累计借方
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and SUBSTRING(ACCDATE,1,4)=SUBSTRING('" + sACCDATE + "',1,4) and IsInitialEntry=1"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID),0)"
|
|
|
//+ "),0)"
|
|
|
//+ ",QTYBLC=isnull(("
|
|
|
//+ "select QTYBLC from (select LINKGID,isnull(sum(case when DC='贷' then (-(case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYDR END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYDR END) END),0) as QTYBLC"//累计借方
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
//+ "),0)"
|
|
|
//+ " where ACCESS='借方发生额' and " + strCondition;
|
|
|
#endregion
|
|
|
|
|
|
#region 借方发生额
|
|
|
sSQL = "update cw_cfs_template_detail set"
|
|
|
+ " QTYLASTBLC=isnull(("
|
|
|
+ "select QTYBLC from (select LINKGID,isnull(sum(case when DC='贷' then (-(case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYDR END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYDR END) END),0) as QTYBLC"//累计借方
|
|
|
+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "' and ACCDATE<='" + sACCDATE + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ ",QTYBLC=isnull(("
|
|
|
+ "select QTYBLC from (select LINKGID,isnull(sum(case when DC='贷' then (-(case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYDR END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYDR END) END),0) as QTYBLC"//累计借方
|
|
|
+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ " where ACCESS='借方发生额' and LINKGID in (select GID from cw_cfs_template where [STARTGID]='" + strCwSTARTGID + "') and " + strCondition;
|
|
|
#endregion
|
|
|
iResult = -2;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
#region 贷方发生额_old
|
|
|
//sSQL = "update cw_cfs_template_detail set"
|
|
|
//+ " QTYLASTBLC=isnull(("
|
|
|
//+ "isnull((select QTYLASTBLC from (select LINKGID,isnull(sum(case when DC='借' then (-(case when ACCATTRIBUTE<>'损益' then QTYLASTBLC ELSE QTYCR END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYLASTBLC ELSE QTYCR END) END),0) as QTYLASTBLC"//累计贷方
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID),0)"
|
|
|
//+ "-"
|
|
|
//+ "isnull((select QTYYEARBLC from (select LINKGID,isnull(sum(case when DC='借' then (-(case when ACCATTRIBUTE<>'损益' then QTYYEARBLC ELSE 0 END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYYEARBLC ELSE 0 END) END),0) as QTYYEARBLC"//累计贷方
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and SUBSTRING(ACCDATE,1,4)=SUBSTRING('" + sACCDATE + "',1,4) and IsInitialEntry=1"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID),0)"
|
|
|
//+ "),0)"
|
|
|
//+ ",QTYBLC=isnull(("
|
|
|
//+ "select QTYBLC from (select LINKGID,isnull(sum(case when DC='借' then (-(case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYCR END)) ELSE (case when ACCATTRIBUTE<>'损益' then QTYBLC ELSE QTYCR END) END),0) as QTYBLC"//累计贷方
|
|
|
//+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
//+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
//+ " and STARTGID='" + strSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
//+ " GROUP by LINKGID) as a"
|
|
|
//+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
//+ "),0)"
|
|
|
//+ " where ACCESS='贷方发生额' and " + strCondition;
|
|
|
#endregion
|
|
|
|
|
|
#region 贷方发生额
|
|
|
sSQL = "update cw_cfs_template_detail set"
|
|
|
+ " QTYLASTBLC=isnull(("
|
|
|
+ "select QTYCR from (select LINKGID,isnull(sum(case when DC='借' then (-QTYCR) ELSE QTYCR END),0) as QTYCR"//累计贷方
|
|
|
+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "' and ACCDATE<='" + sACCDATE + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ ",QTYBLC=isnull(("
|
|
|
+ "select QTYCR from (select LINKGID,isnull(sum(case when DC='借' then (-QTYCR) ELSE QTYCR END),0) as QTYCR"//累计贷方
|
|
|
+ " from VW_cw_genleg_accitems_gl WITH(NOLOCK)"
|
|
|
+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ " where ACCESS='贷方发生额' and LINKGID in (select GID from cw_cfs_template where [STARTGID]='" + strCwSTARTGID + "') and " + strCondition;
|
|
|
#endregion
|
|
|
iResult = -3;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
#region 期初数_本年\本月期初数
|
|
|
sSQL = "update cw_cfs_template_detail set"
|
|
|
+ " QTYLASTBLC=isnull(("
|
|
|
+ "select QTYYEARBLC from (select LINKGID,isnull(sum(QTYYEARBLC),0) as QTYYEARBLC"//累计余额
|
|
|
+ " from cw_genleg_accitems WITH(NOLOCK)"
|
|
|
+ " where IsInitialEntry=1 and ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "'"
|
|
|
+ " and [YEAR]='" + sACCDATE.Trim().Substring(0, 4) + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ ",QTYBLC=isnull(("
|
|
|
+ "select QTYYEARBLC from (select LINKGID,isnull(sum(QTYYEARBLC),0) as QTYYEARBLC"//累计余额
|
|
|
+ " from cw_genleg_accitems WITH(NOLOCK)"
|
|
|
+ " where ISENABLE=1 and (ISDELETE=0 or ISDELETE is NULL)"
|
|
|
+ " and STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "'"
|
|
|
+ " GROUP by LINKGID) as a"
|
|
|
+ " where a.LINKGID=cw_cfs_template_detail.ACCGID"
|
|
|
+ "),0)"
|
|
|
+ " where ACCESS='期初数' and LINKGID in (select GID from cw_cfs_template where [STARTGID]='" + strCwSTARTGID + "') and " + strCondition;
|
|
|
#endregion
|
|
|
iResult = -4;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 按规则合计主表金额
|
|
|
public static void SaveRow(string sMODELGID, string sACCDATE, string companyid, string strUSERID)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
|
|
|
#region 更新_明细表金额
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
string strSql = GetDataListSQL(sMODELGID, sACCDATE, companyid, strUSERID) + " order by LINENUM";
|
|
|
DataSet ds = T_ALL_DA.GetAllSQL(strSql);
|
|
|
if (ds != null)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
string strCondition = "LINKGID='" + ds.Tables[0].Rows[i]["GID"].ToString() + "'";
|
|
|
SaveRowDetail(sACCDATE, strCondition, strUSERID);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_主表明细金额
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC_S=isnull((select sum((case when OPERATORS='-' then (-QTYLASTBLC) ELSE QTYLASTBLC end)) from cw_cfs_template_detail WITH(NOLOCK) where LINKGID=cw_cfs_template.GID),0)"
|
|
|
+ ",QTYBLC_S=isnull((select sum((case when OPERATORS='-' then (-QTYBLC) ELSE QTYBLC end)) from cw_cfs_template_detail where LINKGID=cw_cfs_template.GID),0)"
|
|
|
+ " where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "'";
|
|
|
int iResult = -2;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_“一、二、三”的现金流量净额
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC_S=isnull((select sum((case when ITEMTYPE='现金流入' then QTYLASTBLC_S else (-QTYLASTBLC_S) end)) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE<>'' and PACCGID in (select PACCGID from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where ITEMGID=cw_cfs_template.ITEMGID)),0)"
|
|
|
+ ",QTYBLC_S=isnull((select sum((case when ITEMTYPE='现金流入' then QTYBLC_S else (-QTYBLC_S) end)) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE<>'' and PACCGID in (select PACCGID from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where ITEMGID=cw_cfs_template.ITEMGID)),0)"
|
|
|
+ ",QTYLASTBLC_H=isnull((select sum((case when ITEMTYPE='现金流入' then QTYLASTBLC_H else (-QTYLASTBLC_H) end)) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE<>'' and PACCGID in (select PACCGID from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where ITEMGID=cw_cfs_template.ITEMGID)),0)"
|
|
|
+ ",QTYBLC_H=isnull((select sum((case when ITEMTYPE='现金流入' then QTYBLC_H else (-QTYBLC_H) end)) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE<>'' and PACCGID in (select PACCGID from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where ITEMGID=cw_cfs_template.ITEMGID)),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and ITEMGID in (SELECT gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and DETAILED=1 and ITEMTYPE='') and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -16;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_四、现金净增加额
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC_S=isnull((select sum(QTYLASTBLC_S) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE=''),0)"
|
|
|
+ ",QTYBLC_S=isnull((select sum(QTYBLC_S) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE=''),0)"
|
|
|
+ ",QTYLASTBLC_H=isnull((select sum(QTYLASTBLC_H) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE=''),0)"
|
|
|
+ ",QTYBLC_H=isnull((select sum(QTYBLC_H) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and DETAILED=1 and ITEMTYPE=''),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and ITEMGID in (SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%四、现金净增加额%' and DETAILED=0 and ITEMTYPE='') and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -17;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 五、期末现金余额
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC_S=isnull((select sum(QTYLASTBLC_S) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and (ITEMNAME like '%四、现金净增加额%' or PACCGID in (SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%四、现金净增加额%' and DETAILED=0 and ITEMTYPE=''))),0)"
|
|
|
+ ",QTYBLC_S=isnull((select sum(QTYBLC_S) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and (ITEMNAME like '%四、现金净增加额%' or PACCGID in (SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%四、现金净增加额%' and DETAILED=0 and ITEMTYPE=''))),0)"
|
|
|
+ ",QTYLASTBLC_H=isnull((select sum(QTYLASTBLC_H) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and (ITEMNAME like '%四、现金净增加额%' or PACCGID in (SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%四、现金净增加额%' and DETAILED=0 and ITEMTYPE=''))),0)"
|
|
|
+ ",QTYBLC_H=isnull((select sum(QTYBLC_H) from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and (ITEMNAME like '%四、现金净增加额%' or PACCGID in (SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%四、现金净增加额%' and DETAILED=0 and ITEMTYPE=''))),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and ITEMGID in (SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%五、期末现金余额%' and DETAILED=0 and ITEMTYPE='') and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -18;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_各个项目的合计字段
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC=isnull((QTYLASTBLC_S+QTYLASTBLC_H),0)"
|
|
|
+ ",QTYBLC=isnull((QTYBLC_S+QTYBLC_H),0)"
|
|
|
+ " where STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "'";
|
|
|
int iResult = -19;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_调整本年“一、二、三”的负数
|
|
|
DataSet dsVW = T_ALL_DA.GetAllSQL("select * from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and (ITEMNAME LIKE '%收到其他与经营活动有关的现金%' or ITEMNAME LIKE '%支付其他与经营活动有关的现金%' or ITEMNAME LIKE '%收回短期投资、长期债券投资和长期股权投资收到的现金%' or ITEMNAME LIKE '%短期投资、长期债券投资和长期股权投资支付的现金%' or ITEMNAME LIKE '%取得借款收到的现金%' or ITEMNAME LIKE '%偿还借款本金支付的现金%') and QTYLASTBLC<0 order by LINENUM");
|
|
|
if (dsVW != null)
|
|
|
{
|
|
|
if (dsVW.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
for (int i = 0; i < dsVW.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
#region 提取_调整的项目
|
|
|
string sITEM = "";
|
|
|
string sITEM2 = "";
|
|
|
if (dsVW.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("收到其他与经营活动有关的现金") > -1)
|
|
|
{
|
|
|
sITEM = "收到其他与经营活动有关的现金";
|
|
|
sITEM2 = "支付其他与经营活动有关的现金";
|
|
|
}
|
|
|
else if (dsVW.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("支付其他与经营活动有关的现金") > -1)
|
|
|
{
|
|
|
sITEM = "支付其他与经营活动有关的现金";
|
|
|
sITEM2 = "收到其他与经营活动有关的现金";
|
|
|
}
|
|
|
else if (dsVW.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("收回短期投资、长期债券投资和长期股权投资收到的现金") > -1)
|
|
|
{
|
|
|
sITEM = "收回短期投资、长期债券投资和长期股权投资收到的现金";
|
|
|
sITEM2 = "短期投资、长期债券投资和长期股权投资支付的现金";
|
|
|
}
|
|
|
else if (dsVW.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("短期投资、长期债券投资和长期股权投资支付的现金") > -1)
|
|
|
{
|
|
|
sITEM = "短期投资、长期债券投资和长期股权投资支付的现金";
|
|
|
sITEM2 = "收回短期投资、长期债券投资和长期股权投资收到的现金";
|
|
|
}
|
|
|
else if (dsVW.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("取得借款收到的现金") > -1)
|
|
|
{
|
|
|
sITEM = "取得借款收到的现金";
|
|
|
sITEM2 = "偿还借款本金支付的现金";
|
|
|
}
|
|
|
else if (dsVW.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("偿还借款本金支付的现金") > -1)
|
|
|
{
|
|
|
sITEM = "偿还借款本金支付的现金";
|
|
|
sITEM2 = "取得借款收到的现金";
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_调整项目 sITEM2 的负数
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC=isnull((QTYLASTBLC+(" + dsVW.Tables[0].Rows[i]["QTYLASTBLC"].ToString() + "*-1)),0)"
|
|
|
+ ",QTYLASTBLC_S=isnull((QTYLASTBLC_S+(" + dsVW.Tables[0].Rows[i]["QTYLASTBLC_S"].ToString() + "*-1)),0)"
|
|
|
+ ",QTYLASTBLC_H=isnull((QTYLASTBLC_H+(" + dsVW.Tables[0].Rows[i]["QTYLASTBLC_H"].ToString() + "*-1)),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and ITEMGID=(SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%" + sITEM2 + "%' and DETAILED=1 and ITEMTYPE<>'') and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -4;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_调整项目 sITEM 的负数
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC=isnull((QTYLASTBLC-(" + dsVW.Tables[0].Rows[i]["QTYLASTBLC"].ToString() + ")),0)"
|
|
|
+ ",QTYLASTBLC_S=isnull((QTYLASTBLC_S-(" + dsVW.Tables[0].Rows[i]["QTYLASTBLC_S"].ToString() + ")),0)"
|
|
|
+ ",QTYLASTBLC_H=isnull((QTYLASTBLC_H-(" + dsVW.Tables[0].Rows[i]["QTYLASTBLC_H"].ToString() + ")),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and ITEMGID=(SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%" + sITEM + "%' and DETAILED=1 and ITEMTYPE<>'') and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -5;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_调整本月“一、二、三”的负数
|
|
|
DataSet dsVWM = T_ALL_DA.GetAllSQL("select * from VW_CwCfsTemplate_ModelItem WITH(NOLOCK) where [STARTGID]='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and (ITEMNAME LIKE '%收到其他与经营活动有关的现金%' or ITEMNAME LIKE '%支付其他与经营活动有关的现金%' or ITEMNAME LIKE '%收回短期投资、长期债券投资和长期股权投资收到的现金%' or ITEMNAME LIKE '%短期投资、长期债券投资和长期股权投资支付的现金%' or ITEMNAME LIKE '%取得借款收到的现金%' or ITEMNAME LIKE '%偿还借款本金支付的现金%') and QTYBLC<0 order by LINENUM");
|
|
|
if (dsVWM != null)
|
|
|
{
|
|
|
if (dsVWM.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
for (int i = 0; i < dsVWM.Tables[0].Rows.Count; i++)
|
|
|
{
|
|
|
#region 提取_调整的项目
|
|
|
string sITEM = "";
|
|
|
string sITEM2 = "";
|
|
|
if (dsVWM.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("收到其他与经营活动有关的现金") > -1)
|
|
|
{
|
|
|
sITEM = "收到其他与经营活动有关的现金";
|
|
|
sITEM2 = "支付其他与经营活动有关的现金";
|
|
|
}
|
|
|
else if (dsVWM.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("支付其他与经营活动有关的现金") > -1)
|
|
|
{
|
|
|
sITEM = "支付其他与经营活动有关的现金";
|
|
|
sITEM2 = "收到其他与经营活动有关的现金";
|
|
|
}
|
|
|
else if (dsVWM.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("收回短期投资、长期债券投资和长期股权投资收到的现金") > -1)
|
|
|
{
|
|
|
sITEM = "收回短期投资、长期债券投资和长期股权投资收到的现金";
|
|
|
sITEM2 = "短期投资、长期债券投资和长期股权投资支付的现金";
|
|
|
}
|
|
|
else if (dsVWM.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("短期投资、长期债券投资和长期股权投资支付的现金") > -1)
|
|
|
{
|
|
|
sITEM = "短期投资、长期债券投资和长期股权投资支付的现金";
|
|
|
sITEM2 = "收回短期投资、长期债券投资和长期股权投资收到的现金";
|
|
|
}
|
|
|
else if (dsVWM.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("取得借款收到的现金") > -1)
|
|
|
{
|
|
|
sITEM = "取得借款收到的现金";
|
|
|
sITEM2 = "偿还借款本金支付的现金";
|
|
|
}
|
|
|
else if (dsVWM.Tables[0].Rows[i]["ITEMNAME"].ToString().IndexOf("偿还借款本金支付的现金") > -1)
|
|
|
{
|
|
|
sITEM = "偿还借款本金支付的现金";
|
|
|
sITEM2 = "取得借款收到的现金";
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_调整项目 sITEM2 的负数
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYBLC=isnull((QTYBLC+(" + dsVWM.Tables[0].Rows[i]["QTYBLC"].ToString() + "*-1)),0)"
|
|
|
+ ",QTYBLC_S=isnull((QTYBLC_S+(" + dsVWM.Tables[0].Rows[i]["QTYBLC_S"].ToString() + "*-1)),0)"
|
|
|
+ ",QTYBLC_H=isnull((QTYBLC_H+(" + dsVWM.Tables[0].Rows[i]["QTYBLC_H"].ToString() + "*-1)),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and ITEMGID=(SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%" + sITEM2 + "%' and DETAILED=1 and ITEMTYPE<>'') and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -4;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 更新_调整项目 sITEM 的负数
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYBLC=isnull((QTYBLC-(" + dsVWM.Tables[0].Rows[i]["QTYBLC"].ToString() + ")),0)"
|
|
|
+ ",QTYBLC_S=isnull((QTYBLC_S-(" + dsVWM.Tables[0].Rows[i]["QTYBLC_S"].ToString() + ")),0)"
|
|
|
+ ",QTYBLC_H=isnull((QTYBLC_H-(" + dsVWM.Tables[0].Rows[i]["QTYBLC_H"].ToString() + ")),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and ITEMGID=(SELECT top 1 gid from cw_cfs_model_item WITH(NOLOCK) where MODELGID='" + sMODELGID + "' and ITEMNAME like '%" + sITEM + "%' and DETAILED=1 and ITEMTYPE<>'') and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -5;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 判断会计期间内是否有模板
|
|
|
public static void isSaveRow(string sMODELGID, string sACCDATE, string USERID, string companyid)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(USERID);
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
string sMODELGID_MR = "";
|
|
|
string strACCDATE = T_ALL_DA.GetStrSQL("ACCDATE", "select top 1 ACCDATE from cw_cfs_template WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' group by ACCDATE order by ACCDATE desc");
|
|
|
if (strACCDATE == "")
|
|
|
{
|
|
|
//当前方案本期无数据,取本年其他会计期间的数据
|
|
|
strACCDATE = T_ALL_DA.GetStrSQL("ACCDATE", "select top 1 ACCDATE from cw_cfs_template WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and SUBSTRING(convert(varchar,(ACCDATE + '-01'),23),1,4)=SUBSTRING(convert(varchar,'" + sACCDATE + "-01',23),1,4) group by ACCDATE order by ACCDATE desc");
|
|
|
if (strACCDATE == "")
|
|
|
{
|
|
|
//当前方案无本年数据,取默认方案的本年数据
|
|
|
sMODELGID_MR = T_ALL_DA.GetStrSQL("GID", "select top 1 GID from [cw_cfs_model] where ISDEFAULT=1 and STARTGID='" + strCwSTARTGID + "'");
|
|
|
strACCDATE = T_ALL_DA.GetStrSQL("ACCDATE", "select top 1 ACCDATE from cw_cfs_template WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID_MR + "' and SUBSTRING(convert(varchar,(ACCDATE + '-01'),23),1,4)=SUBSTRING(convert(varchar,'" + sACCDATE + "-01',23),1,4) group by ACCDATE order by ACCDATE desc");
|
|
|
if (strACCDATE == "")
|
|
|
{
|
|
|
//当默认方案无本年数据,取默认方案的其他年限的数据
|
|
|
strACCDATE = T_ALL_DA.GetStrSQL("ACCDATE", "select top 1 ACCDATE from cw_cfs_template WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID_MR + "' group by ACCDATE order by ACCDATE desc");
|
|
|
if (strACCDATE == "")
|
|
|
{
|
|
|
//当默认方案无本年数据,取默认方案的其他帐套的数据
|
|
|
strACCDATE = T_ALL_DA.GetStrSQL("ACCDATE", "select top 1 ACCDATE from cw_cfs_template WITH(NOLOCK) where MODELGID='" + sMODELGID_MR + "' group by ACCDATE order by ACCDATE desc");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (strACCDATE != sACCDATE)
|
|
|
{
|
|
|
if (sMODELGID_MR == "")
|
|
|
{
|
|
|
#region 插入当前会计期间的数据
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//主表
|
|
|
string sSQL = "INSERT INTO [cw_cfs_template]([GID],[MODELGID],[ITEMGID],[ACCDATE],[QTYLASTBLC],[QTYBLC],[QTYLASTBLC_S],[QTYBLC_S],[QTYLASTBLC_H],[QTYBLC_H],[STARTGID],[CORPID],[MODIFIEDUSER],[MODIFIEDTIME]) "
|
|
|
+ "SELECT NEWID() as [GID],[MODELGID],[ITEMGID],'" + sACCDATE + "' as [ACCDATE],0 as [QTYLASTBLC],0 as [QTYBLC],0 as [QTYLASTBLC_S],0 as [QTYBLC_S],0 as [QTYLASTBLC_H],0 as [QTYBLC_H],[STARTGID],'" + companyid + "' as [CORPID],'" + USERID + "' as [MODIFIEDUSER],GETDATE() FROM [cw_cfs_template] where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + strACCDATE + "' and MODELGID='" + sMODELGID + "'";
|
|
|
int iResult = -2;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//明细表
|
|
|
sSQL = "INSERT INTO [cw_cfs_template_detail]([GID],[LINKGID],[ACCGID],[OPERATORS],[ACCESS],[QTYLASTBLC],[QTYBLC],[MODIFIEDUSER],[MODIFIEDTIME]) "
|
|
|
+ "SELECT NEWID() as [GID]"
|
|
|
+ ",[LINKGID]=isnull((SELECT top 1 [GID] FROM [cw_cfs_template] where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "' and MODELGID='" + sMODELGID + "' and ITEMGID=(select top 1 gid from cw_cfs_model_item where MODELGID='" + sMODELGID + "' and ITEMNAME=(select top 1 ITEMNAME from cw_cfs_model_item where MODELGID='" + sMODELGID + "' and gid=(select top 1 ITEMGID from cw_cfs_template where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + strACCDATE + "' and MODELGID='" + sMODELGID + "' and STARTGID='" + strCwSTARTGID + "' and gid=[cw_cfs_template_detail].LINKGID)))),'')"
|
|
|
+ ",[ACCGID]=(SELECT top 1 [GID] FROM [cw_accitems_gl] where STARTGID='" + strCwSTARTGID + "' and ACCID=(select top 1 ACCID from cw_accitems_gl WITH(NOLOCK) where GID=cw_cfs_template_detail.ACCGID) and [year]='" + sACCDATE.Trim().Substring(0, 4) + "')"
|
|
|
+ ",[OPERATORS],[ACCESS],0 as [QTYLASTBLC],0 as [QTYBLC],'" + USERID + "' as [MODIFIEDUSER],GETDATE()"
|
|
|
+ " FROM [cw_cfs_template_detail] WITH(NOLOCK)"
|
|
|
+ " where LINKGID in (SELECT [GID] FROM [cw_cfs_template] WITH(NOLOCK) where ACCDATE='" + strACCDATE + "' and MODELGID='" + sMODELGID + "' and STARTGID='" + strCwSTARTGID + "')";
|
|
|
iResult = -3;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
#region 插入当前会计期间的数据_根据默认方案
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//主表
|
|
|
string sSQL = "INSERT INTO [cw_cfs_template]([GID],[MODELGID],[ITEMGID],[ACCDATE],[QTYLASTBLC],[QTYBLC],[QTYLASTBLC_S],[QTYBLC_S],[QTYLASTBLC_H],[QTYBLC_H],[STARTGID],[CORPID],[MODIFIEDUSER],[MODIFIEDTIME]) "
|
|
|
+ "SELECT NEWID() as [GID],'" + sMODELGID + "' as [sMODELGID]"
|
|
|
+ ",[ITEMGID]=isnull((select top 1 GID from cw_cfs_model_item where MODELGID='" + sMODELGID + "' and ITEMNAME=(select top 1 ITEMNAME from cw_cfs_model_item where MODELGID='" + sMODELGID_MR + "' and gid=[cw_cfs_template].ITEMGID)),'')"
|
|
|
+ ",'" + sACCDATE + "' as [ACCDATE],0 as [QTYLASTBLC],0 as [QTYBLC],0 as [QTYLASTBLC_S],0 as [QTYBLC_S],0 as [QTYLASTBLC_H],0 as [QTYBLC_H],[STARTGID],'" + companyid + "' as [CORPID],'" + USERID + "' as [MODIFIEDUSER],GETDATE()"
|
|
|
+ " FROM [cw_cfs_template] where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + strACCDATE + "' and MODELGID='" + sMODELGID_MR + "'";
|
|
|
int iResult = -2;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//明细表
|
|
|
sSQL = "INSERT INTO [cw_cfs_template_detail]([GID],[LINKGID],[ACCGID],[OPERATORS],[ACCESS],[QTYLASTBLC],[QTYBLC],[MODIFIEDUSER],[MODIFIEDTIME]) "
|
|
|
+ "SELECT NEWID() as [GID]"
|
|
|
+ ",[LINKGID]=isnull((SELECT top 1 [GID] FROM [cw_cfs_template] where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "' and STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID + "' and ITEMGID=(select top 1 gid from cw_cfs_model_item where MODELGID='" + sMODELGID + "' and ITEMNAME=(select top 1 ITEMNAME from cw_cfs_model_item where MODELGID='" + sMODELGID_MR + "' and gid=(select top 1 ITEMGID from cw_cfs_template where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + strACCDATE + "' and STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID_MR + "' and gid=[cw_cfs_template_detail].LINKGID)))),'')"
|
|
|
+ ",[ACCGID],[OPERATORS],[ACCESS],0 as [QTYLASTBLC],0 as [QTYBLC],'" + USERID + "' as [MODIFIEDUSER],GETDATE()"
|
|
|
+ " FROM [cw_cfs_template_detail] WITH(NOLOCK)"
|
|
|
+ " where LINKGID in (SELECT [GID] FROM [cw_cfs_template] WITH(NOLOCK) where ACCDATE='" + strACCDATE + "' and STARTGID='" + strCwSTARTGID + "' and MODELGID='" + sMODELGID_MR + "')";
|
|
|
iResult = -3;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (sMODELGID_MR != "")
|
|
|
{
|
|
|
#region 插入当前会计期间的数据_根据默认方案
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//主表
|
|
|
string sSQL = "INSERT INTO [cw_cfs_template]([GID],[MODELGID],[ITEMGID],[ACCDATE],[QTYLASTBLC],[QTYBLC],[QTYLASTBLC_S],[QTYBLC_S],[QTYLASTBLC_H],[QTYBLC_H],[STARTGID],[CORPID],[MODIFIEDUSER],[MODIFIEDTIME]) "
|
|
|
+ "SELECT NEWID() as [GID],'" + sMODELGID + "' as [sMODELGID]"
|
|
|
+ ",[ITEMGID]=isnull((select top 1 GID from cw_cfs_model_item where MODELGID='" + sMODELGID + "' and ITEMNAME=(select top 1 ITEMNAME from cw_cfs_model_item where MODELGID='" + sMODELGID_MR + "' and gid=[cw_cfs_template].ITEMGID)),'')"
|
|
|
+ ",'" + sACCDATE + "' as [ACCDATE],0 as [QTYLASTBLC],0 as [QTYBLC],0 as [QTYLASTBLC_S],0 as [QTYBLC_S],0 as [QTYLASTBLC_H],0 as [QTYBLC_H],[STARTGID],'" + companyid + "' as [CORPID],'" + USERID + "' as [MODIFIEDUSER],GETDATE()"
|
|
|
+ " FROM [cw_cfs_template] where ACCDATE='" + strACCDATE + "' and MODELGID='" + sMODELGID_MR + "' and STARTGID='" + strCwSTARTGID + "'";
|
|
|
int iResult = -2;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//明细表
|
|
|
sSQL = "INSERT INTO [cw_cfs_template_detail]([GID],[LINKGID],[ACCGID],[OPERATORS],[ACCESS],[QTYLASTBLC],[QTYBLC],[MODIFIEDUSER],[MODIFIEDTIME]) "
|
|
|
+ "SELECT NEWID() as [GID]"
|
|
|
+ ",[LINKGID]=isnull((SELECT top 1 [GID] FROM [cw_cfs_template] where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "' and MODELGID='" + sMODELGID + "' and ITEMGID=(select top 1 gid from cw_cfs_model_item where MODELGID='" + sMODELGID + "' and ITEMNAME=(select top 1 ITEMNAME from cw_cfs_model_item where MODELGID='" + sMODELGID_MR + "' and gid=(select top 1 ITEMGID from cw_cfs_template where STARTGID='" + strCwSTARTGID + "' and ACCDATE='" + strACCDATE + "' and MODELGID='" + sMODELGID_MR + "' and gid=[cw_cfs_template_detail].LINKGID)))),'')"
|
|
|
+ ",[ACCGID],[OPERATORS],[ACCESS],0 as [QTYLASTBLC],0 as [QTYBLC],'" + USERID + "' as [MODIFIEDUSER],GETDATE()"
|
|
|
+ " FROM [cw_cfs_template_detail] WITH(NOLOCK)"
|
|
|
+ " where LINKGID in (SELECT [GID] FROM [cw_cfs_template] WITH(NOLOCK) where ACCDATE='" + strACCDATE + "' and MODELGID='" + sMODELGID_MR + "' and STARTGID='" + strCwSTARTGID + "')";
|
|
|
iResult = -3;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 判断资产负债表是否平衡
|
|
|
public static DBResult onIsCwSofp(string sACCDATE, string companyid, string strUSERID)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUSERID);
|
|
|
var result = new DBResult();
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
try
|
|
|
{
|
|
|
Decimal dl = Decimal.Parse(T_ALL_DA.GetStrSQL("inum", "SELECT top 1 (QTYLASTBLC-QTYLASTBLC2) as inum from cw_sofp_template where [STARTGID]='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "' ORDER BY LINENUM DESC"));
|
|
|
if (dl != 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "资产负债表不平衡,请先调整!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "资产负债表不平衡,请先调整!";
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
//货币资金_期末数
|
|
|
Decimal dlQTYLASTBLC = Decimal.Parse(T_ALL_DA.GetStrSQL("QTYLASTBLC", "SELECT isnull(QTYLASTBLC,0) as QTYLASTBLC from cw_sofp_template where [STARTGID]='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "' and LINENUM=2"));
|
|
|
result.Success = true;
|
|
|
result.Message = dlQTYLASTBLC.ToString();
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 自动调平
|
|
|
static public void onAutoLevel(string sMODELGID, string sACCDATE, string USERID, string companyid)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(USERID);
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
Decimal dlSofp = 0;
|
|
|
int iResult = 0;
|
|
|
DBResult result = onIsCwSofp(sACCDATE, companyid, USERID);
|
|
|
if (result.Message.IndexOf("不平衡") < 0)
|
|
|
{
|
|
|
dlSofp = Decimal.Parse(result.Message.ToString());
|
|
|
}
|
|
|
Decimal dlSofp2 = Decimal.Parse(T_ALL_DA.GetStrSQL("QTYYEARBLC", "SELECT isnull(QTYYEARBLC,0) as QTYYEARBLC from cw_sofp_template where [STARTGID]='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "' and LINENUM=2"));
|
|
|
DataSet ds = T_ALL_DA.GetAllSQL("SELECT top 1 * from VW_CwCfsTemplate_ModelItem where [STARTGID]='" + strCwSTARTGID + "' and ACCDATE='" + sACCDATE + "' ORDER BY LINENUM DESC");
|
|
|
|
|
|
#region 差额 = 最后一行 - 资表【货币资金期末数】,更新到“支付其他与经营活动有关的现金”
|
|
|
Decimal dlCE = Decimal.Parse(ds.Tables[0].Rows[0]["QTYLASTBLC"].ToString()) - dlSofp;
|
|
|
Decimal dlQTYBLC = Decimal.Parse(ds.Tables[0].Rows[0]["QTYBLC"].ToString()) - dlSofp2;
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string sSQL = "update cw_cfs_template set"
|
|
|
+ " QTYLASTBLC_H=isnull((QTYLASTBLC_H+" + dlCE + "),0)"
|
|
|
+ ",QTYBLC_H=isnull((QTYBLC_H+" + dlQTYBLC + "),0)"
|
|
|
+ " where MODELGID='" + sMODELGID + "' and ACCDATE='" + sACCDATE + "' and STARTGID='" + strCwSTARTGID + "' and ITEMGID=(SELECT top 1 GID from cw_cfs_model_item where MODELGID in (SELECT GID from cw_cfs_model WITH(NOLOCK) where STARTGID='" + strCwSTARTGID + "') and ITEMNAME like '%支付其他与经营活动有关的现金%')";
|
|
|
iResult = -1;
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
//事务提交
|
|
|
iResult = 1;
|
|
|
sqlTran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
GetRecount(sMODELGID, sACCDATE, USERID, companyid);
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
}
|