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.DAL.MsSysParamSet; namespace DSWeb.MvcShipping.Controllers { /// /// /// [JsonRequestBehavior] public class MsRptHcTotalController : Controller { // // GET: /MvcShipping/MsRptOpProfit public ActionResult Index() { return View(); } // // GET:/RptMng/MsRptPcHeadQry/QryData public ContentResult CtnListData(int start, int limit, string bgnetd,string endetd,string sort,string printstr,string sortstr) { var condition = " B.ETD>='" + bgnetd + "' AND B.ETD<='" + endetd + "'"; var strSql = new StringBuilder(); strSql.Append("SELECT B.OPLBNAME, B.SALE, B.CUSTOMERNAME,COUNT(B.BSNO) AS BLCOUNT,SUM(CASE WHEN B.OPTYPE='更改单' THEN 1 ELSE 0 END) AMENDCOUNT"); strSql.Append(",SUM(CASE WHEN B.OPTYPE='普通货' AND C.SIZE='20' THEN 1 ELSE 0 END) CTN20 "); strSql.Append(",SUM(CASE WHEN B.OPTYPE='普通货' AND C.SIZE='40' THEN 1 ELSE 0 END) CTN40 "); strSql.Append(",SUM(CASE WHEN B.OPTYPE='普通货' AND C.SIZE='45' THEN 1 ELSE 0 END) CTN45 "); strSql.Append(",SUM(CASE WHEN B.OPTYPE='普通货' AND B.BLTYPE='拼箱单票' OR B.BLTYPE='拼箱分票' THEN B.CBM ELSE 0 END) CBM "); strSql.Append(",SUM(CASE WHEN B.OPTYPE='普通货' AND B.OPLBNAME='空运出口' OR B.OPLBNAME='空运进口' THEN B.KGS ELSE 0 END) KGS "); strSql.Append(",dbo.GetOpCount(B.OPLBNAME,B.SALE,B.CUSTOMERNAME,'" + bgnetd + "','" + endetd + "') OPTTLSTR "); strSql.Append(" FROM V_OP_BILL B "); strSql.Append("LEFT JOIN OP_CTN C ON (C.BSNO=B.BSNO) "); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" Where " + condition); } strSql.Append(" GROUP BY B.OPLBNAME, B.SALE,B.CUSTOMERNAME"); if ((!string.IsNullOrEmpty(printstr)) && (printstr == "true")) { if (!string.IsNullOrEmpty(sortstr)) { strSql.Append(" order by " + sortstr); } else { strSql.Append(" order by B.OPLBNAME,B.CUSTOMERNAME,B.SALE "); } var jsonRespose = new JsonResponse { Success = true, Message = condition, Data = strSql.ToString() }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } else { var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by B.OPLBNAME,B.CUSTOMERNAME,B.SALE"); } var dbparams = new List(); 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(start, limit, dbRptResult, "Result_Set", true); return new ContentResult() { Content = json }; } } public ContentResult OpListData(int start, int limit, string condition, string sort, string printstr,string sortstr) { var strSql = new StringBuilder(); strSql.Append("SELECT B.OP"); strSql.Append(",sum(case when SERVICECONTRACTNO='1' and (substring(CUSTNO,1,1)='H' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) LOCAL1 "); strSql.Append(",sum(case when SERVICECONTRACTNO='0.5' and (substring(CUSTNO,1,1)='H' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) LOCAL05 "); strSql.Append(",sum(case when SERVICECONTRACTNO='0.2' and (substring(CUSTNO,1,1)='H' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) LOCAL02 "); strSql.Append(",sum(case when SERVICECONTRACTNO='0' and (substring(CUSTNO,1,1)='H' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) LOCAL0 "); strSql.Append(",sum(case when SERVICECONTRACTNO='1' and (substring(CUSTNO,1,1)='N' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) OTHER1 "); strSql.Append(",sum(case when SERVICECONTRACTNO='0.5' and (substring(CUSTNO,1,1)='N' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) OTHER05 "); strSql.Append(",sum(case when SERVICECONTRACTNO='0.2' and (substring(CUSTNO,1,1)='N' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) OTHER02 "); strSql.Append(",sum(case when SERVICECONTRACTNO='0' and (substring(CUSTNO,1,1)='N' or substring(CUSTNO,1,1)='T' ) then 1 else 0.0 end) OTHER0 "); strSql.Append(" FROM V_OP_BILL B "); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" Where " + condition); } strSql.Append(" GROUP BY B.OP"); if ((!string.IsNullOrEmpty(printstr)) && (printstr == "true")) { if (!string.IsNullOrEmpty(sortstr)) { strSql.Append(" order by " + sortstr); } else { strSql.Append(" order by B.OP"); } var jsonRespose = new JsonResponse { Success = true, Message = "完成", Data = strSql.ToString() }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } else { var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by B.OP "); } var dbparams = new List(); 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(start, limit, dbRptResult, "Result_Set", true); return new ContentResult() { Content = json }; } } public ContentResult TruckCustomListData(int start, int limit, string condition, string sort, string printstr, string sortstr) { var strSql = new StringBuilder(); strSql.Append("SELECT CASE WHEN substring(CUSTNO,1,1)='N' THEN '宁波' ELSE '青岛' END PORT,B.OPLBNAME, F.CUSTOMERNAME, SUM(F.AMOUNT) AMOUNT,SUM(B.TEU) TEU"); strSql.Append(",(SELECT SUM(TEU) FROM V_OP_BS b LEFT JOIN V_TRUCKCUSTOMFEE F ON (F.BSNO=b.BSNO) WHERE substring(b.CUSTNO,1,1)<>'N' AND " + condition + ") TTLTEUQ "); strSql.Append(",(SELECT SUM(TEU) FROM V_OP_BS b LEFT JOIN V_TRUCKCUSTOMFEE F ON (F.BSNO=b.BSNO) WHERE substring(b.CUSTNO,1,1)='N' AND " + condition + ") TTLTEUN "); strSql.Append(" FROM V_OP_BILL B "); strSql.Append("LEFT JOIN V_TRUCKCUSTOMFEE F ON (F.BSNO=B.BSNO) "); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" Where " + condition); } strSql.Append(" Group by CASE WHEN substring(CUSTNO,1,1)='N' THEN '宁波' ELSE '青岛' END,B.OPLBNAME, F.CUSTOMERNAME "); if ((!string.IsNullOrEmpty(printstr)) && (printstr == "true")) { if (!string.IsNullOrEmpty(sortstr)) { strSql.Append(" order by " + sortstr); } else { strSql.Append(" order by B.OPLBNAME, F.CUSTOMERNAME"); } var jsonRespose = new JsonResponse { Success = true, Message = "完成", Data = strSql.ToString() }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } else { var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by B.OPLBNAME, F.CUSTOMERNAME"); } var dbparams = new List(); 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(start, limit, dbRptResult, "Result_Set", true); return new ContentResult() { Content = json }; } } public static string GetRangDAStr(string tb, string userid, string usercode, string companyid) { string str = ""; var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(" VISIBLERANGE,OPERATERANGE "); strSql.Append(" from VW_User_Authority "); strSql.Append(" where [NAME]='modProfitreportRange' and USERID='" + userid + "' and ISDELETE=0"); string visiblerange = "4"; string operaterange = "4"; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { visiblerange = Convert.ToString(reader["VISIBLERANGE"]); operaterange = Convert.ToString(reader["OPERATERANGE"]); break; } reader.Close(); } if (visiblerange == "4") { str = "1=2"; } else if (visiblerange == "3") { str = " (B.OP='" + usercode + "' OR B.SALE='" + usercode + "')"; } else if (visiblerange == "2") { if (tb == "index") { var rangeDa = new RangeDA(); var deptname = rangeDa.GetDEPTNAME(userid); var userstr = new StringBuilder(); userstr.Append(" select SHOWNAME from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')"); Database userdb = DatabaseFactory.CreateDatabase(); using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString())) { str = ""; while (reader.Read()) { if (str == "") { str = " (B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'"; } else { str = str + " or B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "'"; }; } str =str+ ")"; reader.Close(); } } else { str = " UPPER(B.Corpid)='" + companyid + "'"; } } else if (visiblerange == "1") { str = " UPPER(B.Corpid)='" + companyid + "'"; } return str; } #region 参照部分 #endregion } }