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.

2927 lines
160 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using DSWeb.MvcShipping.Models.WMS;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.Areas.CommMng.Models;
using System.Web;
using System.Data.Common;
using DSWeb.TruckMng.Comm.Cookie;
using WebSqlHelper;
using HcUtility.Core;
//using DSWeb.Areas.CommMng.Models;
using System.Data.SqlClient;
using DSWeb.EntityDA;
using DSWeb.Models;
using HcUtility.Comm;
using DSWeb.Areas.CommMng.DAL;
namespace DSWeb.MvcShipping.DAL.WMS
{
public partial class WMSDAL
{
#region 仓储信息列表
static public List<WMSmb> GetDataList(string strCondition, string sort)
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT [GID],[WMSNO],dbo.trimdate(WMSDATE) WMSDATE,[CUSTOMERNAME],[WMSOP],[STOREMAN] ");
strSql.Append(" ,[MODIFIEDUSER],[MODIFIEDTIME],[ISDELETE],[DELETEUSER],[DELETETIME],[TRUCKNAME] ");
strSql.Append(" ,[ISLOCK],[LOCKUSER],[LOCKTIME],isnull(GOODSPACK,0) GOODSPACK,isnull(GOODSPACKSTOCK,0) GOODSPACKSTOCK ");
strSql.Append(" ,isnull(GOODSRKSL,0) GOODSRKSL,isnull(GOODSSTOCK,0) GOODSSTOCK,isnull(ARFEE,0) ARFEE ");
strSql.Append(" ,isnull(APFEE,0) APFEE,[ASSOCIATEDNO],[BLNO],[FREESTORAGEPERIOD],[CONTRACTNO] ");
strSql.Append(" ,[GOODSNAME],[GOODSMODEL],[CLIENTCODEOLD],[CLIENTNAMEOLD],[STORAGENAME],[CHARGEUNIT] ");
strSql.Append(" ,[CORPID],dbo.trimdate(STARTBILLINGDATE) [STARTBILLINGDATE],[CUSTOMNO],[CUSTNO] ");
strSql.Append(" ,[GOODSSTANDARD],[GOODSPACKACTUAL],[GOODSRKSLACTUAL],[ARCLIENT],[FREESTORAGEPERIODAP] ");
strSql.Append(" ,dbo.trimdate([STARTBILLINGDATEAP]) STARTBILLINGDATEAP,ISCHANGE ");
strSql.Append(" ,[AREANAME],[MARKETVALUE],[BANKVALUE],[BZTCHNO],[CREATEUSER],[CREATETIME],[CLIENTBSNO],[CARGO_GID],[REMARK] ");
strSql.Append(" FROM [wms] ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where ISDELETE=0 and " + strCondition.Replace("~", ""));
}
else
{
strSql.Append(" where ISDELETE=0 ");
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by WMSDATE ");
}
return SetData(strSql);
}
static public WMSmb GetData(string condition)
{
var _t = "";
var list = GetDataList(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSmb();
}
private static List<WMSmb> SetData(StringBuilder strSql)
{
var headList = new List<WMSmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSmb data = new WMSmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.WMSNO = Convert.ToString(reader["WMSNO"]);
data.WMSDATE = Convert.ToString(reader["WMSDATE"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.WMSOP = Convert.ToString(reader["WMSOP"]);
data.STOREMAN = Convert.ToString(reader["STOREMAN"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.ISDELETE = Convert.ToString(reader["ISDELETE"]);
data.DELETEUSER = Convert.ToString(reader["DELETEUSER"]);
data.DELETETIME = Convert.ToString(reader["DELETETIME"]);
data.ARCLIENT = Convert.ToString(reader["ARCLIENT"]);
data.TRUCKNAME = Convert.ToString(reader["TRUCKNAME"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.GOODSPACKSTOCK = Convert.ToString(reader["GOODSPACKSTOCK"]);
data.GOODSRKSL = Convert.ToString(reader["GOODSRKSL"]);
data.GOODSSTOCK = Convert.ToString(reader["GOODSSTOCK"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.FREESTORAGEPERIOD = Convert.ToString(reader["FREESTORAGEPERIOD"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.BLNO = Convert.ToString(reader["BLNO"]);
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
data.CLIENTCODEOLD = Convert.ToString(reader["CLIENTCODEOLD"]);
data.CLIENTNAMEOLD = Convert.ToString(reader["CLIENTNAMEOLD"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.CORPID = Convert.ToString(reader["CORPID"]);
data.STARTBILLINGDATE = Convert.ToString(reader["STARTBILLINGDATE"]);
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSPACKACTUAL = Convert.ToString(reader["GOODSPACKACTUAL"]);
data.GOODSRKSLACTUAL = Convert.ToString(reader["GOODSRKSLACTUAL"]);
data.FREESTORAGEPERIODAP = Convert.ToString(reader["FREESTORAGEPERIODAP"]);
data.STARTBILLINGDATEAP = Convert.ToString(reader["STARTBILLINGDATEAP"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.AREANAME = Convert.ToString(reader["AREANAME"]);
data.MARKETVALUE = Convert.ToString(reader["MARKETVALUE"]);
data.BANKVALUE = Convert.ToString(reader["BANKVALUE"]);
data.BZTCHNO = Convert.ToString(reader["BZTCHNO"]);
data.CLIENTBSNO = Convert.ToString(reader["CLIENTBSNO"]);
data.CARGO_GID = Convert.ToString(reader["CARGO_GID"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 仓储信息列表_进口贸易版
static public List<WMSmb_ImportTrade> GetDataList_Import ( string strCondition, string sort )
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT w.[GID],[WMSNO],dbo.trimdate(w.WMSDATE) WMSDATE,[CUSTOMERNAME],[WMSOP],[STOREMAN] ");
strSql.Append(" ,w.[MODIFIEDUSER],w.[MODIFIEDTIME],w.[ISDELETE],w.[DELETEUSER],w.[DELETETIME],[TRUCKNAME] ");
strSql.Append(" ,[ISLOCK],[LOCKUSER],dbo.trimtime([LOCKTIME]) LOCKTIME,isnull(GOODSPACK,0) GOODSPACK,isnull(GOODSPACKSTOCK,0) GOODSPACKSTOCK ");
strSql.Append(" ,isnull(GOODSRKSL,0) GOODSRKSL,isnull(GOODSSTOCK,0) GOODSSTOCK,isnull(ARFEE,0) ARFEE ");
strSql.Append(" ,isnull(APFEE,0) APFEE,[ASSOCIATEDNO],[BLNO],[FREESTORAGEPERIOD],w.[CONTRACTNO] ");
strSql.Append(" ,c.name [GOODSNAME],[GOODSMODEL],[CLIENTCODEOLD],[CLIENTNAMEOLD],[STORAGENAME],[CHARGEUNIT] ");
strSql.Append(" ,w.[CORPID],dbo.trimdate(STARTBILLINGDATE) [STARTBILLINGDATE],[CUSTOMNO],[CUSTNO] ");
strSql.Append(" ,c.SPECIFICATIONS as GOODSSTANDARD,[GOODSPACKACTUAL],[GOODSRKSLACTUAL],[ARCLIENT],[FREESTORAGEPERIODAP] ");
strSql.Append(" ,dbo.trimdate([STARTBILLINGDATEAP]) STARTBILLINGDATEAP,ISCHANGE ");
strSql.Append(" ,[AREANAME],[MARKETVALUE],[BANKVALUE],w.[BZTCHNO],[CREATEUSER],dbo.trimdate([CREATETIME]) CREATETIME,[CLIENTBSNO],[CARGO_GID],w.[REMARK] ");
strSql.Append(" ,M.Inspection_Storage,dbo.trimdate(M.inspection_date) inspection_date,dbo.trimdate(M.Unsealdate) Unsealdate ");
strSql.Append(" ,dbo.trimdate(c.Productiondate_min) Productiondate_min,dbo.trimdate(c.Productiondate_max) Productiondate_max,Overfilled ");
strSql.Append(" ,dbo.F_ImportTrade_SealInfo(w.Cargo_gid) SALEINFO ");
strSql.Append(" ,m.Agent+m.AGENT2+m.Agent3 Agent,substring(cc.country,0,(charindex('(',cc.country)) ) country ");
strSql.Append(" ,dbo.F_factoryno(m.ContractNo) factoryno ");
strSql.Append(" ,(select top 1 CNTRNO from wms_in where ASSOCIATEDNO=w.gid) CNTRNO ");
strSql.Append(" ,W.CUSTOMNO DECLARENUMBER,M.HTH ");//DECLARENUMBER 以前取的是M.DECLARENUMBER 20170213改为取wms.CUSTOMNO
strSql.Append(" ,dbo.[F_ImportTrade_Saler_Main](m.contractno) SALER ");
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(" ,M.Mainstate,(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=28 and EnumValueID=M.MainState) as MainStateRef ,w.putintype ");
//strSql.Append(" ,M.Inspection_Storage,dbo.trimdate(M.inspection_date) inspection_date ");
//strSql.Append(" ,dbo.trimdate(M.Unsealdate) Unsealdate, ");
strSql.Append(" FROM [wms] w left join import_main m on m.contractno=w.ASSOCIATEDNO ");
strSql.Append(" left join import_cargo c on c.gid=w.Cargo_gid ");
strSql.Append(" left join code_country cc on cc.countryid=m.countryid ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where w.ISDELETE=0 and " + strCondition.Replace("~", ""));
}
else
{
strSql.Append(" where w.ISDELETE=0 ");
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by w.WMSDATE ");
}
return SetData_Import(strSql);
}
static public WMSmb GetData_Import ( string condition )
{
var _t = "";
var list = GetDataList_Import(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSmb();
}
private static List<WMSmb_ImportTrade> SetData_Import ( StringBuilder strSql )
{
var headList = new List<WMSmb_ImportTrade>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSmb_ImportTrade data = new WMSmb_ImportTrade();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.WMSNO = Convert.ToString(reader["WMSNO"]);
data.WMSDATE = Convert.ToString(reader["WMSDATE"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.WMSOP = Convert.ToString(reader["WMSOP"]);
data.STOREMAN = Convert.ToString(reader["STOREMAN"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.ISDELETE = Convert.ToString(reader["ISDELETE"]);
data.DELETEUSER = Convert.ToString(reader["DELETEUSER"]);
data.DELETETIME = Convert.ToString(reader["DELETETIME"]);
data.ARCLIENT = Convert.ToString(reader["ARCLIENT"]);
data.TRUCKNAME = Convert.ToString(reader["TRUCKNAME"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.GOODSPACKSTOCK = Convert.ToString(reader["GOODSPACKSTOCK"]);
data.GOODSRKSL = Convert.ToString(reader["GOODSRKSL"]);
data.GOODSSTOCK = Convert.ToString(reader["GOODSSTOCK"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.FREESTORAGEPERIOD = Convert.ToString(reader["FREESTORAGEPERIOD"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.BLNO = Convert.ToString(reader["BLNO"]);
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
data.CLIENTCODEOLD = Convert.ToString(reader["CLIENTCODEOLD"]);
data.CLIENTNAMEOLD = Convert.ToString(reader["CLIENTNAMEOLD"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.CORPID = Convert.ToString(reader["CORPID"]);
data.STARTBILLINGDATE = Convert.ToString(reader["STARTBILLINGDATE"]);
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSPACKACTUAL = Convert.ToString(reader["GOODSPACKACTUAL"]);
data.GOODSRKSLACTUAL = Convert.ToString(reader["GOODSRKSLACTUAL"]);
data.FREESTORAGEPERIODAP = Convert.ToString(reader["FREESTORAGEPERIODAP"]);
data.STARTBILLINGDATEAP = Convert.ToString(reader["STARTBILLINGDATEAP"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.AREANAME = Convert.ToString(reader["AREANAME"]);
data.MARKETVALUE = Convert.ToString(reader["MARKETVALUE"]);
data.BANKVALUE = Convert.ToString(reader["BANKVALUE"]);
data.BZTCHNO = Convert.ToString(reader["BZTCHNO"]);
data.CLIENTBSNO = Convert.ToString(reader["CLIENTBSNO"]);
data.CARGO_GID = Convert.ToString(reader["CARGO_GID"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.Inspection_Storage = Convert.ToString(reader["Inspection_Storage"]);
data.inspection_date = Convert.ToString(reader["inspection_date"]);
data.Unsealdate = Convert.ToString(reader["Unsealdate"]);
data.Productiondate_min = Convert.ToString(reader["Productiondate_min"]);
data.Productiondate_max = Convert.ToString(reader["Productiondate_max"]);
data.Overfilled = Convert.ToString(reader["Overfilled"]);
data.SALEINFO = Convert.ToString(reader["SALEINFO"]);
data.AGENT = Convert.ToString(reader["AGENT"]);
data.COUNTRY = Convert.ToString(reader["COUNTRY"]);
data.FACTORYNO = Convert.ToString(reader["FACTORYNO"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.DECLARENUMBER = Convert.ToString(reader["DECLARENUMBER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.SALER = Convert.ToString(reader["SALER"]);
data.COSTPRICE = Convert.ToString(reader["COSTPRICE"]);
data.WMSINCOST = Convert.ToString(reader["WMSINCOST"]);
data.HTH = Convert.ToString(reader["HTH"]);
data.PUTINTYPE = Convert.ToString(reader["putintype"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 入库信息列表
static public List<WMSINmb> GetWMSINList(string strCondition, string sort)
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT * ");
strSql.Append(" FROM [wms_in] wi ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by wi.LINENUM ");
}
return SetWMSINData(strSql);
}
static public WMSINmb GetWMSINData(string condition)
{
var _t = "";
var list = GetWMSINList(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSINmb();
}
private static List<WMSINmb> SetWMSINData(StringBuilder strSql)
{
var headList = new List<WMSINmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSINmb data = new WMSINmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.BLNO = Convert.ToString(reader["BLNO"]);
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.SEALNO = Convert.ToString(reader["SEALNO"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.CLIENTCODE = Convert.ToString(reader["CLIENTCODE"]);
data.CLIENTNAME = Convert.ToString(reader["CLIENTNAME"]);
data.DODATE = Convert.ToString(reader["DODATE"]);
data.STORAGECODE = Convert.ToString(reader["STORAGECODE"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.AREACODE = Convert.ToString(reader["AREACODE"]);
data.AREANAME = Convert.ToString(reader["AREANAME"]);
data.GOODSCODE = Convert.ToString(reader["GOODSCODE"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSTYPE = Convert.ToString(reader["GOODSTYPE"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSRKSL = Convert.ToString(reader["GOODSRKSL"]);
data.GOODSSTOCK = Convert.ToString(reader["GOODSSTOCK"]);
data.FREESTORAGEPERIOD = Convert.ToString(reader["FREESTORAGEPERIOD"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.ISDELETE = Convert.ToString(reader["ISDELETE"]);
data.DELETETIME = Convert.ToString(reader["DELETETIME"]);
data.DELETEUSER = Convert.ToString(reader["DELETEUSER"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.GOODSPACKSTOCK = Convert.ToString(reader["GOODSPACKSTOCK"]);
data.KINDPKGS = Convert.ToString(reader["KINDPKGS"]);
data.GOODSKGS = Convert.ToString(reader["GOODSKGS"]);
data.CLIENTCODEOLD = Convert.ToString(reader["CLIENTCODEOLD"]);
data.CLIENTNAMEOLD = Convert.ToString(reader["CLIENTNAMEOLD"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.CORPID = Convert.ToString(reader["CORPID"]);
data.CTNALL = Convert.ToString(reader["CTNALL"]);
data.GOODSTHICKNESS = Convert.ToString(reader["GOODSTHICKNESS"]);
data.GOODSWIDTH = Convert.ToString(reader["GOODSWIDTH"]);
data.GOODSLENGTH = Convert.ToString(reader["GOODSLENGTH"]);
data.GOODSSLICE = Convert.ToString(reader["GOODSSLICE"]);
data.GOODSGRADE = Convert.ToString(reader["GOODSGRADE"]);
data.STACKLOCATION = Convert.ToString(reader["STACKLOCATION"]);
data.GOODSPACKACTUAL = Convert.ToString(reader["GOODSPACKACTUAL"]);
data.GOODSRKSLACTUAL = Convert.ToString(reader["GOODSRKSLACTUAL"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.MARKETVALUE = Convert.ToString(reader["MARKETVALUE"]);
data.BANKVALUE = Convert.ToString(reader["BANKVALUE"]);
data.LINENUM = Convert.ToString(reader["LINENUM"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 费率区间列表
static public List<WMSRATEmb> GetWMSRATE(string strCondition, string sort)
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT *,case feetype when 1 then '收' when 2 then '付' end as FEETYPEREF ");
strSql.Append(" FROM [wms_Rate] ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by FEETYPE,FEEGRADE ");
}
return SetWMSRATEData(strSql);
}
static public WMSRATEmb GetWMSRATEData(string condition)
{
var _t = "";
var list = GetWMSRATE(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSRATEmb();
}
private static List<WMSRATEmb> SetWMSRATEData(StringBuilder strSql)
{
var headList = new List<WMSRATEmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSRATEmb data = new WMSRATEmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.FEETYPE = Convert.ToString(reader["FEETYPE"]);
data.FEETYPEREF = Convert.ToString(reader["FEETYPEREF"]);
data.FEEGRADE = Convert.ToString(reader["FEEGRADE"]);
data.FEESCALE = Convert.ToString(reader["FEESCALE"]);
data.FEEPRICE = Convert.ToString(reader["FEEPRICE"]);
data.FEEUNIT = Convert.ToString(reader["FEEUNIT"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.ADDPRICE = Convert.ToString(reader["ADDPRICE"]);
data.ENDBILLINGDATE = Convert.ToString(reader["ENDBILLINGDATE"]);
data.RATETYPE = Convert.ToString(reader["RATETYPE"]);
data.FEENAME = Convert.ToString(reader["FEENAME"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.CAPPRICE = Convert.ToString(reader["CAPPRICE"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 通过WMS的GID获取业务的BSNO
static public string GetBSNOByWMSGID(string WMSGID) {
var BSNO="";
Database db = DatabaseFactory.CreateDatabase();
using (DbConnection connection = db.CreateConnection())
{
connection.Open();
try
{
var _BSNO = db.ExecuteScalar(CommandType.Text, "select ASSOCIATEDNO from wms where GID='" + WMSGID + "'");
BSNO = Convert.ToString(BSNO);
}
catch (Exception)
{
return "";
}
}
return BSNO;
}
#region 费用入账(锁定WMS)
static public Resultmb Lock(string WMSGID, string LOCK,string USERID)
{
var BSNO = GetBSNOByWMSGID(WMSGID);
if (LOCK == "0")
{
Database db = DatabaseFactory.CreateDatabase();
var _sql = "select count(*) from WMS_OUT_Detail where inbsno in('" + WMSGID + "')";
var objcount = db.ExecuteScalar(CommandType.Text, _sql);
var _count = Convert.ToString(objcount);
if (_count != "0")
{
var result = new Resultmb();
result.Success = false;
result.Message = "存在已经出库的入库记录,无法取消入账";
return result;
}
var strSql = new StringBuilder();
strSql.Append(" update wms set islock=" + LOCK + " where gid in(" + WMSGID + ")");
return setUnlock(strSql);//ExecuteNonQuery
}
else
{
var strSql = new StringBuilder();
strSql.Append(" update wms set islock=" + LOCK + " where gid in(" + WMSGID + ")");
return setLock(strSql);//ExecuteNonQuery
}
#endregion
}
private static Resultmb setLock(StringBuilder strSql)
{
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
_count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
var result = new Resultmb();
result.Success = true;
result.Message = "已经费用入账";
return result;
}
private static Resultmb setUnlock(StringBuilder strSql)
{
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
_count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
var result = new Resultmb();
result.Success = true;
result.Message = "已经取消费用入账";
return result;
}
#endregion
#region 出库信息列表
static public List<WMSOUTmb> GetWMSOUTList(string strCondition, string sort)
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT [GID],[ASSOCIATEDNO],[BSNO],[CLIENTGID],[CLIENTCODE],[CUSTOMERNAME],dbo.trimdate([DODATE]) DODATE,[STORAGECODE] ");
strSql.Append(" ,[STORAGENAME],[AREACODE],[AREANAME],[GOODSCODE],[GOODSNAME],[GOODSTYPE],[GOODSMODEL],[GOODSSTANDARD] ");
strSql.Append(" ,[GOODSPACK],[GOODSPFSL],[GOODSOUTFEE],[TRUCKNO],[REMARK],[ISDELETE],dbo.trimdate([DELETETIME]) DELETETIME,[DELETEUSER] ");
strSql.Append(" ,[CREATEUSER],dbo.trimdate([CREATETIME]) createtime,[MODIFIEDUSER],dbo.trimdate([MODIFIEDTIME]) MODIFIEDTIME,[GOODSPACKPFSL],[TRUCKNAME] ");
strSql.Append(" ,[WMSOP],[STOREMAN],[ISLOCK],[LOCKUSER],dbo.trimdate([LOCKTIME]) LOCKTIME,[GOODSOUTFEEAP],[ARFEE],[APFEE],[INSPECTIONNO] ");
strSql.Append(" ,[CUSTOMNO],[CORPID],[CLIENTNAMEOLD],dbo.trimdate([OLDCUSTFEEDATE]) OLDCUSTFEEDATE,[CLIENTBSNO],[ARCLIENT],[INGIDNEW],[TOTALNO] ");
strSql.Append(" ,[REMARK2],dbo.trimdate([VALIDDATE]) VALIDDATE,[CHARGEUNIT],[MBLNONEW],[ISCHANGE],[MARKETVALUE],[ARCLIENTWMSOUT] ");
strSql.Append(" ,[BZTCHNO],[ISCOLLECTING], ");
strSql.Append(" (select MBLNO from vw_settlement where bsno=ASSOCIATEDNO) MBLNO ");
strSql.Append(" FROM [wms_out] ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where (ISDELETE=0 or ISDELETE is null) and " + strCondition.Replace("~", ""));
}
else
{
strSql.Append(" where (ISDELETE=0 or ISDELETE is null) ");
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by DODATE ");
}
return SetWMSOUT(strSql);
}
static public WMSOUTmb GetWMSOUTData(string condition)
{
var _t = "";
var list = GetWMSOUTList(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSOUTmb();
}
private static List<WMSOUTmb> SetWMSOUT(StringBuilder strSql)
{
var headList = new List<WMSOUTmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSOUTmb data = new WMSOUTmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.CLIENTGID = Convert.ToString(reader["CLIENTGID"]);
data.CLIENTCODE = Convert.ToString(reader["CLIENTCODE"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.DODATE = Convert.ToString(reader["DODATE"]);
data.STORAGECODE = Convert.ToString(reader["STORAGECODE"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.AREACODE = Convert.ToString(reader["AREACODE"]);
data.AREANAME = Convert.ToString(reader["AREANAME"]);
data.GOODSCODE = Convert.ToString(reader["GOODSCODE"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSTYPE = Convert.ToString(reader["GOODSTYPE"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSPFSL = Convert.ToString(reader["GOODSPFSL"]);
data.GOODSOUTFEE = Convert.ToString(reader["GOODSOUTFEE"]);
data.GOODSOUTFEEAP = Convert.ToString(reader["GOODSOUTFEEAP"]);
data.TRUCKNO = Convert.ToString(reader["TRUCKNO"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.ISDELETE = Convert.ToString(reader["ISDELETE"]);
data.DELETETIME = Convert.ToString(reader["DELETETIME"]);
data.DELETEUSER = Convert.ToString(reader["DELETEUSER"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.GOODSPACKPFSL = Convert.ToString(reader["GOODSPACKPFSL"]);
data.TRUCKNAME = Convert.ToString(reader["TRUCKNAME"]);
data.WMSOP = Convert.ToString(reader["WMSOP"]);
data.STOREMAN = Convert.ToString(reader["STOREMAN"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.INSPECTIONNO = Convert.ToString(reader["INSPECTIONNO"]);
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
data.CORPID = Convert.ToString(reader["CORPID"]);
data.CLIENTNAMEOLD = Convert.ToString(reader["CLIENTNAMEOLD"]);
data.OLDCUSTFEEDATE = Convert.ToString(reader["OLDCUSTFEEDATE"]);
data.CLIENTBSNO = Convert.ToString(reader["CLIENTBSNO"]);
data.ARCLIENT = Convert.ToString(reader["ARCLIENT"]);
data.INGIDNEW = Convert.ToString(reader["INGIDNEW"]);
data.VALIDDATE = Convert.ToString(reader["VALIDDATE"]);
data.TOTALNO = Convert.ToString(reader["TOTALNO"]);
data.REMARK2 = Convert.ToString(reader["REMARK2"]);
data.MBLNONEW = Convert.ToString(reader["MBLNONEW"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.ARCLIENTWMSOUT = Convert.ToString(reader["ARCLIENTWMSOUT"]);
data.BZTCHNO = Convert.ToString(reader["BZTCHNO"]);
data.ISCOLLECTING = Convert.ToString(reader["ISCOLLECTING"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 出库信息列表_进口贸易用
static public List<WMSOUTImportmb> GetWMSOUTList_Import ( string strCondition, string sort )
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT wo.[GID],wo.[ASSOCIATEDNO],wo.[BSNO],wo.[CLIENTGID],wo.[CLIENTCODE],wo.[CUSTOMERNAME],dbo.trimdate(wo.[DODATE]) DODATE,wo.[STORAGECODE] ");
strSql.Append(" ,wo.[STORAGENAME],wo.[AREACODE],wo.[AREANAME],wod.[GOODSCODE],wod.[GOODSNAME],wod.[GOODSMODEL],wod.[GOODSSTANDARD],wod.[GOODSTYPE] ");//
strSql.Append(" ,wod.[GOODSPACK],wod.[GOODSPFSL],wo.[GOODSOUTFEE],wo.[TRUCKNO],wo.[REMARK],wo.[ISDELETE],dbo.trimdate(wo.[DELETETIME]) DELETETIME,wo.[DELETEUSER] ");
strSql.Append(" ,wo.[CREATEUSER],dbo.trimdate(wo.[CREATETIME]) createtime,wo.[MODIFIEDUSER],dbo.trimdate(wo.[MODIFIEDTIME]) MODIFIEDTIME,wod.[GOODSPACKPFSL],[TRUCKNAME] ");
strSql.Append(" ,[WMSOP],[STOREMAN],wo.[ISLOCK],wo.[LOCKUSER],dbo.trimdate(wo.[LOCKTIME]) LOCKTIME,wo.[GOODSOUTFEEAP],wo.[ARFEE],wo.[APFEE],[INSPECTIONNO] ");
strSql.Append(" ,[CUSTOMNO],wo.[CORPID],wo.[CLIENTNAMEOLD],dbo.trimdate(wo.[OLDCUSTFEEDATE]) OLDCUSTFEEDATE,[CLIENTBSNO],[ARCLIENT],[INGIDNEW],[TOTALNO] ");
strSql.Append(" ,[REMARK2],dbo.trimdate([VALIDDATE]) VALIDDATE,wo.[CHARGEUNIT],[MBLNONEW],wo.[ISCHANGE],wo.[MARKETVALUE],[ARCLIENTWMSOUT] ");
strSql.Append(" ,wod.[BZTCHNO],[ISCOLLECTING], ");
strSql.Append(" (select MBLNO from vw_settlement where bsno=wo.ASSOCIATEDNO) MBLNO ");
strSql.Append(" ,(select BSSTATUS from Import_Delivery where DELIVERYNO=wo.BSNO) BSSTATUS ");
strSql.Append(" ,m.HTH,m.Supplier_Billno,m.ContainerNo ");
strSql.Append(" ,dbo.[F_factoryno_WMSOUT](WO.BSNO) factoryno ");
strSql.Append(" ,substring(cc.country,0,(charindex('(',cc.country)) ) country ");
strSql.Append(" ,(select cargotype from Import_cargo where gid= sd.Cargo_GID) cargotype ");//商品类型
strSql.Append(" , dbo.F_ImportTrade_Saler_Main(wo.ASSOCIATEDNO) SALER ");
strSql.Append(" ,d.op,dd.WEIGHT_EX,dd.BOXCOUNT_EX,wod.GOODSPFSL GOODSPFSL_ACT,wod.GOODSPACKPFSL GOODSPACKPFSL_ACT,d.SFCM,D.OUTRECEIPT ");//, wo.CUSTOMERNAME
strSql.Append(" , convert(numeric(20,6) , ( select top 1 costprice from ImportTrade_Cargo where GID=sd.Cargo_gid ) ) costprice ");
strSql.Append(" ,sd.PRICERMB,(select OP from import_sales where salesno=sd.salesno) Sales_OP,D.op Delivery_OP,D.CONTACT,D.TEL");
strSql.Append(" ,(select sum(amount) from ch_fee where deliveryno = dd.gid ) PAYMONEY ");
strSql.Append(" FROM [wms_out] wo ");
strSql.Append(" left join import_main m on m.ContractNo=wo.associatedno ");
strSql.Append(" left join wms_out_detail wod on wod.OUTBSNO=wo.bsno ");
strSql.Append(" left join code_country cc on cc.countryid=m.countryid ");
strSql.Append(" left join Import_DeliveryDetail Dd on Dd.gid=wod.BSNO ");
strSql.Append(" left join Import_Saledetail sd on sd.gid=dd.SALEDETAIL_GID ");
strSql.Append(" left join Import_Delivery D on D.DELIVERYNO=dd.DELIVERYNO ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where isnull(wo.ISDELETE,0)=0 and " + strCondition.Replace("~", ""));
}
else
{
strSql.Append(" where isnull(wo.ISDELETE,0)=0 ");
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by wo.DODATE ");
}
return SetWMSOUT_Import(strSql);
}
static public WMSOUTImportmb GetWMSOUTData_Import ( string condition )
{
var _t = "";
var list = GetWMSOUTList_Import(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSOUTImportmb();
}
private static List<WMSOUTImportmb> SetWMSOUT_Import ( StringBuilder strSql )
{
var headList = new List<WMSOUTImportmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSOUTImportmb data = new WMSOUTImportmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.CLIENTGID = Convert.ToString(reader["CLIENTGID"]);
data.CLIENTCODE = Convert.ToString(reader["CLIENTCODE"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.DODATE = Convert.ToString(reader["DODATE"]);
data.STORAGECODE = Convert.ToString(reader["STORAGECODE"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.AREACODE = Convert.ToString(reader["AREACODE"]);
data.AREANAME = Convert.ToString(reader["AREANAME"]);
data.GOODSCODE = Convert.ToString(reader["GOODSCODE"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSTYPE = Convert.ToString(reader["GOODSTYPE"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSPFSL = Convert.ToString(reader["GOODSPFSL"]);
data.GOODSOUTFEE = Convert.ToString(reader["GOODSOUTFEE"]);
data.GOODSOUTFEEAP = Convert.ToString(reader["GOODSOUTFEEAP"]);
data.TRUCKNO = Convert.ToString(reader["TRUCKNO"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.ISDELETE = Convert.ToString(reader["ISDELETE"]);
data.DELETETIME = Convert.ToString(reader["DELETETIME"]);
data.DELETEUSER = Convert.ToString(reader["DELETEUSER"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.GOODSPACKPFSL = Convert.ToString(reader["GOODSPACKPFSL"]);
data.TRUCKNAME = Convert.ToString(reader["TRUCKNAME"]);
data.WMSOP = Convert.ToString(reader["WMSOP"]);
data.STOREMAN = Convert.ToString(reader["STOREMAN"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.INSPECTIONNO = Convert.ToString(reader["INSPECTIONNO"]);
data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]);
data.CORPID = Convert.ToString(reader["CORPID"]);
data.CLIENTNAMEOLD = Convert.ToString(reader["CLIENTNAMEOLD"]);
data.OLDCUSTFEEDATE = Convert.ToString(reader["OLDCUSTFEEDATE"]);
data.CLIENTBSNO = Convert.ToString(reader["CLIENTBSNO"]);
data.ARCLIENT = Convert.ToString(reader["ARCLIENT"]);
data.INGIDNEW = Convert.ToString(reader["INGIDNEW"]);
data.VALIDDATE = Convert.ToString(reader["VALIDDATE"]);
data.TOTALNO = Convert.ToString(reader["TOTALNO"]);
data.REMARK2 = Convert.ToString(reader["REMARK2"]);
data.MBLNONEW = Convert.ToString(reader["MBLNONEW"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.ARCLIENTWMSOUT = Convert.ToString(reader["ARCLIENTWMSOUT"]);
data.BZTCHNO = Convert.ToString(reader["BZTCHNO"]);
data.ISCOLLECTING = Convert.ToString(reader["ISCOLLECTING"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.BSSTATUS = Convert.ToString(reader["BSSTATUS"]);
data.HTH = Convert.ToString(reader["HTH"]);
data.SUPPLIER_BILLNO = Convert.ToString(reader["SUPPLIER_BILLNO"]);
data.CONTAINERNO = Convert.ToString(reader["CONTAINERNO"]);
data.FACTORYNO = Convert.ToString(reader["FACTORYNO"]);
data.COUNTRY = Convert.ToString(reader["COUNTRY"]);
data.CARGOTYPE = Convert.ToString(reader["CARGOTYPE"]);
data.SALER = Convert.ToString(reader["SALER"]);
//data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.OP = Convert.ToString(reader["OP"]);
data.WEIGHT_EX = Convert.ToString(reader["WEIGHT_EX"]);
data.BOXCOUNT_EX = Convert.ToString(reader["BOXCOUNT_EX"]);
if (reader["COSTPRICE"] != DBNull.Value)
data.GOODSPFSL_ACT = Convert.ToString(reader["GOODSPFSL_ACT"]);
else
data.GOODSPFSL_ACT = "0";
data.GOODSPACKPFSL_ACT = Convert.ToString(reader["GOODSPACKPFSL_ACT"]);
data.SFCM = Convert.ToString(reader["SFCM"]);
if (reader["COSTPRICE"] != DBNull.Value)
data.COSTPRICE = Convert.ToString(reader["COSTPRICE"]);
else
data.COSTPRICE = "0";
if (reader["PRICERMB"] != DBNull.Value)
data.PRICERMB = Convert.ToString(reader["PRICERMB"]);
else
data.PRICERMB = "0";
//
data.TOTALCOST = Convert.ToString(Convert.ToDecimal(data.COSTPRICE) * Convert.ToDecimal(data.GOODSPFSL_ACT) * 1000);
//data.PAYMONEY = Convert.ToString(Convert.ToDecimal(data.PRICERMB) * Convert.ToDecimal(data.GOODSPFSL_ACT) * 1000);
if (reader["PAYMONEY"] != DBNull.Value){
data.PAYMONEY = Convert.ToString(reader["PAYMONEY"]);
data.ML = Convert.ToString(Convert.ToDecimal(data.PAYMONEY) - Convert.ToDecimal(data.TOTALCOST));
if (Convert.ToDecimal(data.PAYMONEY) == 0) {
data.MLRATE = "0";
}else
data.MLRATE = Convert.ToString(Convert.ToDecimal(data.ML) / Convert.ToDecimal(data.PAYMONEY));
}else{
data.PAYMONEY = "0";
data.ML = "0";
data.MLRATE = "0";
}
data.OUTRECEIPT = Convert.ToString(reader["OUTRECEIPT"]);
data.Sales_OP = Convert.ToString(reader["Sales_OP"]);
data.Delivery_OP = Convert.ToString(reader["Delivery_OP"]);
data.CONTACT = Convert.ToString(reader["CONTACT"]);
data.TEL = Convert.ToString(reader["TEL"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 出库信息明细列表
static public List<WMSOUTDetailmb> GetWMSOUTDetailList ( string USERID, string WMSOUTBSNO, string ASSOCIATEDNO, string condition, string sort,string ONLYINWMSOUT )
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" select * from ( ");
if (!string.IsNullOrEmpty(ONLYINWMSOUT))
{
//只看出库单内的信息
strSql.Append(" select * from (SELECT dbo.trimdate(i.wmsdate) i_wmsdate,i.customername i_customername ");
strSql.Append(" ,i.goodsname i_goodsname,i.goodsmodel i_goodsmodel,i.goodspackstock i_goodspackstock ");
strSql.Append(" ,i.goodsstock i_goodsstock,i.blno i_blno,dbo.trimdate(i.startbillingdate) i_startbillingdate ");
strSql.Append(" ,dbo.trimdate(i.STARTBILLINGDATEAP) i_STARTBILLINGDATEAP,i.gid i_INBSNO ");
strSql.Append(" ,i.MARKETVALUE i_MARKETVALUE,i.BANKVALUE i_bankvalue,i.ISDELETE i_isdelete,i.[BZTCHNO] i_BZTCHNO ");
strSql.Append(" ,od.[GID],od.[INBSNO],od.[OUTBSNO],od.[BSNO],od.[CLIENTGID],od.[CLIENTCODE],od.[CUSTOMERNAME],od.[DODATE],od.[STORAGECODE] ");
strSql.Append(" ,od.[STORAGENAME],od.[AREACODE],od.[AREANAME],od.[GOODSCODE],od.[GOODSNAME],od.[GOODSTYPE],od.[GOODSMODEL],od.[GOODSSTANDARD] ");
strSql.Append(" ,od.[GOODSPACK],od.[CHARGEUNIT],od.[GOODSPFSL],od.[GOODSOUTFEE],od.[TRUCKNO],od.[CREATEUSER],od.[CREATETIME],od.[REMARK] ");
strSql.Append(" ,od.[ASSOCIATEDNO],od.[GOODSPACKPFSL],od.[ARFEE],od.[APFEE],od.[ISLOCK],od.[LOCKUSER],od.[LOCKTIME],od.[GOODSOUTFEEAP],od.[CORPID] ");
strSql.Append(" ,od.[CLIENTNAMEOLD],od.[OLDCUSTFEEDATE],od.[STARTBILLINGDATE],od.[ENDBILLINGDATE],od.[FEEDAYS],od.[GOODSSLICE],od.[GOODSGRADE] ");
strSql.Append(" ,od.[STARTBILLINGDATEAP],od.[ENDBILLINGDATEAP],od.[FEEDAYSAP],od.[ISCHANGE],od.[MARKETVALUE],od.[BZTCHNO] ");
strSql.Append(" FROM [wms] i left join wms_out_detail od on od.INBSNO=i.gid )tt");
strSql.Append(" where OUTBSNO='" + WMSOUTBSNO.Trim() + "'");
}
else
{
//点击执行查询,看出库单内,和符合条件的其他入库单信息。
strSql.Append(" select * from (SELECT dbo.trimdate(i.wmsdate) i_wmsdate,i.customername i_customername ");
strSql.Append(" ,i.goodsname i_goodsname,i.goodsmodel i_goodsmodel,i.goodspackstock i_goodspackstock ");
strSql.Append(" ,i.goodsstock i_goodsstock,i.blno i_blno,dbo.trimdate(i.startbillingdate) i_startbillingdate ");
strSql.Append(" ,dbo.trimdate(i.STARTBILLINGDATEAP) i_STARTBILLINGDATEAP,i.gid i_INBSNO ");
strSql.Append(" ,i.MARKETVALUE i_MARKETVALUE,i.BANKVALUE i_bankvalue,i.ISDELETE i_isdelete,i.[BZTCHNO] i_BZTCHNO ");
strSql.Append(" ,od.[GID],od.[INBSNO],od.[OUTBSNO],od.[BSNO],od.[CLIENTGID],od.[CLIENTCODE],od.[CUSTOMERNAME],od.[DODATE],od.[STORAGECODE] ");
strSql.Append(" ,od.[STORAGENAME],od.[AREACODE],od.[AREANAME],od.[GOODSCODE],od.[GOODSNAME],od.[GOODSTYPE],od.[GOODSMODEL],od.[GOODSSTANDARD] ");
strSql.Append(" ,od.[GOODSPACK],od.[CHARGEUNIT],od.[GOODSPFSL],od.[GOODSOUTFEE],od.[TRUCKNO],od.[CREATEUSER],od.[CREATETIME],od.[REMARK] ");
strSql.Append(" ,od.[ASSOCIATEDNO],od.[GOODSPACKPFSL],od.[ARFEE],od.[APFEE],od.[ISLOCK],od.[LOCKUSER],od.[LOCKTIME],od.[GOODSOUTFEEAP],od.[CORPID] ");
strSql.Append(" ,od.[CLIENTNAMEOLD],od.[OLDCUSTFEEDATE],od.[STARTBILLINGDATE],od.[ENDBILLINGDATE],od.[FEEDAYS],od.[GOODSSLICE],od.[GOODSGRADE] ");
strSql.Append(" ,od.[STARTBILLINGDATEAP],od.[ENDBILLINGDATEAP],od.[FEEDAYSAP],od.[ISCHANGE],od.[MARKETVALUE],od.[BZTCHNO] ");
strSql.Append(" FROM [wms] i left join wms_out_detail od on od.INBSNO=i.gid )tt");
strSql.Append(" where OUTBSNO='" + WMSOUTBSNO.Trim() + "' ");
strSql.Append(" UNION ALL SELECT dbo.trimdate(i.wmsdate) i_wmsdate,i.customername i_customername ");
strSql.Append(" ,i.goodsname i_goodsname,i.goodsmodel i_goodsmodel,i.goodspackstock i_goodspackstock ");
strSql.Append(" ,i.goodsstock i_goodsstock,i.blno i_blno,dbo.trimdate(i.startbillingdate) i_startbillingdate ");
strSql.Append(" ,dbo.trimdate(i.STARTBILLINGDATEAP) i_STARTBILLINGDATEAP,i.gid i_INBSNO ");
strSql.Append(" ,i.MARKETVALUE i_MARKETVALUE,i.BANKVALUE i_bankvalue,i.ISDELETE i_isdelete,i.[BZTCHNO] i_BZTCHNO ");
strSql.Append(" ,'' [GID],i.gid [INBSNO],'' [OUTBSNO],'' [BSNO],'' [CLIENTGID],'' [CLIENTCODE],i.customername [CUSTOMERNAME],getdate() [DODATE],'' [STORAGECODE] ");
strSql.Append(" ,i.STORAGENAME [STORAGENAME],'' [AREACODE],i.AREANAME [AREANAME],'' [GOODSCODE],i.goodsname [GOODSNAME],''[GOODSTYPE],i.goodsmodel [GOODSMODEL],'' [GOODSSTANDARD] ");
strSql.Append(" ,'' [GOODSPACK],i.CHARGEUNIT [CHARGEUNIT],0 [GOODSPFSL],0 [GOODSOUTFEE],'' [TRUCKNO],'" + USERID.Trim() + "' [CREATEUSER],getdate() [CREATETIME],'' [REMARK] ");
strSql.Append(" ,i.ASSOCIATEDNO [ASSOCIATEDNO],0 [GOODSPACKPFSL],0 [ARFEE],0 [APFEE],0 [ISLOCK],'' [LOCKUSER],'' [LOCKTIME],0 [GOODSOUTFEEAP],i.CORPID [CORPID] ");
strSql.Append(" ,'' [CLIENTNAMEOLD],'' [OLDCUSTFEEDATE],i.STARTBILLINGDATE [STARTBILLINGDATE],'' [ENDBILLINGDATE],0 [FEEDAYS],0 [GOODSSLICE],'' [GOODSGRADE] ");
strSql.Append(" ,i.STARTBILLINGDATEAP [STARTBILLINGDATEAP],'' [ENDBILLINGDATEAP],0 [FEEDAYSAP],0 [ISCHANGE],0 [MARKETVALUE],i.[BZTCHNO] [BZTCHNO] ");
strSql.Append(" FROM [wms] i where isdelete=0 and goodspackstock>0 and goodsstock>0 and islock=1 ");
if (!string.IsNullOrEmpty(ASSOCIATEDNO))
{
strSql.Append(" and ASSOCIATEDNO='" + ASSOCIATEDNO.Trim() + "' ");
}
if (!string.IsNullOrEmpty(WMSOUTBSNO))
{
strSql.Append(" and i.GID not in (select inbsno from wms_out_detail where outbsno='" + WMSOUTBSNO + "') ");
}
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" and " + condition + " ");
}
}
strSql.Append(" )tt1 ");
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by DODATE ");
}
return SetWMSOUTDetail(strSql);
}
static public List<WMSOUTDetailmb> GetWMSOUTDetailList_0(string strCondition, string sort)
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT [GID],[INBSNO],[OUTBSNO],[BSNO],[CLIENTGID],[CLIENTCODE],[CUSTOMERNAME],[DODATE],[STORAGECODE] ");
strSql.Append(" ,[STORAGENAME],[AREACODE],[AREANAME],[GOODSCODE],[GOODSNAME],[GOODSTYPE],[GOODSMODEL],[GOODSSTANDARD] ");
strSql.Append(" ,[GOODSPACK],[CHARGEUNIT],[GOODSPFSL],[GOODSOUTFEE],[TRUCKNO],[CREATEUSER],[CREATETIME],[REMARK] ");
strSql.Append(" ,[ASSOCIATEDNO],[GOODSPACKPFSL],[ARFEE],[APFEE],[ISLOCK],[LOCKUSER],[LOCKTIME],[GOODSOUTFEEAP],[CORPID] ");
strSql.Append(" ,[CLIENTNAMEOLD],[OLDCUSTFEEDATE],[STARTBILLINGDATE],[ENDBILLINGDATE],[FEEDAYS],[GOODSSLICE],[GOODSGRADE] ");
strSql.Append(" ,[STARTBILLINGDATEAP],[ENDBILLINGDATEAP],[FEEDAYSAP],[ISCHANGE],[MARKETVALUE],[BZTCHNO] ");
strSql.Append(" FROM [wms_out_detail] ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
else
{
//strSql.Append(" where (ISDELETE=0 or ISDELETE is null) ");
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by DODATE ");
}
return SetWMSOUTDetail_0(strSql);
}
static public WMSOUTDetailmb GetWMSOUTDetailData(string condition)
{
var _t = "";
var list = GetWMSOUTDetailList_0(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSOUTDetailmb();
}
private static List<WMSOUTDetailmb> SetWMSOUTDetail(StringBuilder strSql)
{
var headList = new List<WMSOUTDetailmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSOUTDetailmb data = new WMSOUTDetailmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.INBSNO = Convert.ToString(reader["INBSNO"]);
data.OUTBSNO = Convert.ToString(reader["OUTBSNO"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.CLIENTGID = Convert.ToString(reader["CLIENTGID"]);
data.CLIENTCODE = Convert.ToString(reader["CLIENTCODE"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.DODATE = Convert.ToString(reader["DODATE"]);
data.STORAGECODE = Convert.ToString(reader["STORAGECODE"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.AREACODE = Convert.ToString(reader["AREACODE"]);
data.AREANAME = Convert.ToString(reader["AREANAME"]);
data.GOODSCODE = Convert.ToString(reader["GOODSCODE"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSTYPE = Convert.ToString(reader["GOODSTYPE"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSPFSL = Convert.ToString(reader["GOODSPFSL"]);
data.GOODSPACKPFSL = Convert.ToString(reader["GOODSPACKPFSL"]);
data.GOODSOUTFEE = Convert.ToString(reader["GOODSOUTFEE"]);
data.GOODSOUTFEEAP = Convert.ToString(reader["GOODSOUTFEEAP"]);
data.TRUCKNO = Convert.ToString(reader["TRUCKNO"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.CORPID = Convert.ToString(reader["CORPID"]);
data.CLIENTNAMEOLD = Convert.ToString(reader["CLIENTNAMEOLD"]);
data.OLDCUSTFEEDATE = Convert.ToString(reader["OLDCUSTFEEDATE"]);
data.STARTBILLINGDATE = Convert.ToString(reader["STARTBILLINGDATE"]);
data.ENDBILLINGDATE = Convert.ToString(reader["ENDBILLINGDATE"]);
data.FEEDAYS = Convert.ToString(reader["FEEDAYS"]);
data.GOODSSLICE = Convert.ToString(reader["GOODSSLICE"]);
data.GOODSGRADE = Convert.ToString(reader["GOODSGRADE"]);
data.STARTBILLINGDATEAP = Convert.ToString(reader["STARTBILLINGDATEAP"]);
data.ENDBILLINGDATEAP = Convert.ToString(reader["ENDBILLINGDATEAP"]);
data.FEEDAYSAP = Convert.ToString(reader["FEEDAYSAP"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.MARKETVALUE = Convert.ToString(reader["MARKETVALUE"]);
data.BZTCHNO = Convert.ToString(reader["BZTCHNO"]);
data.i_WMSDATE = Convert.ToString(reader["i_WMSDATE"]);
data.i_CUSTOMERNAME = Convert.ToString(reader["i_CUSTOMERNAME"]);
data.i_GOODSNAME = Convert.ToString(reader["i_GOODSNAME"]);
data.i_GOODSMODEL = Convert.ToString(reader["i_GOODSMODEL"]);
data.i_GOODSPACKSTOCK = Convert.ToString(reader["i_GOODSPACKSTOCK"]);
data.i_GOODSSTOCK = Convert.ToString(reader["i_GOODSSTOCK"]);
data.i_BLNO = Convert.ToString(reader["i_BLNO"]);
data.i_STARTBILLINGDATE = Convert.ToString(reader["i_STARTBILLINGDATE"]);
data.i_STARTBILLINGDATEAP = Convert.ToString(reader["i_STARTBILLINGDATEAP"]);
data.i_MARKETVALUE = Convert.ToString(reader["i_MARKETVALUE"]);
data.i_BANKVALUE = Convert.ToString(reader["i_BANKVALUE"]);
data.i_ISDELETE = Convert.ToString(reader["i_ISDELETE"]);
data.i_BZTCHNO = Convert.ToString(reader["i_BZTCHNO"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
private static List<WMSOUTDetailmb> SetWMSOUTDetail_0(StringBuilder strSql)
{
var headList = new List<WMSOUTDetailmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSOUTDetailmb data = new WMSOUTDetailmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.INBSNO = Convert.ToString(reader["INBSNO"]);
data.OUTBSNO = Convert.ToString(reader["OUTBSNO"]);
data.BSNO = Convert.ToString(reader["BSNO"]);
data.CLIENTGID = Convert.ToString(reader["CLIENTGID"]);
data.CLIENTCODE = Convert.ToString(reader["CLIENTCODE"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.DODATE = Convert.ToString(reader["DODATE"]);
data.STORAGECODE = Convert.ToString(reader["STORAGECODE"]);
data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]);
data.AREACODE = Convert.ToString(reader["AREACODE"]);
data.AREANAME = Convert.ToString(reader["AREANAME"]);
data.GOODSCODE = Convert.ToString(reader["GOODSCODE"]);
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
data.GOODSTYPE = Convert.ToString(reader["GOODSTYPE"]);
data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]);
data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]);
data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]);
data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]);
data.GOODSPFSL = Convert.ToString(reader["GOODSPFSL"]);
data.GOODSPACKPFSL = Convert.ToString(reader["GOODSPACKPFSL"]);
data.GOODSOUTFEE = Convert.ToString(reader["GOODSOUTFEE"]);
data.GOODSOUTFEEAP = Convert.ToString(reader["GOODSOUTFEEAP"]);
data.TRUCKNO = Convert.ToString(reader["TRUCKNO"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.ARFEE = Convert.ToString(reader["ARFEE"]);
data.APFEE = Convert.ToString(reader["APFEE"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.CORPID = Convert.ToString(reader["CORPID"]);
data.CLIENTNAMEOLD = Convert.ToString(reader["CLIENTNAMEOLD"]);
data.OLDCUSTFEEDATE = Convert.ToString(reader["OLDCUSTFEEDATE"]);
data.STARTBILLINGDATE = Convert.ToString(reader["STARTBILLINGDATE"]);
data.ENDBILLINGDATE = Convert.ToString(reader["ENDBILLINGDATE"]);
data.FEEDAYS = Convert.ToString(reader["FEEDAYS"]);
data.GOODSSLICE = Convert.ToString(reader["GOODSSLICE"]);
data.GOODSGRADE = Convert.ToString(reader["GOODSGRADE"]);
data.STARTBILLINGDATEAP = Convert.ToString(reader["STARTBILLINGDATEAP"]);
data.ENDBILLINGDATEAP = Convert.ToString(reader["ENDBILLINGDATEAP"]);
data.FEEDAYSAP = Convert.ToString(reader["FEEDAYSAP"]);
data.ISCHANGE = Convert.ToString(reader["ISCHANGE"]);
data.MARKETVALUE = Convert.ToString(reader["MARKETVALUE"]);
data.BZTCHNO = Convert.ToString(reader["BZTCHNO"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 出库时费用明细列表
static public List<WMSRATEDetailmb> GetWMSRATEDetailList(string strCondition, string sort)
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" SELECT *,case feetype when 1 then '收' when 2 then '付' end as FEETYPEREF ");
strSql.Append(" FROM [wms_Rate_detail] ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by FEETYPE,FEEGRADE ");
}
return SetWMSRATEDetailData(strSql);
}
static public WMSRATEDetailmb GetWMSRATEDetailData(string condition)
{
var _t = "";
var list = GetWMSRATEDetailList(condition, _t);
if (list.Count > 0)
return list[0];
return new WMSRATEDetailmb();
}
private static List<WMSRATEDetailmb> SetWMSRATEDetailData(StringBuilder strSql)
{
var headList = new List<WMSRATEDetailmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSRATEDetailmb data = new WMSRATEDetailmb();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);
data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.FEETYPE = Convert.ToString(reader["FEETYPE"]);
data.FEEGRADE = Convert.ToString(reader["FEEGRADE"]);
data.STARTBILLINGDATE = Convert.ToString(reader["STARTBILLINGDATE"]);
data.ENDBILLINGDATE = Convert.ToString(reader["ENDBILLINGDATE"]);
data.FEESCALE = Convert.ToString(reader["FEESCALE"]);
data.FEEUNIT = Convert.ToString(reader["FEEUNIT"]);
data.FEEPRICE = Convert.ToString(reader["FEEPRICE"]);
data.GOODSPFSL = Convert.ToString(reader["GOODSPFSL"]);
data.OUTFEE = Convert.ToString(reader["OUTFEE"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);
data.WMSOUTGID = Convert.ToString(reader["WMSOUTGID"]);
data.FEETYPEREF = Convert.ToString(reader["FEETYPEREF"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 删除出库信息
static public int DeleteOut(string BSNO)
{
var strSql = new StringBuilder();
strSql.Append(" delete from wms_rate_detail where ASSOCIATEDNO in( select gid from wms_out_detail where bsno='" + BSNO + "')");
strSql.Append(" delete from wms_out_detail where outbsno='" + BSNO + "'");
return SetDeleteOut(strSql);//ExecuteNonQuery
}
private static int SetDeleteOut(StringBuilder strSql)
{
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
_count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
return _count;
}
private static int GetCount(StringBuilder strSql)
{
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
_count = Convert.ToInt32(db.ExecuteScalar(CommandType.Text, strSql.ToString()));
return _count;
}
#endregion
#region 获取来源于货转的已锁定入库信息数量
static public int GetHZWMSLockCount(string INNEWGID)
{
var strSql = new StringBuilder();
strSql.Append(" select count(*) from wms where GID='" + INNEWGID + "' and islock=1");
return GetCount(strSql);//ExecuteNonQuery
}
#endregion
#region 删除来源于货转的入库信息
static public int DelHZWMS(string GID)
{
var strSql = new StringBuilder();
strSql.Append(" delete from wms where gid='" + GID + "'");
strSql.Append(" delete from wms_in where associatedno='" + GID + "'");
//strSql.Append(" delete from wms_rate where BSNO='" + GID + "'");
return SetDeleteOut(strSql);//ExecuteNonQuery
}
#endregion
#region 插入来源于货转的入库信息
static public Resultmb InsertHZWMS(WMSOUTmb head,string WMSGID,string WMSNO,string USERID)
{
var strSql = new StringBuilder();
strSql.Append(" insert into WMS ");
strSql.Append(" ([GID],[WMSNO],[WMSDATE],[CUSTOMERNAME],[WMSOP],[STOREMAN] ");
strSql.Append(" ,[MODIFIEDUSER],[MODIFIEDTIME],[ISDELETE],[DELETEUSER], [DELETETIME],[TRUCKNAME],[ISLOCK],[LOCKUSER],[LOCKTIME] ");
strSql.Append(" ,[GOODSPACK],[GOODSPACKSTOCK],[GOODSRKSL],[GOODSSTOCK],[ARFEE],[APFEE],[ASSOCIATEDNO] ");
strSql.Append(" ,[BLNO],[FREESTORAGEPERIOD],[CONTRACTNO],[GOODSNAME],[GOODSMODEL],[CLIENTCODEOLD] ");
strSql.Append(" ,[CLIENTNAMEOLD],[STORAGENAME],[CHARGEUNIT],[CORPID],[STARTBILLINGDATE],[CUSTOMNO],[CUSTNO] ");
strSql.Append(" ,[GOODSSTANDARD],[GOODSPACKACTUAL] ");
strSql.Append(" ,[GOODSRKSLACTUAL],[ARCLIENT],[FREESTORAGEPERIODAP],[STARTBILLINGDATEAP],[ISCHANGE] ");
strSql.Append(" ,[AREANAME],[MARKETVALUE],[BANKVALUE],[BZTCHNO],[CREATEUSER],[CREATETIME],[CLIENTBSNO]) ");
strSql.Append(" SELECT TOP 1 '" + WMSGID + "' [GID],'" + WMSNO + "'[WMSNO],DODATE [WMSDATE],CLIENTNAMEOLD [CUSTOMERNAME],(select showname from [user] where gid=wms_out.createuser) [WMSOP],[STOREMAN] ");
strSql.Append(" ,'" + USERID + "'[MODIFIEDUSER],getdate() [MODIFIEDTIME] ");
strSql.Append(" ,0 [ISDELETE],'' [DELETEUSER],'' [DELETETIME],[TRUCKNAME],0 [ISLOCK],'' [LOCKUSER],'' [LOCKTIME] ");
strSql.Append(" ,GOODSPACKPFSL [GOODSPACK],GOODSPACKPFSL [GOODSPACKSTOCK] "); //wms_out的出库件数 计入wms的入库量和剩余件数
strSql.Append(" ,GOODSPFSL [GOODSRKSL],GOODSPFSL [GOODSSTOCK] ");//wms_out的出库量 计入wms的入库量和剩余量
strSql.Append(" ,0 [ARFEE],0 [APFEE],[ASSOCIATEDNO] ");
strSql.Append(" ,(select mblno from vw_settlement where bsno=[ASSOCIATEDNO])[BLNO] ");
strSql.Append(" ,0 [FREESTORAGEPERIOD] ");
strSql.Append(" ,(select contractno from VW_Settlement where bsno=ASSOCIATEDNO) [CONTRACTNO] ");
strSql.Append(" ,[GOODSNAME],[GOODSMODEL] ");
strSql.Append(" ,'' [CLIENTCODEOLD],'' [CLIENTNAMEOLD],[STORAGENAME],[CHARGEUNIT] ");
strSql.Append(" ,[CORPID],OLDCUSTFEEDATE [STARTBILLINGDATE],[CUSTOMNO] ");
strSql.Append(" ,(select custno from vw_settlement where bsno=ASSOCIATEDNO) [CUSTNO] ");
strSql.Append(" ,[GOODSSTANDARD],GOODSPACKPFSL [GOODSPACKACTUAL] ");
strSql.Append(" ,GOODSPFSL [GOODSRKSLACTUAL],CLIENTNAMEOLD [ARCLIENT],0 [FREESTORAGEPERIODAP],OLDCUSTFEEDATE [STARTBILLINGDATEAP],1 [ISCHANGE] ");
strSql.Append(" ,'' [AREANAME],0 [MARKETVALUE],0 [BANKVALUE],[BZTCHNO],[CREATEUSER],[CREATETIME],'' [CLIENTBSNO] ");
strSql.Append(" FROM [wms_out] where GID='"+head.GID+"'");
strSql.Append(" update wms_out set INGIDNEW='" + WMSGID + "' where GID='" + head.GID + "'");
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
_count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
if (_count > 0) {
var strSqlWI = new StringBuilder();
strSqlWI.Append(" insert into WMS_IN ");
strSqlWI.Append(" ([GID],[ASSOCIATEDNO],[BLNO],[CONTRACTNO],[CNTRNO] ");
strSqlWI.Append(" ,[SEALNO],[BSNO],[CLIENTCODE],[CLIENTNAME],[DODATE],[STORAGECODE] ");
strSqlWI.Append(" ,[STORAGENAME]");
strSqlWI.Append(" ,[AREACODE],[AREANAME],[GOODSCODE],[GOODSNAME],[GOODSTYPE] ");
strSqlWI.Append(" ,[GOODSMODEL],[GOODSSTANDARD] ");
strSqlWI.Append(" ,[GOODSPACK],[CHARGEUNIT],[GOODSRKSL] ");
strSqlWI.Append(" ,[GOODSSTOCK],[FREESTORAGEPERIOD],[ISLOCK],[LOCKTIME] ");
strSqlWI.Append(" ,[LOCKUSER],[ISDELETE],[DELETETIME],[DELETEUSER],[CREATEUSER],[CREATETIME],[MODIFIEDUSER] ");
strSqlWI.Append(" ,[MODIFIEDTIME],[REMARK],[GOODSPACKSTOCK],[KINDPKGS],[GOODSKGS],[CLIENTCODEOLD] ");
strSqlWI.Append(" ,[CLIENTNAMEOLD],[ARFEE],[APFEE],[CORPID],[CTNALL],[GOODSTHICKNESS],[GOODSWIDTH] ");
strSqlWI.Append(" ,[GOODSLENGTH],[GOODSSLICE],[GOODSGRADE],[STACKLOCATION] ");
strSqlWI.Append(" ,[GOODSPACKACTUAL],[GOODSRKSLACTUAL],[ISCHANGE] ");
strSqlWI.Append(" ,[MARKETVALUE],[BANKVALUE],[LINENUM])");
strSqlWI.Append(" SELECT TOP 1 newid() [GID],'"+WMSGID+"'[ASSOCIATEDNO],[BLNO],[CONTRACTNO],''[CNTRNO] ");
strSqlWI.Append(" ,''[SEALNO],'WMSNO'[BSNO],''[CLIENTCODE],CUSTOMERNAME[CLIENTNAME],getdate()[DODATE],''[STORAGECODE] ");
strSqlWI.Append(" ,[STORAGENAME] ");
strSqlWI.Append(" ,'' [AREACODE],[AREANAME],''[GOODSCODE],GOODSname [GOODSNAME],''[GOODSTYPE] ");
strSqlWI.Append(" ,[GOODSMODEL],[GOODSSTANDARD] ");
strSqlWI.Append(" ,"+head.GOODSPACKPFSL+" [GOODSPACK],[CHARGEUNIT],"+head.GOODSPFSL+" [GOODSRKSL] ");
strSqlWI.Append(" ,"+head.GOODSPFSL+" [GOODSSTOCK],[FREESTORAGEPERIOD],[ISLOCK],[LOCKTIME] ");
strSqlWI.Append(" ,[LOCKUSER],[ISDELETE],[DELETETIME],[DELETEUSER],[CREATEUSER],[CREATETIME],[MODIFIEDUSER] ");
strSqlWI.Append(" ,[MODIFIEDTIME],'货权转移'[REMARK],"+head.GOODSPACKPFSL+"[GOODSPACKSTOCK],''[KINDPKGS],0 [GOODSKGS],'' [CLIENTCODEOLD] ");
strSqlWI.Append(" ,'"+head.CUSTOMERNAME+"' [CLIENTNAMEOLD],0 [ARFEE],0 [APFEE],[CORPID],'' [CTNALL],0[GOODSTHICKNESS],0[GOODSWIDTH] ");
strSqlWI.Append(" ,0[GOODSLENGTH],0[GOODSSLICE],''[GOODSGRADE],''[STACKLOCATION] ");
strSqlWI.Append(" ,"+head.GOODSPACKPFSL+" [GOODSPACKACTUAL],"+head.GOODSPFSL+" [GOODSRKSLACTUAL],[ISCHANGE] ");
strSqlWI.Append(" ,0 [MARKETVALUE],0 [BANKVALUE],0[LINENUM] FROM [wms] where gid='"+WMSGID+"'");
Database db2 = DatabaseFactory.CreateDatabase();
_count = db2.ExecuteNonQuery(CommandType.Text, strSqlWI.ToString());
}
var result = new Resultmb();
result.Success = true;
result.Message = "生成WMS成功";
return result;
}
#endregion
#region 给一个入库单修改开始计费日期
static public int SetNewWMSBillingDate(string WMSGID, string WMSDATE, string STARTBILLINGDATE, string STARTBILLINGDATEAP, string USERID, string USERNAME)
{
Database db = DatabaseFactory.CreateDatabase();
var _r = 0;
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdUpdate = db.GetSqlStringCommand(@"UPDATE WMS SET WMSDATE='" + WMSDATE
+ "',STARTBILLINGDATE='" + STARTBILLINGDATE
+ "',STARTBILLINGDATEAP='" + STARTBILLINGDATEAP + "' WHERE GID=@GID ");
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@GID", DbType.String, WMSGID);
db.ExecuteNonQuery(cmdUpdate, tran);
}
catch {
_r++;
}
finally
{
conn.Close();
}
}
//将其下属的出库单明细内的开始计费日期也修改掉
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdUpdate = db.GetSqlStringCommand(@"UPDATE WMS_OUT_DETAIL SET OLDCUSTFEEDATE='" + STARTBILLINGDATE
+ "',STARTBILLINGDATE='" + STARTBILLINGDATE
+ "',STARTBILLINGDATEAP='" + STARTBILLINGDATEAP + "' WHERE INBSNO=@INBSNO ");
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@INBSNO", DbType.String, WMSGID);
db.ExecuteNonQuery(cmdUpdate, tran);
}
catch {
_r++;
}
finally
{
conn.Close();
}
}
return _r;
}
#endregion
static public SetFeeresult SetFee(SqlTransaction sqlTran, string strSTARTBILLINGDATE, string strOLDCUSTFEEDATE, string strINBSNO
, string strCUSTOMERNAME, Decimal outnums, string strASSOCIATEDNO, int strFEETYPE
, string strUserID, string strShowName, string sBillno, bool ck_jsfee, bool isKuCun)
{
string getstr = getWmsRate(sqlTran, strSTARTBILLINGDATE, strOLDCUSTFEEDATE, strINBSNO
, strCUSTOMERNAME, outnums, strASSOCIATEDNO, strFEETYPE
, strUserID, strShowName, sBillno, ck_jsfee, isKuCun);
string[] strls = getstr.Trim().Split(new string[] { "" }, StringSplitOptions.RemoveEmptyEntries);
//sqlTran.Commit();
SetFeeresult sf = new SetFeeresult();
sf.sumfee = strls[0].ToString();
sf.feedays = strls[1].ToString();
return sf;
}
#region 计算仓储费
/// <summary>
/// 计算仓储费
/// </summary>
/// <param name="sqlTran">事务</param>
/// <param name="strSTARTBILLINGDATE">开始计费日期</param>
/// <param name="strOLDCUSTFEEDATE">上家承担仓储期限</param>
/// <param name="strINBSNO">出库明细关联的入库单wms或wms_in的BSNO</param>
/// <param name="strCUSTOMERNAME">出库主表的客户名称</param>
/// <param name="outnums">出库量</param>
/// <param name="strASSOCIATEDNO">关联wms_out_detail的GID</param>
/// <param name="strFEETYPE">区别费用收、付类型</param>
/// <param name="strUserID">登陆用户GID</param>
/// <param name="strShowName">登陆用户名</param>
/// <param name="sBillno">出库单号或其他单据号</param>
/// <param name="ck_jsfee">是否计算仓储费</param>
/// <returns></returns>
static public String getWmsRate(SqlTransaction sqlTran, string strSTARTBILLINGDATE, string strOLDCUSTFEEDATE, string strINBSNO, string strCUSTOMERNAME,
Decimal outnums, string strASSOCIATEDNO, int strFEETYPE, string strUserID, string strShowName, string sBillno, bool ck_jsfee, bool isKuCun)
{
string sR = "";
int iState = 0;
int result = 0;
string Sqlstr = "";
#region 计算仓储费
WmsOutDetailDA WmsOutDetailDA = new EntityDA.WmsOutDetailDA();
IList<WmsRateDetailEntity> tempWmsRateDetailEntities = new List<WmsRateDetailEntity>();
int totalfeedays = 0;//总计费区间仓储天数
int feedays = 0;//区间仓储数
int prescale = 0;//总计费区间仓储数
int feeMonth = 0;//区间仓储月数
Decimal sumfee = 0;//总仓储费
string strSTARTBILLINGDATE2 = strSTARTBILLINGDATE;//按区间计费的开始计费日期
#region 删除费率出库明细表的区间仓储费
Sqlstr = "delete from wms_rate_detail where ASSOCIATEDNO = '" + strASSOCIATEDNO.Trim() + "' and FEETYPE=" + strFEETYPE;
iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, Sqlstr, null);
if (iState < 0)
{
sqlTran.Rollback();
result = -9;
//Clearh();
return result.ToString();
}
#endregion
if (ck_jsfee)//是否计算仓储费
{
#region 如果入库有免仓储期,则出库时插入费率出库明细表
//按仓储费率计算仓储费
Sqlstr = "SELECT top 1 * FROM wms where GID='" + strINBSNO + "' or gid in (select ASSOCIATEDNO from wms_in where gid='" + strINBSNO + "')";
DataSet dsrate = SqlHelper.ExecuteQueryDataset(sqlTran, CommandType.Text, Sqlstr, null);
if (dsrate != null)
{
if (dsrate.Tables[0].Rows.Count > 0)
{
string sAP = dsrate.Tables[0].Rows[0]["FREESTORAGEPERIOD"].ToString().Trim();
if (strFEETYPE == 2)
{
sAP = dsrate.Tables[0].Rows[0]["FREESTORAGEPERIODAP"].ToString().Trim();
}
if (sAP != "0")
{
WmsRateDetailEntity model3 = new WmsRateDetailEntity();
model3.FEEPRICE = 0;
model3.GOODSPFSL = outnums;
model3.OUTFEE = 0;
model3.FEEUNIT = dsrate.Tables[0].Rows[0]["CHARGEUNIT"].ToString().Trim() + "天";
model3.STARTBILLINGDATE = DateTime.Parse(dsrate.Tables[0].Rows[0]["WMSDATE"].ToString().Trim());
DateTime dt = DateTime.Parse(dsrate.Tables[0].Rows[0]["STARTBILLINGDATE"].ToString().Trim()).AddDays(-1);
if (DateTime.Parse(strOLDCUSTFEEDATE) < dt)
{
dt = DateTime.Parse(strOLDCUSTFEEDATE);
}
model3.ENDBILLINGDATE = dt;
model3.FEESCALE = int.Parse(WmsOutDetailDA.GetDaysCount("day", model3.STARTBILLINGDATE.ToString().Trim(), dt.ToString().Trim()).ToString());
model3.FEEGRADE = 0;
model3.REMARK = "";
model3.CREATEUSER = strUserID;
model3.MODIFIEDUSER = strUserID;
model3.ASSOCIATEDNO = strASSOCIATEDNO;
model3.CUSTOMERNAME = strCUSTOMERNAME;
model3.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model3);
}
}
}
#endregion
feedays = WmsOutDetailDA.GetDaysCount("day", strSTARTBILLINGDATE, strOLDCUSTFEEDATE.Trim());//WmsOutEntity.DODATE.ToString() 出库-开始计费日期+1
if (feedays > 0)
{
totalfeedays = feedays;
//按仓储费率计算仓储费
Sqlstr = "SELECT GID,FEEGRADE,FEETYPE,FEESCALE,FEEPRICE,ADDPRICE,FEEUNIT,convert(char(10),ENDBILLINGDATE,20) AS ENDBILLINGDATE,REMARK,CREATEUSER,CREATETIME,BSNO,CAPPRICE FROM wms_rate where (BSNO='" + strINBSNO + "' or BSNO in (select ASSOCIATEDNO from wms_in where gid='" + strINBSNO + "')) and FEETYPE=" + strFEETYPE + " order by FEEGRADE ";
dsrate = SqlHelper.ExecuteQueryDataset(sqlTran, CommandType.Text, Sqlstr, null);
if (dsrate != null)
{
if (dsrate.Tables[0].Rows.Count > 0)
{
int nowscale = 0;//区间计费区间(仓储月数/天数)
Decimal price = 0;//计费单价
Decimal gradefee = 0;//区间仓储费
int nowgrade = 1;
for (int i = 0; i < dsrate.Tables[0].Rows.Count; i++)
{
if (isKuCun)
{
if (DateTime.Parse(strSTARTBILLINGDATE) > DateTime.Parse(dsrate.Tables[0].Rows[i]["ENDBILLINGDATE"].ToString()))
{
continue;
}
}
WmsRateDetailEntity model = new WmsRateDetailEntity();
//nowgrade = int.Parse(dsrate.Tables[0].Rows[i]["FEEGRADE"].ToString());//计费等级
nowscale = int.Parse(dsrate.Tables[0].Rows[i]["FEESCALE"].ToString());//计费区间
price = Decimal.Parse(dsrate.Tables[0].Rows[i]["FEEPRICE"].ToString());//计费单价
Decimal ADDPRICE = Decimal.Parse(dsrate.Tables[0].Rows[i]["ADDPRICE"].ToString());//增值价
Decimal CAPPRICE = Decimal.Parse(dsrate.Tables[0].Rows[i]["CAPPRICE"].ToString());//
string FEEUNIT = dsrate.Tables[0].Rows[i]["FEEUNIT"].ToString();//计费单位
string ENDBILLINGDATE = dsrate.Tables[0].Rows[i]["ENDBILLINGDATE"].ToString();//结束计费日期
//计算区间是按天或按月
string DorM = "day";
if (FEEUNIT.IndexOf("月") > -1)
{
DorM = "month";
}
#region 按区间计算仓储费
feedays = WmsOutDetailDA.GetDaysCount(DorM, strSTARTBILLINGDATE2, strOLDCUSTFEEDATE.Trim());//总仓储月数
if (feedays > nowscale) //总仓储月数/天数 > 计费区间
{
feeMonth = WmsOutDetailDA.GetDaysCount(DorM, strSTARTBILLINGDATE2, ENDBILLINGDATE.Trim());//i区间仓储月数
if (feeMonth > nowscale)//i区间仓储月数 > 区间计费区间(仓储月数/天数)
{
int sjMonth = 0;//实际仓储月数
int sjMonth2 = 0;//实际仓储月数,如果是最后一条的判断数
if (feedays > feeMonth)//总仓储月数 > i区间仓储月数
{
sjMonth = nowscale;// feeMonth;// (feeMonth - nowscale);//实际仓储月数
sjMonth2 = feeMonth;//实际仓储月数,如果是最后一条的判断数
if ((i + 1) == dsrate.Tables[0].Rows.Count)//即最后一条时,以后的时间都按最后一条取值
{
if (ADDPRICE <= 0)//增值价>0则求增值费率
{
sjMonth = feedays;//(feedays - nowscale);//实际仓储月数
ENDBILLINGDATE = strOLDCUSTFEEDATE;
}
sjMonth2 = feedays;// (feedays - nowscale);//实际仓储月数
}
}
else//总仓储月数 <= i区间仓储月数
{
sjMonth = feedays;//(feedays - nowscale);//实际仓储月数
sjMonth2 = nowscale;//(feedays - nowscale);//实际仓储月数
ENDBILLINGDATE = strOLDCUSTFEEDATE;
}
//
#region 增值价>0则求增值费率
if (ADDPRICE > 0)//增值价>0则求增值费率
{
//int idiv = (int)(sjMonth / nowscale);
//int imod = (int)(sjMonth % nowscale);
int idiv = (int)(sjMonth / nowscale);
int imod = (int)(sjMonth % nowscale);
Decimal dprice = price;//计费单价
for (int j = 0; j < idiv; j++)//循环求增值费率
{
//--- BEGIN --- 如果是月则计算开始和结束日期之间的天数
DateTime dtSTARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
DateTime dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddDays(nowscale - 1);
int dtDays = sjMonth2;// nowscale;
string FEEUNIT2 = FEEUNIT;
if (FEEUNIT.IndexOf("月") > -1)
{
dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddMonths(nowscale).AddDays(-1);
if (dtENDBILLINGDATE > DateTime.Parse(ENDBILLINGDATE))//strOLDCUSTFEEDATE
{
if ((i + 1) == dsrate.Tables[0].Rows.Count && dtENDBILLINGDATE > DateTime.Parse(strOLDCUSTFEEDATE))//即最后一条时,以后的时间都按最后一条取值
{
dtENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
}
else
{
dtENDBILLINGDATE = DateTime.Parse(ENDBILLINGDATE);//strOLDCUSTFEEDATE
}
}
FEEUNIT2 = FEEUNIT.Trim().Substring(0, 1) + "天";
dtDays = WmsOutDetailDA.GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
}
//--- END ---
gradefee = outnums * dprice * dtDays;// nowscale;//出库量*计费单价*实际仓储月数
sumfee += gradefee;
prescale += dtDays;//nowscale;//累计天数
//
WmsRateDetailEntity model1 = new WmsRateDetailEntity();
model1.FEEPRICE = dprice;
model1.GOODSPFSL = outnums;
model1.FEESCALE = dtDays;// nowscale;
model1.OUTFEE = gradefee;
model1.FEEUNIT = FEEUNIT2;
model1.STARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
model1.ENDBILLINGDATE = dtENDBILLINGDATE;
//model1.ENDBILLINGDATE = model1.STARTBILLINGDATE.AddDays(nowscale - 1);
//if (FEEUNIT.IndexOf("月") > -1)
//{
// DateTime dt = model1.STARTBILLINGDATE.AddMonths(nowscale).AddDays(-1);
// model1.ENDBILLINGDATE = dt;
// if (dt > DateTime.Parse(strOLDCUSTFEEDATE))
// {
// model1.ENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
// }
//}
model1.FEEGRADE = nowgrade;
model1.REMARK = "";
model1.CREATEUSER = strUserID;
model1.MODIFIEDUSER = strUserID;
model1.ASSOCIATEDNO = strASSOCIATEDNO;
model1.CUSTOMERNAME = strCUSTOMERNAME;
model1.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model1);
//
nowgrade++;
if (CAPPRICE != 0)
{
if (dprice < CAPPRICE)
{
dprice += ADDPRICE;
}
else
{
dprice = CAPPRICE;
}
}
else
{
dprice += ADDPRICE;
}
strSTARTBILLINGDATE2 = (model1.ENDBILLINGDATE.AddDays(1)).ToString();//按区间计费的开始计费日期
}
//
if (imod > 0)//增值费率余数大于0则实际仓储月份等于imod
{
//--- BEGIN --- 如果是月则计算开始和结束日期之间的天数
DateTime dtSTARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
DateTime dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddDays(imod - 1);
int dtDays = imod;// nowscale;
string FEEUNIT2 = FEEUNIT;
if (FEEUNIT.IndexOf("月") > -1)
{
dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddMonths(imod).AddDays(-1);
if (dtENDBILLINGDATE > DateTime.Parse(ENDBILLINGDATE))//strOLDCUSTFEEDATE
{
if ((i + 1) == dsrate.Tables[0].Rows.Count && dtENDBILLINGDATE > DateTime.Parse(strOLDCUSTFEEDATE))//即最后一条时,以后的时间都按最后一条取值
{
dtENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
}
else
{
dtENDBILLINGDATE = DateTime.Parse(ENDBILLINGDATE);//strOLDCUSTFEEDATE
}
}
FEEUNIT2 = FEEUNIT.Trim().Substring(0, 1) + "天";
dtDays = WmsOutDetailDA.GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
}
//--- END ---
//dprice += ADDPRICE;
gradefee = outnums * dprice * dtDays;// imod;//出库量*计费单价*实际仓储月数
sumfee += gradefee;
prescale += dtDays;//imod;//累计天数
//
model.FEEPRICE = dprice;
model.GOODSPFSL = outnums;
model.FEESCALE = dtDays;//imod;
model.OUTFEE = gradefee;
model.FEEUNIT = FEEUNIT2;
model.STARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
model.ENDBILLINGDATE = dtENDBILLINGDATE;
//model.ENDBILLINGDATE = model.STARTBILLINGDATE.AddDays(imod - 1);
//if (FEEUNIT.IndexOf("月") > -1)
//{
// DateTime dt = model.STARTBILLINGDATE.AddMonths(imod).AddDays(-1);
// model.ENDBILLINGDATE = dt;
// if (dt > DateTime.Parse(strOLDCUSTFEEDATE))
// {
// model.ENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
// }
//}
model.FEEGRADE = nowgrade;
model.REMARK = "";
model.CREATEUSER = strUserID;
model.MODIFIEDUSER = strUserID;
model.ASSOCIATEDNO = strASSOCIATEDNO;
model.CUSTOMERNAME = strCUSTOMERNAME;
model.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model);
//
nowgrade++;
strSTARTBILLINGDATE2 = (model.ENDBILLINGDATE.AddDays(1)).ToString();//按区间计费的开始计费日期
}
}
else
{
//--- BEGIN --- 如果是月则计算开始和结束日期之间的天数
DateTime dtSTARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
DateTime dtENDBILLINGDATE = DateTime.Parse(ENDBILLINGDATE);
int dtDays = sjMonth;// nowscale;
string FEEUNIT2 = FEEUNIT;
if (FEEUNIT.IndexOf("月") > -1)
{
FEEUNIT2 = FEEUNIT.Trim().Substring(0, 1) + "天";
dtDays = WmsOutDetailDA.GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
}
//--- END ---
gradefee = outnums * price * dtDays;// sjMonth;//出库量*计费单价*实际仓储月数
sumfee += gradefee;
prescale += dtDays;//sjMonth;//累计天数
//
model.FEEPRICE = price;
model.GOODSPFSL = outnums;
model.FEESCALE = dtDays;//sjMonth;
model.OUTFEE = gradefee;
model.FEEUNIT = FEEUNIT2;
model.STARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
model.ENDBILLINGDATE = DateTime.Parse(ENDBILLINGDATE);
model.FEEGRADE = nowgrade;
model.REMARK = "";
model.CREATEUSER = strUserID;
model.MODIFIEDUSER = strUserID;
model.ASSOCIATEDNO = strASSOCIATEDNO;
model.CUSTOMERNAME = strCUSTOMERNAME;
model.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model);
//
nowgrade++;
strSTARTBILLINGDATE2 = (DateTime.Parse(ENDBILLINGDATE).AddDays(1)).ToString();//按区间计费的开始计费日期
}
#endregion
//结束费率区间的循环
if (feedays <= feeMonth)//总仓储月数 <= i区间仓储月数
{
break;//结束费率区间的循环
}
}
else//i区间仓储月数 <= 区间计费区间(仓储月数/天数)
{
int sjMonth = 0;//实际仓储月数
int sjMonth2 = 0;//实际仓储月数,如果是最后一条的判断数
if (feedays > feeMonth)//总仓储月数 > i区间仓储月数
{
sjMonth = feeMonth;//实际仓储月数
sjMonth2 = feeMonth;//实际仓储月数,如果是最后一条的判断数
if ((i + 1) == dsrate.Tables[0].Rows.Count)//即最后一条时,以后的时间都按最后一条取值
{
if (ADDPRICE <= 0)//增值价>0则求增值费率
{
sjMonth = feedays;// (feedays - nowscale);//实际仓储月数
ENDBILLINGDATE = strOLDCUSTFEEDATE;
}
sjMonth2 = feedays;// (feedays - nowscale);//实际仓储月数,如果是最后一条的判断数
}
}
else//总仓储月数 <= i区间仓储月数
{
sjMonth = feedays;//(feedays - nowscale);//实际仓储月数
ENDBILLINGDATE = strOLDCUSTFEEDATE;
}
//
#region 增值价>0则求增值费率
if (ADDPRICE > 0)//增值价>0则求增值费率
{
//int idiv = (int)(sjMonth / nowscale);
//int imod = (int)(sjMonth % nowscale);
int idiv = (int)(sjMonth2 / nowscale);
int imod = (int)(sjMonth2 % nowscale);
Decimal dprice = price;//计费单价
for (int j = 0; j < idiv; j++)//循环求增值费率
{
//--- BEGIN --- 如果是月则计算开始和结束日期之间的天数
DateTime dtSTARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
DateTime dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddDays(nowscale - 1);
int dtDays = sjMonth;// nowscale;
string FEEUNIT2 = FEEUNIT;
if (FEEUNIT.IndexOf("月") > -1)
{
dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddMonths(nowscale).AddDays(-1);
if (dtENDBILLINGDATE > DateTime.Parse(strOLDCUSTFEEDATE))
{
dtENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
}
FEEUNIT2 = FEEUNIT.Trim().Substring(0, 1) + "天";
dtDays = WmsOutDetailDA.GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
}
//--- END ---
gradefee = outnums * dprice * dtDays;// nowscale;//出库量*计费单价*实际仓储月数
sumfee += gradefee;
prescale += dtDays;//nowscale;//累计天数
//
WmsRateDetailEntity model1 = new WmsRateDetailEntity();
model1.FEEPRICE = dprice;
model1.GOODSPFSL = outnums;
model1.FEESCALE = dtDays;//nowscale;
model1.OUTFEE = gradefee;
model1.FEEUNIT = FEEUNIT2;
model1.STARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
model1.ENDBILLINGDATE = dtENDBILLINGDATE;
//model1.ENDBILLINGDATE = model1.STARTBILLINGDATE.AddDays(nowscale - 1);
//if (FEEUNIT.IndexOf("月") > -1)
//{
// DateTime dt = model1.STARTBILLINGDATE.AddMonths(nowscale).AddDays(-1);
// model1.ENDBILLINGDATE = dt;
// if (dt > DateTime.Parse(strOLDCUSTFEEDATE))
// {
// model1.ENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
// }
//}
model1.FEEGRADE = nowgrade;
model1.REMARK = "";
model1.CREATEUSER = strUserID;
model1.MODIFIEDUSER = strUserID;
model1.ASSOCIATEDNO = strASSOCIATEDNO;
model1.CUSTOMERNAME = strCUSTOMERNAME;
model1.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model1);
//
nowgrade++;
if (CAPPRICE != 0)
{
if (dprice < CAPPRICE)
{
dprice += ADDPRICE;
}
else
{
dprice = CAPPRICE;
}
}
else
{
dprice += ADDPRICE;
}
strSTARTBILLINGDATE2 = (model1.ENDBILLINGDATE.AddDays(1)).ToString();//按区间计费的开始计费日期
}
//
if (imod > 0)//增值费率余数大于0则实际仓储月份等于imod
{
//--- BEGIN --- 如果是月则计算开始和结束日期之间的天数
DateTime dtSTARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
DateTime dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddDays(imod - 1);
int dtDays = imod;// nowscale;
string FEEUNIT2 = FEEUNIT;
if (FEEUNIT.IndexOf("月") > -1)
{
dtENDBILLINGDATE = dtSTARTBILLINGDATE.AddMonths(imod).AddDays(-1);
if (dtENDBILLINGDATE > DateTime.Parse(strOLDCUSTFEEDATE))
{
dtENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
}
FEEUNIT2 = FEEUNIT.Trim().Substring(0, 1) + "天";
dtDays = WmsOutDetailDA.GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
}
//--- END ---
//dprice += ADDPRICE;
gradefee = outnums * dprice * dtDays;// imod;//出库量*计费单价*实际仓储月数
sumfee += gradefee;
prescale += dtDays;//imod;//累计天数
//
model.FEEPRICE = dprice;
model.GOODSPFSL = outnums;
model.FEESCALE = dtDays;//imod;
model.OUTFEE = gradefee;
model.FEEUNIT = FEEUNIT2;
model.STARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
model.ENDBILLINGDATE = dtENDBILLINGDATE;
//model.ENDBILLINGDATE = model.STARTBILLINGDATE.AddDays(imod - 1);
//if (FEEUNIT.IndexOf("月") > -1)
//{
// DateTime dt = model.STARTBILLINGDATE.AddMonths(imod).AddDays(-1);
// model.ENDBILLINGDATE = dt;
// if (dt > DateTime.Parse(strOLDCUSTFEEDATE))
// {
// model.ENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
// }
//}
model.FEEGRADE = nowgrade;
model.REMARK = "";
model.CREATEUSER = strUserID;
model.MODIFIEDUSER = strUserID;
model.ASSOCIATEDNO = strASSOCIATEDNO;
model.CUSTOMERNAME = strCUSTOMERNAME;
model.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model);
//
nowgrade++;
strSTARTBILLINGDATE2 = (model.ENDBILLINGDATE.AddDays(1)).ToString();//按区间计费的开始计费日期
}
}
else
{
//--- BEGIN --- 如果是月则计算开始和结束日期之间的天数
DateTime dtSTARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
DateTime dtENDBILLINGDATE = DateTime.Parse(ENDBILLINGDATE);
int dtDays = sjMonth;//nowscale;
string FEEUNIT2 = FEEUNIT;
if (FEEUNIT.IndexOf("月") > -1)
{
FEEUNIT2 = FEEUNIT.Trim().Substring(0, 1) + "天";
dtDays = WmsOutDetailDA.GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
}
//--- END ---
gradefee = outnums * price * dtDays;//sjMonth;//出库量*计费单价*实际仓储月数
sumfee += gradefee;
prescale += dtDays;//sjMonth;//累计天数
//
model.FEEPRICE = price;
model.GOODSPFSL = outnums;
model.FEESCALE = dtDays;//sjMonth;
model.OUTFEE = gradefee;
model.FEEUNIT = FEEUNIT2;
model.STARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
model.ENDBILLINGDATE = DateTime.Parse(ENDBILLINGDATE);
model.FEEGRADE = nowgrade;
model.REMARK = "";
model.CREATEUSER = strUserID;
model.MODIFIEDUSER = strUserID;
model.ASSOCIATEDNO = strASSOCIATEDNO;
model.CUSTOMERNAME = strCUSTOMERNAME;
model.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model);
//
nowgrade++;
strSTARTBILLINGDATE2 = (DateTime.Parse(ENDBILLINGDATE).AddDays(1)).ToString();//按区间计费的开始计费日期
}
#endregion
//结束费率区间的循环
if (feedays <= feeMonth)//总仓储月数 <= i区间仓储月数
{
break;//结束费率区间的循环
}
}
}
else//总仓储天数 <= 计费区间天数
{
//--- BEGIN --- 如果是月则计算开始和结束日期之间的天数
DateTime dtSTARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
DateTime dtENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
int dtDays = feedays;
string FEEUNIT2 = FEEUNIT;
if (FEEUNIT.IndexOf("月") > -1)
{
FEEUNIT2 = FEEUNIT.Trim().Substring(0, 1) + "天";
dtDays = WmsOutDetailDA.GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
}
//--- END ---
gradefee = outnums * price * dtDays;//feedays;//出库量*计费单价*仓储区间(//仓储天数-上一个计费区间(0)
sumfee += gradefee;
prescale += dtDays;//feedays;//累计天数
//
model.FEEPRICE = price;
model.GOODSPFSL = outnums;
model.FEESCALE = dtDays;//feedays;
model.OUTFEE = gradefee;
model.FEEUNIT = FEEUNIT2;
model.STARTBILLINGDATE = DateTime.Parse(strSTARTBILLINGDATE2);
model.ENDBILLINGDATE = DateTime.Parse(strOLDCUSTFEEDATE);
model.FEEGRADE = nowgrade;
model.REMARK = "";
model.CREATEUSER = strUserID;
model.MODIFIEDUSER = strUserID;
model.ASSOCIATEDNO = strASSOCIATEDNO;
model.CUSTOMERNAME = strCUSTOMERNAME;
model.FEETYPE = strFEETYPE;
tempWmsRateDetailEntities.Add(model);
//
nowgrade++;
strSTARTBILLINGDATE2 = (DateTime.Parse(strOLDCUSTFEEDATE).AddDays(1)).ToString();//按区间计费的开始计费日期
break;//结束费率区间的循环
}
#endregion
}
}
else
{
//仓储费率没有设定
//sqlTran.Rollback();
//result = -2;
//Page.ClientScript.RegisterStartupScript(this.GetType(), "key0", "<script>alert('仓储费率没有设置');</script>");
//Clearh();
//return result;
totalfeedays = 0;
feedays = 0;
sumfee = 0;
}
}
else
{
totalfeedays = 0;
feedays = 0;
sumfee = 0;
}
}
else
{
totalfeedays = 0;
feedays = 0;
sumfee = 0;
}
//
#region 按区间计算仓储费,插入费率出库明细表
if (tempWmsRateDetailEntities != null)//是否有要入库的仓储费
{
if (tempWmsRateDetailEntities.Count > 0)
{
foreach (WmsRateDetailEntity model2 in tempWmsRateDetailEntities)
{
Sqlstr = String.Format("insert into wms_rate_detail(GID,FEEPRICE,GOODSPFSL,OUTFEE,REMARK,CREATEUSER,CREATETIME,ASSOCIATEDNO,CUSTOMERNAME,FEETYPE,FEEGRADE,STARTBILLINGDATE,ENDBILLINGDATE,FEESCALE,FEEUNIT,MODIFIEDUSER)"
+ " values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}')"
, model2.FEEPRICE, model2.GOODSPFSL, model2.OUTFEE, model2.REMARK, model2.CREATEUSER, model2.ASSOCIATEDNO, model2.CUSTOMERNAME, model2.FEETYPE, model2.FEEGRADE, model2.STARTBILLINGDATE, model2.ENDBILLINGDATE, model2.FEESCALE, model2.FEEUNIT, model2.MODIFIEDUSER);
iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, Sqlstr, null);
if (iState != 1)
{
sqlTran.Rollback();
result = -1;
//Clearh();
return result.ToString();
}
//
string str0 = "insert into sys_log(NAME,LOGTYPE,LOGCONTENT,CREATEUSER) values('添加出库明细的费率明细信息','INSERT 插入操作','" + strShowName + " 添加 费率明细信息 出库单号:" + sBillno.Trim() + "','" + model2.MODIFIEDUSER.ToString() + "')";
iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, str0, null);
if (iState != 1)
{
sqlTran.Rollback();
result = -1;
//Clearh();
return result.ToString();
}
}
}
}
#endregion
}
else
{
tempWmsRateDetailEntities = null;
totalfeedays = 0;
feedays = 0;
sumfee = 0;
}
#endregion
sR = sumfee.ToString() + "" + totalfeedays.ToString();
return sR;
}
#endregion
#region 参照部分
#endregion
#region 出入库明细表
static public List<WMSDetailmb> GetDetailList ( string strCondition, string sort )
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" select v.* from VW_WMS_DETAIL V ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by v.MODIFIEDTIME ");
}
return SetDetailData(strSql);
}
private static List<WMSDetailmb> SetDetailData ( StringBuilder strSql )
{
var headList = new List<WMSDetailmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSDetailmb 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"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 出入库明细表_进口贸易
static public List<WMSImportDetailmb> GetDetailList_Import(string strCondition, string sort)
{ //库存信息
var strSql = new StringBuilder();
strSql.Append(" select dbo.F_WMS_CNTRNO(v.gid) CNTRNO, v.* ");
strSql.Append(" ,M.Inspection_Storage,dbo.trimdate(M.inspection_date) inspection_date,dbo.trimdate(M.Unsealdate) Unsealdate ,M.Agent,dbo.F_ImportTrade_SealInfo(v.Cargo_gid) SALEINFO");
strSql.Append(" ,(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=28 and EnumValueID=M.MainState) as MainStateRef ");
strSql.Append(" ,(select substring(country,0,(charindex('(',country)) ) from code_country where countryid=m.countryid) Country_Ref ");
strSql.Append(" ,(select CargoType from import_cargo where gid=v.cargo_gid) CargoType ");
strSql.Append(" ,dbo.F_PAYCOMPANY(M.contractno) PAYCOMPANY ,c.MOREORLESS,c.boxcount-c.boxcount_act MOREORLESSCOUNT ");
strSql.Append(" from VW_WMS_DETAIL_Import V ");
strSql.Append(" left join import_main M on M.contractno=V.ASSOCIATEDNO ");
strSql.Append(" left join import_cargo c on c.gid=V.cargo_gid ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition.Replace("~", ""));
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by v.MODIFIEDTIME ");
}
return SetImportDetailData(strSql);
}
private static List<WMSImportDetailmb> SetImportDetailData(StringBuilder strSql)
{
var headList = new List<WMSImportDetailmb>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
WMSImportDetailmb data = new WMSImportDetailmb();
#region Set DB data to Object
data.NID = Convert.ToString(reader["NID"]);
data.GID = Convert.ToString(reader["GID"]);
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"]);
data.CNTRNO = Convert.ToString(reader["CNTRNO"]);
data.ISLOCK = Convert.ToString(reader["ISLOCK"]);
data.COSTPRICE = Convert.ToString(reader["COSTPRICE"]);
data.COSTPRICE_EX = Convert.ToString(reader["COSTPRICE_EX"]);
data.LOCKTIME = Convert.ToString(reader["LOCKTIME"]);
data.LOCKUSER = Convert.ToString(reader["LOCKUSER"]);
data.Inspection_Storage = Convert.ToString(reader["Inspection_Storage"]);
data.inspection_date = Convert.ToString(reader["inspection_date"]);
data.Unsealdate = Convert.ToString(reader["Unsealdate"]);
data.Agent = Convert.ToString(reader["Agent"]);
data.SALEINFO = Convert.ToString(reader["SALEINFO"]);
data.COSTCARGO = Convert.ToString(reader["COSTCARGO"]);
data.MainStateRef = Convert.ToString(reader["MainStateRef"]);
data.Country_Ref = Convert.ToString(reader["Country_Ref"]);
data.CargoType = Convert.ToString(reader["CargoType"]);
data.PAYCOMPANY = Convert.ToString(reader["PAYCOMPANY"]);
data.MOREORLESS = Convert.ToString(reader["MOREORLESS"]);
data.MOREORLESSCOUNT = Convert.ToString(reader["MOREORLESSCOUNT"]);
data.PUTINTYPE = Convert.ToString(reader["PUTINTYPE"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 查询是否有出库记录
public static int GetCargoOut(string WMSGID)
{ //合同信息/商品信息
var strSql = new StringBuilder();
strSql.Append(" select count(*) [Count] from wms_out_detail where inbsno ='" + WMSGID + "' ");
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
_count = Convert.ToInt16(reader["Count"]);
}
reader.Close();
}
return _count;
}
public static int GetLocked(string CARGO_GID)
{ //合同信息/商品信息
var strSql = new StringBuilder();
strSql.Append(" select count(*) from wms where islock=1 where cargo_gid='" + CARGO_GID + "'");
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
_count = Convert.ToInt16(reader["Count"]);
}
reader.Close();
}
return _count;
}
#endregion
#region 入库锁定状态的提交审核驳回撤回
public static DBResult SubmitAudit ( String optype, String USERID, List<WMSmb> billList )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (var billno in billList)
{
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, billno.GID, USERID);
if (WorkResult.Success == true)
{
var _Comm = "";
if (WorkResult.islast == true)
{
_Comm = "update WMS set islock=1 where GID=@GID";//islock=1 锁定
}
else
{
_Comm = "update WMS set islock=2 where GID=@GID";//islock=2 提交审核
}
var cmdupdate = db.GetSqlStringCommand(_Comm);
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno.GID);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
result.Success = false;
result.Message = "提交审核错误! " + WorkResult.Message;
}
}
result = new DBResult();
result.Success = true;
result.Message = "提交审核成功";
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "提交审核错误,请联系系统管理员 "+e.Message;
return result;
}
}
return result;
}
public static DBResult CancelAudit ( String optype, String USERID, List<WMSmb> billList )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
//var billList = bill.Split(',');
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (var wms in billList)
{
var billno = wms.GID;
Resultmb WorkResult = WorkFlowDAL.WorkFlowReset(WorkFlowName, billno, USERID);
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("update WMS set ISLOCK=0 where GID=@GID");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
result.Success = false;
result.Message = "撤销提交错误!";
}
}
result = new DBResult();
result.Success = true;
result.Message = "撤销提交成功";
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "撤销提交错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static DBResult Audit ( String USERID, List<WMSmb> billList )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (var _w in billList)
{
var billno = _w.GID;
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlowName, billno, USERID);
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("update WMS set ISLOCK=1,LOCKUSER='" + USERID + "',LOCKTIME=getdate() where GID=@GID");
cmdupdate.Parameters.Clear();
//db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
result.Success = false;
result.Message = "审核错误!";
}
}
result = new DBResult();
result.Success = true;
result.Message = "审核成功";
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "审核错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static DBResult AuditBack ( String USERID, List<WMSmb> billList, string reasean )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
//var billList = bill.Split(',');
var i = 0;
result.Success = true;
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
/*
var cmdInsert =
db.GetSqlStringCommand(
@"insert into ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,APPLYUSER,APPLYTIME,
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE)
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@APPLYUSER,@APPLYTIME,
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE) ");
*/
foreach (var bill in billList)
{
Resultmb WorkResult = WorkFlowDAL.DeleteWorkFlowDo(WorkFlowName, bill.GID, USERID, "");
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("update WMS set ISLOCK=6,LOCKUSER='',LOCKTIME='' where GID=@GID");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@GID", DbType.String, bill.GID);
db.ExecuteNonQuery(cmdupdate, tran);
//var GROUPID = Guid.NewGuid().ToString();
//cmdInsert.Parameters.Clear();
//db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
//db.ExecuteNonQuery(cmdInsert, tran);
}
else
{
i = i + 1;
result.Success = WorkResult.Success;
result.Message = WorkResult.Message;
}
}
if (result.Success == true)
{
result = new DBResult();
result.Success = true;
result.Message = "驳回提交成功";
tran.Commit();
}
else
{
result.Success = true;
result.Message = "驳回完成,其中" + i.ToString() + "票驳回错误,错误信息" + result.Message;
tran.Commit();
}
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "驳回提交错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
#endregion
#region 出库锁定状态的提交审核驳回撤回
public static DBResult SubmitAudit_OUT ( String optype, String USERID, List<WMSOUTmb> billList )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (var billno in billList)
{
Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, billno.GID, USERID);
if (WorkResult.Success == true)
{
var _Comm = "";
if (WorkResult.islast == true)
{
_Comm = "update WMS_Out set islock=1 where GID=@GID";//islock=1 锁定
}
else
{
_Comm = "update WMS_Out set islock=2 where GID=@GID";//islock=2 提交审核
}
var cmdupdate = db.GetSqlStringCommand(_Comm);
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno.GID);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
result.Success = false;
result.Message = "提交审核错误! " + WorkResult.Message;
}
}
result = new DBResult();
result.Success = true;
result.Message = "提交审核成功";
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "提交审核错误,请联系系统管理员 " + e.Message;
return result;
}
}
return result;
}
public static DBResult CancelAudit_OUT ( String optype, String USERID, List<WMSOUTmb> billList )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
//var billList = bill.Split(',');
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (var wms in billList)
{
var billno = wms.GID;
Resultmb WorkResult = WorkFlowDAL.WorkFlowReset(WorkFlowName, billno, USERID);
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("update WMS_OUT set ISLOCK=0 where GID=@GID");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
result.Success = false;
result.Message = "撤销提交错误!";
}
}
result = new DBResult();
result.Success = true;
result.Message = "撤销提交成功";
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "撤销提交错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static DBResult Audit_OUT ( String USERID, List<WMSOUTmb> billList )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
foreach (var _w in billList)
{
var billno = _w.GID;
Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlowName, billno, USERID);
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("update WMS_OUT set ISLOCK=1,LOCKUSER='" + USERID + "',LOCKTIME=getdate() where GID=@GID");
cmdupdate.Parameters.Clear();
//db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
db.AddInParameter(cmdupdate, "@GID", DbType.String, billno);
db.ExecuteNonQuery(cmdupdate, tran);
}
else
{
result.Success = false;
result.Message = "审核错误!";
}
}
result = new DBResult();
result.Success = true;
result.Message = "审核成功";
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "审核错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
public static DBResult AuditBack_OUT ( String USERID, List<WMSOUTmb> billList, string reasean )
{
var result = new DBResult();
var WorkFlowName = "WMSLOCKAudit";
//var billList = bill.Split(',');
var i = 0;
result.Success = true;
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
/*
var cmdInsert =
db.GetSqlStringCommand(
@"insert into ch_fee_modify (GID,TYPE,APPLYTYPE,REASON,FEEID,BSNO,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,
AMOUNT,CURRENCY,FRT,COMMISSIONRATE,EXCHANGERATE,ISADVANCEDPAY,APPLYUSER,APPLYTIME,
APPLYSTATUS,REMARK,GROUPID,TAXRATE,NOTAXAMOUNT,ACCTAXRATE,TAXUNITPRICE)
values (@GID,@TYPE,@APPLYTYPE,@REASON,@FEEID,@BSNO,@FEENAME,@CUSTOMERNAME,@UNIT,@UNITPRICE,@QUANTITY,
@AMOUNT,@CURRENCY,@FRT,@COMMISSIONRATE,@EXCHANGERATE,@ISADVANCEDPAY,@APPLYUSER,@APPLYTIME,
@APPLYSTATUS,@REMARK,@GROUPID,@TAXRATE,@NOTAXAMOUNT,@ACCTAXRATE,@TAXUNITPRICE) ");
*/
foreach (var bill in billList)
{
Resultmb WorkResult = WorkFlowDAL.DeleteWorkFlowDo(WorkFlowName, bill.GID, USERID, "");
if (WorkResult.Success == true)
{
var cmdupdate = db.GetSqlStringCommand("update WMS_OUT set ISLOCK=6,LOCKUSER='',LOCKTIME='' where GID=@GID");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@GID", DbType.String, bill.GID);
db.ExecuteNonQuery(cmdupdate, tran);
//var GROUPID = Guid.NewGuid().ToString();
//cmdInsert.Parameters.Clear();
//db.AddInParameter(cmdInsert, "@GID", DbType.String, GROUPID);
//db.ExecuteNonQuery(cmdInsert, tran);
}
else
{
i = i + 1;
result.Success = WorkResult.Success;
result.Message = WorkResult.Message;
}
}
if (result.Success == true)
{
result = new DBResult();
result.Success = true;
result.Message = "驳回提交成功";
tran.Commit();
}
else
{
result.Success = true;
result.Message = "驳回完成,其中" + i.ToString() + "票驳回错误,错误信息" + result.Message;
tran.Commit();
}
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "驳回提交错误,请重试或联系系统管理员";
return result;
}
}
return result;
}
#endregion
#region 进口贸易出库取消锁定时,删除费用;
static public int DelFee_ImportDelivery ( string DELIVERYNO )
{
var strSql = new StringBuilder();
strSql.Append(" delete from ch_fee where DELIVERYNO in(select gid from import_deliveryDetail where DELIVERYNO='" + DELIVERYNO + "') ");
Database db = DatabaseFactory.CreateDatabase();
var _count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
return _count;
}
#endregion
}
}