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.
779 lines
44 KiB
C#
779 lines
44 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using DSWeb.MvcShipping.Helper;
|
|
using DSWeb.MvcShipping.Comm.Cookie;
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
using DSWeb.Areas.RptMng.Comm;
|
|
using HcUtility.Comm;
|
|
using HcUtility.Core;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
using DSWeb.EntityDA;
|
|
using DSWeb.Areas.CommMng.Models;
|
|
using DSWeb.MvcShipping.Models.MonthDataSet;
|
|
using DSWeb.MvcShipping.DAL.RptCwGLDetailColumnCompareDAL;
|
|
using DSWeb.SoftMng.Filter;
|
|
|
|
namespace DSWeb.MvcShipping.Controllers
|
|
{
|
|
/// <summary>
|
|
/// 业务走势对比图表分析
|
|
/// </summary>
|
|
[JsonRequestBehavior]
|
|
public class RptCwGLDetailColumnCompareController : Controller
|
|
{
|
|
public ActionResult Index()
|
|
{
|
|
return View();
|
|
}
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
public ContentResult GetDataList(string condition, string sort, string printstr, string sumfieldtype, string startmonth, string endmonth)
|
|
{
|
|
if (Convert.ToString(Session["COMPANYID"]).Trim() == "" || Convert.ToString(Session["USERID"]).Trim() == "" || Convert.ToString(Session["CODENAME"]).Trim() == "" || Convert.ToString(Session["SHOWNAME"]).Trim() == "" || Convert.ToString(Session["DEPTNAME"]).Trim() == "")
|
|
{
|
|
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
|
|
}
|
|
//
|
|
var dataList = RptCwGLDetailColumnCompareDAL.GetDataList(condition, sort, sumfieldtype, startmonth, endmonth, Convert.ToString(Session["USERID"]), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]));
|
|
|
|
var json = JsonConvert.Serialize(
|
|
new { Success = true, Message = "查询成功", data = dataList.ToList() });
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
public ContentResult GetObjListData(string OBJNAME, string sumfieldtype, string strACCDATEbgn, string strACCDATEend, string strCURRENCY, string strACCID, string strCustNAME, string strDeptName, string strSALE, string strITEMNAME, string strSubjectAccount, string acctype)
|
|
{
|
|
if (Convert.ToString(Session["COMPANYID"]).Trim() == "" || Convert.ToString(Session["USERID"]).Trim() == "" || Convert.ToString(Session["CODENAME"]).Trim() == "" || Convert.ToString(Session["SHOWNAME"]).Trim() == "" || Convert.ToString(Session["DEPTNAME"]).Trim() == "")
|
|
{
|
|
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
|
|
}
|
|
//
|
|
var dataList = GetObjList(OBJNAME, sumfieldtype, strACCDATEbgn, strACCDATEend, strCURRENCY, strACCID, strCustNAME, strDeptName, strSALE, strITEMNAME, strSubjectAccount, acctype, Convert.ToString(Session["USERID"]).Trim());
|
|
var json = JsonConvert.Serialize(
|
|
new { Success = true, Message = "查询成功", data = dataList.ToList() });
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
static public List<MonthDataSet> GetObjList(string OBJNAME, string sumfieldtype, string strACCDATEbgn, string strACCDATEend, string strCURRENCY, string strACCID, string strCustNAME, string strDeptName, string strSALE, string strITEMNAME, string strSubjectAccount, string acctype, string strUserID)
|
|
{
|
|
#region 基本变量
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(strUserID);
|
|
string sYear = DateTime.Parse(strACCDATEbgn + "-01").Year.ToString();
|
|
string strCondition = " and ACCYEAR='" + sYear + "' and ACCDATE>='" + strACCDATEbgn + "' and ACCDATE<='" + strACCDATEend + "'";
|
|
//
|
|
string sFieldName = "";
|
|
if (sumfieldtype.Trim() == "本期合计")
|
|
{
|
|
if (strCURRENCY.Trim() == "综合本位币")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(QTYDR) else sum(QTYCR) end) ELSE sum(QTYBLC) END) as OBJNUM";
|
|
}
|
|
else if (strCURRENCY.Trim() == "RMB")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(AMTDR) else sum(AMTCR) end) ELSE sum(AMTBLC) END) as OBJNUM";
|
|
}
|
|
else//外币
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(FCYDR) else sum(FCYCR) end) ELSE sum(FCYBLC) END) as OBJNUM";
|
|
}
|
|
}
|
|
else//本年累计
|
|
{
|
|
if (strCURRENCY.Trim() == "综合本位币")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(QTYLASTDR) else sum(QTYLASTCR) end) ELSE sum(QTYLASTBLC) END) as OBJNUM";
|
|
}
|
|
else if (strCURRENCY.Trim() == "RMB")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(AMTLASTDR) else sum(AMTLASTCR) end) ELSE sum(AMTLASTBLC) END) as OBJNUM";
|
|
}
|
|
else//外币
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(FCYLASTCR) else sum(FCYLASTCR) end) ELSE sum(FCYLASTBLC) END) as OBJNUM";
|
|
}
|
|
}
|
|
//
|
|
string SubjectAccount = "";
|
|
if (acctype.Trim() == "1")
|
|
{
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
if (OBJNAME.Trim() == "对比")
|
|
{
|
|
if (strSubjectAccount == "-1")
|
|
{
|
|
strCondition += " and ACCID like '" + strACCID + "%'";
|
|
}
|
|
else
|
|
{
|
|
strCondition += " and ACCID like '" + strACCID + "%' and ACCID<>'" + strACCID + "'";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
strCondition += " and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
//
|
|
sFieldName += ",ACCNAME as OBJNAME";
|
|
SubjectAccount = ",ACCNAME";
|
|
}
|
|
else
|
|
{
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
if (OBJNAME.Trim() == "对比")
|
|
{
|
|
strCondition += " and ACCID like '" + strACCID + "%'";
|
|
//
|
|
if (!string.IsNullOrEmpty(strSubjectAccount))
|
|
{
|
|
if (strSubjectAccount.Trim() == "客户")
|
|
{
|
|
strCondition += " and CORPACC<>''";
|
|
if (!string.IsNullOrEmpty(strCustNAME))
|
|
{
|
|
strCondition += " and CORPACC='" + strCustNAME + "'";
|
|
}
|
|
sFieldName += ",CORPACC as OBJNAME";
|
|
SubjectAccount = ",CORPACC";
|
|
}
|
|
else if (strSubjectAccount.Trim() == "部门")
|
|
{
|
|
strCondition += " and DEPTACC<>''";
|
|
if (!string.IsNullOrEmpty(strDeptName))
|
|
{
|
|
strCondition += " and DEPTACC='" + strDeptName + "'";
|
|
}
|
|
sFieldName += ",DEPTACC as OBJNAME";
|
|
SubjectAccount = ",DEPTACC";
|
|
}
|
|
else if (strSubjectAccount.Trim() == "人员")
|
|
{
|
|
strCondition += " and EMPLACC<>''";
|
|
if (!string.IsNullOrEmpty(strSALE))
|
|
{
|
|
strCondition += " and EMPLACC='" + strSALE + "'";
|
|
}
|
|
sFieldName += ",EMPLACC as OBJNAME";
|
|
SubjectAccount = ",EMPLACC";
|
|
}
|
|
else if (strSubjectAccount.Trim() == "项目")
|
|
{
|
|
strCondition += " and ITEMACC<>''";
|
|
if (!string.IsNullOrEmpty(strITEMNAME))
|
|
{
|
|
strCondition += " and ITEMACC='" + strITEMNAME + "'";
|
|
}
|
|
sFieldName += ",ITEMACC as OBJNAME";
|
|
SubjectAccount = ",ITEMACC";
|
|
}
|
|
else
|
|
{
|
|
sFieldName += ",ACCNAME as OBJNAME";
|
|
SubjectAccount = ",ACCNAME";
|
|
strCondition += " and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sFieldName += ",ACCNAME as OBJNAME";
|
|
SubjectAccount = ",ACCNAME";
|
|
strCondition += " and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sFieldName += ",ACCNAME as OBJNAME";
|
|
SubjectAccount = ",ACCNAME";
|
|
strCondition += " and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("select OBJNAME, OBJNUM,ACCID from (SELECT " + sFieldName + ",ACCID from VW_cw_genleg_accitems_gl where STARTGID='" + strCwSTARTGID + "'" + strCondition + " group BY STARTGID,ACCATTRIBUTE,DC,ACCID,ACCNAME" + SubjectAccount + ") as a where OBJNUM<>0 order by ACCID");
|
|
//
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
var evList = new List<MonthDataSet>();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
var i = 1;
|
|
while (reader.Read() && i<12)//11
|
|
{
|
|
var evData = new MonthDataSet();
|
|
evData.MONTHNAME = Convert.ToString(reader["OBJNAME"]).Replace(" ","");
|
|
evData.MONTHNO = i;
|
|
evList.Add(evData);
|
|
i = i + 1;
|
|
}
|
|
reader.Close();
|
|
}
|
|
return evList;
|
|
}
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
public ContentResult SumListData(string OBJNAME, string sumfieldtype, string strACCDATEbgn, string strACCDATEend, string strCURRENCY, string strACCID, string strCustNAME, string strDeptName, string strSALE, string strITEMNAME, string strSubjectAccount, string acctype)
|
|
{
|
|
if (Convert.ToString(Session["COMPANYID"]).Trim() == "" || Convert.ToString(Session["USERID"]).Trim() == "" || Convert.ToString(Session["CODENAME"]).Trim() == "" || Convert.ToString(Session["SHOWNAME"]).Trim() == "" || Convert.ToString(Session["DEPTNAME"]).Trim() == "")
|
|
{
|
|
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
|
|
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
|
|
}
|
|
//
|
|
var monthlist = GetMonthList(strACCDATEbgn + "-01", strACCDATEend + "-01");
|
|
var objlist = GetObjList(OBJNAME, sumfieldtype, strACCDATEbgn, strACCDATEend, strCURRENCY, strACCID, strCustNAME, strDeptName, strSALE, strITEMNAME, strSubjectAccount, acctype, Convert.ToString(Session["USERID"]));
|
|
//
|
|
#region 基本变量
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(Convert.ToString(Session["USERID"]));
|
|
string sYear = DateTime.Parse(strACCDATEbgn + "-01").Year.ToString();
|
|
string strCondition = " and ACCYEAR='" + sYear + "' and ACCDATE>='" + strACCDATEbgn + "' and ACCDATE<='" + strACCDATEend + "'";
|
|
//
|
|
string sFieldName = "";
|
|
if (sumfieldtype.Trim() == "本期合计")
|
|
{
|
|
if (strCURRENCY.Trim() == "综合本位币")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(QTYDR) else sum(QTYCR) end) ELSE sum(QTYBLC) END) as OBJNUM";
|
|
}
|
|
else if (strCURRENCY.Trim() == "RMB")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(AMTDR) else sum(AMTCR) end) ELSE sum(AMTBLC) END) as OBJNUM";
|
|
}
|
|
else//外币
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(FCYDR) else sum(FCYCR) end) ELSE sum(FCYBLC) END) as OBJNUM";
|
|
}
|
|
}
|
|
else//本年累计
|
|
{
|
|
if (strCURRENCY.Trim() == "综合本位币")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(QTYLASTDR) else sum(QTYLASTCR) end) ELSE sum(QTYLASTBLC) END) as OBJNUM";
|
|
}
|
|
else if (strCURRENCY.Trim() == "RMB")
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(AMTLASTDR) else sum(AMTLASTCR) end) ELSE sum(AMTLASTBLC) END) as OBJNUM";
|
|
}
|
|
else//外币
|
|
{
|
|
sFieldName = "(case when ACCATTRIBUTE='损益' THEN (case when DC='借' then sum(FCYLASTCR) else sum(FCYLASTCR) end) ELSE sum(FCYLASTBLC) END) as OBJNUM";
|
|
}
|
|
}
|
|
//
|
|
string sSAName = "";
|
|
string SubjectAccount = "";
|
|
if (acctype.Trim() == "1")
|
|
{
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
if (OBJNAME.Trim() == "对比")
|
|
{
|
|
if (strSubjectAccount == "-1")
|
|
{
|
|
strCondition += "and ACCID like '" + strACCID + "%'";
|
|
}
|
|
else
|
|
{
|
|
strCondition += "and ACCID like '" + strACCID + "%' and ACCID<>'" + strACCID + "'";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
strCondition += "and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
//
|
|
SubjectAccount = ",ACCNAME";
|
|
sSAName = "ACCNAME";
|
|
}
|
|
else
|
|
{
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
if (OBJNAME.Trim() == "对比")
|
|
{
|
|
strCondition += "and ACCID like '" + strACCID + "%'";
|
|
//
|
|
if (!string.IsNullOrEmpty(strSubjectAccount))
|
|
{
|
|
if (strSubjectAccount.Trim() == "客户")
|
|
{
|
|
strCondition += " and CORPACC<>''";
|
|
if (!string.IsNullOrEmpty(strCustNAME))
|
|
{
|
|
strCondition += "and CORPACC='" + strCustNAME + "'";
|
|
}
|
|
SubjectAccount = ",CORPACC";
|
|
sSAName = "CORPACC";
|
|
}
|
|
else if (strSubjectAccount.Trim() == "部门")
|
|
{
|
|
strCondition += " and DEPTACC<>''";
|
|
if (!string.IsNullOrEmpty(strDeptName))
|
|
{
|
|
strCondition += "and DEPTACC='" + strDeptName + "'";
|
|
}
|
|
SubjectAccount = ",DEPTACC";
|
|
sSAName = "DEPTACC";
|
|
}
|
|
else if (strSubjectAccount.Trim() == "人员")
|
|
{
|
|
strCondition += " and EMPLACC<>''";
|
|
if (!string.IsNullOrEmpty(strSALE))
|
|
{
|
|
strCondition += "and EMPLACC='" + strSALE + "'";
|
|
}
|
|
SubjectAccount = ",EMPLACC";
|
|
sSAName = "EMPLACC";
|
|
}
|
|
else if (strSubjectAccount.Trim() == "项目")
|
|
{
|
|
strCondition += " and ITEMACC<>''";
|
|
if (!string.IsNullOrEmpty(strITEMNAME))
|
|
{
|
|
strCondition += "and ITEMACC='" + strITEMNAME + "'";
|
|
}
|
|
SubjectAccount = ",ITEMACC";
|
|
sSAName = "ITEMACC";
|
|
}
|
|
else
|
|
{
|
|
SubjectAccount = ",ACCNAME";
|
|
sSAName = "ACCNAME";
|
|
strCondition += "and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SubjectAccount = ",ACCNAME";
|
|
sSAName = "ACCNAME";
|
|
strCondition += "and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SubjectAccount = ",ACCNAME";
|
|
sSAName = "ACCNAME";
|
|
strCondition += "and ACCID='" + strACCID + "'";
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
//
|
|
var strSql = new StringBuilder();
|
|
strSql.Append("SELECT ACCDATE as MONTHNAME");
|
|
foreach (var enumValue in objlist)
|
|
{
|
|
strSql.Append(",Z" + enumValue.MONTHNAME + "=(SELECT " + sFieldName + " FROM VW_cw_genleg_accitems_gl where STARTGID='" + strCwSTARTGID + "' and ACCDATE=a.ACCDATE and " + sSAName + "='" + enumValue.MONTHNAME + "'" + strCondition + " group BY STARTGID,ACCATTRIBUTE,DC,ACCDATE,ACCID" + SubjectAccount + ")");
|
|
}
|
|
strSql.Append(" FROM VW_cw_genleg_accitems_gl as a where STARTGID='" + strCwSTARTGID + "'" + strCondition + " group BY STARTGID,ACCATTRIBUTE,DC,ACCDATE order by ACCDATE");
|
|
//
|
|
var dbparams = new List<CustomDbParamter>();
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
paramps_sSQL.DbType = DbType.String;
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
dbparams.Add(paramps_sSQL);
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
var json = RptHelper.GetRptJsonResult(0, 2000, dbRptResult, "Result_Set", true);
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
|
|
#region 月度数
|
|
public ContentResult GetMonthsData(string startmonth, string endmonth)
|
|
{
|
|
|
|
var dataList = GetMonthList(startmonth, endmonth);
|
|
|
|
var json = JsonConvert.Serialize(
|
|
new { Success = true, Message = "查询成功", data = dataList.ToList() });
|
|
return new ContentResult() { Content = json };
|
|
|
|
}
|
|
|
|
static public List<MonthDataSet> GetMonthList(string startmonth, string endmonth)
|
|
{
|
|
var startdate = startmonth.Split('-');
|
|
var enddate = endmonth.Split('-');
|
|
|
|
int monthstart = Convert.ToInt16(startdate[0]) * 12 + Convert.ToInt16(startdate[1]);
|
|
int monthend = Convert.ToInt16(enddate[0]) * 12 + Convert.ToInt16(enddate[1]);
|
|
|
|
var betweenmonth = monthend - monthstart + 1;
|
|
|
|
DateTime dt = DateTime.ParseExact(startmonth, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture);
|
|
|
|
var evList = new List<MonthDataSet>();
|
|
var month = "";
|
|
|
|
for (int i = 0; i < betweenmonth; i++)
|
|
{
|
|
var evData = new MonthDataSet();
|
|
evData.MONTHNAME = dt.ToString("yyyy年MM月");
|
|
evData.MONTHNO = i;
|
|
month = dt.Month.ToString();
|
|
if (month.Length == 1) month = "0" + month;
|
|
evData.MONTHFIELDNAME = dt.Year.ToString() + "/" + month;
|
|
evList.Add(evData);
|
|
dt = dt.AddMonths(1);
|
|
}
|
|
|
|
|
|
return evList;
|
|
}
|
|
#endregion
|
|
|
|
//显示科目明细信息
|
|
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
|
|
public string GetDataListDetail(int adjest, bool isAnalyze, string strACCDATE, string strCURRENCY, string strACCID, string strInquireClass, string strInquireField, string sumfieldtype, string acctype) // string strSubjectAccount,
|
|
{
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(Convert.ToString(Session["USERID"]));
|
|
string strCondition = "";
|
|
string sYear = DateTime.Parse(strACCDATE + "-01").Year.ToString();
|
|
|
|
string accDateBgn = "and ACCDATE='" + strACCDATE + "'";
|
|
string accDateEnd = "and ACCDATE='" + strACCDATE + "'";
|
|
|
|
string sCondition = "";
|
|
string sHSKM = "";
|
|
|
|
string createUser = Convert.ToString(Session["USERID"]);
|
|
string corpID = Convert.ToString(Session["COMPANYID"]);
|
|
|
|
string strSQLContent = "";
|
|
|
|
if (isAnalyze)
|
|
{
|
|
if (adjest==1) { sHSKM = strInquireClass; }
|
|
}
|
|
else
|
|
{
|
|
if (adjest==1) { sHSKM = strInquireClass; }
|
|
else if (adjest == 2 || adjest == 0) //从数据库查询判断sHKM值
|
|
{
|
|
/*strCondition = "ACCID='" + strACCID + "'";
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
sCondition += "and " + strCondition;
|
|
}
|
|
|
|
sCondition += " and [YEAR]='" + sYear + "'";
|
|
|
|
string strSqlAdjust = "select top 1 * from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "'" + sCondition;
|
|
DataSet ds = T_ALL_DA.GetAllSQL(strSqlAdjust);
|
|
if (ds != null) //获得sHSKM
|
|
{
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
if (ds.Tables[0].Rows[0]["ISCORPACC"].ToString() == "True")
|
|
{
|
|
sHSKM = "客户";
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ISDEPTACC"].ToString() == "True")
|
|
{
|
|
sHSKM = "部门";
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ISEMPLACC"].ToString() == "True")
|
|
{
|
|
sHSKM = "人员";
|
|
}
|
|
if (ds.Tables[0].Rows[0]["ISITEMACC"].ToString() == "True")
|
|
{
|
|
sHSKM = "项目";
|
|
}
|
|
}
|
|
}*/
|
|
sHSKM = strInquireClass;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
strCondition = "";
|
|
|
|
#region 基本变量
|
|
|
|
string strParam1 = "";
|
|
string strParam2 = "";
|
|
switch (sHSKM)
|
|
{
|
|
case "客户":
|
|
if (adjest == 1 || adjest == 0)
|
|
{
|
|
//判断有无明细科目
|
|
string sConditionDetail = "";
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
sConditionDetail += " and ACCID='" + strCondition + "'";
|
|
}
|
|
//string sYear = DateTime.Parse(ACCDATEbgn + "-01").Year.ToString();
|
|
sCondition += " and [YEAR]='" + sYear + "'";
|
|
//
|
|
string sSQLDetail = "select COUNT(*) as inum from cw_accitems_gl where PACCGID in (select GID from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "'" + sCondition + ")";
|
|
//
|
|
int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", sSQLDetail));
|
|
if (inum == 0) //没有子科目
|
|
{/**/
|
|
if (!string.IsNullOrEmpty(strInquireField))
|
|
{
|
|
//strParam1 = " and CUSTOMERNAME='" + strInquireField + "'";
|
|
strParam1 = " and ACCNAME='" + strInquireField + "'";
|
|
}
|
|
}
|
|
/*else if(inum>0)
|
|
{
|
|
strParam1 = "";
|
|
}*/
|
|
}
|
|
else if (adjest == 2)
|
|
{
|
|
strParam1 = " and CUSTOMERNAME='" + strInquireField + "'";
|
|
}
|
|
break;
|
|
case "部门":
|
|
if (adjest == 1 || adjest == 0)
|
|
{
|
|
//判断有无明细科目
|
|
string sConditionDetail = "";
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
sConditionDetail += " and ACCID='" + strCondition + "'";
|
|
}
|
|
//string sYear = DateTime.Parse(ACCDATEbgn + "-01").Year.ToString();
|
|
sCondition += " and [YEAR]='" + sYear + "'";
|
|
//
|
|
string sSQLDetail = "select COUNT(*) as inum from cw_accitems_gl where PACCGID in (select GID from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "'" + sCondition + ")";
|
|
//
|
|
int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", sSQLDetail));
|
|
if (inum == 0) //没有子科目
|
|
{/**/
|
|
if (!string.IsNullOrEmpty(strInquireField))
|
|
{
|
|
//strParam1 = " and DEPTNAME='" + strInquireField + "'";
|
|
strParam1 = " and ACCNAME='" + strInquireField + "'";
|
|
}
|
|
}
|
|
/*else if (inum > 0)
|
|
{
|
|
strParam1 = "";
|
|
}*/
|
|
}
|
|
else if (adjest == 2)
|
|
{
|
|
strParam1 = " and DEPTNAME='" + strInquireField + "'";
|
|
}
|
|
break;
|
|
case "人员":
|
|
if (adjest == 1 || adjest == 0)
|
|
{
|
|
//判断有无明细科目
|
|
string sConditionDetail = "";
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
sConditionDetail += " and ACCID='" + strCondition + "'";
|
|
}
|
|
//string sYear = DateTime.Parse(ACCDATEbgn + "-01").Year.ToString();
|
|
sCondition += " and [YEAR]='" + sYear + "'";
|
|
//
|
|
string sSQLDetail = "select COUNT(*) as inum from cw_accitems_gl where PACCGID in (select GID from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "'" + sCondition + ")";
|
|
//
|
|
int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", sSQLDetail));
|
|
if (inum == 0) //没有子科目
|
|
{/**/
|
|
if (!string.IsNullOrEmpty(strInquireField))
|
|
{
|
|
//strParam1 = " and SALE='" + strInquireField + "'";
|
|
strParam1 = " and ACCNAME='" + strInquireField + "'";
|
|
}
|
|
}
|
|
/*else if (inum > 0)
|
|
{
|
|
strParam1 = "";
|
|
}*/
|
|
}
|
|
else if (adjest == 2)
|
|
{
|
|
strParam1 = " and SALE='" + strInquireField + "'";
|
|
}
|
|
break;
|
|
case "项目":
|
|
if (adjest == 1 || adjest == 0)
|
|
{
|
|
//判断有无明细科目
|
|
string sConditionDetail = "";
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
sConditionDetail += " and ACCID='" + strCondition + "'";
|
|
}
|
|
//string sYear = DateTime.Parse(ACCDATEbgn + "-01").Year.ToString();
|
|
sCondition += " and [YEAR]='" + sYear + "'";
|
|
//
|
|
string sSQLDetail = "select COUNT(*) as inum from cw_accitems_gl where PACCGID in (select GID from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "'" + sCondition + ")";
|
|
//
|
|
int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", sSQLDetail));
|
|
if (inum == 0) //没有子科目
|
|
{/**/
|
|
if (!string.IsNullOrEmpty(strInquireField))
|
|
{
|
|
//strParam1 = " and ITEMNAME='" + strInquireField + "'";
|
|
strParam1 = " and ACCNAME='" + strInquireField + "'";
|
|
}
|
|
}
|
|
/*else if (inum > 0)
|
|
{
|
|
strParam1 = "";
|
|
}*/
|
|
}
|
|
else if (adjest == 2)
|
|
{
|
|
strParam1 = " and ITEMNAME='" + strInquireField + "'";
|
|
}
|
|
break;
|
|
default:
|
|
if (!string.IsNullOrEmpty(strInquireField))
|
|
{
|
|
//判断有无明细科目
|
|
string sConditionDetail = "";
|
|
if (!string.IsNullOrEmpty(strACCID))
|
|
{
|
|
sConditionDetail += " and ACCID='" + strCondition + "'";
|
|
}
|
|
//string sYear = DateTime.Parse(ACCDATEbgn + "-01").Year.ToString();
|
|
sCondition += " and [YEAR]='" + sYear + "'";
|
|
//
|
|
string sSQLDetail = "select COUNT(*) as inum from cw_accitems_gl where PACCGID in (select GID from cw_accitems_gl where [STARTGID]='" + strCwSTARTGID + "'" + sCondition + ")";
|
|
//
|
|
int inum = int.Parse(T_ALL_DA.GetStrSQL("inum", sSQLDetail));
|
|
if (inum > 0) //有子科目
|
|
{
|
|
strParam2 = " and LINKACCID like (select top 1 ACCID from cw_accitems_gl where ACCNAME='" + strInquireField + "' and [STARTGID]='" + strCwSTARTGID + "')+'%'";
|
|
}
|
|
else //无子科目
|
|
{
|
|
strParam2 = " and LINKACCID = (select top 1 ACCID from cw_accitems_gl where ACCNAME='" + strInquireField + "' and [STARTGID]='" + strCwSTARTGID + "')";
|
|
//if(isAnalyze==true
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
#endregion
|
|
strCondition = "ACCDATE>='" + strACCDATE + "' and ACCDATE<='" + strACCDATE + "'";
|
|
#region 基本查询语句
|
|
StringBuilder strSql = new StringBuilder();
|
|
if (strCURRENCY.Trim() == "综合本位币")
|
|
{
|
|
#region 综合本位币
|
|
strSql.Append("select LINKACCID,GID,ORDNO,VKNO,VOUNO,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,'" + createUser + "' as [CREATEUSER],'" + corpID + "' as [CORPID] from (select GID,ORDNO,LINKACCID=(SELECT top 1 ACCID FROM cw_accitems_gl WHERE ACCID=VW_cw_vouchers_vouitems_gl.ACCID and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "'),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,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" + strParam1 + ") as a where (DR<>0 OR CR<>0) and LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "%' and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "') " + strParam2);
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
strSql.Append("order by VOUDATE asc ");
|
|
/*strSql.Append(" union ");
|
|
|
|
strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,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,'" + createUser + "' as [CREATEUSER],'" + corpID + "' as [CORPID]");
|
|
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 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 + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2);
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
//strSql.Append(" and CORPID='" + corpID + "'");
|
|
strSql.Append(") as a");
|
|
strSql.Append(" group by LINKGID,ACCDATE,DC)");*/
|
|
#endregion
|
|
}
|
|
else if (strCURRENCY.Trim() == "RMB")
|
|
{
|
|
#region RMB
|
|
strSql.Append("select LINKACCID,GID,ORDNO,VKNO,VOUNO,VOUDATE,EXPLAN,EXPLAN2,DC=(SELECT top 1 DC FROM cw_accitems_gl WHERE GID=a.LINKGID),DR,CR,BLC,'" + createUser + "' as [CREATEUSER],'" + corpID + "' as [CORPID] from (select GID,ORDNO,LINKACCID=(SELECT top 1 ACCID FROM cw_accitems_gl WHERE ACCID=VW_cw_vouchers_vouitems_gl.ACCID and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "'),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,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)" + strParam1 + " and (case when FCY='USD' then FCY else 'RMB' end)='" + strCURRENCY + "') as a where LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "%' and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "') " + strParam2);// and CURRENCY='" + strCURRENCY + "'
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
strSql.Append("order by VOUDATE asc ");
|
|
/*strSql.Append(" union ");
|
|
|
|
strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,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],'" + corpID + "' as [CORPID]");
|
|
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 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 + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2);
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
//strSql.Append(" and CORPID='" + corpID + "'");
|
|
strSql.Append(") as a");
|
|
strSql.Append(" group by LINKGID,ACCDATE,DC)");*/
|
|
#endregion
|
|
}
|
|
else//外币
|
|
{
|
|
#region 外币
|
|
strSql.Append("select LINKACCID,GID,ORDNO,VKNO,VOUNO,VOUDATE,EXPLAN,EXPLAN2,DC=(SELECT top 1 DC FROM cw_accitems_gl WHERE GID=a.LINKGID),DR,CR,BLC,'" + createUser + "' as [CREATEUSER],'" + corpID + "' as [CORPID] from (select GID,ORDNO,LINKACCID=(SELECT top 1 ACCID FROM cw_accitems_gl WHERE ACCID=VW_cw_vouchers_vouitems_gl.ACCID and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "'),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,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)" + strParam1 + " and (case when FCY='USD' then FCY else 'RMB' end)='" + strCURRENCY + "') as a where LINKGID in (select GID from cw_accitems_gl where ACCID like '" + strACCID + "%' and STARTGID='" + strCwSTARTGID + "' and [YEAR]='" + sYear + "' )" + strParam2);// and CURRENCY='" + strCURRENCY + "'
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
strSql.Append("order by VOUDATE asc ");
|
|
/*strSql.Append(" union ");
|
|
|
|
strSql.Append("(SELECT newid() as GID,'' as ORDNO,'' as VKNO,0 as VOUNO,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],'" + corpID + "' as [CORPID]");
|
|
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 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 + "')" + strCustNAME2 + strDeptName2 + strSALE2 + strITEMNAME2);
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" and " + strCondition);
|
|
}
|
|
//strSql.Append(" and CORPID='" + corpID + "'");
|
|
strSql.Append(") as a");
|
|
strSql.Append(" group by LINKGID,ACCDATE,DC)");*/
|
|
#endregion
|
|
}
|
|
#endregion
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
string evList = string.Empty;
|
|
evList = "[";
|
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
var i = 1;
|
|
while (reader.Read())
|
|
{
|
|
evList += "{";
|
|
//evList += "MONTHNAME:\"" + Convert.ToString(reader["MONTHNAME"]) + "\",MBLNO:\"" + Convert.ToString(reader["MBLNO"]) + "\",CUSTOMERNAME:\"" + Convert.ToString(reader["CUSTOMERNAME"]) + "\",CNTRTOTAL:\"" + Convert.ToString(reader["CNTRTOTAL"]) + "\",PORTDISCHARGE:\"" + Convert.ToString(reader["PORTDISCHARGE"]) + "\",OP:\"" + Convert.ToString(reader["OP"]) + "\",SALE:\"" + Convert.ToString(reader["SALE"]) + "\",BSSOURCE:\"" + Convert.ToString(reader["BSSOURCE"]) + "\",BSTYPE:\"" + Convert.ToString(reader["BSTYPE"]) + "\",LANE:\"" + Convert.ToString(reader["LANE"]) + "\",RMBAMOUNT:\"" + Convert.ToString(reader["RMBAMOUNT"]) + "\",SUMRMBAMOUNT:\"" + Convert.ToString(reader["SUMRMBAMOUNT"]) + "\",USDAMOUNT:\"" + Convert.ToString(reader["USDAMOUNT"]) + "\",SUMUSDAMOUNT:\"" + Convert.ToString(reader["SUMUSDAMOUNT"]) + "\",OTAMOUNT:\"" + Convert.ToString(reader["OTAMOUNT"]) + "\",SUMOTAMOUNT:\"" + Convert.ToString(reader["SUMOTAMOUNT"]) + "\",TTLAMOUNT:\"" + Math.Round(decimal.Parse(Convert.ToString(reader["TTLAMOUNT"])), 2, MidpointRounding.AwayFromZero) + "\",SUMTTLAMOUNT:\"" + Math.Round(decimal.Parse(Convert.ToString(reader["SUMTTLAMOUNT"])), 2, MidpointRounding.AwayFromZero) + "\",INPUTBY:\"" + Convert.ToString(reader["INPUTBY"]) + "\"";
|
|
//OBJNAME, OBJNUM, ACCATTRIBUTE, ACCNAME, DC, ACCDATE, ACCTYPE
|
|
//evList += "OBJNAME:\"" + Convert.ToString(reader["OBJNAME"]) + "\",OBJNUM:\"" + Convert.ToString(reader["OBJNUM"]) + "\",ACCATTRIBUTE:\"" + Convert.ToString(reader["ACCATTRIBUTE"]) + "\",ACCNAME:\"" + Convert.ToString(reader["ACCNAME"]) + "\",DC:\"" + Convert.ToString(reader["DC"]) + "\",ACCDATE:\"" + Convert.ToString(reader["ACCDATE"]) + "\",ACCTYPE:\"" + Convert.ToString(reader["ACCTYPE"]) + "\"";
|
|
evList += "VOUDATE:\"" + Convert.ToString(reader["VOUDATE"]) + "\",VKNO:\"" + Convert.ToString(reader["VKNO"]) + "\",VOUNO:\"" + Convert.ToString(reader["VOUNO"]) + "\",EXPLAN:\"" + Convert.ToString(reader["EXPLAN"]) + "\",DR:\"" + Convert.ToString(reader["DR"]) + "\",CR:\"" + Convert.ToString(reader["CR"]) + "\",DC:\"" + Convert.ToString(reader["DC"]) + "\"";
|
|
evList += "},";
|
|
i = i + 1;
|
|
}
|
|
reader.Close();
|
|
}
|
|
|
|
evList = evList.Substring(0, evList.Length - 1);
|
|
evList += "]";
|
|
|
|
return evList;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|