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.
DS7/DSWeb/EntityDA/WmsOutDetailDA.cs

1520 lines
88 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.Text;
using System.Data;
using System.Collections.Generic;
using System.Data.SqlClient;
using DSWeb.Models;
using WebSqlHelper;
namespace DSWeb.EntityDA
{
/// <summary>
/// 数据访问类:wms_out_detail
/// </summary>
public partial class WmsOutDetailDA
{
public WmsOutDetailDA()
{ }
#region Method
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string GID)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(1) from wms_out_detail");
strSql.Append(" where GID=@GID ");
SqlParameter[] parameters = {
new SqlParameter("@GID", SqlDbType.VarChar,100) };
parameters[0].Value = GID;
//return DbHelperSQL.Exists(strSql.ToString(), parameters);
try
{
return bool.Parse(SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters).ToString());
}
catch
{
return false;
}
}
}
/// <summary>
/// 增加一条数据
/// </summary>
public bool Add(WmsOutDetailEntity model)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into wms_out_detail(");
strSql.Append("GID,INBSNO,BSNO,CLIENTGID,CLIENTCODE,CUSTOMERNAME,DODATE,STORAGECODE,STORAGENAME,AREACODE,AREANAME,GOODSCODE,GOODSNAME,GOODSTYPE,GOODSMODEL,GOODSSTANDARD,GOODSPACK,CHARGEUNIT,GOODSPFSL,GOODSOUTFEE,CREATEUSER,CREATETIME,REMARK,GOODSPACKPFSL,GOODSOUTFEEAP,ARFEE,APFEE)");
strSql.Append(" values (");
strSql.Append("@GID,@INBSNO,@BSNO,@CLIENTGID,@CLIENTCODE,@CUSTOMERNAME,@DODATE,@STORAGECODE,@STORAGENAME,@AREACODE,@AREANAME,@GOODSCODE,@GOODSNAME,@GOODSTYPE,@GOODSMODEL,@GOODSSTANDARD,@GOODSPACK,@CHARGEUNIT,@GOODSPFSL,@GOODSOUTFEE,@CREATEUSER,getdate(),@REMARK,@GOODSPACKPFSL,@GOODSOUTFEEAP,@ARFEE,@APFEE)");
SqlParameter[] parameters = {
new SqlParameter("@GID", SqlDbType.VarChar,100),
new SqlParameter("@INBSNO", SqlDbType.VarChar,100),
new SqlParameter("@BSNO", SqlDbType.VarChar,100),
new SqlParameter("@CLIENTGID", SqlDbType.VarChar,36),
new SqlParameter("@CLIENTCODE", SqlDbType.VarChar,20),
new SqlParameter("@CUSTOMERNAME", SqlDbType.VarChar,20),
new SqlParameter("@DODATE", SqlDbType.DateTime),
new SqlParameter("@STORAGECODE", SqlDbType.VarChar,50),
new SqlParameter("@STORAGENAME", SqlDbType.VarChar,100),
new SqlParameter("@AREACODE", SqlDbType.VarChar,50),
new SqlParameter("@AREANAME", SqlDbType.VarChar,100),
new SqlParameter("@GOODSCODE", SqlDbType.VarChar,50),
new SqlParameter("@GOODSNAME", SqlDbType.VarChar,100),
new SqlParameter("@GOODSTYPE", SqlDbType.VarChar,50),
new SqlParameter("@GOODSMODEL", SqlDbType.VarChar,100),
new SqlParameter("@GOODSSTANDARD", SqlDbType.VarChar,100),
new SqlParameter("@GOODSPACK", SqlDbType.VarChar,50),
new SqlParameter("@CHARGEUNIT", SqlDbType.VarChar,10),
new SqlParameter("@GOODSPFSL", SqlDbType.Decimal),
new SqlParameter("@GOODSOUTFEE", SqlDbType.Decimal),
new SqlParameter("@CREATEUSER", SqlDbType.VarChar,36),
//new SqlParameter("@CREATETIME", SqlDbType.DateTime),
new SqlParameter("@REMARK", SqlDbType.VarChar,1024),
new SqlParameter("@GOODSPACKPFSL", SqlDbType.Decimal),
new SqlParameter("@GOODSOUTFEEAP", SqlDbType.Decimal),
new SqlParameter("@ARFEE", SqlDbType.Decimal),
new SqlParameter("@APFEE", SqlDbType.Decimal)
};
parameters[0].Value = model.GID;
parameters[1].Value = model.INBSNO;
parameters[2].Value = model.BSNO;
parameters[3].Value = model.CLIENTGID;
parameters[4].Value = model.CLIENTCODE;
parameters[5].Value = model.CUSTOMERNAME;
parameters[6].Value = model.DODATE;
parameters[7].Value = model.STORAGECODE;
parameters[8].Value = model.STORAGENAME;
parameters[9].Value = model.AREACODE;
parameters[10].Value = model.AREANAME;
parameters[11].Value = model.GOODSCODE;
parameters[12].Value = model.GOODSNAME;
parameters[13].Value = model.GOODSTYPE;
parameters[14].Value = model.GOODSMODEL;
parameters[15].Value = model.GOODSSTANDARD;
parameters[16].Value = model.GOODSPACK;
parameters[17].Value = model.CHARGEUNIT;
parameters[18].Value = model.GOODSPFSL;
parameters[19].Value = model.GOODSOUTFEE;
parameters[20].Value = model.CREATEUSER;
//parameters[19].Value = model.CREATETIME;
parameters[21].Value = model.REMARK;
parameters[22].Value = model.GOODSPACKPFSL;
parameters[23].Value = model.GOODSOUTFEEAP;
parameters[24].Value = model.ARFEE;
parameters[25].Value = model.APFEE;
//int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
int rows = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(WmsOutDetailEntity model)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update wms_out_detail set ");
strSql.Append("INBSNO=@INBSNO,");
strSql.Append("BSNO=@BSNO,");
strSql.Append("CLIENTGID=@CLIENTGID,");
strSql.Append("CLIENTCODE=@CLIENTCODE,");
strSql.Append("CUSTOMERNAME=@CUSTOMERNAME,");
strSql.Append("DODATE=@DODATE,");
strSql.Append("STORAGECODE=@STORAGECODE,");
strSql.Append("STORAGENAME=@STORAGENAME,");
strSql.Append("AREACODE=@AREACODE,");
strSql.Append("AREANAME=@AREANAME,");
strSql.Append("GOODSCODE=@GOODSCODE,");
strSql.Append("GOODSNAME=@GOODSNAME,");
strSql.Append("GOODSTYPE=@GOODSTYPE,");
strSql.Append("GOODSMODEL=@GOODSMODEL,");
strSql.Append("GOODSSTANDARD=@GOODSSTANDARD,");
strSql.Append("GOODSPACK=@GOODSPACK,");
strSql.Append("CHARGEUNIT=@CHARGEUNIT,");
strSql.Append("GOODSPFSL=@GOODSPFSL,");
strSql.Append("GOODSOUTFEE=@GOODSOUTFEE,");
//strSql.Append("CREATEUSER=@CREATEUSER,");
//strSql.Append("CREATETIME=@CREATETIME,");
strSql.Append("REMARK=@REMARK,");
strSql.Append("GOODSPACKPFSL=@GOODSPACKPFSL,");
strSql.Append("GOODSOUTFEEAP=@GOODSOUTFEEAP,");
strSql.Append("ARFEE=@ARFEE,");
strSql.Append("APFEE=@APFEE");
strSql.Append(" where GID=@GID ");
SqlParameter[] parameters = {
new SqlParameter("@INBSNO", SqlDbType.VarChar,100),
new SqlParameter("@BSNO", SqlDbType.VarChar,100),
new SqlParameter("@CLIENTGID", SqlDbType.VarChar,36),
new SqlParameter("@CLIENTCODE", SqlDbType.VarChar,20),
new SqlParameter("@CUSTOMERNAME", SqlDbType.VarChar,20),
new SqlParameter("@DODATE", SqlDbType.DateTime),
new SqlParameter("@STORAGECODE", SqlDbType.VarChar,50),
new SqlParameter("@STORAGENAME", SqlDbType.VarChar,100),
new SqlParameter("@AREACODE", SqlDbType.VarChar,50),
new SqlParameter("@AREANAME", SqlDbType.VarChar,100),
new SqlParameter("@GOODSCODE", SqlDbType.VarChar,50),
new SqlParameter("@GOODSNAME", SqlDbType.VarChar,100),
new SqlParameter("@GOODSTYPE", SqlDbType.VarChar,50),
new SqlParameter("@GOODSMODEL", SqlDbType.VarChar,100),
new SqlParameter("@GOODSSTANDARD", SqlDbType.VarChar,100),
new SqlParameter("@GOODSPACK", SqlDbType.VarChar,50),
new SqlParameter("@CHARGEUNIT", SqlDbType.VarChar,10),
new SqlParameter("@GOODSPFSL", SqlDbType.Decimal),
new SqlParameter("@GOODSOUTFEE", SqlDbType.Decimal),
//new SqlParameter("@CREATEUSER", SqlDbType.VarChar,36),
//new SqlParameter("@CREATETIME", SqlDbType.DateTime),
new SqlParameter("@REMARK", SqlDbType.VarChar,1024),
new SqlParameter("@GOODSPACKPFSL", SqlDbType.Decimal),
new SqlParameter("@GID", SqlDbType.VarChar,100),
new SqlParameter("@GOODSOUTFEEAP", SqlDbType.Decimal),
new SqlParameter("@ARFEE", SqlDbType.Decimal),
new SqlParameter("@APFEE", SqlDbType.Decimal)
};
parameters[0].Value = model.INBSNO;
parameters[1].Value = model.BSNO;
parameters[2].Value = model.CLIENTCODE;
parameters[3].Value = model.CLIENTCODE;
parameters[4].Value = model.CUSTOMERNAME;
parameters[5].Value = model.DODATE;
parameters[6].Value = model.STORAGECODE;
parameters[7].Value = model.STORAGENAME;
parameters[8].Value = model.AREACODE;
parameters[9].Value = model.AREANAME;
parameters[10].Value = model.GOODSCODE;
parameters[11].Value = model.GOODSNAME;
parameters[12].Value = model.GOODSTYPE;
parameters[13].Value = model.GOODSMODEL;
parameters[14].Value = model.GOODSSTANDARD;
parameters[15].Value = model.GOODSPACK;
parameters[16].Value = model.CHARGEUNIT;
parameters[17].Value = model.GOODSPFSL;
parameters[18].Value = model.GOODSOUTFEE;
parameters[19].Value = model.CREATEUSER;
parameters[20].Value = model.CREATETIME;
parameters[21].Value = model.REMARK;
parameters[22].Value = model.GOODSPACKPFSL;
parameters[23].Value = model.GID;
parameters[24].Value = model.GOODSOUTFEEAP;
parameters[25].Value = model.ARFEE;
parameters[26].Value = model.APFEE;
//int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
int rows = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
/// <summary>
/// 增加一条数据
/// </summary>
public bool Add(WmsOutDetailEntity model, string addmodel)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" insert into wms_out_detail(");
strSql.Append("GID,INBSNO,OUTBSNO,BSNO,CUSTOMERNAME,DODATE,STORAGENAME,GOODSNAME,GOODSMODEL,GOODSPFSL,GOODSOUTFEE,CREATEUSER,CREATETIME,REMARK,TRUCKNO,ASSOCIATEDNO,GOODSPACKPFSL,GOODSOUTFEEAP,ARFEE,APFEE)");
strSql.Append(" values (");
strSql.Append("@GID,@INBSNO,@OUTBSNO,@BSNO,@CUSTOMERNAME,@DODATE,@STORAGENAME,@GOODSNAME,@GOODSMODEL,@GOODSPFSL,@GOODSOUTFEE,@CREATEUSER,getdate(),@REMARK,@TRUCKNO,@ASSOCIATEDNO,@GOODSPACKPFSL,@GOODSOUTFEEAP,@ARFEE,@APFEE)");
SqlParameter[] parameters = {
new SqlParameter("@GID", SqlDbType.VarChar,100),
new SqlParameter("@INBSNO", SqlDbType.VarChar,100),
new SqlParameter("@OUTBSNO", SqlDbType.VarChar,100),
new SqlParameter("@BSNO", SqlDbType.VarChar,100),
new SqlParameter("@CUSTOMERNAME", SqlDbType.VarChar,20),
new SqlParameter("@DODATE", SqlDbType.DateTime),
new SqlParameter("@STORAGENAME", SqlDbType.VarChar,100),
new SqlParameter("@GOODSNAME", SqlDbType.VarChar,100),
new SqlParameter("@GOODSMODEL", SqlDbType.VarChar,100),
new SqlParameter("@GOODSPFSL", SqlDbType.Decimal),
new SqlParameter("@GOODSOUTFEE", SqlDbType.Decimal),
new SqlParameter("@CREATEUSER", SqlDbType.VarChar,36),
new SqlParameter("@REMARK", SqlDbType.VarChar,1024),
new SqlParameter("@TRUCKNO", SqlDbType.VarChar,50),
new SqlParameter("@ASSOCIATEDNO", SqlDbType.VarChar,100),
new SqlParameter("@GOODSPACKPFSL", SqlDbType.Decimal),
new SqlParameter("@GOODSOUTFEEAP", SqlDbType.Decimal),
new SqlParameter("@ARFEE", SqlDbType.Decimal),
new SqlParameter("@APFEE", SqlDbType.Decimal)
};
parameters[0].Value = model.GID;
parameters[1].Value = model.INBSNO;
parameters[2].Value = model.OUTBSNO;
parameters[3].Value = model.BSNO;
parameters[4].Value = model.CUSTOMERNAME;
parameters[5].Value = model.DODATE;
parameters[6].Value = model.STORAGENAME;
parameters[7].Value = model.GOODSNAME;
parameters[8].Value = model.GOODSMODEL;
parameters[9].Value = model.GOODSPFSL;
parameters[10].Value = model.GOODSOUTFEE;
parameters[11].Value = model.CREATEUSER;
parameters[12].Value = model.REMARK;
parameters[13].Value = model.TRUCKNO;
parameters[14].Value = model.ASSOCIATEDNO;
parameters[15].Value = model.GOODSPACKPFSL;
parameters[16].Value = model.GOODSOUTFEEAP;
parameters[17].Value = model.ARFEE;
parameters[18].Value = model.APFEE;
int rows = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(WmsOutDetailEntity model, string updatemodel)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update wms_out_detail set ");
strSql.Append("GOODSPFSL=@GOODSPFSL,");
strSql.Append("GOODSOUTFEE=@GOODSOUTFEE");
strSql.Append(" where GID=@GID ");
SqlParameter[] parameters = {
new SqlParameter("@GOODSPFSL", SqlDbType.Decimal),
new SqlParameter("@GOODSOUTFEE", SqlDbType.Decimal),
new SqlParameter("@GID", SqlDbType.VarChar,100)};
parameters[0].Value = model.GOODSPFSL;
parameters[1].Value = model.GOODSOUTFEE;
parameters[2].Value = model.GID;
//int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
int rows = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
#region 删除数据
/// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(string GID)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
StringBuilder strSql = new StringBuilder();
strSql.Append("delete from wms_out_detail ");
strSql.Append(" where GID=@GID ");
SqlParameter[] parameters = {
new SqlParameter("@GID", SqlDbType.VarChar,100) };
parameters[0].Value = GID;
//int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
int rows = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString(), parameters);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
/// <summary>
/// 批量删除数据
/// </summary>
public bool DeleteList(string GIDlist)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
StringBuilder strSql = new StringBuilder();
strSql.Append("delete from wms_out_detail ");
strSql.Append(" where GID in (" + GIDlist + ") ");
//int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
int rows = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSql.ToString());
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
#endregion
#region 获得数据列表
/// <summary>
/// 得到一个对象实体
/// </summary>
public WmsOutDetailEntity GetModel(string GID)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select top 1 GID,INBSNO,BSNO,CLIENTGID,CLIENTCODE,CUSTOMERNAME,DODATE,STORAGECODE,STORAGENAME,AREACODE,AREANAME,GOODSCODE,GOODSNAME,GOODSTYPE,GOODSMODEL,GOODSSTANDARD,GOODSPACK,CHARGEUNIT,GOODSPFSL,GOODSOUTFEE,CREATEUSER,CREATETIME,REMARK,GOODSPACKPFSL,GOODSOUTFEEAP,ARFEE,APFEE,ISCHANGE from wms_out_detail ");
strSql.Append(" where GID=@GID ");
SqlParameter[] parameters = {
new SqlParameter("@GID", SqlDbType.VarChar,100) };
parameters[0].Value = GID;
WmsOutDetailEntity model = new WmsOutDetailEntity();
using(SqlDataReader sqlRead = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString(), parameters))
{
try
{
while (sqlRead.Read())
{
if (sqlRead["GID"] != null && sqlRead["GID"].ToString() != "")
{
model.GID = sqlRead["GID"].ToString();
}
if (sqlRead["INBSNO"] != null && sqlRead["INBSNO"].ToString() != "")
{
model.INBSNO = sqlRead["INBSNO"].ToString();
}
if (sqlRead["BSNO"] != null && sqlRead["BSNO"].ToString() != "")
{
model.BSNO = sqlRead["BSNO"].ToString();
}
if (sqlRead["CLIENTGID"] != null && sqlRead["CLIENTGID"].ToString() != "")
{
model.CLIENTGID = sqlRead["CLIENTGID"].ToString();
}
if (sqlRead["CLIENTCODE"] != null && sqlRead["CLIENTCODE"].ToString() != "")
{
model.CLIENTCODE = sqlRead["CLIENTCODE"].ToString();
}
if (sqlRead["CUSTOMERNAME"] != null && sqlRead["CUSTOMERNAME"].ToString() != "")
{
model.CUSTOMERNAME = sqlRead["CUSTOMERNAME"].ToString();
}
if (sqlRead["DODATE"] != null && sqlRead["DODATE"].ToString() != "")
{
model.DODATE = DateTime.Parse(sqlRead["DODATE"].ToString());
}
if (sqlRead["STORAGECODE"] != null && sqlRead["STORAGECODE"].ToString() != "")
{
model.STORAGECODE = sqlRead["STORAGECODE"].ToString();
}
if (sqlRead["STORAGENAME"] != null && sqlRead["STORAGENAME"].ToString() != "")
{
model.STORAGENAME = sqlRead["STORAGENAME"].ToString();
}
if (sqlRead["AREACODE"] != null && sqlRead["AREACODE"].ToString() != "")
{
model.AREACODE = sqlRead["AREACODE"].ToString();
}
if (sqlRead["AREANAME"] != null && sqlRead["AREANAME"].ToString() != "")
{
model.AREANAME = sqlRead["AREANAME"].ToString();
}
if (sqlRead["GOODSCODE"] != null && sqlRead["GOODSCODE"].ToString() != "")
{
model.GOODSCODE = sqlRead["GOODSCODE"].ToString();
}
if (sqlRead["GOODSNAME"] != null && sqlRead["GOODSNAME"].ToString() != "")
{
model.GOODSNAME = sqlRead["GOODSNAME"].ToString();
}
if (sqlRead["GOODSTYPE"] != null && sqlRead["GOODSTYPE"].ToString() != "")
{
model.GOODSTYPE = sqlRead["GOODSTYPE"].ToString();
}
if (sqlRead["GOODSMODEL"] != null && sqlRead["GOODSMODEL"].ToString() != "")
{
model.GOODSMODEL = sqlRead["GOODSMODEL"].ToString();
}
if (sqlRead["GOODSSTANDARD"] != null && sqlRead["GOODSSTANDARD"].ToString() != "")
{
model.GOODSSTANDARD = sqlRead["GOODSSTANDARD"].ToString();
}
if (sqlRead["GOODSPACK"] != null && sqlRead["GOODSPACK"].ToString() != "")
{
model.GOODSPACK = sqlRead["GOODSPACK"].ToString();
}
if (sqlRead["CHARGEUNIT"] != null && sqlRead["CHARGEUNIT"].ToString() != "")
{
model.CHARGEUNIT = sqlRead["CHARGEUNIT"].ToString();
}
if (sqlRead["GOODSPFSL"] != null && sqlRead["GOODSPFSL"].ToString() != "")
{
model.GOODSPFSL = decimal.Parse(sqlRead["GOODSPFSL"].ToString());
}
if (sqlRead["GOODSOUTFEE"] != null && sqlRead["GOODSOUTFEE"].ToString() != "")
{
model.GOODSOUTFEE = decimal.Parse(sqlRead["GOODSOUTFEE"].ToString());
}
if (sqlRead["CREATEUSER"] != null && sqlRead["CREATEUSER"].ToString() != "")
{
model.CREATEUSER = sqlRead["CREATEUSER"].ToString();
}
if (sqlRead["CREATETIME"] != null && sqlRead["CREATETIME"].ToString() != "")
{
model.CREATETIME = DateTime.Parse(sqlRead["CREATETIME"].ToString());
}
if (sqlRead["REMARK"] != null && sqlRead["REMARK"].ToString() != "")
{
model.REMARK = sqlRead["REMARK"].ToString();
}
if (sqlRead["GOODSPACKPFSL"] != null && sqlRead["GOODSPACKPFSL"].ToString() != "")
{
model.GOODSPACKPFSL = decimal.Parse(sqlRead["GOODSPACKPFSL"].ToString());
}
if (sqlRead["GOODSOUTFEEAP"] != null && sqlRead["GOODSOUTFEEAP"].ToString() != "")
{
model.GOODSOUTFEEAP = decimal.Parse(sqlRead["GOODSOUTFEEAP"].ToString());
}
if (sqlRead["ARFEE"] != null && sqlRead["ARFEE"].ToString() != "")
{
model.ARFEE = decimal.Parse(sqlRead["ARFEE"].ToString());
}
if (sqlRead["APFEE"] != null && sqlRead["APFEE"].ToString() != "")
{
model.APFEE = decimal.Parse(sqlRead["APFEE"].ToString());
}
if (sqlRead["ISCHANGE"] != null && sqlRead["ISCHANGE"].ToString() != "")
{
if ((sqlRead["ISCHANGE"].ToString() == "1") || (sqlRead["ISCHANGE"].ToString().ToLower() == "true"))
{
model.ISCHANGE = true;
}
else
{
model.ISCHANGE = false;
}
}
}
}
catch (Exception exceError)
{
//抛出异常
throw exceError;
}
}
return model;
}
/// <summary>
/// 获得数据列表
/// </summary>
public List<WmsOutDetailEntity> GetModels(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select GID,INBSNO,BSNO,CLIENTGID,CLIENTCODE,CUSTOMERNAME,DODATE,STORAGECODE,STORAGENAME,AREACODE,AREANAME,GOODSCODE,GOODSNAME,GOODSTYPE,GOODSMODEL,GOODSSTANDARD,GOODSPACK,CHARGEUNIT,GOODSPFSL,GOODSOUTFEE,CREATEUSER,CREATETIME,REMARK,GOODSPACKPFSL,GOODSOUTFEEAP,ARFEE,APFEE ");
strSql.Append(" FROM wms_out_detail ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
//return DbHelperSQL.Query(strSql.ToString());
//return SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString());
List<WmsOutDetailEntity> models = new List<WmsOutDetailEntity>();
WmsOutDetailEntity model = new WmsOutDetailEntity();
using (SqlDataReader sqlRead = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString(), null))
{
try
{
while (sqlRead.Read())
{
if (sqlRead["GID"] != null && sqlRead["GID"].ToString() != "")
{
model.GID = sqlRead["GID"].ToString();
}
if (sqlRead["INBSNO"] != null && sqlRead["INBSNO"].ToString() != "")
{
model.INBSNO = sqlRead["INBSNO"].ToString();
}
if (sqlRead["BSNO"] != null && sqlRead["BSNO"].ToString() != "")
{
model.BSNO = sqlRead["BSNO"].ToString();
}
if (sqlRead["CLIENTGID"] != null && sqlRead["CLIENTGID"].ToString() != "")
{
model.CLIENTGID = sqlRead["CLIENTGID"].ToString();
}
if (sqlRead["CLIENTCODE"] != null && sqlRead["CLIENTCODE"].ToString() != "")
{
model.CLIENTCODE = sqlRead["CLIENTCODE"].ToString();
}
if (sqlRead["CUSTOMERNAME"] != null && sqlRead["CUSTOMERNAME"].ToString() != "")
{
model.CUSTOMERNAME = sqlRead["CUSTOMERNAME"].ToString();
}
if (sqlRead["DODATE"] != null && sqlRead["DODATE"].ToString() != "")
{
model.DODATE = DateTime.Parse(sqlRead["DODATE"].ToString());
}
if (sqlRead["STORAGECODE"] != null && sqlRead["STORAGECODE"].ToString() != "")
{
model.STORAGECODE = sqlRead["STORAGECODE"].ToString();
}
if (sqlRead["STORAGENAME"] != null && sqlRead["STORAGENAME"].ToString() != "")
{
model.STORAGENAME = sqlRead["STORAGENAME"].ToString();
}
if (sqlRead["AREACODE"] != null && sqlRead["AREACODE"].ToString() != "")
{
model.AREACODE = sqlRead["AREACODE"].ToString();
}
if (sqlRead["AREANAME"] != null && sqlRead["AREANAME"].ToString() != "")
{
model.AREANAME = sqlRead["AREANAME"].ToString();
}
if (sqlRead["GOODSCODE"] != null && sqlRead["GOODSCODE"].ToString() != "")
{
model.GOODSCODE = sqlRead["GOODSCODE"].ToString();
}
if (sqlRead["GOODSNAME"] != null && sqlRead["GOODSNAME"].ToString() != "")
{
model.GOODSNAME = sqlRead["GOODSNAME"].ToString();
}
if (sqlRead["GOODSTYPE"] != null && sqlRead["GOODSTYPE"].ToString() != "")
{
model.GOODSTYPE = sqlRead["GOODSTYPE"].ToString();
}
if (sqlRead["GOODSMODEL"] != null && sqlRead["GOODSMODEL"].ToString() != "")
{
model.GOODSMODEL = sqlRead["GOODSMODEL"].ToString();
}
if (sqlRead["GOODSSTANDARD"] != null && sqlRead["GOODSSTANDARD"].ToString() != "")
{
model.GOODSSTANDARD = sqlRead["GOODSSTANDARD"].ToString();
}
if (sqlRead["GOODSPACK"] != null && sqlRead["GOODSPACK"].ToString() != "")
{
model.GOODSPACK = sqlRead["GOODSPACK"].ToString();
}
if (sqlRead["CHARGEUNIT"] != null && sqlRead["CHARGEUNIT"].ToString() != "")
{
model.CHARGEUNIT = sqlRead["CHARGEUNIT"].ToString();
}
if (sqlRead["GOODSPFSL"] != null && sqlRead["GOODSPFSL"].ToString() != "")
{
model.GOODSPFSL = decimal.Parse(sqlRead["GOODSPFSL"].ToString());
}
if (sqlRead["GOODSOUTFEE"] != null && sqlRead["GOODSOUTFEE"].ToString() != "")
{
model.GOODSOUTFEE = decimal.Parse(sqlRead["GOODSOUTFEE"].ToString());
}
if (sqlRead["CREATEUSER"] != null && sqlRead["CREATEUSER"].ToString() != "")
{
model.CREATEUSER = sqlRead["CREATEUSER"].ToString();
}
if (sqlRead["CREATETIME"] != null && sqlRead["CREATETIME"].ToString() != "")
{
model.CREATETIME = DateTime.Parse(sqlRead["CREATETIME"].ToString());
}
if (sqlRead["REMARK"] != null && sqlRead["REMARK"].ToString() != "")
{
model.REMARK = sqlRead["REMARK"].ToString();
}
if (sqlRead["GOODSPACKPFSL"] != null && sqlRead["GOODSPACKPFSL"].ToString() != "")
{
model.GOODSPACKPFSL = decimal.Parse(sqlRead["GOODSPACKPFSL"].ToString());
}
if (sqlRead["GOODSOUTFEEAP"] != null && sqlRead["GOODSOUTFEEAP"].ToString() != "")
{
model.GOODSOUTFEEAP = decimal.Parse(sqlRead["GOODSOUTFEEAP"].ToString());
}
if (sqlRead["ARFEE"] != null && sqlRead["ARFEE"].ToString() != "")
{
model.ARFEE = decimal.Parse(sqlRead["ARFEE"].ToString());
}
if (sqlRead["APFEE"] != null && sqlRead["APFEE"].ToString() != "")
{
model.APFEE = decimal.Parse(sqlRead["APFEE"].ToString());
}
models.Add(model);
}
return models;
}
catch (Exception exceError)
{
//抛出异常
throw exceError;
}
}
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select GID,INBSNO,BSNO,CLIENTGID,CLIENTCODE,CUSTOMERNAME,DODATE,STORAGECODE,STORAGENAME,AREACODE,AREANAME,GOODSCODE,GOODSNAME,GOODSTYPE,GOODSMODEL,GOODSSTANDARD,GOODSPACK,CHARGEUNIT,GOODSPFSL,GOODSOUTFEE,CREATEUSER,CREATETIME,REMARK,GOODSPACKPFSL,GOODSOUTFEEAP,ARFEE,APFEE ");
strSql.Append(" FROM wms_out_detail ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
//return DbHelperSQL.Query(strSql.ToString());
return SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString());
}
#endregion
#region 获得前几行数据
/// <summary>
/// 获得前几行数据
/// </summary>
public DataSet GetList(int Top, string strWhere, string filedOrder)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select ");
if (Top > 0)
{
strSql.Append(" top " + Top.ToString());
}
strSql.Append(" GID,INBSNO,BSNO,CLIENTGID,CLIENTCODE,CUSTOMERNAME,DODATE,STORAGECODE,STORAGENAME,AREACODE,AREANAME,GOODSCODE,GOODSNAME,GOODSTYPE,GOODSMODEL,GOODSSTANDARD,GOODSPACK,CHARGEUNIT,GOODSPFSL,GOODSOUTFEE,CREATEUSER,CREATETIME,REMARK,GOODSPACKPFSL,GOODSOUTFEEAP,ARFEE,APFEE ");
strSql.Append(" FROM wms_out_detail ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
strSql.Append(" order by " + filedOrder);
//return DbHelperSQL.Query(strSql.ToString());
return SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString());
}
#endregion
#region 获取记录总数
/// <summary>
/// 获取记录总数
/// </summary>
public int GetRecordCount(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(1) FROM wms_out_detail ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
//object obj = DbHelperSQL.GetSingle(strSql.ToString());
object obj = SqlHelper.GetSingle(SqlHelper.ConnectionStringLocalTransaction, strSql.ToString());
if (obj == null)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}
#endregion
#region 分页获取数据列表
/// <summary>
/// 分页获取数据列表
/// </summary>
public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
if (!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("order by T." + orderby);
}
else
{
strSql.Append("order by T.GID desc");
}
strSql.Append(")AS Row, T.* from wms_out_detail T ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append(" WHERE " + strWhere);
}
strSql.Append(" ) TT");
strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
//return DbHelperSQL.Query(strSql.ToString());
return SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql.ToString());
}
/// <summary>
/// 分页获取数据列表
/// </summary>
public DataSet GetList(int PageSize,int PageIndex,string strWhere)
{
SqlParameter[] parameters = {
new SqlParameter("@tblName", SqlDbType.VarChar, 255),
new SqlParameter("@fldName", SqlDbType.VarChar, 255),
new SqlParameter("@PageSize", SqlDbType.Int),
new SqlParameter("@PageIndex", SqlDbType.Int),
new SqlParameter("@IsReCount", SqlDbType.Bit),
new SqlParameter("@OrderType", SqlDbType.Bit),
new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
};
parameters[0].Value = "wms_out_detail";
parameters[1].Value = "GID";
parameters[2].Value = PageSize;
parameters[3].Value = PageIndex;
parameters[4].Value = 0;
parameters[5].Value = 0;
parameters[6].Value = strWhere;
//return DbHelperSQL.RunProcedure("UP_GetRecordByPage",parameters,"ds");
return SqlHelper.RunProcedure(SqlHelper.ConnectionStringLocalTransaction, "UP_GetRecordByPage", parameters, "ds");
}
#endregion
#region 根据SQL语句查询仓储费率数据集
/// <summary>
/// 根据SQL语句查询仓储费率数据集
/// </summary>
/// <param name="strSql"></param>
/// <returns></returns>
public DataSet GetRateListByCondition(string strSql)
{
DataSet userSet = new DataSet();
userSet = SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql);
return userSet;
}
#endregion
#region 计算仓储时间差 +1
/// <summary>
/// 计算仓储时间差 +1
/// </summary>
public int GetDaysCount(string ymd, string indate, string outdate)
{
string strSql = String.Format(" select datediff({0},'{1}','{2}') ", ymd, indate, outdate);
if (ymd == "day")
{
strSql = String.Format(" select datediff({0},'{1}','{2}')+1 ", ymd, indate, outdate);
}
object obj = SqlHelper.GetSingle(SqlHelper.ConnectionStringLocalTransaction, strSql.ToString());
if (obj == null)
{
return 0;
}
else
{
if (ymd == "month")
{
int inum = int.Parse(obj.ToString());
DateTime dt = DateTime.Parse(indate).AddMonths(inum).AddDays(-1);
if (DateTime.Parse(outdate) > dt)
{
inum = inum + 1;
return Convert.ToInt32(inum);
}
}
return Convert.ToInt32(obj);
}
}
#endregion
#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>
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);//实际仓储月数
sjMonth = nowscale;// feeMonth;// (feeMonth - nowscale);//实际仓储月数
sjMonth2 = feedays;//实际仓储月数,如果是最后一条的判断数
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(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);//实际仓储月数
sjMonth = nowscale;// feeMonth;// (feeMonth - nowscale);//实际仓储月数
sjMonth2 = feedays;//实际仓储月数,如果是最后一条的判断数
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
#endregion Method
}
}