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.RptImportFeedetail; using DSWeb.TruckMng.Helper; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.Areas.CommMng.DAL; using DSWeb.Areas.CommMng.Models; using System.Data.SqlClient; using DSWeb.SoftMng.Filter; namespace DSWeb.Areas.Import.Controllers { /// /// 应收应付明细 /// public class RptImportFeedetailController : Controller { // // GET: /Import/RptImportFeedetail/ public ActionResult Index() { return View(); } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetDataList(int start, int limit, string sort, string condition) { if (string.IsNullOrEmpty(condition)) { condition += " 1=1 "; } var corpid = Convert.ToString(Session["COMPANYID"]); var USERID = Convert.ToString(Session["USERID"]); var DEPTGID = Convert.ToString(Session["DEPTGID"]); //var OPERATERANGE=""; var VISIBLERANGE = ""; var modName = "modImport_Fee"; var evList = BasicDataRefDAL.GetAR(modName, USERID); AuthorityRangemb head = null; if (evList.Count > 0) head = evList[0]; if (head == null) { head = new AuthorityRangemb(); //OPERATERANGE = "3"; VISIBLERANGE = "3"; } else { //OPERATERANGE = head.OPERATERANGE; VISIBLERANGE = head.VISIBLERANGE; } if (VISIBLERANGE == "1") { condition = condition + " and f.enteroperator in(select userid from user_company where companyid='" + corpid + "')"; } if (VISIBLERANGE == "2") { condition = condition + " and f.enteroperator in(select userid from user_baseinfo where companyname=(select name from company where gid='" + corpid + "') "; condition = condition + " and deptname=(select deptname from sys_dept where gid='" + DEPTGID + "')) "; } if (VISIBLERANGE == "3") { condition = condition + " and f.enteroperator ='" + USERID + "'"; } 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 }; } /*create view v_chfee as SELECT f.GId,f.BsNo,f.FeeStatus, (select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99024 and EnumValueID=f.FeeStatus) as FeeStatus_Ref, (select NAME from vMsTruckFeeType where NAME=f.FeeName) as FeeName_Ref, (select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99020 and EnumValueID=f.FeeType) as FeeType_Ref ,f.FeeDescription,f.enterdate,f.CustomerName as CustomerName_Ref,f.Unit,f.UnitPrice,f.Quantity, case f.feetype when 1 then f.Amount else 0 end amount_ys, case f.feetype when 1 then 0 else f.Amount end amount_yf, case f.feetype when 1 then f.Amount*f.exchangerate else 0 end amount_rmbys, case f.feetype when 1 then 0 else f.Amount*f.exchangerate end amount_rmbyf, f.Currency,f.ExChangerate ,f.Remark,m.ContractNo,m.HTH,m.seller,m.buyer,m.Billno,m.Vessel,m.Voyage,dbo.trimdate(m.Sailingdate) Sailingdate ,dbo.trimdate(m.ArrivalDate) ArrivalDate,m.ContainerNo,m.SealNo,dbo.trimdate(m.creattime) creattime,m.Id ,(select showname from [user] where gid=f.enteroperator) createuser, f.SETTLEMENT,(f.Amount-f.SETTLEMENT) as remain, --dbo.f_danhao(f.gid,4) [AC_AD], --dbo.f_danhao(f.gid,1) CR1, --dbo.f_danhao(f.gid,2) CR2,dbo.f_danhao(f.gid,8) CR8,dbo.f_danhao(f.gid,9) CR9 , f.ACCDATE,f.ISVOU,f.VOUCHERNO,f.AUDITDATE,(select showname from [user] where gid=f.auditoperator) auditoperator ,dbo.f_VOUNO(f.gid) VOUNO from ch_fee f left join Import_main m on (f.bsno=m.ContractNo) where m.id is not null */ [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 private static List GetDataList(string strCondition) { var strSql = new StringBuilder(); strSql.Append(" select * into #T1 from( SELECT f.GId,f.BsNo,f.FeeStatus, "); strSql.Append(" (select top 1 EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99024 and EnumValueID=f.FeeStatus) as FeeStatus_Ref, "); strSql.Append(" (select top 1 NAME from vMsTruckFeeType where NAME=f.FeeName) as FeeName_Ref, "); strSql.Append(" (select top 1 EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=99020 and EnumValueID=f.FeeType) as FeeType_Ref "); strSql.Append(" ,f.FeeDescription,f.enterdate,f.CustomerName as CustomerName_Ref,f.Unit,f.UnitPrice,f.Quantity, case f.feetype when 1 then f.Amount else 0 end amount_ys, "); strSql.Append(" case f.feetype when 1 then 0 else f.Amount end amount_yf, case f.feetype when 1 then f.Amount*f.exchangerate else 0 end amount_rmbys, "); strSql.Append(" case f.feetype when 1 then 0 else f.Amount*f.exchangerate end amount_rmbyf, f.Currency,f.ExChangerate "); strSql.Append(" ,f.Remark,m.ContractNo,m.CUSTNO HTH,(select top 1 seller from import_main where CONTRACTNO=m.BSNO) seller "); strSql.Append(" ,m.CUSTOMERNAME buyer,m.MBLNO Billno,m.Vessel,m.VOYNO Voyage,(select top 1 dbo.trimdate(Sailingdate) from import_main where CONTRACTNO=m.BSNO) Sailingdate "); strSql.Append(" ,dbo.trimdate(m.ETD) ArrivalDate,(select top 1 ContainerNo from import_main where CONTRACTNO=m.BSNO) ContainerNo "); strSql.Append(" ,(select top 1 SealNo from import_main where CONTRACTNO=m.BSNO) SealNo,dbo.trimdate(m.CREATETIME) creattime "); strSql.Append(" ,(select top 1 showname from [user] where gid=f.enteroperator) createuser, case f.feetype when 1 then f.SETTLEMENT else 0 end SETTLEMENT_ys, "); strSql.Append(" case f.feetype when 1 then 0 else f.SETTLEMENT end SETTLEMENT_yf, case f.feetype when 1 then (f.Amount-f.SETTLEMENT)*f.exchangerate else 0-(f.Amount-f.SETTLEMENT)*f.exchangerate end remain, "); strSql.Append(" case f.feetype when 1 then dbo.f_danhao(f.gid,5) else dbo.f_danhao(f.gid,4) end [AC_AD], dbo.f_danhao(f.gid,1) [CR_DR], debitno,dbo.f_danhao(f.gid,6) [Inv], "); strSql.Append(" f.ACCDATE,f.ISVOU,f.VOUCHERNO,f.AUDITDATE,(select top 1 showname from [user] where gid=f.auditoperator) auditoperator ,dbo.f_VOUNO(f.gid) VOUNO,dbo.f_str(f.bsno) cargoname "); strSql.Append(" ,(select top 1 name from company c where c.gid=m.CORPID) company ,m.op "); strSql.Append(" from ch_fee f "); strSql.Append(" left join v_op_bs m on (f.bsno=m.bsno) "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } strSql.Append(" )tt "); strSql.Append(" select * from #T1 "); strSql.Append(" union all "); strSql.Append(" select '','zzzzzzzz',0,'','','','','','','',0,0,sum(amount_ys),sum(amount_yf),sum(amount_rmbys),sum(amount_rmbyf), "); strSql.Append(" '',0,'','','','','','','','','','','','','','',sum(SETTLEMENT_ys),sum(SETTLEMENT_yf),sum(remain),'','','','','','','','','','','','','' from #T1 order by bsno,FeeType_Ref,FeeName_Ref, "); strSql.Append(" customername_Ref,enterdate "); //0 strSql.Append(" drop table #T1 "); return SetData(strSql); } private static List SetData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = strSql.ToString(); cmd.CommandTimeout = 120000; //要加这一句 using (IDataReader reader = db.ExecuteReader(cmd)) { while (reader.Read()) { var data = new RptImportFeedetail(); #region Set DB data to Object data.GId = Convert.ToString(reader["GId"]); data.Billno = Convert.ToString(reader["BillNo"]); data.ContractNo = Convert.ToString(reader["ContractNo"]); data.HTH = Convert.ToString(reader["HTH"]); data.creattime = Convert.ToString(reader["creattime"]); data.seller = Convert.ToString(reader["seller"]); data.buyer = Convert.ToString(reader["buyer"]); data.Vessel = Convert.ToString(reader["Vessel"]); data.Voyage = Convert.ToString(reader["Voyage"]); data.Sailingdate = Convert.ToString(reader["Sailingdate"]); data.ArrivalDate = Convert.ToString(reader["ArrivalDate"]); data.ContainerNo = Convert.ToString(reader["ContainerNo"]); data.SealNo = Convert.ToString(reader["SealNo"]); data.FeeType_Ref = Convert.ToString(reader["FeeType_Ref"]); data.FeeStatus = Convert.ToString(reader["FeeStatus"]); data.FeeStatus_Ref = Convert.ToString(reader["FeeStatus_Ref"]); data.FeeName_Ref = Convert.ToString(reader["FeeName_Ref"]); data.FeeDescription = Convert.ToString(reader["FeeDescription"]); data.CustomerName_Ref = Convert.ToString(reader["CustomerName_Ref"]); data.Unit = Convert.ToString(reader["Unit"]); data.Currency = Convert.ToString(reader["Currency"]); data.Remark = Convert.ToString(reader["Remark"]); data.UnitPrice = Convert.ToDecimal(reader["UnitPrice"]); data.Quantity = Convert.ToDecimal(reader["Quantity"]); data.Amount_YS = Convert.ToString(reader["Amount_YS"]); data.Amount_YF = Convert.ToString(reader["Amount_YF"]); data.Amount_RMBYS = Convert.ToString(reader["Amount_RMBYS"]); data.Amount_RMBYF = Convert.ToString(reader["Amount_RMBYF"]); data.ExChangerate = Convert.ToString(reader["ExChangerate"]); data.EnterDate = Convert.ToString(reader["EnterDate"]); data.CreateUser = Convert.ToString(reader["CreateUser"]); data.AC_AD = Convert.ToString(reader["AC_AD"]); data.CR_DR = Convert.ToString(reader["CR_DR"]); //data.DR = Convert.ToString(reader["DR"]); data.ACCDATE = Convert.ToString(reader["ACCDATE"]); data.ISVOU = Convert.ToString(reader["ISVOU"]); data.VOUCHERNO = Convert.ToString(reader["VOUCHERNO"]); data.AUDITOPERATOR = Convert.ToString(reader["AUDITOPERATOR"]); data.AUDITDATE = Convert.ToString(reader["AUDITDATE"]); data.VOUNO = Convert.ToString(reader["VOUNO"]); data.SETTLEMENT_ys = Convert.ToString(reader["SETTLEMENT_ys"]); data.SETTLEMENT_yf = Convert.ToString(reader["SETTLEMENT_yf"]); data.REMAIN = Convert.ToString(reader["REMAIN"]); data.CARGONAME = Convert.ToString(reader["CARGONAME"]); data.COMPANY = Convert.ToString(reader["COMPANY"]); data.OP = Convert.ToString(reader["OP"]); data.DEBITNO = Convert.ToString(reader["DEBITNO"]); data.INV = Convert.ToString(reader["INV"]); #endregion headList.Add(data); } reader.Close(); } return headList; } } }