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.
111 lines
4.9 KiB
C#
111 lines
4.9 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.Areas.Import.Models.RptFeeTotal;
|
|
using DSWeb.TruckMng.Helper;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
|
namespace DSWeb.Areas.Import.Controllers
|
|
{
|
|
/// <summary>
|
|
/// 应收/实收 应付/实付 列表
|
|
/// </summary>
|
|
public class RptFeeTotal_2Controller : Controller
|
|
{
|
|
//
|
|
// GET: /Import/RptFeeTotal_2/
|
|
|
|
public ActionResult Index()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public ContentResult GetDataList(int start, int limit, string sort, string condition)
|
|
{
|
|
var dataList = GetDataList(condition);
|
|
|
|
var list = dataList.Skip(start).Take(limit);
|
|
|
|
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() });
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
|
|
private static List<RptFeeTotal> GetDataList(string strCondition)
|
|
{
|
|
var strSql = new StringBuilder();
|
|
strSql.Append(" select * from (select cf.gid,cf.customername,m.hth,cf.auditdate,cf.bsno,cf.feename, ");
|
|
strSql.Append(" cft.dotyperef,convert(varchar,cf.amount) Y,'' S, ");
|
|
strSql.Append(" cft.dotyperef+'结余:' name,cft.total- ");
|
|
strSql.Append(" (case when(select max(cft2.total) from ch_fee_total cft2 ");
|
|
strSql.Append(" where cft2.customername=cf.customername ");
|
|
strSql.Append(" and cft2.dotype=cf.feetype+2 and cft2.auditdate<=cf.auditdate) is null then 0 else ");
|
|
strSql.Append(" (select max(cft2.total) from ch_fee_total cft2 ");
|
|
strSql.Append(" where cft2.customername=cf.customername ");
|
|
strSql.Append(" and cft2.dotype=cf.feetype+2 and cft2.auditdate<=cf.auditdate) end) jy ");
|
|
strSql.Append(" from ch_fee cf ");
|
|
strSql.Append(" left join ch_fee_total cft on cft.parid=cf.gid ");
|
|
strSql.Append(" left join import_main m on m.contractno=cf.bsno ");
|
|
strSql.Append(" where cf.feestatus in(0,8,9) ");
|
|
strSql.Append(" union all ");
|
|
strSql.Append(" select cfd.gid,cfd.customername,m.hth hth,cfd.createtime auditdate,'' bsno, ");
|
|
strSql.Append(" '' feename,'实际结算 '+cft.dotyperef dotyperef,'' Y,convert(varchar,cfd.amount) S, ");
|
|
strSql.Append(" (select case cft.dotype when 3 then '应收' when 4 then '实收' end) ");
|
|
strSql.Append(" +'结余:' name,(select case max(cft2.total) when null then 0 else max(cft2.total) ");
|
|
strSql.Append(" end from ch_fee_total cft2 ");
|
|
strSql.Append(" where cft2.dotype=cfd.feetype ");
|
|
strSql.Append(" and cft2.customername=cfd.customername and cft2.auditdate<cfd.createtime)-cft.total jy ");
|
|
strSql.Append(" from ch_fee_do cfd ");
|
|
strSql.Append(" left join ch_fee_total cft on cft.parid=cfd.gid ");
|
|
strSql.Append(" left join import_main m on m.contractno=cfd.bsno ");
|
|
strSql.Append(" where ((cfd.isdeleted is null) or (cfd.isdeleted<>1)) ");
|
|
strSql.Append(" )tt ");
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
{
|
|
strSql.Append(" where " + strCondition);
|
|
}
|
|
strSql.Append(" order by tt.customername,tt.auditdate,tt.jy,tt.hth ");
|
|
|
|
|
|
|
|
return SetData(strSql);
|
|
}
|
|
|
|
private static List<RptFeeTotal> SetData(StringBuilder strSql)
|
|
{
|
|
var headList = new List<RptFeeTotal>();
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
var data = new RptFeeTotal();
|
|
#region Set DB data to Object
|
|
|
|
data.gid = Convert.ToString(reader["gid"]);
|
|
data.HTH = Convert.ToString(reader["HTH"]);
|
|
data.CustomerName = Convert.ToString(reader["CustomerName"]);
|
|
data.AuditDate = Convert.ToString(reader["AuditDate"]);
|
|
data.bsno = Convert.ToString(reader["bsno"]);
|
|
data.FeeName = Convert.ToString(reader["FeeName"]);
|
|
data.dotyperef = Convert.ToString(reader["dotyperef"]);
|
|
|
|
|
|
data.Y = Convert.ToString(reader["Y"]);
|
|
data.S = Convert.ToString(reader["S"]);
|
|
data.name = Convert.ToString(reader["name"]);
|
|
data.jy = Convert.ToString(reader["jy"]);
|
|
#endregion
|
|
headList.Add(data);
|
|
}
|
|
reader.Close();
|
|
}
|
|
return headList;
|
|
}
|
|
|
|
}
|
|
}
|