|
|
using System;
|
|
|
using System.IO;
|
|
|
using System.Data;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text;
|
|
|
using DSWeb.MvcShipping.Models.WMSOUT_GuiGe;
|
|
|
using DSWeb.MvcShipping.Models.WMSRate;
|
|
|
using WebSqlHelper;
|
|
|
|
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
using DSWeb.EntityDA;
|
|
|
using DSWeb.Areas.CommMng.Models;
|
|
|
using HcUtility.Comm;
|
|
|
using System.Data.SqlClient;
|
|
|
//using DSWeb.DataAccess;
|
|
|
using HcUtility.Core;
|
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
|
using Ivony.Html;
|
|
|
|
|
|
using DSWeb.MvcShipping.DAL.MsSysParamSet;
|
|
|
using Ivony.Fluent;
|
|
|
using DSWeb.MvcShipping.DAL.WMSStock;
|
|
|
using System.Configuration;
|
|
|
using DSWeb.Areas.MvcShipping.Helper;
|
|
|
using NPOI.HSSF.Record;
|
|
|
using Quartz.Util;
|
|
|
|
|
|
namespace DSWeb.MvcShipping.DAL.WMSOUT_GuiGeDAL
|
|
|
{
|
|
|
public class WMSOUT_GuiGeDAL
|
|
|
{
|
|
|
#region 出库管理(规格) 查询主表
|
|
|
static public List<WMSOUT_GuiGe> GetDataListHJ(string strCondition, string userid, string usercode, string companyid, int start=0, int limit=10000, string sort = null)
|
|
|
{
|
|
|
|
|
|
var rangstr = GetRangDAStr("index", userid, usercode, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid);
|
|
|
var strSql = new StringBuilder();
|
|
|
|
|
|
strSql.Append(" *, MODIFIEDUSERNAME=(select top 1 [SHOWNAME] from [user] where gid=wms_out.MODIFIEDUSER),FEESTATUSREF=(case when FEESTATUS='True' then '锁定' else '未锁定' end)"
|
|
|
+ ", dbo.F_GetBillDrFeeStatus_WMS(GID) DRFEESTATUS"//需求编号:SR2017071300002-1
|
|
|
+ ", dbo.F_GetBillCrFeeStatus_WMS(GID) CRFEESTATUS"//需求编号:SR2017071300002-1
|
|
|
//+ ", MBLNO=isnull((select top 1 MBLNO from op_seai where bsno=wms_out.ASSOCIATEDNO),(select top 1 BLNO from wms where ASSOCIATEDNO=wms_out.ASSOCIATEDNO))"//需求编号:SR2017071300002-2
|
|
|
+ ",MBLNO = ISNULL( "
|
|
|
+ "(select top 1 BLNO from wms where gid = (select top 1 inbsno from wms_out_detail where outbsno = wms_out.bsno)),"
|
|
|
+ "(select top 1 BLNO from wms where gid = (select top 1 ASSOCIATEDNO from wms_in where gid = (select top 1 inbsno from wms_out_detail where outbsno = wms_out.bsno))))"
|
|
|
// + ", WMSNO=(case when (CHARGEUNIT='CBM' or CHARGEUNIT='箱') then (select top 1 WMSNO from wms where gid=(select top 1 ASSOCIATEDNO from wms_in where gid=(select top 1 inbsno from wms_out_detail where outbsno=wms_out.bsno))) else (select top 1 WMSNO from wms where gid=(select top 1 inbsno from wms_out_detail where outbsno=wms_out.bsno)) end)"//需求编号:SR2017071300002-2
|
|
|
+ ", WMSNO = (case when(CHARGEUNIT = 'CBM' or CHARGEUNIT = '箱') then(select top 1 WMSNO from wms where gid = (select top 1 ASSOCIATEDNO from wms_in where gid = (select top 1 inbsno from wms_out_detail where outbsno = wms_out.bsno)))"
|
|
|
+ " else ISNULL("
|
|
|
+ " (select top 1 WMSNO from wms where gid = (select top 1 inbsno from wms_out_detail where outbsno = wms_out.bsno)),"
|
|
|
+ " (select top 1 WMSNO from wms where gid = (select top 1 ASSOCIATEDNO from wms_in where gid = (select top 1 inbsno from wms_out_detail where outbsno = wms_out.bsno)))) end)"
|
|
|
+ ", CONTRACTNO=(select top 1 CONTRACTNO from wms where gid=(select top 1 ASSOCIATEDNO from wms_in where gid=(select top 1 inbsno from wms_out_detail where outbsno=wms_out.bsno)))"//需求编号:SR2017071300002-2
|
|
|
+ ", ISBONDED=isnull((select top 1 (case when ISBONDED=1 then '是' else '否' end) as ISBONDED from op_seai where bsno=wms_out.ASSOCIATEDNO),'否')"//需求编号:SR2017071300002-2
|
|
|
|
|
|
+ ",dbo.F_Str_wmsoutgoodsname(wms_out.BSNO) DETAILGOODSNAME"//需求编号:SR2017071300002-2
|
|
|
+ ",FilePath FilePath_2"
|
|
|
+ ",(SELECT distinct wi.PICIHAO+'/' FROM wms_in wi where wi.GID in (select inbsno from wms_out_detail where BSNO=wms_out.bsno) and ISNULL(wi.PICIHAO,'')<>'' FOR XML PATH(''))as PICIHAO "
|
|
|
+ " ,isnull(CNTRTOTAL,'')CNTRTOTAL_2 ,isnull(KGS_OUT,0)KGS_OUT_2 ,isnull(PKGS_OUT,0)PKGS_OUT_2 ,isnull(CBM_OUT,0)CBM_OUT_2 "
|
|
|
+ " , dbo.F_WMSOUTCOUNTRY_CN(BSNO) COUNTRYOFORIGIN_2 "
|
|
|
+ " ,case when exists(select 1 from OP_LOGICINFO where bsno=wms_out.BSNO) then '已提交钉钉' else '' end DingTalkAudit " //2023-1-28 增加对钉钉审核的op_logicinfo数据的支持 如果存在OP_LOGICINFO.bsno=wms_out.bsno 则显示“已提交钉钉”
|
|
|
+ " from wms_out WITH(NOLOCK) where (ISDELETE=0 or ISDELETE is null)");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
//
|
|
|
var sortstring = DatasetSort.Getsortstring(sort);
|
|
|
//if (!string.IsNullOrEmpty(sortstring))
|
|
|
//{
|
|
|
// strSql.Append(" order by " + sortstring);
|
|
|
//}
|
|
|
//else
|
|
|
//{
|
|
|
// strSql.Append(" order by DODATE desc");
|
|
|
//}
|
|
|
|
|
|
var strSql2 = new StringBuilder();
|
|
|
|
|
|
strSql2.Append(@"SELECT * from (SELECT row_number() over (");
|
|
|
if (!string.IsNullOrEmpty(sortstring))
|
|
|
{
|
|
|
strSql2.Append(" order by " + sortstring);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql2.Append(" order by DODATE desc");
|
|
|
}
|
|
|
|
|
|
strSql2.Append(@") as num , ");
|
|
|
|
|
|
strSql2.Append(strSql);
|
|
|
|
|
|
strSql2.Append(@")as t ");
|
|
|
strSql2.Append(string.Format("where t.num>{0} and t.num<={1} order by t.num ", start, start + limit));
|
|
|
|
|
|
return SetDataHJ(strSql2);
|
|
|
}
|
|
|
|
|
|
private static List<WMSOUT_GuiGe> SetDataHJ(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<WMSOUT_GuiGe>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
WMSOUT_GuiGe data = new WMSOUT_GuiGe();
|
|
|
#region Set DB data to Object
|
|
|
//字段过滤器(判断是否存在该列)
|
|
|
reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= 'EXPRESSEXNO'";
|
|
|
if (reader.GetSchemaTable().DefaultView.Count > 0)
|
|
|
data.EXPRESSEXNO = Convert.ToString(reader["EXPRESSEXNO"]);
|
|
|
|
|
|
reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= 'EXPRESSCORP'";
|
|
|
if (reader.GetSchemaTable().DefaultView.Count > 0)
|
|
|
data.EXPRESSCORP = Convert.ToString(reader["EXPRESSCORP"]);
|
|
|
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
|
|
|
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//惟一编号
|
|
|
data.ASSOCIATEDNO = (reader["ASSOCIATEDNO"] == null ? "" : Convert.ToString(reader["ASSOCIATEDNO"]));//关联号
|
|
|
data.BSNO = (reader["BSNO"] == null ? "" : Convert.ToString(reader["BSNO"]));//仓单明细号
|
|
|
data.ISDETAIL = (reader["ISDETAIL"] == null? "-1": Convert.ToString(reader["ISDETAIL"]));
|
|
|
|
|
|
data.CLIENTGID = (reader["CLIENTGID"] == null ? "" : Convert.ToString(reader["CLIENTGID"]));//CLIENTGID
|
|
|
data.CLIENTCODE = (reader["CLIENTCODE"] == null ? "" : Convert.ToString(reader["CLIENTCODE"]));//客户编码
|
|
|
data.CUSTOMERNAME = (reader["CUSTOMERNAME"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME"]));//客户名称
|
|
|
if (reader["DODATE"] != null && reader["DODATE"].ToString().Trim().IndexOf("0001") < 0 && reader["DODATE"].ToString().Trim().IndexOf("1900") < 0 && reader["DODATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.DODATE = Convert.ToDateTime(reader["DODATE"]);//操作时间
|
|
|
}
|
|
|
data.STORAGECODE = (reader["STORAGECODE"] == null ? "" : Convert.ToString(reader["STORAGECODE"]));//仓库编码
|
|
|
data.STORAGENAME = (reader["STORAGENAME"] == null ? "" : Convert.ToString(reader["STORAGENAME"]));//仓库名称
|
|
|
data.AREACODE = (reader["AREACODE"] == null ? "" : Convert.ToString(reader["AREACODE"]));//储位编码
|
|
|
data.AREANAME = (reader["AREANAME"] == null ? "" : Convert.ToString(reader["AREANAME"]));//储位名称
|
|
|
data.GOODSCODE = (reader["GOODSCODE"] == null ? "" : Convert.ToString(reader["GOODSCODE"]));//货物编号
|
|
|
|
|
|
data.GOODSNAME = (reader["GOODSNAME"] == null ? "" : Convert.ToString(reader["GOODSNAME"]));//货物名称
|
|
|
if (reader["GOODSNAME"] == null || reader["GOODSNAME"] == "")
|
|
|
{
|
|
|
//data.GOODSNAME = (reader["DETAILGOODSNAME"] == null ? "" : Convert.ToString(reader["DETAILGOODSNAME"]));//如无则使用明细内品名
|
|
|
data.GOODSNAME = (reader["GOODSNAMEID"] == null ? "" : Convert.ToString(reader["GOODSNAMEID"]));//品名,20181210,xxq Modified
|
|
|
}
|
|
|
|
|
|
data.GOODSTYPE = (reader["GOODSTYPE"] == null ? "" : Convert.ToString(reader["GOODSTYPE"]));//货物类型
|
|
|
data.GOODSMODEL = (reader["GOODSMODEL"] == null ? "" : Convert.ToString(reader["GOODSMODEL"]));//型号
|
|
|
data.GOODSSTANDARD = (reader["GOODSSTANDARD"] == null ? "" : Convert.ToString(reader["GOODSSTANDARD"]));//规格
|
|
|
data.GOODSPACK = (reader["GOODSPACK"] == null ? "" : Convert.ToString(reader["GOODSPACK"]));//包装
|
|
|
data.GOODSPFSL = (reader["GOODSPFSL"] == null ? 0 : Convert.ToDecimal(reader["GOODSPFSL"]));//出库量
|
|
|
data.GOODSOUTFEE = (reader["GOODSOUTFEE"] == null ? 0 : Convert.ToDecimal(reader["GOODSOUTFEE"]));//仓储费用
|
|
|
data.TRUCKNO = (reader["TRUCKNO"] == null ? "" : Convert.ToString(reader["TRUCKNO"]));//TRUCKNO
|
|
|
data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//备注
|
|
|
data.ISDELETE = (reader["ISDELETE"] == null ? false : Convert.ToBoolean(reader["ISDELETE"]));//是否废除
|
|
|
if (reader["DELETETIME"] != null && reader["DELETETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["DELETETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["DELETETIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.DELETETIME = Convert.ToDateTime(reader["DELETETIME"]);//废除时间
|
|
|
}
|
|
|
data.DELETEUSER = (reader["DELETEUSER"] == null ? "" : Convert.ToString(reader["DELETEUSER"]));//废除操作人
|
|
|
data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//创建人
|
|
|
if (reader["CREATETIME"] != null && reader["CREATETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["CREATETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["CREATETIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间
|
|
|
}
|
|
|
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//最后一次更新操作人
|
|
|
if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//最后一次更新操作时间
|
|
|
}
|
|
|
data.GOODSPACKPFSL = (reader["GOODSPACKPFSL"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACKPFSL"]));//GOODSPACKPFSL
|
|
|
data.TRUCKNAME = (reader["TRUCKNAME"] == null ? "" : Convert.ToString(reader["TRUCKNAME"]));//TRUCKNAME
|
|
|
data.WMSOP = (reader["WMSOP"] == null ? "" : Convert.ToString(reader["WMSOP"]));//WMSOP
|
|
|
data.STOREMAN = (reader["STOREMAN"] == null ? "" : Convert.ToString(reader["STOREMAN"]));//STOREMAN
|
|
|
data.ISLOCK = (reader["ISLOCK"] == null ? false : Convert.ToBoolean(reader["ISLOCK"]));//ISLOCK
|
|
|
data.LOCKUSER = (reader["LOCKUSER"] == null ? "" : Convert.ToString(reader["LOCKUSER"]));//LOCKUSER
|
|
|
if (reader["LOCKTIME"] != null && reader["LOCKTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["LOCKTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["LOCKTIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.LOCKTIME = Convert.ToDateTime(reader["LOCKTIME"]);//LOCKTIME
|
|
|
}
|
|
|
data.GOODSOUTFEEAP = (reader["GOODSOUTFEEAP"] == null ? 0 : Convert.ToDecimal(reader["GOODSOUTFEEAP"]));//GOODSOUTFEEAP
|
|
|
data.ARFEE = (reader["ARFEE"] == null ? 0 : Convert.ToDecimal(reader["ARFEE"]));//ARFEE
|
|
|
data.ARFEE_2 = (reader["ARFEE_2"] == null ? 0 : Convert.ToDecimal(reader["ARFEE_2"]));//ARFEE_2,需求编号:SR2017073000001
|
|
|
data.APFEE = (reader["APFEE"] == null ? 0 : Convert.ToDecimal(reader["APFEE"]));//APFEE
|
|
|
data.INSPECTIONNO = (reader["INSPECTIONNO"] == null ? "" : Convert.ToString(reader["INSPECTIONNO"]));//INSPECTIONNO
|
|
|
data.CUSTOMNO = (reader["CUSTOMNO"] == null ? "" : Convert.ToString(reader["CUSTOMNO"]));//CUSTOMNO
|
|
|
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//CORPID
|
|
|
data.CLIENTNAMEOLD = (reader["CLIENTNAMEOLD"] == null ? "" : Convert.ToString(reader["CLIENTNAMEOLD"]));//CLIENTNAMEOLD
|
|
|
if (reader["OLDCUSTFEEDATE"] != null && reader["OLDCUSTFEEDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["OLDCUSTFEEDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["OLDCUSTFEEDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.OLDCUSTFEEDATE = Convert.ToDateTime(reader["OLDCUSTFEEDATE"]);//OLDCUSTFEEDATE
|
|
|
}
|
|
|
data.CLIENTBSNO = (reader["CLIENTBSNO"] == null ? "" : Convert.ToString(reader["CLIENTBSNO"]));//CLIENTBSNO
|
|
|
data.ARCLIENT = (reader["ARCLIENT"] == null ? "" : Convert.ToString(reader["ARCLIENT"]));//ARCLIENT
|
|
|
data.INGIDNEW = (reader["INGIDNEW"] == null ? "" : Convert.ToString(reader["INGIDNEW"]));//INGIDNEW
|
|
|
data.TOTALNO = (reader["TOTALNO"] == null ? "" : Convert.ToString(reader["TOTALNO"]));//TOTALNO
|
|
|
data.REMARK2 = (reader["REMARK2"] == null ? "" : Convert.ToString(reader["REMARK2"]));//REMARK2
|
|
|
if (reader["VALIDDATE"] != null && reader["VALIDDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["VALIDDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["VALIDDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.VALIDDATE = Convert.ToDateTime(reader["VALIDDATE"]);//VALIDDATE
|
|
|
}
|
|
|
data.CHARGEUNIT = (reader["CHARGEUNIT"] == null ? "" : Convert.ToString(reader["CHARGEUNIT"]));//CHARGEUNIT
|
|
|
data.MBLNONEW = (reader["MBLNONEW"] == null ? "" : Convert.ToString(reader["MBLNONEW"]));//MBLNONEW
|
|
|
data.ISCHANGE = (reader["ISCHANGE"] == null ? false : Convert.ToBoolean(reader["ISCHANGE"]));//ISCHANGE
|
|
|
data.MARKETVALUE = (reader["MARKETVALUE"] == null ? 0 : Convert.ToDecimal(reader["MARKETVALUE"]));//MARKETVALUE
|
|
|
data.ARCLIENTWMSOUT = (reader["ARCLIENTWMSOUT"] == null ? "" : Convert.ToString(reader["ARCLIENTWMSOUT"]));//ARCLIENTWMSOUT
|
|
|
data.ISCOLLECTING = (reader["ISCOLLECTING"] == null ? false : Convert.ToBoolean(reader["ISCOLLECTING"]));//ISCOLLECTING
|
|
|
//data.WMSOUTSTATUS = (reader["WMSOUTSTATUS"] == null ? 0 : Convert.ToInt32(reader["WMSOUTSTATUS"]));//WMSOUTSTATUS
|
|
|
if ((reader["WMSOUTSTATUS"] == null) || (reader["WMSOUTSTATUS"] == DBNull.Value))
|
|
|
{
|
|
|
data.WMSOUTSTATUS = 0;
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
Convert.ToInt32(reader["WMSOUTSTATUS"]);
|
|
|
}
|
|
|
data.BZTCHNO = (reader["BZTCHNO"] == null ? "" : Convert.ToString(reader["BZTCHNO"]));//BZTCHNO
|
|
|
data.MODIFIEDUSERNAME = (reader["MODIFIEDUSERNAME"] == null ? "" : Convert.ToString(reader["MODIFIEDUSERNAME"]));
|
|
|
data.GOODSNAMEID = (reader["GOODSNAMEID"] == null ? "" : Convert.ToString(reader["GOODSNAMEID"]));//品名gid
|
|
|
data.WHS_CODE = (reader["WHS_CODE"] == null ? "" : Convert.ToString(reader["WHS_CODE"]));//库别
|
|
|
data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//会计期间
|
|
|
data.FEESTATUS = (reader["FEESTATUS"] == null ? false : Convert.ToBoolean(reader["FEESTATUS"]));//费用状态
|
|
|
data.FEESTATUSREF = (reader["FEESTATUSREF"] == null ? "" : Convert.ToString(reader["FEESTATUSREF"]));//费用状态
|
|
|
data.DRFEESTATUS = getfeestatus(Convert.ToString(reader["DRFEESTATUS"]));//需求编号:SR2017071300002-1
|
|
|
data.CRFEESTATUS = getfeestatus(Convert.ToString(reader["CRFEESTATUS"]));//需求编号:SR2017071300002-1
|
|
|
data.MBLNO = (reader["MBLNO"] == null ? "" : Convert.ToString(reader["MBLNO"]));//需求编号:SR2017071300002-2
|
|
|
data.WMSNO = (reader["WMSNO"] == null ? "" : Convert.ToString(reader["WMSNO"]));//需求编号:SR2017071300002-2
|
|
|
data.ISBONDED = (reader["ISBONDED"] == null ? "" : Convert.ToString(reader["ISBONDED"]));//需求编号:SR2017071300002-2
|
|
|
data.FilePath = (reader["FilePath_2"] == null ? "" : Convert.ToString(reader["FilePath"]));
|
|
|
data.PICIHAO = (reader["PICIHAO"] == null ? "" : Convert.ToString(reader["PICIHAO"]));//批次号
|
|
|
if ((reader["EIP"] == null) || (reader["EIP"] == DBNull.Value))
|
|
|
{
|
|
|
data.EIP = false;
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
data.EIP=Convert.ToBoolean(reader["EIP"]);
|
|
|
}
|
|
|
|
|
|
//SR2020030900003
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "CNTRTOTAL_2"))
|
|
|
data.CNTRTOTAL = (reader["CNTRTOTAL"] == DBNull.Value ? "" : Convert.ToString(reader["CNTRTOTAL"]));
|
|
|
//Convert.ToString(reader["CNTRTOTAL"]);
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "KGS_OUT_2"))
|
|
|
data.KGS_OUT = (reader["KGS_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["KGS_OUT"]));//KGS_OUT
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "PKGS_OUT_2"))
|
|
|
data.PKGS_OUT = (reader["PKGS_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["PKGS_OUT"]));//KGS_OUT
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "CBM_OUT_2"))
|
|
|
data.CBM_OUT = (reader["CBM_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["CBM_OUT"]));//KGS_OUT
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "COUNTRYOFORIGIN_2"))
|
|
|
data.COUNTRYOFORIGIN = reader["COUNTRYOFORIGIN"].ToString();
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "DingTalkAudit"))
|
|
|
data.DingTalkAudit = reader["DingTalkAudit"].ToString();
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
reader.Dispose();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
public static int getTotalCountHJ(string strCondition, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
var rangstr = GetRangDAStr("index", userid, usercode, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select count(*) ");
|
|
|
strSql.Append(" from wms_out WITH(NOLOCK) where (ISDELETE=0 or ISDELETE is null) ");
|
|
|
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
int cnt = 0;
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
cnt = Convert.ToInt32(reader[0]);
|
|
|
}
|
|
|
}
|
|
|
return cnt;
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取费用状态的显示文字,需求编号:SR2017071300002-1
|
|
|
/// </summary>
|
|
|
/// <param name="feestatusint"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string getfeestatus(string feestatusint)
|
|
|
{
|
|
|
var result = "";
|
|
|
if (feestatusint == "0:")
|
|
|
{
|
|
|
return "审核通过";
|
|
|
}
|
|
|
else if (feestatusint == "1:")
|
|
|
{
|
|
|
return "录入状态";
|
|
|
}
|
|
|
else if (feestatusint == "2:")
|
|
|
{
|
|
|
return "提交审核";
|
|
|
}
|
|
|
else if (feestatusint == "8:")
|
|
|
{
|
|
|
return "部分结算";
|
|
|
}
|
|
|
else if (feestatusint == "9:")
|
|
|
{
|
|
|
return "结算完毕";
|
|
|
}
|
|
|
else if (feestatusint == "")
|
|
|
{
|
|
|
return "未录入";
|
|
|
}
|
|
|
else if (feestatusint == "3:")
|
|
|
{
|
|
|
return "申请修改";
|
|
|
}
|
|
|
else if (feestatusint == "4:")
|
|
|
{
|
|
|
return "申请删除";
|
|
|
}
|
|
|
else if (feestatusint == "6:")
|
|
|
{
|
|
|
return "驳回提交";
|
|
|
}
|
|
|
else if (feestatusint == "7:")
|
|
|
{
|
|
|
return "驳回申请";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("9:") > -1)
|
|
|
{
|
|
|
return "部分结算";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("8:") > -1)
|
|
|
{
|
|
|
return "部分结算";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("0:") > -1)
|
|
|
{
|
|
|
return "部分审核";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("2:") > -1)
|
|
|
{
|
|
|
return "部分提交";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("6:") > -1)
|
|
|
{
|
|
|
return "驳回提交";
|
|
|
}
|
|
|
else if (feestatusint.IndexOf("7:") > -1)
|
|
|
{
|
|
|
return "驳回申请";
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 查询明细表
|
|
|
|
|
|
|
|
|
static public List<VwWmsDetailModels> GetDetailList(string opStatus, string strCondition,string outType, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
string sTableName = "VW_WMS_DETAIL_NULL_OUTSTOCKDETAIL";
|
|
|
if (opStatus == "add")
|
|
|
{
|
|
|
if (outType == "StockOut")
|
|
|
{
|
|
|
sTableName = "VW_WMS_DETAIL_NULL_OUTSTOCK";
|
|
|
}
|
|
|
var rangstr = GetImpRangDAStr("index", userid, usercode, companyid);
|
|
|
if (!string.IsNullOrEmpty(rangstr))
|
|
|
{
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strCondition = strCondition + " and " + rangstr;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strCondition = rangstr;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (opStatus == "edit")
|
|
|
{
|
|
|
sTableName = "VW_WMS_DETAIL";
|
|
|
}
|
|
|
|
|
|
strSql.Append(" SELECT *,ISBONDEDNAME=(case when ISBONDED=1 then '是' else '否' end)");
|
|
|
|
|
|
//20191206
|
|
|
strSql.Append(" ,(select GOODSCKQSTOCK from wms_out_detail where gid = gid_out) GOODSCKQSTOCK ");
|
|
|
|
|
|
strSql.Append(" from " + sTableName + " WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" and ISLOCK=1 and ISLOCK2=0 " );
|
|
|
|
|
|
|
|
|
if (outType == "StockOut")
|
|
|
{
|
|
|
strSql.Append(" and isnull(isdetail, -1) <> '1' ");
|
|
|
|
|
|
}
|
|
|
else if (outType == "StockOutDetail")
|
|
|
{
|
|
|
strSql.Append(" and isnull(isdetail, -1) <> '0' ");
|
|
|
|
|
|
}
|
|
|
|
|
|
strSql.Append(" order by WMSDATE,CUSTOMERNAME,BLNO,WMSNO,BSNO_OUT");
|
|
|
return SetDetail(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<VwWmsDetailModels> SetDetail(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<VwWmsDetailModels>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
VwWmsDetailModels data = new VwWmsDetailModels();
|
|
|
#region Set DB data to Object
|
|
|
//字段过滤器(判断是否存在该列)
|
|
|
reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= 'EXPRESSEXNO'";
|
|
|
if (reader.GetSchemaTable().DefaultView.Count > 0)
|
|
|
data.EXPRESSEXNO = Convert.ToString(reader["EXPRESSEXNO"]);
|
|
|
|
|
|
reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= 'EXPRESSCORP'";
|
|
|
if (reader.GetSchemaTable().DefaultView.Count > 0)
|
|
|
data.EXPRESSCORP = Convert.ToString(reader["EXPRESSCORP"]);
|
|
|
|
|
|
data.PICIHAO = (reader["PICIHAO"] == null ? "" : Convert.ToString(reader["PICIHAO"]));//批次号
|
|
|
data.NID = (reader["NID"] == null ? "" : Convert.ToString(reader["NID"]));//NID
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//GID
|
|
|
data.ASSOCIATEDNO = (reader["ASSOCIATEDNO"] == null ? "" : Convert.ToString(reader["ASSOCIATEDNO"]));//ASSOCIATEDNO
|
|
|
data.BSNO = (reader["BSNO"] == null ? "" : Convert.ToString(reader["BSNO"]));//BSNO
|
|
|
data.BLNO = (reader["BLNO"] == null ? "" : Convert.ToString(reader["BLNO"]));//BLNO
|
|
|
data.CONTRACTNO = (reader["CONTRACTNO"] == null ? "" : Convert.ToString(reader["CONTRACTNO"]));//CONTRACTNO
|
|
|
data.STORAGENAME = (reader["STORAGENAME"] == null ? "" : Convert.ToString(reader["STORAGENAME"]));//STORAGENAME
|
|
|
data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);
|
|
|
//if (reader["GOODSNAME"] == null || reader["GOODSNAME"] == "")
|
|
|
//{
|
|
|
//data.GOODSNAME = (reader["DETAILGOODSNAME"] == null ? "" : Convert.ToString(reader["DETAILGOODSNAME"]));//如无则使用明细内品名
|
|
|
//data.GOODSNAME = (reader["GOODSNAMEID"] == null ? "" : Convert.ToString(reader["GOODSNAMEID"]));//品名,20181210,xxq Modified
|
|
|
//}
|
|
|
|
|
|
data.GOODSMODEL = (reader["GOODSMODEL"] == null ? "" : Convert.ToString(reader["GOODSMODEL"]));//GOODSMODEL
|
|
|
data.GOODSPACK = (reader["GOODSPACK"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSPACK"]));//GOODSPACK
|
|
|
data.CHARGEUNIT = (reader["CHARGEUNIT"] == null ? "" : Convert.ToString(reader["CHARGEUNIT"]));//CHARGEUNIT
|
|
|
data.GOODSRKSL = (reader["GOODSRKSL"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSRKSL"]));//GOODSRKSL
|
|
|
data.GOODSSTOCK = (reader["GOODSSTOCK"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSSTOCK"]));//GOODSSTOCK
|
|
|
data.FREESTORAGEPERIOD = (reader["FREESTORAGEPERIOD"] == DBNull.Value ? 0 : Convert.ToInt32(reader["FREESTORAGEPERIOD"]));//FREESTORAGEPERIOD
|
|
|
data.ISLOCK = (reader["ISLOCK"] == DBNull.Value ? 0 : Convert.ToInt32(reader["ISLOCK"]));//ISLOCK
|
|
|
if (reader["LOCKTIME"] != null && reader["LOCKTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["LOCKTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["LOCKTIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.LOCKTIME = Convert.ToDateTime(reader["LOCKTIME"]);//LOCKTIME
|
|
|
}
|
|
|
data.LOCKUSER = (reader["LOCKUSER"] == null ? "" : Convert.ToString(reader["LOCKUSER"]));//LOCKUSER
|
|
|
data.ISDELETE = (reader["ISDELETE"] == null ? false : Convert.ToBoolean(reader["ISDELETE"]));//ISDELETE
|
|
|
if (reader["DELETETIME"] != null && reader["DELETETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["DELETETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["DELETETIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.DELETETIME = Convert.ToDateTime(reader["DELETETIME"]);//DELETETIME
|
|
|
}
|
|
|
data.DELETEUSER = (reader["DELETEUSER"] == null ? "" : Convert.ToString(reader["DELETEUSER"]));//DELETEUSER
|
|
|
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//MODIFIEDUSER
|
|
|
if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//MODIFIEDTIME
|
|
|
}
|
|
|
data.GID_OUT = (reader["GID_OUT"] == null ? "" : Convert.ToString(reader["GID_OUT"]));//GID_OUT
|
|
|
data.ASSOCIATEDNO_OUT = (reader["ASSOCIATEDNO_OUT"] == null ? "" : Convert.ToString(reader["ASSOCIATEDNO_OUT"]));//ASSOCIATEDNO_OUT
|
|
|
data.INBSNO_OUT = (reader["INBSNO_OUT"] == null ? "" : Convert.ToString(reader["INBSNO_OUT"]));//INBSNO_OUT
|
|
|
data.OUTBSNO_OUT = (reader["OUTBSNO_OUT"] == null ? "" : Convert.ToString(reader["OUTBSNO_OUT"]));//OUTBSNO_OUT
|
|
|
data.BSNO_OUT = (reader["BSNO_OUT"] == null ? "" : Convert.ToString(reader["BSNO_OUT"]));//BSNO_OUT
|
|
|
data.CLIENTGID_OUT = (reader["CLIENTGID_OUT"] == null ? "" : Convert.ToString(reader["CLIENTGID_OUT"]));//CLIENTGID_OUT
|
|
|
data.CLIENTCODE_OUT = (reader["CLIENTCODE_OUT"] == null ? "" : Convert.ToString(reader["CLIENTCODE_OUT"]));//CLIENTCODE_OUT
|
|
|
data.CUSTOMERNAME_OUT = (reader["CUSTOMERNAME_OUT"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME_OUT"]));//CUSTOMERNAME_OUT
|
|
|
data.DODATE_OUT = (reader["DODATE_OUT"] == null ? "" : Convert.ToString(reader["DODATE_OUT"]));//DODATE_OUT
|
|
|
data.STORAGECODE_OUT = (reader["STORAGECODE_OUT"] == null ? "" : Convert.ToString(reader["STORAGECODE_OUT"]));//STORAGECODE_OUT
|
|
|
data.STORAGENAME_OUT = (reader["STORAGENAME_OUT"] == null ? "" : Convert.ToString(reader["STORAGENAME_OUT"]));//STORAGENAME_OUT
|
|
|
data.AREACODE_OUT = (reader["AREACODE_OUT"] == null ? "" : Convert.ToString(reader["AREACODE_OUT"]));//AREACODE_OUT
|
|
|
data.AREANAME_OUT = (reader["AREANAME_OUT"] == null ? "" : Convert.ToString(reader["AREANAME_OUT"]));//AREANAME_OUT
|
|
|
data.GOODSCODE_OUT = (reader["GOODSCODE_OUT"] == null ? "" : Convert.ToString(reader["GOODSCODE_OUT"]));//GOODSCODE_OUT
|
|
|
data.GOODSNAME_OUT = (reader["GOODSNAME_OUT"] == null ? "" : Convert.ToString(reader["GOODSNAME_OUT"]));//GOODSNAME_OUT
|
|
|
data.GOODSTYPE_OUT = (reader["GOODSTYPE_OUT"] == null ? "" : Convert.ToString(reader["GOODSTYPE_OUT"]));//GOODSTYPE_OUT
|
|
|
data.GOODSMODEL_OUT = (reader["GOODSMODEL_OUT"] == null ? "" : Convert.ToString(reader["GOODSMODEL_OUT"]));//GOODSMODEL_OUT
|
|
|
data.GOODSSTANDARD_OUT = (reader["GOODSSTANDARD_OUT"] == null ? "" : Convert.ToString(reader["GOODSSTANDARD_OUT"]));//GOODSSTANDARD_OUT
|
|
|
data.GOODSPACK_OUT = (reader["GOODSPACK_OUT"] == null ? "" : Convert.ToString(reader["GOODSPACK_OUT"]));//GOODSPACK_OUT
|
|
|
data.CHARGEUNIT_OUT = (reader["CHARGEUNIT_OUT"] == null ? "" : Convert.ToString(reader["CHARGEUNIT_OUT"]));//CHARGEUNIT_OUT
|
|
|
data.GOODSPFSL_OUT = (reader["GOODSPFSL_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSPFSL_OUT"]));//GOODSPFSL_OUT
|
|
|
data.TRUCKNO_OUT = (reader["TRUCKNO_OUT"] == null ? "" : Convert.ToString(reader["TRUCKNO_OUT"]));//TRUCKNO_OUT
|
|
|
data.CREATEUSER_OUT = (reader["CREATEUSER_OUT"] == null ? "" : Convert.ToString(reader["CREATEUSER_OUT"]));//CREATEUSER_OUT
|
|
|
if (reader["CREATETIME_OUT"] != DBNull.Value && reader["CREATETIME_OUT"].ToString().Trim().IndexOf("0001") < 0 && reader["CREATETIME_OUT"].ToString().Trim().IndexOf("1900") < 0 && reader["CREATETIME_OUT"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.CREATETIME_OUT = Convert.ToDateTime(reader["CREATETIME_OUT"]);//CREATETIME_OUT
|
|
|
}
|
|
|
data.REMARK_OUT = (reader["REMARK_OUT"] == null ? "" : Convert.ToString(reader["REMARK_OUT"]));//REMARK_OUT
|
|
|
data.GOODSPACKPFSL_OUT = (reader["GOODSPACKPFSL_OUT"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACKPFSL_OUT"]));//GOODSPACKPFSL_OUT
|
|
|
data.ARFEE = (reader["ARFEE"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["ARFEE"]));//ARFEE
|
|
|
data.APFEE = (reader["APFEE"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["APFEE"]));//APFEE
|
|
|
data.ARFEE_OUT = (reader["ARFEE_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["ARFEE_OUT"]));//ARFEE_OUT
|
|
|
data.ARFEE_2_OUT = (reader["ARFEE_2_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["ARFEE_2_OUT"]));//ARFEE_2_OUT,需求编号:SR2017073000001
|
|
|
data.APFEE_OUT = (reader["APFEE_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["APFEE_OUT"]));//APFEE_OUT
|
|
|
data.GOODSOUTFEE_OUT = (reader["GOODSOUTFEE_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSOUTFEE_OUT"]));//GOODSOUTFEE_OUT
|
|
|
data.GOODSOUTFEEAP_OUT = (reader["GOODSOUTFEEAP_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSOUTFEEAP_OUT"]));//GOODSOUTFEEAP_OUT
|
|
|
data.WMSNO = (reader["WMSNO"] == null ? "" : Convert.ToString(reader["WMSNO"]));//WMSNO
|
|
|
data.WMSDATE = (reader["WMSDATE"] == null ? "" : Convert.ToString(reader["WMSDATE"]));//WMSDATE
|
|
|
data.CUSTOMERNAME = (reader["CUSTOMERNAME"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME"]));//CUSTOMERNAME
|
|
|
data.WMSOP = (reader["WMSOP"] == null ? "" : Convert.ToString(reader["WMSOP"]));//WMSOP
|
|
|
data.STOREMAN = (reader["STOREMAN"] == null ? "" : Convert.ToString(reader["STOREMAN"]));//STOREMAN
|
|
|
data.GOODSPACKSTOCK = (reader["GOODSPACKSTOCK"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACKSTOCK"]));//GOODSPACKSTOCK
|
|
|
data.TRUCKNAME = (reader["TRUCKNAME"] == null ? "" : Convert.ToString(reader["TRUCKNAME"]));//TRUCKNAME
|
|
|
if (reader["STARTBILLINGDATE"] != DBNull.Value && reader["STARTBILLINGDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["STARTBILLINGDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["STARTBILLINGDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.STARTBILLINGDATE = Convert.ToDateTime(reader["STARTBILLINGDATE"]);//STARTBILLINGDATE
|
|
|
}
|
|
|
data.CUSTOMNO = (reader["CUSTOMNO"] == null ? "" : Convert.ToString(reader["CUSTOMNO"]));//CUSTOMNO
|
|
|
data.CUSTNO = (reader["CUSTNO"] == null ? "" : Convert.ToString(reader["CUSTNO"]));//CUSTNO
|
|
|
data.GOODSSTANDARD = (reader["GOODSSTANDARD"] == null ? "" : Convert.ToString(reader["GOODSSTANDARD"]));//GOODSSTANDARD
|
|
|
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//CORPID
|
|
|
data.GOODSPACKACTUAL = (reader["GOODSPACKACTUAL"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSPACKACTUAL"]));//GOODSPACKACTUAL
|
|
|
data.GOODSRKSLACTUAL = (reader["GOODSRKSLACTUAL"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSRKSLACTUAL"]));//GOODSRKSLACTUAL
|
|
|
data.CLIENTNAMEOLD = (reader["CLIENTNAMEOLD"] == null ? "" : Convert.ToString(reader["CLIENTNAMEOLD"]));//CLIENTNAMEOLD
|
|
|
data.ISCHANGE = (reader["ISCHANGE"] == DBNull.Value ? false : Convert.ToBoolean(reader["ISCHANGE"]));//ISCHANGE
|
|
|
data.ISCHANGE_OUT = (reader["ISCHANGE_OUT"] == DBNull.Value ? false : Convert.ToBoolean(reader["ISCHANGE_OUT"]));//ISCHANGE_OUT
|
|
|
data.WMSGID = (reader["WMSGID"] == null ? "" : Convert.ToString(reader["WMSGID"]));//WMSGID
|
|
|
data.OUTGID = (reader["OUTGID"] == null ? "" : Convert.ToString(reader["OUTGID"]));//OUTGID
|
|
|
data.OUTREMARK = (reader["OUTREMARK"] == null ? "" : Convert.ToString(reader["OUTREMARK"]));//OUTREMARK
|
|
|
data.OUTREMARK2 = (reader["OUTREMARK2"] == null ? "" : Convert.ToString(reader["OUTREMARK2"]));//OUTREMARK2
|
|
|
data.GOODSNAMEID = (reader["GOODSNAMEID"] == null ? "" : Convert.ToString(reader["GOODSNAMEID"]));//品名gid
|
|
|
data.WHS_CODE = (reader["WHS_CODE"] == null ? "" : Convert.ToString(reader["WHS_CODE"]));//库别
|
|
|
data.AREANAME = (reader["AREANAME"] == null ? "" : Convert.ToString(reader["AREANAME"]));//储位
|
|
|
data.BZTCHNO = (reader["BZTCHNO"] == null ? "" : Convert.ToString(reader["BZTCHNO"]));//电子账册号
|
|
|
data.GOODNO = (reader["GOODNO"] == null ? "" : Convert.ToString(reader["GOODNO"]));//料号
|
|
|
data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//会计期间
|
|
|
data.FEESTATUSREF = (reader["FEESTATUSREF"] == null ? "" : Convert.ToString(reader["FEESTATUSREF"]));//费用状态
|
|
|
data.ACCDATE_OUT = (reader["ACCDATE_OUT"] == null ? "" : Convert.ToString(reader["ACCDATE_OUT"]));//会计期间_OUT
|
|
|
data.FEESTATUS = (reader["FEESTATUS"] == DBNull.Value ? false : Convert.ToBoolean(reader["FEESTATUS"]));//费用状态_OUT
|
|
|
data.FEESTATUSREF_OUT = (reader["FEESTATUSREF_OUT"] == null ? "" : Convert.ToString(reader["FEESTATUSREF_OUT"]));//费用状态_OUT
|
|
|
data.GOODSSLICE = (reader["GOODSSLICE"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSSLICE"]));//包装件数//需求编号:SR2017061800001-7
|
|
|
data.ISLOCK2 = (reader["ISLOCK2"] == DBNull.Value ? 0 : Convert.ToInt32(reader["ISLOCK2"]));//需求编号:SR2017061400006-1
|
|
|
data.ISBONDED = (reader["ISBONDED"] == DBNull.Value ? 0 : Convert.ToInt32(reader["ISBONDED"]));//需求编号:SR2017061900001-1
|
|
|
data.ISBONDEDNAME = (reader["ISBONDEDNAME"] == null ? "" : Convert.ToString(reader["ISBONDEDNAME"]));//需求编号:SR2017062600003
|
|
|
data.GOODSNUM = (reader["GOODSNUM"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSNUM"]));//完税件数
|
|
|
data.WeiWanShui = (reader["WeiWanShui"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["WeiWanShui"]));//未完税件数//需求编号:SR2017062200002
|
|
|
if (data.ISBONDED == 0)
|
|
|
{
|
|
|
data.GOODSNUM = 0;//是否保税:SR2017062600003
|
|
|
data.WeiWanShui = 0;//是否保税:SR2017062600003
|
|
|
}
|
|
|
data.GOODSSLICE_OUT = (reader["GOODSSLICE_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSSLICE_OUT"]));//需求编号:SR2017071100001
|
|
|
data.TRUCKTYPE_OUT = (reader["TRUCKTYPE_OUT"] == null ? "" : Convert.ToString(reader["TRUCKTYPE_OUT"]));//需求编号:SR2017073000001
|
|
|
data.ZHUANGXIEGONGID_OUT = (reader["ZHUANGXIEGONGID_OUT"] == null ? "" : Convert.ToString(reader["ZHUANGXIEGONGID_OUT"]));//需求编号:SR2017073000001
|
|
|
data.ZHUANGXIEGONG_OUT = (reader["ZHUANGXIEGONG_OUT"] == null ? "" : Convert.ToString(reader["ZHUANGXIEGONG_OUT"]));//需求编号:SR2017073000001
|
|
|
data.TRUCKKGS_OUT = (reader["TRUCKKGS_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["TRUCKKGS_OUT"]));//需求编号:SR2017073000001
|
|
|
data.QianFengNO = (reader["QianFengNO"] == null ? "" : Convert.ToString(reader["QianFengNO"]));//需求编号:SR2017073000001
|
|
|
data.ARCLIENTWMSOUT = (reader["ARCLIENTWMSOUT"] == null ? "" : Convert.ToString(reader["ARCLIENTWMSOUT"]));//需求编号:SR2017073000001
|
|
|
data.ARCLIENT = (reader["ARCLIENT"] == null ? "" : Convert.ToString(reader["ARCLIENT"]));//需求编号:SR2017073000001
|
|
|
data.TRUCKNAME_OUT = (reader["TRUCKNAME_OUT"] == null ? "" : Convert.ToString(reader["TRUCKNAME_OUT"]));//需求编号:SR2017073000001
|
|
|
data.GOODSPACKPFSL_OUT_2 = (reader["GOODSPACKPFSL_OUT"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACKPFSL_OUT"]));//需求编号:SR2017073000001
|
|
|
if (reader["OLDCUSTFEEDATE"] != null && reader["OLDCUSTFEEDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["OLDCUSTFEEDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["OLDCUSTFEEDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.OLDCUSTFEEDATE = Convert.ToDateTime(reader["OLDCUSTFEEDATE"]);//需求编号:SR2017073000001
|
|
|
}
|
|
|
if (reader["STARTBILLINGDATEAP"] != null && reader["STARTBILLINGDATEAP"].ToString().Trim().IndexOf("0001") < 0 && reader["STARTBILLINGDATEAP"].ToString().Trim().IndexOf("1900") < 0 && reader["STARTBILLINGDATEAP"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.STARTBILLINGDATEAP = Convert.ToDateTime(reader["STARTBILLINGDATEAP"]);//需求编号:SR2017073000001
|
|
|
}
|
|
|
data.CHIMA1 = (reader["CHIMA1"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["CHIMA1"]));//CHIMA1
|
|
|
data.CHIMA2 = (reader["CHIMA2"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["CHIMA2"]));//CHIMA2
|
|
|
data.GOODSKGS = (reader["GOODSKGS"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSKGS"]));//GOODSKGS
|
|
|
data.ZHONGLIANG2 = (reader["ZHONGLIANG2"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["ZHONGLIANG2"]));//ZHONGLIANG2
|
|
|
|
|
|
data.COUNTRY = (reader["COUNTRY"] == null ? "" : Convert.ToString(reader["COUNTRY"]));//COUNTRY
|
|
|
data.COUNTRYID = (reader["COUNTRYID"] == null ? "" : Convert.ToString(reader["COUNTRYID"]));//COUNTRYID
|
|
|
data.ISDETAIL = (reader["ISDETAIL"] == null ? "-1" : Convert.ToString(reader["ISDETAIL"]));//ISDETAIL
|
|
|
data.TRAYNO = (reader["TRAYNO"] == null ? "" : Convert.ToString(reader["TRAYNO"]));//TRAYNO
|
|
|
data.EIPCNTRNO = (reader["EIPCNTRNO"] == null ? "" : Convert.ToString(reader["EIPCNTRNO"]));//EIPCNTRNO
|
|
|
data.CNTRNO = (reader["CNTRNO"] == null ? "" : Convert.ToString(reader["CNTRNO"]));//CNTRNO
|
|
|
data.SEALNO = (reader["SEALNO"] == null ? "" : Convert.ToString(reader["SEALNO"]));//SEALNO
|
|
|
|
|
|
data.ZHUANGXIEFEI = (reader["ZHUANGXIEFEI"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["ZHUANGXIEFEI"]));
|
|
|
data.MODEL = (reader["MODEL"] == null ? "" : Convert.ToString(reader["MODEL"]));//MODEL
|
|
|
|
|
|
data.QUOTANO = (reader["QUOTANO"] == null ? "" : Convert.ToString(reader["QUOTANO"]));//MODEL
|
|
|
data.DRIVERIDCARD = (reader["DRIVERIDCARD"] == null ? "" : Convert.ToString(reader["DRIVERIDCARD"]));//MODEL
|
|
|
data.LOADERFEE = (reader["LOADERFEE"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["LOADERFEE"]));//LOADERFEE
|
|
|
data.RENTAREA = (reader["RENTAREA"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["RENTAREA"]));//LOADERFEE
|
|
|
|
|
|
data.GOODSCKQSTOCK = (reader["GOODSCKQSTOCK"] == DBNull.Value ? "0" : Convert.ToString(reader["GOODSCKQSTOCK"]));//出库时库存
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "CNTRTOTAL"))
|
|
|
data.CNTRTOTAL = (reader["CNTRTOTAL"] == null ? "" : Convert.ToString(reader["CNTRTOTAL"]));
|
|
|
else data.CNTRTOTAL = "";
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "KGS_OUT"))
|
|
|
data.KGS_OUT = (reader["KGS_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["KGS_OUT"]));//
|
|
|
else data.KGS_OUT = 0;
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "PKGS_OUT"))
|
|
|
data.PKGS_OUT = (reader["PKGS_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["PKGS_OUT"]));//
|
|
|
else data.PKGS_OUT = 0;
|
|
|
if (BasicDataRefDAL.ReadFieldExist(reader, "CBM_OUT"))
|
|
|
data.CBM_OUT = (reader["CBM_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["CBM_OUT"]));//
|
|
|
else data.CBM_OUT = 0;
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
reader.Dispose();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
//出库是否一致
|
|
|
static public string JudgeOutType(string strCondition, string outType, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
string sTableName = "VW_WMS_DETAIL_NULL_OUTSTOCKDETAIL";
|
|
|
if (outType == "StockOut")
|
|
|
{
|
|
|
sTableName = "VW_WMS_DETAIL_NULL_OUTSTOCK";
|
|
|
}
|
|
|
|
|
|
|
|
|
strSql.Append(" SELECT count(NID) ");
|
|
|
|
|
|
|
|
|
strSql.Append(" from " + sTableName + " WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
if (outType == "StockOut")
|
|
|
{
|
|
|
strSql.Append(" and isdetail='1' " );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql.Append(" and isdetail='0' ");
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
string value = "0";
|
|
|
var rst = db.ExecuteScalar(CommandType.Text, strSql.ToString());
|
|
|
if (rst != null && rst != DBNull.Value && rst.ToString() != "")
|
|
|
{
|
|
|
value = rst.ToString();
|
|
|
}
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
static public VwWmsDetailModels GetData(string condition, string companyid, string userid)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT *,ISBONDEDNAME=(case when ISBONDED=1 then '是' else '否' end),(select GOODSCKQSTOCK from wms_out_detail where gid = gid_out) GOODSCKQSTOCK");
|
|
|
strSql.Append(" from VW_WMS_DETAIL WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" and " + condition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
var list = SetDetail(strSql);
|
|
|
if (list.Count > 0)
|
|
|
return list[0];
|
|
|
return new VwWmsDetailModels();
|
|
|
}
|
|
|
|
|
|
static public VwWmsDetailModels GetDataEdit(string condition, string companyid, string userid)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT *,ISBONDEDNAME=(case when ISBONDED=1 then '是' else '否' end),(select GOODSCKQSTOCK from wms_out_detail where gid = gid_out) GOODSCKQSTOCK");
|
|
|
strSql.Append(" from VW_WMS_DETAIL WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" and " + condition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
var list = SetDetail(strSql);
|
|
|
if (list.Count > 0)
|
|
|
return list[0];
|
|
|
return new VwWmsDetailModels();
|
|
|
}
|
|
|
|
|
|
|
|
|
static public string GetDataListStr(string strCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT NID as 出库明细GID,CUSTOMERNAME as 客户名称,STORAGENAME as 所属仓库,BLNO as 提单号,WMSNO as 入库单号,WMSDATE as 入库时间,GOODSNAME as 品名,GOODSMODEL as 单位,GOODSSTANDARD as 规格,GOODSPACKSTOCK as 剩余件数,WeiWanShui as 未完税件数,(case when ISBONDED=1 then GOODSNUM else 0 end) as 完税件数,(case when ISBONDED=1 then WeiWanShui else 0 end) as 未完税件数,GOODSPACKPFSL_OUT as 出库件数,GOODSSLICE_OUT as 出库包装件数,REMARK_OUT as 明细备注,OUTREMARK as 出库备注,OUTBSNO_OUT as 出库单号,DODATE_OUT as 出库日期,WHS_CODE as 库别,AREANAME as 储位,BZTCHNO as 电子账册号,GOODNO as 料号,ACCDATE_OUT as 会计期间,是否保税业务=(case when ISBONDED=1 then '是' else '否' end),TRUCKTYPE_OUT as 车辆类型,ZHUANGXIEGONGID_OUT as 装卸工,TRUCKKGS_OUT as 平均重量,QianFengNO as 铅封号,ARCLIENTWMSOUT as 应收仓储客户,ARCLIENT as 应收出库客户,TRUCKNAME_OUT as 应付客户");//,GOODSSTOCK as 剩余库存//需求编号:SR2017061800001-7、SR2017062200002、SR2017071100001、SR2017071300002-2//需求编号:SR2017073000001
|
|
|
strSql.Append(" from VW_WMS_DETAIL WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
return strSql.ToString();
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 提取规则编号 getCodeRuleWmsOut
|
|
|
/// <summary>
|
|
|
/// 提取规则编号
|
|
|
/// </summary>
|
|
|
/// OutBsno = getCodeRuleWmsOut("出库单号", "BSNO");
|
|
|
/// <param name="strRULENAME">规则项目名称</param>
|
|
|
/// <param name="strfield">需要加规则的字段</param>
|
|
|
/// <param name="iCount">需要添加的行数</param>
|
|
|
/// <returns></returns>
|
|
|
static public String getCodeRuleWmsOut(string strRULENAME, string strfield, int iCount, string strUserID, string strCompanyID)
|
|
|
{
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
|
|
|
//调用编码规则
|
|
|
string strRULEYEAR = "";
|
|
|
string strRULECONTENT = "";
|
|
|
string strCODENAME = "";
|
|
|
string strDEPTNO = "";
|
|
|
string strRULENOLENGTH = "";
|
|
|
int iRULENOLENGTH = 0;
|
|
|
int inum = 0;
|
|
|
string strCONTENT = "";
|
|
|
DataSet ds = T_ALL_DA.GetAllSQL("select *,getdate() DODATE from code_rule where RULENAME='" + strRULENAME.Trim() + "' and RULETYPE=3");
|
|
|
if (ds != null)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["ISSTARTUSING"].ToString().Trim().Equals("True"))
|
|
|
{
|
|
|
getCodeRuleEnabled(strRULENAME, strfield);
|
|
|
//
|
|
|
if (ds.Tables[0].Rows[0]["RULEDATE"].ToString().Trim().Equals("业务日期"))
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["DODATE"].ToString().Trim() == "")
|
|
|
{
|
|
|
return "";
|
|
|
}
|
|
|
DateTime dETD = System.Convert.ToDateTime(ds.Tables[0].Rows[0]["DODATE"].ToString().Trim());
|
|
|
if (ds.Tables[0].Rows[0]["ISCLEAREDINEARLY"].ToString().Trim().Equals("True"))
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
|
|
|
{
|
|
|
strRULEYEAR = dETD.ToString("yyyy") + dETD.ToString("MM");
|
|
|
}
|
|
|
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
|
|
|
{
|
|
|
strRULEYEAR = dETD.ToString("yy") + dETD.ToString("MM");
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
|
|
|
{
|
|
|
strRULEYEAR = dETD.ToString("yyyy");
|
|
|
}
|
|
|
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
|
|
|
{
|
|
|
strRULEYEAR = dETD.ToString("yy");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else if (ds.Tables[0].Rows[0]["RULEDATE"].ToString().Trim().Equals("自然月份"))
|
|
|
{
|
|
|
DateTime fwqdate = System.Convert.ToDateTime(T_ALL_DA.GetStrSQL("fwqdate", "select fwqdate=getdate()"));
|
|
|
if (ds.Tables[0].Rows[0]["ISCLEAREDINEARLY"].ToString().Trim().Equals("True"))
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
|
|
|
{
|
|
|
strRULEYEAR = fwqdate.ToString("yyyy") + fwqdate.ToString("MM");
|
|
|
}
|
|
|
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
|
|
|
{
|
|
|
strRULEYEAR = fwqdate.ToString("yy") + fwqdate.ToString("MM");
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "4")
|
|
|
{
|
|
|
strRULEYEAR = fwqdate.ToString("yyyy");
|
|
|
}
|
|
|
else if (ds.Tables[0].Rows[0]["RULEYEAR"].ToString().Trim() == "2")
|
|
|
{
|
|
|
strRULEYEAR = fwqdate.ToString("yy");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//
|
|
|
if (ds.Tables[0].Rows[0]["ISCOMPANY"].ToString().Trim().Equals("True"))
|
|
|
{
|
|
|
strCODENAME = T_ALL_DA.GetStrSQL("CODENAME", "select CODENAME from [company] where GID=(select top 1 COMPANYID from user_company where USERID='" + strUserID + "')");
|
|
|
}
|
|
|
if (ds.Tables[0].Rows[0]["ISDEPT"].ToString().Trim().Equals("True"))
|
|
|
{
|
|
|
strDEPTNO = T_ALL_DA.GetStrSQL("DEPTNO", "select DEPTNO from [sys_dept] where LINKID=(select top 1 COMPANYID from user_company where USERID='" + strUserID + "')");
|
|
|
}
|
|
|
strRULECONTENT = ds.Tables[0].Rows[0]["RULECONTENT"].ToString().Trim();
|
|
|
strRULECONTENT = strRULECONTENT.Replace("《COMPANY》", strCODENAME);
|
|
|
strRULECONTENT = strRULECONTENT.Replace("《DEPT》", strDEPTNO);
|
|
|
//
|
|
|
if (ds.Tables[0].Rows[0]["RULENOLENGTH"].ToString().Trim() == "")
|
|
|
{
|
|
|
iRULENOLENGTH = 0;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iRULENOLENGTH = int.Parse(ds.Tables[0].Rows[0]["RULENOLENGTH"].ToString().Trim());
|
|
|
}
|
|
|
strCONTENT = strRULECONTENT + strRULEYEAR;
|
|
|
//获取分公司的票号头字符
|
|
|
string tempBANKSHEAD = T_ALL_DA.GetStrSQL("BANKSHEAD", "SELECT TOP 1 BANKSHEAD FROM company WHERE GID='" + strCompanyID.Trim() + "'");
|
|
|
strCONTENT = tempBANKSHEAD + strCONTENT;
|
|
|
//
|
|
|
strRULENOLENGTH = T_ALL_DA.GetStrSQL(strfield, "select top 1 " + strfield + " from [wms_out] where " + strfield + " like '" + strCONTENT.Trim() + "%' and isnull(ISDELETE,0)=0 order by " + strfield + " DESC");
|
|
|
if (strRULENOLENGTH == "")
|
|
|
{
|
|
|
strRULENOLENGTH = "1";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strRULENOLENGTH = strRULENOLENGTH.Replace(strCONTENT.Trim(), "");
|
|
|
inum = int.Parse(strRULENOLENGTH.Trim());
|
|
|
inum = inum + iCount;
|
|
|
strRULENOLENGTH = inum.ToString();
|
|
|
}
|
|
|
int j = iRULENOLENGTH - strRULENOLENGTH.Length;
|
|
|
for (int i = 1; i <= j; i++)
|
|
|
{
|
|
|
strRULENOLENGTH = "0" + strRULENOLENGTH;
|
|
|
}
|
|
|
//
|
|
|
strCONTENT = strCONTENT + strRULENOLENGTH;
|
|
|
return strCONTENT;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 规则编号_是否生成之后允许编辑 getCodeRuleEnabled
|
|
|
/// <summary>
|
|
|
/// 规则编号_是否生成之后允许编辑
|
|
|
/// </summary>
|
|
|
/// <param name="strRULENAME">规则项目名称</param>
|
|
|
/// <param name="strfield">需要加规则的字段</param>
|
|
|
/// <returns></returns>
|
|
|
static public Boolean getCodeRuleEnabled(string strRULENAME, string strfield)
|
|
|
{
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
bool blRule = false;
|
|
|
//是否生成之后允许编辑
|
|
|
DataSet ds = T_ALL_DA.GetAllSQL("select * from code_rule where RULENAME='" + strRULENAME.Trim() + "' and RULETYPE=3");
|
|
|
if (ds != null)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["ISSTARTUSING"].ToString().Trim().Equals("True"))
|
|
|
{
|
|
|
if (strfield == "BSNO")
|
|
|
{
|
|
|
if (ds.Tables[0].Rows[0]["ISALLOWEDITS"].ToString().Trim().Equals("True"))
|
|
|
{
|
|
|
blRule = false;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
blRule = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return blRule;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 出库单更新入库(包括明细出库和整体出库;明细出库在存储过程中被定义为【ASSOCIATEDNO=wmsGID的入库明细条数=1】)
|
|
|
|
|
|
public static bool UpdateWMSIN(string wmsGID,string wmsOutGID)
|
|
|
{
|
|
|
var iError = 0;
|
|
|
string strSql = "exec Proc_WMSOUT_Update '" + wmsGID + "','" + wmsOutGID + "' ";
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
iError = Convert.ToInt16(reader["result"]);
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
|
|
|
if (iError == 0)
|
|
|
{
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 删除出库
|
|
|
public static DBResult Delete(string gids,bool eip, string strUserID)
|
|
|
{
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
var result = new DBResult();
|
|
|
|
|
|
#region 判断货权转移入库单是否入账
|
|
|
string sSQL3 = "select count(*) as hj from wms where gid in (select INGIDNEW from wms_out where ISCHANGE=1 and BSNO in ('" + gids.Replace(",", "','") + "')) and (ISLOCK=1 or ISLOCK2=1 or FEESTATUS=1)";
|
|
|
int iHJ2 = int.Parse(T_ALL_DA.GetStrSQL("hj", sSQL3));
|
|
|
if (iHJ2 > 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "出库单的货权转移入库单已经入账或锁定等,不允许做删除操作!";
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
var iError = 0;
|
|
|
int iHJ = int.Parse(T_ALL_DA.GetStrSQL("hj", "select top 1 count(*) as hj from ch_fee where BSNO in (select GID from wms_out where BSNO in ('" + gids.Replace(",", "','") + "'))"));
|
|
|
if (iHJ == 0)
|
|
|
{
|
|
|
#region 出库件数 返 入库库存//需求编号:SR2017073000001
|
|
|
|
|
|
var strOutBSNO = gids.Replace(",", "','");
|
|
|
|
|
|
string strSql = "exec Proc_WMSOUT_DelByBSNO '" + strOutBSNO + "' ";
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
iError = Convert.ToInt16(reader["result"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (iError == 0)
|
|
|
{
|
|
|
result.Success = true;
|
|
|
if (eip)
|
|
|
{
|
|
|
result= WMSEIPStockDAL.UpdateTrayState(strOutBSNO);
|
|
|
}
|
|
|
result.Message = "操作成功";
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "部分操作失败,请尽快联系管理员解决,并告知返回值" + iError + ",避免造成更大的数据损失!";
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 注释掉原来删除出库
|
|
|
/*
|
|
|
var sOUTBSNO = " and OUTBSNO_OUT in ('" + gids.Replace(",", "','") + "')";
|
|
|
string sSQL = "update wms_in set GOODSPACKSTOCK=GOODSPACK-isnull((select sum(GOODSPACKPFSL_OUT) as GOODSPACKPFSL_OUT from VW_WMS_DETAIL where INBSNO_OUT=wms_in.GID and GID_OUT not in (select GID_OUT from VW_WMS_DETAIL where 1=1" + sOUTBSNO + ")),0),GOODSSTOCK=GOODSRKSL-isnull((select sum(GOODSPFSL_OUT) as GOODSPFSL_OUT from VW_WMS_DETAIL where INBSNO_OUT=wms_in.GID and GID_OUT not in (select GID_OUT from VW_WMS_DETAIL where 1=1" + sOUTBSNO + ")),0) where GID in (select INBSNO_OUT from VW_WMS_DETAIL where 1=1" + sOUTBSNO + ")";
|
|
|
bool bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
if (!bl)
|
|
|
{
|
|
|
iError = -1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sSQL = "update wms set GOODSPACKSTOCK=(select sum(GOODSPACKSTOCK) as GOODSPACKSTOCK from wms_in where ASSOCIATEDNO=wms.gid),GOODSSTOCK=(select sum(GOODSSTOCK) as GOODSSTOCK from wms_in where ASSOCIATEDNO=wms.gid) where gid in (select ASSOCIATEDNO from wms_in where GID in (select INBSNO_OUT from VW_WMS_DETAIL where 1=1" + sOUTBSNO + "))";
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(sSQL);
|
|
|
if (!bl)
|
|
|
{
|
|
|
iError = -2;
|
|
|
}
|
|
|
}
|
|
|
*/
|
|
|
|
|
|
#endregion
|
|
|
#region 注释掉原来删除出库
|
|
|
/*
|
|
|
if (iError < 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "部分操作失败,请尽快联系管理员解决,并告知返回值" + iError + ",避免造成更大的数据损失!";
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (var conn = db.CreateConnection())
|
|
|
{
|
|
|
conn.Open();
|
|
|
var tran = conn.BeginTransaction();
|
|
|
try
|
|
|
{
|
|
|
//删除入库明细
|
|
|
var cmdDelete = db.GetSqlStringCommand("delete from wms_in where ASSOCIATEDNO in (select INGIDNEW from wms_out where ISCHANGE=1 and BSNO in ('" + gids.Replace(",", "','") + "'))");
|
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
//删除主表信息
|
|
|
cmdDelete = db.GetSqlStringCommand("delete from wms where gid in (select INGIDNEW from wms_out where ISCHANGE=1 and BSNO in ('" + gids.Replace(",", "','") + "'))");
|
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
//删除入库仓储费率表
|
|
|
cmdDelete = db.GetSqlStringCommand("delete from wms_rate where BSNO in (select INGIDNEW from wms_out where ISCHANGE=1 and BSNO in ('" + gids.Replace(",", "','") + "'))");
|
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
cmdDelete = db.GetSqlStringCommand("delete from wms_out_detail where 1=1 and OUTBSNO in ('" + gids.Replace(",", "','") + "')");
|
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
cmdDelete = db.GetSqlStringCommand("delete from wms_out where 1=1 and BSNO in ('" + gids.Replace(",", "','") + "')");
|
|
|
db.ExecuteNonQuery(cmdDelete, tran);
|
|
|
|
|
|
tran.Commit();
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
iError = -3;
|
|
|
tran.Rollback();
|
|
|
result.Success = false;
|
|
|
result.Message = "部分操作失败,请尽快联系管理员解决,并告知返回值" + iError + ",避免造成更大的数据损失!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
result.Success = true;
|
|
|
result.Message = "操作成功";
|
|
|
return result;
|
|
|
}
|
|
|
*/
|
|
|
#endregion
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "已经录入费用的出库单不允许删除!";
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
#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>
|
|
|
/// <param name="ck_jsfee">是否库存</param>
|
|
|
/// <returns></returns>
|
|
|
public static String getWmsRate(string strSTARTBILLINGDATE, string strOLDCUSTFEEDATE, string strINBSNO, string strCUSTOMERNAME, Decimal outnums, string strASSOCIATEDNO, int strFEETYPE, string strUserID, string strShowName, string sBillno, string sOUTGID, bool ck_jsfee, bool isKuCun)
|
|
|
{
|
|
|
string sR = "";
|
|
|
//int iState = 0;
|
|
|
int result = 0;
|
|
|
string Sqlstr = "";
|
|
|
|
|
|
#region 计算仓储费
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
WmsOutDetailDA WmsOutDetailDA = new EntityDA.WmsOutDetailDA();
|
|
|
IList<WmsRateDetail> tempWmsRateDetailDetailEntities = new List<WmsRateDetail>();
|
|
|
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);
|
|
|
bool bl = T_ALL_DA.GetExecuteSqlCommand(Sqlstr);
|
|
|
if (!bl)
|
|
|
{
|
|
|
result = -9;
|
|
|
//sqlTran.Rollback();
|
|
|
//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);
|
|
|
DataSet dsrate = T_ALL_DA.GetAllSQL(Sqlstr);
|
|
|
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")
|
|
|
{
|
|
|
WmsRateDetail model3 = new WmsRateDetail();
|
|
|
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(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;
|
|
|
model3.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.Add(model3);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
feedays = 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);
|
|
|
dsrate = T_ALL_DA.GetAllSQL(Sqlstr);
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
WmsRateDetail model = new WmsRateDetail();
|
|
|
//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 = GetDaysCount(DorM, strSTARTBILLINGDATE2, strOLDCUSTFEEDATE.Trim());//总仓储月数
|
|
|
if (feedays > nowscale) //总仓储月数 > 区间计费区间(仓储月数/天数)
|
|
|
{
|
|
|
feeMonth = 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 = GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
|
|
|
}
|
|
|
//--- END ---
|
|
|
|
|
|
gradefee = outnums * dprice * dtDays;// nowscale;//出库量*计费单价*实际仓储月数
|
|
|
sumfee += gradefee;
|
|
|
prescale += dtDays;//nowscale;//累计天数
|
|
|
//
|
|
|
WmsRateDetail model1 = new WmsRateDetail();
|
|
|
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;
|
|
|
model1.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.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 = 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;
|
|
|
model.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.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 = 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;
|
|
|
model.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.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 = GetDaysCount("day", dtSTARTBILLINGDATE.ToString().Trim(), dtENDBILLINGDATE.ToString().Trim());//按月的区间天数
|
|
|
}
|
|
|
//--- END ---
|
|
|
|
|
|
gradefee = outnums * dprice * dtDays;// nowscale;//出库量*计费单价*实际仓储月数
|
|
|
sumfee += gradefee;
|
|
|
prescale += dtDays;//nowscale;//累计天数
|
|
|
//
|
|
|
WmsRateDetail model1 = new WmsRateDetail();
|
|
|
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;
|
|
|
model1.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.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 = 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;
|
|
|
model.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.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 = 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;
|
|
|
model.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.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 = 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;
|
|
|
model.WMSOUTGID = sOUTGID;
|
|
|
tempWmsRateDetailDetailEntities.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 (tempWmsRateDetailDetailEntities != null)//是否有要入库的仓储费
|
|
|
{
|
|
|
if (tempWmsRateDetailDetailEntities.Count > 0)
|
|
|
{
|
|
|
foreach (WmsRateDetail model2 in tempWmsRateDetailDetailEntities)
|
|
|
{
|
|
|
Sqlstr = String.Format("insert into wms_rate_detail(GID,FEEPRICE,GOODSPFSL,OUTFEE,REMARK,CREATEUSER,CREATETIME,ASSOCIATEDNO,CUSTOMERNAME,FEETYPE,FEEGRADE,STARTBILLINGDATE,ENDBILLINGDATE,FEESCALE,FEEUNIT,MODIFIEDUSER,WMSOUTGID)"
|
|
|
+ " values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}')"
|
|
|
, 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, model2.WMSOUTGID);
|
|
|
//iState = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, Sqlstr, null);
|
|
|
//if (iState != 1)
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(Sqlstr);
|
|
|
if (!bl)
|
|
|
{
|
|
|
result = -1;
|
|
|
//sqlTran.Rollback();
|
|
|
//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)
|
|
|
bl = T_ALL_DA.GetExecuteSqlCommand(str0);
|
|
|
if (!bl)
|
|
|
{
|
|
|
result = -1;
|
|
|
//sqlTran.Rollback();
|
|
|
//Clearh();
|
|
|
return result.ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
tempWmsRateDetailDetailEntities = null;
|
|
|
totalfeedays = 0;
|
|
|
feedays = 0;
|
|
|
sumfee = 0;
|
|
|
}
|
|
|
#endregion
|
|
|
sR = sumfee.ToString() + "," + totalfeedays.ToString();
|
|
|
return sR;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 计算仓储时间差 +1
|
|
|
/// <summary>
|
|
|
/// 计算仓储时间差 +1
|
|
|
/// </summary>
|
|
|
public static 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 查询仓储费列表//需求编号:SR2017073000001
|
|
|
static public List<WmsRateDetail> GetWmsRateDetailList(string strCondition, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT *,FEETYPENAME=(case when FEETYPE=1 then '收' else '付' end)");
|
|
|
strSql.Append(" from wms_rate_detail WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by WMSOUTGID,ASSOCIATEDNO,FEETYPE,FEEGRADE");
|
|
|
return SetWmsRateDetail(strSql);
|
|
|
}
|
|
|
|
|
|
static public List<WmsRateDetail> GetSettleRateDetailList(string strCondition, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT *,FEETYPENAME=(case when FEETYPE=1 then '收' else '付' end)");
|
|
|
strSql.Append(" from wms_settle_detail_rate WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by WMSOUTGID,ASSOCIATEDNO,FEETYPE,FEEGRADE");
|
|
|
return SetWmsRateDetail(strSql);
|
|
|
}
|
|
|
|
|
|
private static List<WmsRateDetail> SetWmsRateDetail(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<WmsRateDetail>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
WmsRateDetail data = new WmsRateDetail();
|
|
|
#region Set DB data to Object
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//惟一编号
|
|
|
data.ASSOCIATEDNO = (reader["ASSOCIATEDNO"] == null ? "" : Convert.ToString(reader["ASSOCIATEDNO"]));//关联号
|
|
|
data.CUSTOMERNAME = (reader["CUSTOMERNAME"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME"]));//客户名称
|
|
|
data.FEETYPE = (reader["FEETYPE"] == null ? 0 : Convert.ToInt32(reader["FEETYPE"]));//费用类别
|
|
|
data.FEEGRADE = (reader["FEEGRADE"] == null ? 0 : Convert.ToInt32(reader["FEEGRADE"]));//计费等级
|
|
|
if (reader["STARTBILLINGDATE"] != null && reader["STARTBILLINGDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["STARTBILLINGDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["STARTBILLINGDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.STARTBILLINGDATE = Convert.ToDateTime(reader["STARTBILLINGDATE"]);//开始计费日期
|
|
|
}
|
|
|
if (reader["ENDBILLINGDATE"] != null && reader["ENDBILLINGDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["ENDBILLINGDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["ENDBILLINGDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.ENDBILLINGDATE = Convert.ToDateTime(reader["ENDBILLINGDATE"]);//结束计费日期
|
|
|
}
|
|
|
data.FEESCALE = (reader["FEESCALE"] == null ? 0 : Convert.ToInt32(reader["FEESCALE"]));//计费区间
|
|
|
data.FEEUNIT = (reader["FEEUNIT"] == null ? "" : Convert.ToString(reader["FEEUNIT"]));//计费单位
|
|
|
data.FEEPRICE = (reader["FEEPRICE"] == null ? 0 : Convert.ToDecimal(reader["FEEPRICE"]));//计费单价
|
|
|
data.GOODSPFSL = (reader["GOODSPFSL"] == null ? 0 : Convert.ToDecimal(reader["GOODSPFSL"]));//出库量
|
|
|
data.OUTFEE = (reader["OUTFEE"] == null ? 0 : Convert.ToDecimal(reader["OUTFEE"]));//仓储费
|
|
|
data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//备注
|
|
|
data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//创建人
|
|
|
if (reader["CREATETIME"] != null && reader["CREATETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["CREATETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["CREATETIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间
|
|
|
}
|
|
|
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//最后一次操作人
|
|
|
if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//最后一次操作时间
|
|
|
}
|
|
|
data.WMSOUTGID = (reader["WMSOUTGID"] == null ? "" : Convert.ToString(reader["WMSOUTGID"]));//WMSOUTGID
|
|
|
data.FEETYPENAME = (reader["FEETYPENAME"] == null ? "" : Convert.ToString(reader["FEETYPENAME"]));//WMSOUTGID
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
reader.Dispose();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 出库费用入账//需求编号:SR2017073000001
|
|
|
public static DBResult setislock(string gids,bool bEIP, string outType,string strUserID, string strCompanyID, string strDEPTNAME, string strSHOWNAME)
|
|
|
{
|
|
|
DBResult result = new DBResult();
|
|
|
if (gids.Trim() == "")
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有输入任何需要修改的数据";
|
|
|
}
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
gids = "'" + gids.Trim().Replace(",", "','") + "'";
|
|
|
|
|
|
//20230128 改为
|
|
|
if (ConfigurationManager.AppSettings["DingTalkAuditWMSIN"] == "true")
|
|
|
{//向钉钉发送出库审批流程
|
|
|
|
|
|
var _r0 = new DBResult();
|
|
|
_r0.OK();
|
|
|
//如果是费用入账动作 且配置了钉钉审批入库 则调用向钉钉发送新建审批实例方法
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("select o.IsDetail AS ISDETAIL,d.inbsno as INBSNO,o.gid as OUTGID,o.bsno as OUTNO,o.ASSOCIATEDNO AS ASSOCIATEDNO, ");
|
|
|
strSql.Append(" o.ARCLIENTWMSOUT as ARCLIENTWMSOUT,isnull(d.GOODSOUTFEE,0) AS GOODSOUTFEE_OUT,");
|
|
|
strSql.Append(" o.TRUCKNAME as TRUCKNAME_OUT,isnull(d.GOODSOUTFEEAP,0) AS GOODSOUTFEEAP_OUT,");
|
|
|
strSql.Append(" isnull(d.ARFEE,0) AS ARFEE_OUT,isnull(d.ARFEE_2,0) AS ARFEE_2_OUT,d.GID OUTDEGID");
|
|
|
strSql.Append(" ,ol.PROPVALUE");
|
|
|
strSql.Append(" from wms_out o inner join wms_out_detail d on o.bsno = d.outbsno ");
|
|
|
strSql.Append(" left join OP_LOGICINFO ol on ol.BSNO=o.bsno ");
|
|
|
strSql.Append(" where o.gid in (" + gids + ") and o.ISLOCK=0");
|
|
|
|
|
|
//var 需要发送给钉钉出库审核流程的业务编号List = new List<string>();
|
|
|
|
|
|
var outbsnodic = new Dictionary<string, string>();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
var outbsno = Convert.ToString(reader["OUTNO"]);
|
|
|
|
|
|
if(!outbsnodic.ContainsKey(outbsno))
|
|
|
{
|
|
|
var instanceId = Convert.ToString(reader["PROPVALUE"]);
|
|
|
outbsnodic.Add(outbsno, instanceId);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
foreach(var item in outbsnodic)
|
|
|
{
|
|
|
|
|
|
//if (!string.IsNullOrWhiteSpace(item.Value)) continue;
|
|
|
|
|
|
var _r = DingTalkHelper.Send_WMSOUT(strUserID, item.Key);
|
|
|
if (!_r.Success)
|
|
|
{
|
|
|
_r0.SetErrorInfo(_r.Message);
|
|
|
}
|
|
|
|
|
|
//仅用于测试解析读取钉钉审批实例内容
|
|
|
//result = TestReadDingtalkInstanceinfo();
|
|
|
if (!_r0.Success)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "发送钉钉审批失败:" + _r0.Message;
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//增加一条钉钉审批记录
|
|
|
|
|
|
}
|
|
|
}
|
|
|
result.SetErrorInfo("钉钉提交成功");
|
|
|
return result;
|
|
|
}
|
|
|
else {
|
|
|
return DoSetislock(gids, bEIP, outType, strUserID, strCompanyID, strDEPTNAME, strSHOWNAME);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 实际执行费用入账操作
|
|
|
/// </summary>
|
|
|
/// <param name="gids">wms_out.GID 用逗号,隔开</param>
|
|
|
/// <param name="bEIP">bool型 wms_out.EIP</param>
|
|
|
/// <param name="outType">StockOut、StockOutDetail,来自wms_out.ISDETAIL true=StockOutDetail false=StockOut</param>
|
|
|
/// <param name="strUserID">调用时可使用wms_out.CREATEUSER</param>
|
|
|
/// <param name="strCompanyID">未使用 不填</param>
|
|
|
/// <param name="strDEPTNAME">未使用 不填</param>
|
|
|
/// <param name="strSHOWNAME">未使用 不填</param>
|
|
|
/// <returns></returns>
|
|
|
public static DBResult DoSetislock(string gids, bool bEIP, string outType, string strUserID, string strCompanyID = "", string strDEPTNAME = "", string strSHOWNAME = "")
|
|
|
{
|
|
|
DBResult result = new DBResult();
|
|
|
if (gids.Trim() == "")
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有输入任何需要修改的数据";
|
|
|
}
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
gids = "'" + gids.Trim().Replace(",", "','") + "'";
|
|
|
|
|
|
#region 费用入账
|
|
|
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{//根据出库GID查询出库费用,有多少出库明细就产生多少出库费用
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("select o.IsDetail AS ISDETAIL,d.inbsno as INBSNO,o.gid as OUTGID,o.bsno as OUTNO,o.ASSOCIATEDNO AS ASSOCIATEDNO, ");
|
|
|
strSql.Append(" o.ARCLIENTWMSOUT as ARCLIENTWMSOUT,isnull(d.GOODSOUTFEE,0) AS GOODSOUTFEE_OUT,");
|
|
|
strSql.Append(" o.TRUCKNAME as TRUCKNAME_OUT,isnull(d.GOODSOUTFEEAP,0) AS GOODSOUTFEEAP_OUT,");
|
|
|
strSql.Append(" isnull(d.ARFEE,0) AS ARFEE_OUT,isnull(d.ARFEE_2,0) AS ARFEE_2_OUT,d.GID OUTDEGID");
|
|
|
strSql.Append(" from wms_out o inner join wms_out_detail d on o.bsno = d.outbsno ");
|
|
|
strSql.Append(" where o.gid in (" + gids + ") and o.ISLOCK=0");
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
int i = 0;
|
|
|
int existVal = 0;
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
WmsOutFeeModel outFee = new WmsOutFeeModel();
|
|
|
outFee.OUTGID = Convert.ToString(reader["OUTGID"]);
|
|
|
outFee.OUTNO = Convert.ToString(reader["OUTNO"]);
|
|
|
outFee.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]);
|
|
|
outFee.ARCLIENTWMSOUT = Convert.ToString(reader["ARCLIENTWMSOUT"]);
|
|
|
outFee.TRUCKNAME_OUT = Convert.ToString(reader["TRUCKNAME_OUT"]);
|
|
|
|
|
|
outFee.GOODSOUTFEE_OUT = float.Parse(reader["GOODSOUTFEE_OUT"].ToString());
|
|
|
outFee.GOODSOUTFEEAP_OUT = float.Parse(reader["GOODSOUTFEEAP_OUT"].ToString());
|
|
|
outFee.ARFEE_OUT = float.Parse(reader["ARFEE_OUT"].ToString());
|
|
|
outFee.ARFEE_2_OUT = float.Parse(reader["ARFEE_2_OUT"].ToString());
|
|
|
outFee.linenum = i++;
|
|
|
outFee.BSNO = outFee.OUTGID;//默认是wms_out的GID
|
|
|
outFee.ISDETAIL = Convert.ToString(reader["ISDETAIL"]);
|
|
|
outFee.INBSNO = Convert.ToString(reader["INBSNO"]);
|
|
|
if (GetFeeConfig(outType, outFee.INBSNO))
|
|
|
outFee.BSNO = outFee.ASSOCIATEDNO;
|
|
|
outFee.OUTDEGID = Convert.ToString(reader["OUTDEGID"]);
|
|
|
|
|
|
#region 插入 应收仓储费 GOODSOUTFEE_OUT
|
|
|
|
|
|
string sSQL = "";
|
|
|
if (outFee.GOODSOUTFEE_OUT > 0)
|
|
|
{
|
|
|
sSQL =
|
|
|
"insert into ch_fee(GID,BSNO,FEETYPE,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,AMOUNT,EXCHANGERATE,CURRENCY,COMMISSIONRATE,FEEFRT,REMARK,ISADVANCEDPAY,ENTEROPERATOR,ENTERDATE,FEESTATUS,WMSOUTBSNO,LINENUM,[TAXRATE],[NOTAXAMOUNT],[TAX],[ORDERSETTLEMENT],[TAXUNITPRICE],[ORDERINVSETTLEMENT],MODIFIEDUSER,MODIFIEDTIME,CARGO_GID) "
|
|
|
+ " values(newid() ,'" + outFee.BSNO + "',1,'仓储费','" + outFee.ARCLIENTWMSOUT + "','单票','" + outFee.GOODSOUTFEE_OUT + "',1,'" + outFee.GOODSOUTFEE_OUT + "',1,'RMB',0,'PP','“出库明细单'+'" + outFee.OUTNO + "'+'”中的仓储费',0,'" + strUserID + "',getdate(),1,'" + outFee.OUTGID + "',0,0,'" + outFee.GOODSOUTFEE_OUT + "',0,0,'" + outFee.GOODSOUTFEE_OUT + "',0,'" + strUserID + "', getdate(),'" + outFee.OUTDEGID + "')";
|
|
|
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 插入 应付仓储费 GOODSOUTFEEAP_OUT
|
|
|
|
|
|
if (outFee.GOODSOUTFEEAP_OUT > 0)
|
|
|
{
|
|
|
sSQL = "insert into ch_fee(GID,BSNO,FEETYPE,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,AMOUNT,EXCHANGERATE,CURRENCY,COMMISSIONRATE,FEEFRT,REMARK,ISADVANCEDPAY,ENTEROPERATOR,ENTERDATE,FEESTATUS,WMSOUTBSNO,LINENUM,[TAXRATE],[NOTAXAMOUNT],[TAX],[ORDERSETTLEMENT],[TAXUNITPRICE],[ORDERINVSETTLEMENT],MODIFIEDUSER,MODIFIEDTIME,CARGO_GID) "
|
|
|
+ " values(newid() ,'" + outFee.BSNO + "',2,'仓储费','" + outFee.TRUCKNAME_OUT + "','单票','" + outFee.GOODSOUTFEEAP_OUT + "',1,'" + outFee.GOODSOUTFEEAP_OUT + "',1,'RMB',0,'PP','“出库明细单'+'" + outFee.OUTNO + "'+'”中的仓储费',0,'" + strUserID + "',getdate(),1,'" + outFee.OUTGID + "',0,0,'" + outFee.GOODSOUTFEEAP_OUT + "',0,0,'" + outFee.GOODSOUTFEEAP_OUT + "',0,'" + strUserID + "', getdate(),'" + outFee.OUTDEGID + "')";
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
}
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 插入 铅封费 ARFEE_OUT
|
|
|
|
|
|
if (outFee.ARFEE_OUT > 0)
|
|
|
{
|
|
|
sSQL = "insert into ch_fee(GID,BSNO,FEETYPE,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,AMOUNT,EXCHANGERATE,CURRENCY,COMMISSIONRATE,FEEFRT,REMARK,ISADVANCEDPAY,ENTEROPERATOR,ENTERDATE,FEESTATUS,WMSOUTBSNO,LINENUM,[TAXRATE],[NOTAXAMOUNT],[TAX],[ORDERSETTLEMENT],[TAXUNITPRICE],[ORDERINVSETTLEMENT],MODIFIEDUSER,MODIFIEDTIME) "
|
|
|
+ " values(newid() ,'" + outFee.BSNO + "',1,'铅封费','" + outFee.ARCLIENTWMSOUT + "','单票','" + outFee.ARFEE_OUT + "',1,'" + outFee.ARFEE_OUT + "',1,'RMB',0,'PP','“出库明细单'+'" + outFee.OUTNO + "'+'”中的铅封费',0,'" + strUserID +
|
|
|
"',getdate(),1,'" + outFee.OUTGID + "',0,0,'" + outFee.ARFEE_OUT + "',0,0,'" + outFee.ARFEE_OUT + "',0,'" + strUserID + "', getdate())";
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 插入 过磅费 ARFEE_2_OUT
|
|
|
|
|
|
if (outFee.ARFEE_2_OUT > 0)
|
|
|
{
|
|
|
sSQL = "insert into ch_fee(GID,BSNO,FEETYPE,FEENAME,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,AMOUNT,EXCHANGERATE,CURRENCY,COMMISSIONRATE,FEEFRT,REMARK,ISADVANCEDPAY,ENTEROPERATOR,ENTERDATE,FEESTATUS,WMSOUTBSNO,LINENUM,[TAXRATE],[NOTAXAMOUNT],[TAX],[ORDERSETTLEMENT],[TAXUNITPRICE],[ORDERINVSETTLEMENT],MODIFIEDUSER,MODIFIEDTIME) "
|
|
|
+ " values(newid() ,'" + outFee.BSNO + "',1,'过磅费','" + outFee.ARCLIENTWMSOUT + "','单票','" + outFee.ARFEE_2_OUT + "',1,'" + outFee.ARFEE_2_OUT + "',1,'RMB',0,'PP','“出库明细单'+'" + outFee.OUTNO + "'+'”中的过磅费',0,'" + strUserID + "',getdate(),1,'" + outFee.OUTGID + "',0,0,'" + outFee.ARFEE_2_OUT + "',0,0,'" + outFee.ARFEE_2_OUT + "',0,'" + strUserID + "', getdate())";
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL, null);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
reader.Close();
|
|
|
|
|
|
|
|
|
#region 出库明细表数据锁定
|
|
|
|
|
|
string ssSQL = "";
|
|
|
ssSQL = "update wms_out_detail set ISLOCK=1,LOCKUSER='" + strUserID + "',LOCKTIME=getdate() where ISLOCK=0 and OUTBSNO in (select bsno from wms_out where GID in (" + gids + "))";
|
|
|
#endregion
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, ssSQL.ToString(), null);
|
|
|
|
|
|
#region 出库主表数据锁定
|
|
|
ssSQL = "update wms_out set ISLOCK=1,LOCKUSER='" + strUserID + "',LOCKTIME=getdate() where ISLOCK=0 and gid in (" + gids + ")";
|
|
|
#endregion
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, ssSQL.ToString(), null);
|
|
|
|
|
|
sqlTran.Commit();
|
|
|
|
|
|
#region 送货单状态更改
|
|
|
|
|
|
if (bEIP)
|
|
|
{
|
|
|
StringBuilder strEIPSql = new StringBuilder();
|
|
|
strEIPSql.Append("update EIP_Stockup set BSSTATUS='5' where BSNO in (" + gids + ")");
|
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
|
dbEIP.ExecuteNonQuery(CommandType.Text, strEIPSql.ToString());
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
result.Success = false;
|
|
|
result.Message = "操作出现错误,请重试或联系系统管理员";
|
|
|
return result;
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "操作成功!(注意如果用户权限不够,将不予以入账!)";
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 取消入账
|
|
|
public static DBResult setnotlock(string gids, bool bEIP, string strUserID, string strCompanyID, string strDEPTNAME)
|
|
|
{
|
|
|
DBResult result = new DBResult();
|
|
|
if (gids.Trim() == "")
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "没有输入任何需要修改的数据";
|
|
|
}
|
|
|
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
|
|
|
gids = "'" + gids.Trim().Replace(",", "','") + "'";
|
|
|
|
|
|
#region 判断【ch_fee】中的费用状态,是否允许取消入账
|
|
|
string sSQL = "select count(*) iCount from ch_fee WITH(NOLOCK) where WMSOUTBSNO in(" + gids + ") and FEESTATUS<>1";
|
|
|
int iCount = int.Parse(T_ALL_DA.GetStrSQL("iCount", sSQL));
|
|
|
if (iCount != 0)
|
|
|
{
|
|
|
result.Success = false;
|
|
|
result.Message = "有“已提交的费用”,不允许取消入账,请重新操作!";
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 取消入账
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
#region 删除ch_fee
|
|
|
sSQL = "delete from ch_fee where WMSOUTBSNO in (" + gids + ")";
|
|
|
#endregion
|
|
|
int existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL.ToString(), null);
|
|
|
|
|
|
#region 删除明细表
|
|
|
sSQL = "update wms_out_detail set ISLOCK=0,LOCKUSER='" + strUserID + "',LOCKTIME=getdate() where ISLOCK=1 and OUTBSNO in (select bsno from wms_out where gid in (" + gids + "))";
|
|
|
#endregion
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL.ToString(), null);
|
|
|
|
|
|
#region 删除主表
|
|
|
sSQL = "update wms_out set ISLOCK=0,LOCKUSER='" + strUserID + "',LOCKTIME=getdate() where ISLOCK=1 and gid in (" + gids + ")";
|
|
|
#endregion
|
|
|
existVal = SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sSQL.ToString(), null);
|
|
|
|
|
|
sqlTran.Commit();
|
|
|
|
|
|
#region 送货单状态更改
|
|
|
|
|
|
if (bEIP)
|
|
|
{
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("update EIP_Stockup set BSSTATUS='4' where BSNO in (" + gids + ")");
|
|
|
Database dbEIP = DatabaseFactory.CreateDatabase("EIP");
|
|
|
dbEIP.ExecuteNonQuery(CommandType.Text, strSql.ToString());
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
sqlTran.Rollback();
|
|
|
result.Success = false;
|
|
|
result.Message = "取消入账出现错误,请重试或联系系统管理员";
|
|
|
return result;
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
result.Success = true;
|
|
|
result.Message = "取消入账数据成功";
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
//
|
|
|
|
|
|
#region 生成装卸费,陆运费
|
|
|
public static bool CreateCost(string OutBsno,string OutType, string userid, out string msg)
|
|
|
{
|
|
|
|
|
|
//判断该出库单是否已生成过费用
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
string check = @"SELECT count(*) from ch_fee where WMSOUTBSNO = (select top 1 gid from wms_out where BSNO= '" + OutBsno + "') and REMARK = '出库生成费用' ";
|
|
|
if (Convert.ToInt32(db.ExecuteScalar(CommandType.Text, check)) > 0)
|
|
|
{
|
|
|
msg = "已经生成过费用,不允许重复生成!";
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
string sql = @"select o.ASSOCIATEDNO as ASSOCIATEDNO,o.GID AS OUTGID,w.INBSNO AS INBSNO, w.GID AS OUTDEGID,w.TRUCKNO,w.ZHUANGXIEFEI,w.ZHUANGXIEGONGID,(select name from wms_stevedores where gid = w.zhuangxiegongid and DELFLAG = 0) as ZHUANGXIEGONG,w.LOADERFEE,o.ARCLIENTWMSOUT from wms_out_detail w inner join wms_out o on o.bsno=w.outbsno where w.outbsno = '" + OutBsno + "'";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<CostModel> list = new List<CostModel>();
|
|
|
bool rst = false;
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
CostModel s = new CostModel();
|
|
|
s.OUTGID = reader["OUTGID"].ToString();
|
|
|
s.OUTDEGID = reader["OUTDEGID"].ToString();
|
|
|
s.BSNO = s.OUTGID;
|
|
|
s.INBSNO = reader["INBSNO"].ToString();
|
|
|
if (GetFeeConfig(OutType,s.INBSNO))
|
|
|
s.BSNO = reader["ASSOCIATEDNO"].ToString();
|
|
|
s.TRUCKNO = reader["TRUCKNO"].ToString();
|
|
|
s.ZhuangXieFei = float.Parse(reader["ZHUANGXIEFEI"].ToString());
|
|
|
s.ZHUANGXIEGONGID = reader["ZHUANGXIEGONG"].ToString();
|
|
|
s.LOADERFEE = float.Parse(reader["LOADERFEE"].ToString());
|
|
|
s.ARCLIENT = reader["ARCLIENTWMSOUT"].ToString();
|
|
|
list.Add(s);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
foreach (var cm in list)
|
|
|
{
|
|
|
for (int i = 0; i < 3; i++)
|
|
|
{
|
|
|
string feeName = "";
|
|
|
float feeValue;
|
|
|
string feeCustomerName = "";
|
|
|
string feeType = "";
|
|
|
switch (i)
|
|
|
{
|
|
|
/*
|
|
|
case 0:
|
|
|
feeName = "陆运费";
|
|
|
feeValue = cm.LUYUNFEI;
|
|
|
break;
|
|
|
case 1:
|
|
|
feeName = "掉头费";
|
|
|
feeValue = cm.DIAOTOUFEI;
|
|
|
break;
|
|
|
case 2:
|
|
|
feeName = "修洗箱费";
|
|
|
feeValue = cm.XIUXIXIANGFEI;
|
|
|
break;
|
|
|
case 3:
|
|
|
feeName = "吊装费";
|
|
|
feeValue = cm.DIAOZHUANGFEI;
|
|
|
break;?
|
|
|
*/
|
|
|
case 0:
|
|
|
feeName = "装卸费";
|
|
|
feeValue = cm.ZhuangXieFei;
|
|
|
feeCustomerName = cm.ZHUANGXIEGONGID;
|
|
|
feeType = "2";
|
|
|
break;
|
|
|
case 1:
|
|
|
feeName = "出库装卸费";
|
|
|
feeValue = cm.LOADERFEE;
|
|
|
feeCustomerName = cm.ARCLIENT;
|
|
|
feeType = "1";
|
|
|
break;
|
|
|
default:
|
|
|
feeName = "";
|
|
|
feeValue = 0;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (feeValue != 0)
|
|
|
{
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append(@"insert into ch_fee (GID,BSNO,FEETYPE,FEENAME,REMARK,CUSTOMERTYPE,CUSTOMERNAME,UNIT,UNITPRICE,QUANTITY,");
|
|
|
sb.Append(@"AMOUNT,CURRENCY,EXCHANGERATE,FEESTATUS,NOTAXAMOUNT,TAXUNITPRICE,WMSOUTBSNO,ENTEROPERATOR) ");
|
|
|
sb.Append(@" VALUES(");
|
|
|
sb.Append("'" + Guid.NewGuid() + "',");//GID
|
|
|
sb.Append("'" + cm.BSNO + "',");//BSNO
|
|
|
sb.Append("'" + feeType + "', ");//FEETYPE
|
|
|
sb.Append("'" + feeName + "',");//FEENAME
|
|
|
sb.Append("'出库装卸费用',");//REMARK
|
|
|
sb.Append("'" + "车队" + "',");//CUSTOMERTYPE
|
|
|
sb.Append("'" + feeCustomerName + "',");//CUSTOMERNAME
|
|
|
sb.Append("'" + "单票" + "',");//UNIT
|
|
|
sb.Append(feeValue + ",");//UNITPRICE
|
|
|
sb.Append("1" + ",");//QUANTITY
|
|
|
sb.Append(feeValue + ",");//AMOUNT
|
|
|
sb.Append("'" + "RMB" + "',");//CURRENCY
|
|
|
sb.Append("1" + ",");//EXCHANGERATE
|
|
|
sb.Append("1" + ",");//FEESTATUS
|
|
|
sb.Append(feeValue + ",");//NOTAXAMOUNT
|
|
|
sb.Append(feeValue + ",");//TAXUNITPRICE
|
|
|
sb.Append("'" + cm.OUTGID + "',");//WMSOUTBSNO
|
|
|
sb.Append("'" + userid + "'");//ENTEROPERATOR
|
|
|
|
|
|
sb.Append(")");
|
|
|
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, sb.ToString(), null);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
sqlTran.Commit();
|
|
|
msg = "生成成功!";
|
|
|
rst = true;
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
msg = "生成失败!";
|
|
|
sqlTran.Rollback();
|
|
|
rst = false;
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
SqlHelper.CloseConnection();
|
|
|
sqlTran.Dispose();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return rst;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 清库配置信息
|
|
|
static public string GetSysDeStockConfig(string userid)
|
|
|
{
|
|
|
string sql = "select PARAMVALUE from sys_param_set where PARAMNAME = 'OverStock' ";
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
string value = "0";
|
|
|
var rst = db.ExecuteScalar(CommandType.Text, sql);
|
|
|
if (rst != null && rst != DBNull.Value && rst.ToString() != "")
|
|
|
{
|
|
|
value = rst.ToString();
|
|
|
}
|
|
|
return value;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 权限范围
|
|
|
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='modWmsOutList' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
string AUTHORITYID = "";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
|
|
|
operaterange = Convert.ToString(reader["OPERATERANGE"]);
|
|
|
AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = "1=2";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
|
|
|
str = " (WMSOP='" + username + "' OR CREATEUSER='" + userid + "')";
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptid = rangeDa.GetDEPTGID(userid);
|
|
|
str = " (WMSOP in (select showname from vw_user where deptgid='" + deptid + "') OR CREATEUSER in (select userid from vw_user where deptgid='" + deptid + "'))";
|
|
|
|
|
|
|
|
|
|
|
|
//var userstr = new StringBuilder();
|
|
|
//userstr.Append(" select SHOWNAME from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')");
|
|
|
//Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
//using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
//{
|
|
|
// str = "";
|
|
|
// while (reader.Read())
|
|
|
// {
|
|
|
// if (str == "")
|
|
|
// {
|
|
|
// str = " (B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.FRCUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// str = str + " or B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.FRCUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
|
|
|
// };
|
|
|
// }
|
|
|
// str = str + ")";
|
|
|
// reader.Close();
|
|
|
//}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " UPPER(CORPID)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "5")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " UPPER(Corpid)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "6")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (WMSOP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR CREATEUSER='" + Convert.ToString(reader["OPID"]) + "' ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or WMSOP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR CREATEUSER='" + Convert.ToString(reader["OPID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " UPPER(Corpid)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
str = " UPPER(Corpid)='" + companyid + "'";
|
|
|
}
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
public static string GetImpRangDAStr(string tb, string userid, string username, string companyid)
|
|
|
{
|
|
|
string str = "";
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT ");
|
|
|
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID ");
|
|
|
strSql.Append(" from VW_User_Authority ");
|
|
|
strSql.Append(" where [NAME]='modWmsList' and USERID='" + userid + "' and ISDELETE=0");
|
|
|
|
|
|
string visiblerange = "4";
|
|
|
string operaterange = "4";
|
|
|
string AUTHORITYID = "";
|
|
|
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
|
|
|
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
|
|
|
operaterange = Convert.ToString(reader["OPERATERANGE"]);
|
|
|
AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]);
|
|
|
break;
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
if (visiblerange == "4")
|
|
|
{
|
|
|
str = "1=2";
|
|
|
}
|
|
|
else if (visiblerange == "3")
|
|
|
{
|
|
|
|
|
|
str = " (WMSOP='" + username + "')";
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "2")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var rangeDa = new RangeDA();
|
|
|
var deptid = rangeDa.GetDEPTGID(userid);
|
|
|
str = " (WMSOP in (select showname from vw_user where deptgid='" + deptid + "') )";
|
|
|
|
|
|
|
|
|
|
|
|
//var userstr = new StringBuilder();
|
|
|
//userstr.Append(" select SHOWNAME from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')");
|
|
|
//Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
//using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
//{
|
|
|
// str = "";
|
|
|
// while (reader.Read())
|
|
|
// {
|
|
|
// if (str == "")
|
|
|
// {
|
|
|
// str = " (B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.FRCUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// str = str + " or B.OP='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.CUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' OR B.FRCUSTSERVICE='" + Convert.ToString(reader["SHOWNAME"]) + "'";
|
|
|
// };
|
|
|
// }
|
|
|
// str = str + ")";
|
|
|
// reader.Close();
|
|
|
//}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " UPPER(CORPID)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "5")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or Corpid='" + Convert.ToString(reader["COMPANYID"]) + "'";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " UPPER(Corpid)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "6")
|
|
|
{
|
|
|
if (tb == "index")
|
|
|
{
|
|
|
var userstr = new StringBuilder();
|
|
|
userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
|
|
|
Database userdb = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
|
|
|
{
|
|
|
str = "";
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
if (str == "")
|
|
|
{
|
|
|
str = " (WMSOP='" + Convert.ToString(reader["SHOWNAME"]) + "' ";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = str + " or WMSOP='" + Convert.ToString(reader["SHOWNAME"]) + "' ";
|
|
|
};
|
|
|
}
|
|
|
str = str + ")";
|
|
|
reader.Close();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
str = " UPPER(Corpid)='" + companyid + "'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else if (visiblerange == "1")
|
|
|
{
|
|
|
str = " UPPER(Corpid)='" + companyid + "'";
|
|
|
}
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 查询明细表 良通捷运
|
|
|
static public List<VwWmsDetail_BoxModels> GetDetailList_Box(string opStatus, string strCondition, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
if (opStatus == "edit")
|
|
|
{
|
|
|
string sTableName = "VW_WMS_DETAIL";
|
|
|
|
|
|
strSql.Append("SELECT *,ISBONDEDNAME=(case when ISBONDED=1 then '是' else '否' end)");
|
|
|
strSql.Append(" from " + sTableName + " WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
return SetDetail_Box(strSql);
|
|
|
}
|
|
|
else{
|
|
|
|
|
|
string sTableName = "VW_WMS_DETAIL";
|
|
|
|
|
|
strSql.Append("SELECT *,ISBONDEDNAME=(case when ISBONDED=1 then '是' else '否' end)");
|
|
|
strSql.Append(" from " + sTableName + " WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
//return SetDetail_Box(strSql);
|
|
|
|
|
|
var _r = SetDetail_Box(strSql);
|
|
|
|
|
|
var result = new List<VwWmsDetail_BoxModels>();
|
|
|
//如果是新增 需要从中去除其他出库明细的内容
|
|
|
//去除方式:如果GID_OUT不为空 将其设为空 并递减显示的件数
|
|
|
|
|
|
for (var _i = 0; _i < _r.Count; _i++) {
|
|
|
if (string.IsNullOrWhiteSpace(_r[_i].GID_OUT))
|
|
|
{
|
|
|
result.Add(_r[_i]);
|
|
|
|
|
|
}
|
|
|
else {
|
|
|
var newitem = _r[_i];
|
|
|
newitem.GID_OUT = "";
|
|
|
|
|
|
newitem.NID = newitem.GID;
|
|
|
|
|
|
//newitem.GOODSSTOCK = newitem.GOODSSTOCK - newitem.GOODSPFSL_OUT;
|
|
|
newitem.GOODSPFSL_OUT = 0;
|
|
|
newitem.OUTBSNO_OUT = "";
|
|
|
|
|
|
if(newitem.GOODSSTOCK>0)
|
|
|
result.Add(newitem);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/* GetDetailList_box_needtoout
|
|
|
static public List<VwWmsDetailModels> GetDetailList_box(string opStatus, string strCondition, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
string sTableName = "VW_WMS_DETAIL_NULL";
|
|
|
if (opStatus == "edit")
|
|
|
{
|
|
|
sTableName = "VW_WMS_DETAIL";
|
|
|
}
|
|
|
strSql.Append("SELECT *,ISBONDEDNAME=(case when ISBONDED=1 then '是' else '否' end)");
|
|
|
strSql.Append(" from " + sTableName + " WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
return SetDetail(strSql);
|
|
|
}
|
|
|
*/
|
|
|
|
|
|
private static List<VwWmsDetail_BoxModels> SetDetail_Box(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<VwWmsDetail_BoxModels>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
VwWmsDetail_BoxModels data = new VwWmsDetail_BoxModels();
|
|
|
#region Set DB data to Object
|
|
|
data.PICIHAO = (reader["PICIHAO"] == null ? "" : Convert.ToString(reader["PICIHAO"]));//批次号
|
|
|
data.NID = (reader["NID"] == null ? "" : Convert.ToString(reader["NID"]));//NID
|
|
|
data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//GID
|
|
|
data.ASSOCIATEDNO = (reader["ASSOCIATEDNO"] == null ? "" : Convert.ToString(reader["ASSOCIATEDNO"]));//ASSOCIATEDNO
|
|
|
data.BSNO = (reader["BSNO"] == null ? "" : Convert.ToString(reader["BSNO"]));//BSNO
|
|
|
data.BLNO = (reader["BLNO"] == null ? "" : Convert.ToString(reader["BLNO"]));//BLNO
|
|
|
data.CONTRACTNO = (reader["CONTRACTNO"] == null ? "" : Convert.ToString(reader["CONTRACTNO"]));//CONTRACTNO
|
|
|
data.STORAGENAME = (reader["STORAGENAME"] == null ? "" : Convert.ToString(reader["STORAGENAME"]));//STORAGENAME
|
|
|
data.GOODSNAME = (reader["GOODSNAME"] == null ? "" : Convert.ToString(reader["GOODSNAME"]));//GOODSNAME
|
|
|
data.GOODSMODEL = (reader["GOODSMODEL"] == null ? "" : Convert.ToString(reader["GOODSMODEL"]));//GOODSMODEL
|
|
|
data.GOODSPACK = (reader["GOODSPACK"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACK"]));//GOODSPACK
|
|
|
data.CHARGEUNIT = (reader["CHARGEUNIT"] == null ? "" : Convert.ToString(reader["CHARGEUNIT"]));//CHARGEUNIT
|
|
|
data.GOODSRKSL = (reader["GOODSRKSL"] == null ? 0 : Convert.ToDecimal(reader["GOODSRKSL"]));//GOODSRKSL
|
|
|
data.GOODSSTOCK = (reader["GOODSSTOCK"] == null ? 0 : Convert.ToDecimal(reader["GOODSSTOCK"]));//GOODSSTOCK
|
|
|
data.FREESTORAGEPERIOD = (reader["FREESTORAGEPERIOD"] == null ? 0 : Convert.ToInt32(reader["FREESTORAGEPERIOD"]));//FREESTORAGEPERIOD
|
|
|
data.ISLOCK = (reader["ISLOCK"] == null ? 0 : Convert.ToInt32(reader["ISLOCK"]));//ISLOCK
|
|
|
if (reader["LOCKTIME"] != null && reader["LOCKTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["LOCKTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["LOCKTIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.LOCKTIME = Convert.ToDateTime(reader["LOCKTIME"]);//LOCKTIME
|
|
|
}
|
|
|
data.LOCKUSER = (reader["LOCKUSER"] == null ? "" : Convert.ToString(reader["LOCKUSER"]));//LOCKUSER
|
|
|
data.ISDELETE = (reader["ISDELETE"] == null ? false : Convert.ToBoolean(reader["ISDELETE"]));//ISDELETE
|
|
|
if (reader["DELETETIME"] != null && reader["DELETETIME"].ToString().Trim().IndexOf("0001") < 0 && reader["DELETETIME"].ToString().Trim().IndexOf("1900") < 0 && reader["DELETETIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.DELETETIME = Convert.ToDateTime(reader["DELETETIME"]);//DELETETIME
|
|
|
}
|
|
|
data.DELETEUSER = (reader["DELETEUSER"] == null ? "" : Convert.ToString(reader["DELETEUSER"]));//DELETEUSER
|
|
|
data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//MODIFIEDUSER
|
|
|
if (reader["MODIFIEDTIME"] != null && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("0001") < 0 && reader["MODIFIEDTIME"].ToString().Trim().IndexOf("1900") < 0 && reader["MODIFIEDTIME"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//MODIFIEDTIME
|
|
|
}
|
|
|
data.GID_OUT = (reader["GID_OUT"] == null ? "" : Convert.ToString(reader["GID_OUT"]));//GID_OUT
|
|
|
data.ASSOCIATEDNO_OUT = (reader["ASSOCIATEDNO_OUT"] == null ? "" : Convert.ToString(reader["ASSOCIATEDNO_OUT"]));//ASSOCIATEDNO_OUT
|
|
|
data.INBSNO_OUT = (reader["INBSNO_OUT"] == null ? "" : Convert.ToString(reader["INBSNO_OUT"]));//INBSNO_OUT
|
|
|
data.OUTBSNO_OUT = (reader["OUTBSNO_OUT"] == null ? "" : Convert.ToString(reader["OUTBSNO_OUT"]));//OUTBSNO_OUT
|
|
|
data.BSNO_OUT = (reader["BSNO_OUT"] == null ? "" : Convert.ToString(reader["BSNO_OUT"]));//BSNO_OUT
|
|
|
data.CLIENTGID_OUT = (reader["CLIENTGID_OUT"] == null ? "" : Convert.ToString(reader["CLIENTGID_OUT"]));//CLIENTGID_OUT
|
|
|
data.CLIENTCODE_OUT = (reader["CLIENTCODE_OUT"] == null ? "" : Convert.ToString(reader["CLIENTCODE_OUT"]));//CLIENTCODE_OUT
|
|
|
data.CUSTOMERNAME_OUT = (reader["CUSTOMERNAME_OUT"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME_OUT"]));//CUSTOMERNAME_OUT
|
|
|
data.DODATE_OUT = (reader["DODATE_OUT"] == null ? "" : Convert.ToString(reader["DODATE_OUT"]));//DODATE_OUT
|
|
|
data.STORAGECODE_OUT = (reader["STORAGECODE_OUT"] == null ? "" : Convert.ToString(reader["STORAGECODE_OUT"]));//STORAGECODE_OUT
|
|
|
data.STORAGENAME_OUT = (reader["STORAGENAME_OUT"] == null ? "" : Convert.ToString(reader["STORAGENAME_OUT"]));//STORAGENAME_OUT
|
|
|
data.AREACODE_OUT = (reader["AREACODE_OUT"] == null ? "" : Convert.ToString(reader["AREACODE_OUT"]));//AREACODE_OUT
|
|
|
data.AREANAME_OUT = (reader["AREANAME_OUT"] == null ? "" : Convert.ToString(reader["AREANAME_OUT"]));//AREANAME_OUT
|
|
|
data.GOODSCODE_OUT = (reader["GOODSCODE_OUT"] == null ? "" : Convert.ToString(reader["GOODSCODE_OUT"]));//GOODSCODE_OUT
|
|
|
data.GOODSNAME_OUT = (reader["GOODSNAME_OUT"] == null ? "" : Convert.ToString(reader["GOODSNAME_OUT"]));//GOODSNAME_OUT
|
|
|
data.GOODSTYPE_OUT = (reader["GOODSTYPE_OUT"] == null ? "" : Convert.ToString(reader["GOODSTYPE_OUT"]));//GOODSTYPE_OUT
|
|
|
data.GOODSMODEL_OUT = (reader["GOODSMODEL_OUT"] == null ? "" : Convert.ToString(reader["GOODSMODEL_OUT"]));//GOODSMODEL_OUT
|
|
|
data.GOODSSTANDARD_OUT = (reader["GOODSSTANDARD_OUT"] == null ? "" : Convert.ToString(reader["GOODSSTANDARD_OUT"]));//GOODSSTANDARD_OUT
|
|
|
data.GOODSPACK_OUT = (reader["GOODSPACK_OUT"] == null ? "" : Convert.ToString(reader["GOODSPACK_OUT"]));//GOODSPACK_OUT
|
|
|
data.CHARGEUNIT_OUT = (reader["CHARGEUNIT_OUT"] == null ? "" : Convert.ToString(reader["CHARGEUNIT_OUT"]));//CHARGEUNIT_OUT
|
|
|
data.GOODSPFSL_OUT = (reader["GOODSPFSL_OUT"] == null ? 0 : Convert.ToDecimal(reader["GOODSPFSL_OUT"]));//GOODSPFSL_OUT
|
|
|
data.TRUCKNO_OUT = (reader["TRUCKNO_OUT"] == null ? "" : Convert.ToString(reader["TRUCKNO_OUT"]));//TRUCKNO_OUT
|
|
|
data.CREATEUSER_OUT = (reader["CREATEUSER_OUT"] == null ? "" : Convert.ToString(reader["CREATEUSER_OUT"]));//CREATEUSER_OUT
|
|
|
if (reader["CREATETIME_OUT"] != null && reader["CREATETIME_OUT"].ToString().Trim().IndexOf("0001") < 0 && reader["CREATETIME_OUT"].ToString().Trim().IndexOf("1900") < 0 && reader["CREATETIME_OUT"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.CREATETIME_OUT = Convert.ToDateTime(reader["CREATETIME_OUT"]);//CREATETIME_OUT
|
|
|
}
|
|
|
data.REMARK_OUT = (reader["REMARK_OUT"] == null ? "" : Convert.ToString(reader["REMARK_OUT"]));//REMARK_OUT
|
|
|
data.GOODSPACKPFSL_OUT = (reader["GOODSPACKPFSL_OUT"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACKPFSL_OUT"]));//GOODSPACKPFSL_OUT
|
|
|
data.ARFEE = (reader["ARFEE"] == null ? 0 : Convert.ToDecimal(reader["ARFEE"]));//ARFEE
|
|
|
data.APFEE = (reader["APFEE"] == null ? 0 : Convert.ToDecimal(reader["APFEE"]));//APFEE
|
|
|
data.ARFEE_OUT = (reader["ARFEE_OUT"] == null ? 0 : Convert.ToDecimal(reader["ARFEE_OUT"]));//ARFEE_OUT
|
|
|
data.ARFEE_2_OUT = (reader["ARFEE_2_OUT"] == null ? 0 : Convert.ToDecimal(reader["ARFEE_2_OUT"]));//ARFEE_2_OUT,需求编号:SR2017073000001
|
|
|
data.APFEE_OUT = (reader["APFEE_OUT"] == null ? 0 : Convert.ToDecimal(reader["APFEE_OUT"]));//APFEE_OUT
|
|
|
data.GOODSOUTFEE_OUT = (reader["GOODSOUTFEE_OUT"] == null ? 0 : Convert.ToDecimal(reader["GOODSOUTFEE_OUT"]));//GOODSOUTFEE_OUT
|
|
|
data.GOODSOUTFEEAP_OUT = (reader["GOODSOUTFEEAP_OUT"] == null ? 0 : Convert.ToDecimal(reader["GOODSOUTFEEAP_OUT"]));//GOODSOUTFEEAP_OUT
|
|
|
data.WMSNO = (reader["WMSNO"] == null ? "" : Convert.ToString(reader["WMSNO"]));//WMSNO
|
|
|
data.WMSDATE = (reader["WMSDATE"] == null ? "" : Convert.ToString(reader["WMSDATE"]));//WMSDATE
|
|
|
data.CUSTOMERNAME = (reader["CUSTOMERNAME"] == null ? "" : Convert.ToString(reader["CUSTOMERNAME"]));//CUSTOMERNAME
|
|
|
data.WMSOP = (reader["WMSOP"] == null ? "" : Convert.ToString(reader["WMSOP"]));//WMSOP
|
|
|
data.STOREMAN = (reader["STOREMAN"] == null ? "" : Convert.ToString(reader["STOREMAN"]));//STOREMAN
|
|
|
data.GOODSPACKSTOCK = (reader["GOODSPACKSTOCK"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACKSTOCK"]));//GOODSPACKSTOCK
|
|
|
data.TRUCKNAME = (reader["TRUCKNAME"] == null ? "" : Convert.ToString(reader["TRUCKNAME"]));//TRUCKNAME
|
|
|
if (reader["STARTBILLINGDATE"] != null && reader["STARTBILLINGDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["STARTBILLINGDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["STARTBILLINGDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.STARTBILLINGDATE = Convert.ToDateTime(reader["STARTBILLINGDATE"]);//STARTBILLINGDATE
|
|
|
}
|
|
|
data.CUSTOMNO = (reader["CUSTOMNO"] == null ? "" : Convert.ToString(reader["CUSTOMNO"]));//CUSTOMNO
|
|
|
data.CUSTNO = (reader["CUSTNO"] == null ? "" : Convert.ToString(reader["CUSTNO"]));//CUSTNO
|
|
|
data.GOODSSTANDARD = (reader["GOODSSTANDARD"] == null ? "" : Convert.ToString(reader["GOODSSTANDARD"]));//GOODSSTANDARD
|
|
|
data.CORPID = (reader["CORPID"] == null ? "" : Convert.ToString(reader["CORPID"]));//CORPID
|
|
|
data.GOODSPACKACTUAL = (reader["GOODSPACKACTUAL"] == null ? 0 : Convert.ToDecimal(reader["GOODSPACKACTUAL"]));//GOODSPACKACTUAL
|
|
|
data.GOODSRKSLACTUAL = (reader["GOODSRKSLACTUAL"] == null ? 0 : Convert.ToDecimal(reader["GOODSRKSLACTUAL"]));//GOODSRKSLACTUAL
|
|
|
data.CLIENTNAMEOLD = (reader["CLIENTNAMEOLD"] == null ? "" : Convert.ToString(reader["CLIENTNAMEOLD"]));//CLIENTNAMEOLD
|
|
|
data.ISCHANGE = (reader["ISCHANGE"] == null ? false : Convert.ToBoolean(reader["ISCHANGE"]));//ISCHANGE
|
|
|
data.ISCHANGE_OUT = (reader["ISCHANGE_OUT"] == null ? false : Convert.ToBoolean(reader["ISCHANGE_OUT"]));//ISCHANGE_OUT
|
|
|
data.WMSGID = (reader["WMSGID"] == null ? "" : Convert.ToString(reader["WMSGID"]));//WMSGID
|
|
|
data.OUTGID = (reader["OUTGID"] == null ? "" : Convert.ToString(reader["OUTGID"]));//OUTGID
|
|
|
data.OUTREMARK = (reader["OUTREMARK"] == null ? "" : Convert.ToString(reader["OUTREMARK"]));//OUTREMARK
|
|
|
data.GOODSNAMEID = (reader["GOODSNAMEID"] == null ? "" : Convert.ToString(reader["GOODSNAMEID"]));//品名gid
|
|
|
data.WHS_CODE = (reader["WHS_CODE"] == null ? "" : Convert.ToString(reader["WHS_CODE"]));//库别
|
|
|
data.AREANAME = (reader["AREANAME"] == null ? "" : Convert.ToString(reader["AREANAME"]));//储位
|
|
|
data.BZTCHNO = (reader["BZTCHNO"] == null ? "" : Convert.ToString(reader["BZTCHNO"]));//电子账册号
|
|
|
data.GOODNO = (reader["GOODNO"] == null ? "" : Convert.ToString(reader["GOODNO"]));//料号
|
|
|
data.ACCDATE = (reader["ACCDATE"] == null ? "" : Convert.ToString(reader["ACCDATE"]));//会计期间
|
|
|
data.FEESTATUSREF = (reader["FEESTATUSREF"] == null ? "" : Convert.ToString(reader["FEESTATUSREF"]));//费用状态
|
|
|
data.ACCDATE_OUT = (reader["ACCDATE_OUT"] == null ? "" : Convert.ToString(reader["ACCDATE_OUT"]));//会计期间_OUT
|
|
|
if (reader["FEESTATUS"] != DBNull.Value) {
|
|
|
data.FEESTATUS = Convert.ToBoolean(reader["FEESTATUS"]);
|
|
|
}
|
|
|
//data.FEESTATUS = (reader["FEESTATUS"] == null ? false : Convert.ToBoolean(reader["FEESTATUS"]));//费用状态_OUT
|
|
|
data.FEESTATUSREF_OUT = (reader["FEESTATUSREF_OUT"] == null ? "" : Convert.ToString(reader["FEESTATUSREF_OUT"]));//费用状态_OUT
|
|
|
data.GOODSSLICE = (reader["GOODSSLICE"] == null ? 0 : Convert.ToDecimal(reader["GOODSSLICE"]));//包装件数//需求编号:SR2017061800001-7
|
|
|
data.ISLOCK2 = (reader["ISLOCK2"] == null ? 0 : Convert.ToInt32(reader["ISLOCK2"]));//需求编号:SR2017061400006-1
|
|
|
//data.ISBONDED = (reader["ISBONDED"] == null ? 0 : Convert.ToInt32(reader["ISBONDED"]));//需求编号:SR2017061900001-1
|
|
|
//data.ISBONDEDNAME = (reader["ISBONDEDNAME"] == null ? "" : Convert.ToString(reader["ISBONDEDNAME"]));//需求编号:SR2017062600003
|
|
|
data.GOODSNUM = (reader["GOODSNUM"] == null ? 0 : Convert.ToDecimal(reader["GOODSNUM"]));//完税件数
|
|
|
data.WeiWanShui = (reader["WeiWanShui"] == null ? 0 : Convert.ToDecimal(reader["WeiWanShui"]));//未完税件数//需求编号:SR2017062200002
|
|
|
if (data.ISBONDED == 0)
|
|
|
{
|
|
|
data.GOODSNUM = 0;//是否保税:SR2017062600003
|
|
|
data.WeiWanShui = 0;//是否保税:SR2017062600003
|
|
|
}
|
|
|
data.GOODSSLICE_OUT = (reader["GOODSSLICE_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSSLICE_OUT"]));//需求编号:SR2017071100001
|
|
|
data.TRUCKTYPE_OUT = (reader["TRUCKTYPE_OUT"] == null ? "" : Convert.ToString(reader["TRUCKTYPE_OUT"]));//需求编号:SR2017073000001
|
|
|
data.ZHUANGXIEGONGID_OUT = (reader["ZHUANGXIEGONGID_OUT"] == null ? "" : Convert.ToString(reader["ZHUANGXIEGONGID_OUT"]));//需求编号:SR2017073000001
|
|
|
data.TRUCKKGS_OUT = (reader["TRUCKKGS_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["TRUCKKGS_OUT"]));//需求编号:SR2017073000001
|
|
|
data.QianFengNO = (reader["QianFengNO"] == null ? "" : Convert.ToString(reader["QianFengNO"]));//需求编号:SR2017073000001
|
|
|
data.ARCLIENTWMSOUT = (reader["ARCLIENTWMSOUT"] == null ? "" : Convert.ToString(reader["ARCLIENTWMSOUT"]));//需求编号:SR2017073000001
|
|
|
data.ARCLIENT = (reader["ARCLIENT"] == null ? "" : Convert.ToString(reader["ARCLIENT"]));//需求编号:SR2017073000001
|
|
|
data.TRUCKNAME_OUT = (reader["TRUCKNAME_OUT"] == null ? "" : Convert.ToString(reader["TRUCKNAME_OUT"]));//需求编号:SR2017073000001
|
|
|
data.GOODSPACKPFSL_OUT_2 = (reader["GOODSPACKPFSL_OUT"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSPACKPFSL_OUT"]));//需求编号:SR2017073000001
|
|
|
if (reader["OLDCUSTFEEDATE"] != DBNull.Value && reader["OLDCUSTFEEDATE"].ToString().Trim().IndexOf("0001") < 0 && reader["OLDCUSTFEEDATE"].ToString().Trim().IndexOf("1900") < 0 && reader["OLDCUSTFEEDATE"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.OLDCUSTFEEDATE = Convert.ToDateTime(reader["OLDCUSTFEEDATE"]);//需求编号:SR2017073000001
|
|
|
}
|
|
|
if (reader["STARTBILLINGDATEAP"] != DBNull.Value && reader["STARTBILLINGDATEAP"].ToString().Trim().IndexOf("0001") < 0 && reader["STARTBILLINGDATEAP"].ToString().Trim().IndexOf("1900") < 0 && reader["STARTBILLINGDATEAP"].ToString().Trim() != "")
|
|
|
{
|
|
|
data.STARTBILLINGDATEAP = Convert.ToDateTime(reader["STARTBILLINGDATEAP"]);//需求编号:SR2017073000001
|
|
|
}
|
|
|
data.CHIMA1 = (reader["CHIMA1"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["CHIMA1"]));//CHIMA1
|
|
|
data.CHIMA2 = (reader["CHIMA2"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["CHIMA2"]));//CHIMA2
|
|
|
data.GOODSKGS = (reader["GOODSKGS"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["GOODSKGS"]));//GOODSKGS
|
|
|
data.ZHONGLIANG2 = (reader["ZHONGLIANG2"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["ZHONGLIANG2"]));//ZHONGLIANG2
|
|
|
|
|
|
data.COUNTRY = (reader["COUNTRY"] == null ? "" : Convert.ToString(reader["COUNTRY"]));//COUNTRY
|
|
|
data.COUNTRYID = (reader["COUNTRYID"] == null ? "" : Convert.ToString(reader["COUNTRYID"]));//COUNTRYID
|
|
|
|
|
|
data.CNTRNO = (reader["CNTRNO"] == null ? "" : Convert.ToString(reader["CNTRNO"]));//COUNTRYID
|
|
|
|
|
|
data.AREACODE = (reader["AREACODE"] == null ? "" : Convert.ToString(reader["AREACODE"]));//COUNTRYID
|
|
|
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
reader.Dispose();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
|
|
|
static public VwWmsDetailModels GetData_Box(string condition, string companyid, string userid)
|
|
|
{
|
|
|
string strCwSTARTGID = BasicDataRefDAL.GetCwSTARTGID(userid);
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT *,ISBONDEDNAME=(case when ISBONDED=1 then '是' else '否' end),(select GOODSCKQSTOCK from wms_out_detail where gid = gid_out) GOODSCKQSTOCK ");
|
|
|
strSql.Append(" from VW_WMS_DETAIL WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(condition))
|
|
|
{
|
|
|
strSql.Append(" and " + condition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
var list = SetDetail(strSql);
|
|
|
if (list.Count > 0)
|
|
|
return list[0];
|
|
|
return new VwWmsDetailModels();
|
|
|
}
|
|
|
|
|
|
static public string GetDataListStr_Box(string strCondition)
|
|
|
{
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append("SELECT NID as 出库明细GID,CUSTOMERNAME as 客户名称,STORAGENAME as 所属仓库,BLNO as 提单号,WMSNO as 入库单号,WMSDATE as 入库时间,GOODSNAME as 品名,GOODSMODEL as 单位,GOODSSTANDARD as 规格,GOODSPACKSTOCK as 剩余件数,WeiWanShui as 未完税件数,(case when ISBONDED=1 then GOODSNUM else 0 end) as 完税件数,(case when ISBONDED=1 then WeiWanShui else 0 end) as 未完税件数,GOODSPACKPFSL_OUT as 出库件数,GOODSSLICE_OUT as 出库包装件数,REMARK_OUT as 明细备注,OUTREMARK as 出库备注,OUTBSNO_OUT as 出库单号,DODATE_OUT as 出库日期,WHS_CODE as 库别,AREANAME as 储位,BZTCHNO as 电子账册号,GOODNO as 料号,ACCDATE_OUT as 会计期间,是否保税业务=(case when ISBONDED=1 then '是' else '否' end),TRUCKTYPE_OUT as 车辆类型,ZHUANGXIEGONGID_OUT as 装卸工,TRUCKKGS_OUT as 平均重量,QianFengNO as 铅封号,ARCLIENTWMSOUT as 应收仓储客户,ARCLIENT as 应收出库客户,TRUCKNAME_OUT as 应付客户");//,GOODSSTOCK as 剩余库存//需求编号:SR2017061800001-7、SR2017062200002、SR2017071100001、SR2017071300002-2//需求编号:SR2017073000001
|
|
|
strSql.Append(" from VW_WMS_DETAIL WITH(NOLOCK) where 1=1");
|
|
|
if (!string.IsNullOrEmpty(strCondition))
|
|
|
{
|
|
|
strSql.Append(" and " + strCondition);
|
|
|
}
|
|
|
strSql.Append(" order by CUSTOMERNAME,BLNO,WMSNO,WMSDATE,BSNO_OUT");
|
|
|
return strSql.ToString();
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 费用是否关联海运进口
|
|
|
static public bool GetFeeConfig(string outType,string InBsno)
|
|
|
{
|
|
|
//费用是否关联海运进口,系统参数
|
|
|
string sql = "select PARAMVALUE from sys_param_set where gid = '617FA649-45D9-489D-ADE9-D1E96D10D111' ";
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
string valueSys = "0";
|
|
|
var rstSys = db.ExecuteScalar(CommandType.Text, sql);
|
|
|
if (rstSys != null && rstSys != DBNull.Value && rstSys.ToString() != "")
|
|
|
{
|
|
|
valueSys = rstSys.ToString();
|
|
|
}
|
|
|
//入库时,入库单是否关联了进口单据
|
|
|
if (outType == "StockOut")
|
|
|
{
|
|
|
sql = "select count(*) from wms where GID like '" + InBsno + "' and GID=ASSOCIATEDNO ";
|
|
|
|
|
|
}
|
|
|
if (outType == "StockOutDetail" )
|
|
|
{
|
|
|
sql = "select count(w.gid) from wms w inner join wms_in wi on w.GID=wi.ASSOCIATEDNO where wi.GID like '" + InBsno + "' and w.GID=w.ASSOCIATEDNO ";
|
|
|
}
|
|
|
string valuePara = "0";
|
|
|
var rstPara = db.ExecuteScalar(CommandType.Text, sql);
|
|
|
if (rstPara != null && rstPara != DBNull.Value && rstPara.ToString() != "")
|
|
|
{
|
|
|
valuePara = rstPara.ToString();
|
|
|
}
|
|
|
|
|
|
if ((valueSys == "1") && (valuePara == "0"))
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
else
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
}
|