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.OA.Models.Wms_StockTake;
using DSWeb.Areas.CommMng.Models;
using DSWeb.TruckMng.Helper;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.SoftMng.Filter;
namespace DSWeb.Areas.Import.Controllers
{
///
/// 应收应付明细
///
public class ImportWMSRptController : Controller
{
//
// GET: /Import/RptImportFeedetail/
public ActionResult Index()
{
return View();
}
public ActionResult Edit()
{
return View();
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
public ContentResult GetDataList(int start, int limit, string sort, string condition)
{
var dataList = GetDataList(condition,sort);
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 };
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
public ContentResult GetGroupList(int start, int limit, string sort, string condition, string GROUPBY)
{
var dataList = GetGroupList(condition, sort, GROUPBY);
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 };
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
private static List GetDataList ( string strCondition, string sort )
{
var strSql = new StringBuilder();
strSql.Append(" select w.WMSNO,vws.*,(select name from company where gid=vws.corpid) COMPANYNAME ,vs.ETD ");
strSql.Append(" ,vs.mblno,vs.custno,(select substring(country,0,(charindex('(',country)) ) from code_country where countryid=m.countryid) country ");
strSql.Append(" ,c.FactoryNo,m.containerno,( select top 1 costprice_ex from ImportTrade_Cargo where GID=w.Cargo_gid ) costprice_ex ");
strSql.Append(" ,convert(numeric(20,6) , ( select top 1 costprice from ImportTrade_Cargo where GID=w.Cargo_gid ) )costprice ");
strSql.Append(" ,(select top 1 costCargo from ImportTrade_Cargo where gid=c.gid)*w.GOODSRKSL/(case (select sum(GOODSRKSL) from wms where cargo_gid=c.GID) when 0 then 1 else (select sum(GOODSRKSL) from wms where cargo_gid=c.GID) end) WmsInCost ");
strSql.Append(" ,(select top 1 costCargo from ImportTrade_Cargo where gid=c.gid)*w.GOODSRKSL/(case (select sum(GOODSRKSL) from wms where cargo_gid=c.GID) when 0 then 1 else (select sum(GOODSRKSL) from wms where cargo_gid=c.GID) end)*w.GOODSSTOCK/(case w.GOODSRKSL when 0 then 1 else w.GOODSRKSL end) stockCost ");
strSql.Append(" ,dbo.trimdate(c.productiondate_min) productiondate_min,dbo.trimdate(c.productiondate_max) productiondate_max,dbo.trimdate(c.ExpirationDate) ExpirationDate ");
strSql.Append(" ,( select top 1 StoreDays from ImportTrade_Cargo where GID=w.Cargo_gid ) StoreDays ");
strSql.Append(" ,( select top 1 cargoDays from ImportTrade_Cargo where GID=w.Cargo_gid ) cargoDays ,dbo.F_ImportTrade_sealinfo(c.GID) SALEINFO,C.CargoType ");
strSql.Append(" ,dbo.F_PAYCOMPANY(m.contractno) PAYCOMPANY,m.remark_6,m.Inspection_Storage,dbo.trimdate(m.Unsealdate) Unsealdate ");
strSql.Append(" ,isnull((select sum(sale_weight) from ImportTrade_Cargo where GID=c.gid),0) sale_weight ");
strSql.Append(" ,isnull((select sum(sale_boxcount) from ImportTrade_Cargo where GID=c.gid),0) sale_boxcount, ");
strSql.Append(" c.ExpirationDates,m.seller,c.Ename,c.KINDPKGS,m.Buy_OP,m.OP,m.Agent,c.price,c.currid,c.SPECIFICATIONS ");
strSql.Append(" from vw_wms_stocktake vws ");
strSql.Append(" left join v_op_bs vs on vs.BSNO=vws.ASSOCIATEDNO left join wms w on w.gid=vws.NID ");
strSql.Append(" left join import_cargo c on c.gid=w.Cargo_gid ");
strSql.Append(" left join import_main m on m.contractno=vs.BSNO ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition);
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
return SetData(strSql);
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
private static List GetGroupList ( string strCondition, string sort, string GROUPBY )
//CUSTOMERNAME,goodsname,chargeunit
//CUSTOMERNAME,goodsname,chargeunit
{
var strSql = new StringBuilder();
var searchField = "";
var GROUPField = "";
if (GROUPBY == "Customer") {
searchField = "CUSTOMERNAME,goodsname,chargeunit";
GROUPField = "CUSTOMERNAME,goodsname,chargeunit";
}
if (GROUPBY == "Company")
{
searchField = "(select name from company where gid=corpid) companyname,goodsname,chargeunit";
GROUPField = "corpid,goodsname,chargeunit";
}
strSql.Append(" select " + searchField);
strSql.Append(" ,sum(hj_GOODSRKSL) hj_GOODSRKSL,sum(hj_GOODSPFSL_OUT) hj_GOODSPFSL_OUT ");
strSql.Append(" ,sum(hj_GOODSstock) hj_GOODSstock,sum(hj_GOODSPACK) hj_GOODSPACK ");
strSql.Append(" ,sum(hj_GOODSPACKPFSL) hj_GOODSPACKPFSL,sum(hj_GOODSpackstock) hj_GOODSpackstock ");
strSql.Append(" ,sum(costprice*hj_goodsstock*1000) STOCKCOST,sum(costprice*hj_goodsstock)/(case sum(hj_goodsstock) when 0 then 1 else sum(hj_goodsstock) end) COSTPRICE ");
strSql.Append(" from ");
strSql.Append(" (select vws.* , vs.ETD ,tc.costprice ");
strSql.Append(" from vw_wms_stocktake vws ");
strSql.Append(" left join v_op_bs vs on vs.mblno=vws.blno ");
strSql.Append(" left join wms w on w.gid=vws.NID ");
strSql.Append(" left join ImportTrade_Cargo tc on tc.GID=w.Cargo_gid ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition);
}
strSql.Append(" )t1 ");
strSql.Append(" group by " + GROUPField);
strSql.Append(" ");
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
if (GROUPBY == "Customer")
{
return SetCustomerData(strSql);
}else
//if (GROUPBY == "Company")
{
return SetCompanyData(strSql);
}
}
private static List SetData ( StringBuilder strSql )
{
var headList = new List();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
var data = new ImportWMSRptmb();
#region Set DB data to Object
data.ExpirationDates = Convert.ToString(reader["ExpirationDates"]);
data.WMSDATE = Convert.ToString(reader["WMSDATE"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.hj_GOODSRKSL = Convert.ToString(reader["hj_GOODSRKSL"]);
data.hj_GOODSPFSL_OUT = Convert.ToString(reader["hj_GOODSPFSL_OUT"]);
data.hj_GOODSSTOCK = Convert.ToString(reader["hj_GOODSSTOCK"]);
data.hj_GOODSPACK = Convert.ToString(reader["hj_GOODSPACK"]);
data.hj_GOODSPACKPFSL = Convert.ToString(reader["hj_GOODSPACKPFSL"]);
data.hj_GOODSPACKSTOCK = Convert.ToString(reader["hj_GOODSPACKSTOCK"]);
data.GID = Convert.ToString(reader["GID"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
data.GOODSGRADE = Convert.ToString(reader["GOODSGRADE"]);
data.GOODSSLICE = Convert.ToString(reader["GOODSSLICE"]);
data.GOODSSTANDARD = Convert.ToString(reader["SPECIFICATIONS"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.hj_GOODSPACKACTUAL = Convert.ToString(reader["hj_GOODSPACKACTUAL"]);
data.hj_GOODSRKSLACTUAL = Convert.ToString(reader["hj_GOODSRKSLACTUAL"]);
data.COMPANYNAME = Convert.ToString(reader["COMPANYNAME"]);
data.COUNTRY = Convert.ToString(reader["COUNTRY"]);
data.FACTORYNO = Convert.ToString(reader["FACTORYNO"]);
data.CONTAINERNO = Convert.ToString(reader["CONTAINERNO"]);
data.COSTPRICE = Convert.ToString(reader["COSTPRICE"]);
data.STOCKCOST = Convert.ToString(reader["STOCKCOST"]);
data.WMSINCOST = Convert.ToString(reader["WMSINCOST"]);
data.Productiondate_min = Convert.ToString(reader["Productiondate_min"]);
data.Productiondate_max = Convert.ToString(reader["Productiondate_max"]);
data.ExpirationDate = Convert.ToString(reader["ExpirationDate"]);
data.StoreDays = Convert.ToString(reader["StoreDays"]);
data.CargoDays = Convert.ToString(reader["CargoDays"]);
data.SALEINFO = Convert.ToString(reader["SALEINFO"]);
data.CargoType = Convert.ToString(reader["CargoType"]);
data.PAYCOMPANY = Convert.ToString(reader["PAYCOMPANY"]);
data.remark_6 = Convert.ToString(reader["remark_6"]);
data.Inspection_Storage = Convert.ToString(reader["Inspection_Storage"]);
data.Unsealdate = Convert.ToString(reader["Unsealdate"]);
data.sale_weight = Convert.ToString(reader["sale_weight"]);
data.sale_boxcount = Convert.ToString(reader["sale_boxcount"]);
data.PUTINTYPE = Convert.ToString(reader["PUTINTYPE"]);
data.WMSNO = Convert.ToString(reader["WMSNO"]);
data.seller = Convert.ToString(reader["seller"]);
data.Ename = Convert.ToString(reader["Ename"]);
data.KINDPKGS = Convert.ToString(reader["KINDPKGS"]);
data.Buy_OP = Convert.ToString(reader["Buy_OP"]);
data.OP = Convert.ToString(reader["OP"]);
data.Agent = Convert.ToString(reader["Agent"]);
data.price = Convert.ToString(reader["price"]);
data.currid = Convert.ToString(reader["currid"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
private static List SetCustomerData ( StringBuilder strSql )
{
var headList = new List();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
var data = new ImportWMSRptmb();
#region Set DB data to Object
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.hj_GOODSRKSL = Convert.ToString(reader["hj_GOODSRKSL"]);
data.hj_GOODSPFSL_OUT = Convert.ToString(reader["hj_GOODSPFSL_OUT"]);
data.hj_GOODSSTOCK = Convert.ToString(reader["hj_GOODSSTOCK"]);
data.hj_GOODSPACK = Convert.ToString(reader["hj_GOODSPACK"]);
data.hj_GOODSPACKPFSL = Convert.ToString(reader["hj_GOODSPACKPFSL"]);
data.hj_GOODSPACKSTOCK = Convert.ToString(reader["hj_GOODSPACKSTOCK"]);
data.COSTPRICE = Convert.ToString(reader["COSTPRICE"]);
data.STOCKCOST = Convert.ToString(reader["STOCKCOST"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
private static List SetCompanyData ( StringBuilder strSql )
{
var headList = new List();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
var data = new ImportWMSRptmb();
#region Set DB data to Object
data.COMPANYNAME = Convert.ToString(reader["COMPANYNAME"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.hj_GOODSRKSL = Convert.ToString(reader["hj_GOODSRKSL"]);
data.hj_GOODSPFSL_OUT = Convert.ToString(reader["hj_GOODSPFSL_OUT"]);
data.hj_GOODSSTOCK = Convert.ToString(reader["hj_GOODSSTOCK"]);
data.hj_GOODSPACK = Convert.ToString(reader["hj_GOODSPACK"]);
data.hj_GOODSPACKPFSL = Convert.ToString(reader["hj_GOODSPACKPFSL"]);
data.hj_GOODSPACKSTOCK = Convert.ToString(reader["hj_GOODSPACKSTOCK"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
public ContentResult GetWMSDetailList(string condition,string sort)
{
var dataList = GetWMSDetailDataList(condition, sort);
var list = dataList.Skip(0).Take(500);
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() });
return new ContentResult() { Content = json };
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
private static List GetWMSDetailDataList(string strCondition, string sort)
{
var strSql = new StringBuilder();
strSql.Append(" SELECT NID,BLNO,CUSTOMNO,CUSTOMERNAME,STORAGENAME,GOODSNAME,GOODSSTANDARD,GOODSMODEL,WMSNO,OUTBSNO_OUT,BSNO_OUT,WMSDATE,DODATE_OUT,GOODSRKSL,GOODSRKSLACTUAL,GOODSPFSL_OUT,GOODSSTOCK,CHARGEUNIT,GOODSOUTFEE_OUT, GOODSOUTFEEAP_OUT,ARFEE, APFEE,ARFEE_OUT,APFEE_OUT,FREESTORAGEPERIOD,CONTRACTNO,GOODSPACK,TRUCKNO_OUT,REMARK_OUT,MODIFIEDUSER,MODIFIEDTIME,CREATEUSER_OUT,CREATETIME_OUT FROM VW_WMS_DETAIL ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition);
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
return SetDetailData(strSql);
}
private static List SetDetailData(StringBuilder strSql)
{
var headList = new List();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
var data = new WMSDetailmb();
#region Set DB data to Object
data.NID = Convert.ToString(reader["NID"]);
data.BLNO = Convert.ToString(reader["BLNO"]);
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.WMSNO = Convert.ToString(reader["WMSNO"]);
data.OUTBSNO_OUT = Convert.ToString(reader["OUTBSNO_OUT"]);
data.BSNO_OUT = Convert.ToString(reader["BSNO_OUT"]);
data.WMSDATE = Convert.ToString(reader["WMSDATE"]);
data.DODATE_OUT = Convert.ToString(reader["DODATE_OUT"]);
data.GOODSRKSL = Convert.ToString(reader["GOODSRKSL"]);
data.GOODSRKSLACTUAL = Convert.ToString(reader["GOODSRKSLACTUAL"]);
data.GOODSPFSL_OUT = Convert.ToString(reader["GOODSPFSL_OUT"]);
data.GOODSSTOCK = Convert.ToString(reader["GOODSSTOCK"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSOUTFEE_OUT = Convert.ToString(reader["GOODSOUTFEE_OUT"]);
data.GOODSOUTFEEAP_OUT = Convert.ToString(reader["GOODSOUTFEEAP_OUT"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.ARFEE_OUT = Convert.ToString(reader["ARFEE_OUT"]);
data.APFEE_OUT = Convert.ToString(reader["APFEE_OUT"]);
data.FREESTORAGEPERIOD = Convert.ToString(reader["FREESTORAGEPERIOD"]);
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.TRUCKNO_OUT = Convert.ToString(reader["TRUCKNO_OUT"]);
data.REMARK_OUT = Convert.ToString(reader["REMARK_OUT"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.CREATEUSER_OUT = Convert.ToString(reader["CREATEUSER_OUT"]);
data.CREATETIME_OUT = Convert.ToString(reader["CREATETIME_OUT"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
}
}