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 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 SetDataHJ(StringBuilder strSql) { var headList = new List(); 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; } /// /// 获取费用状态的显示文字,需求编号:SR2017071300002-1 /// /// /// 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 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 SetDetail(StringBuilder strSql) { var headList = new List(); 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 /// /// 提取规则编号 /// /// OutBsno = getCodeRuleWmsOut("出库单号", "BSNO"); /// 规则项目名称 /// 需要加规则的字段 /// 需要添加的行数 /// 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 /// /// 规则编号_是否生成之后允许编辑 /// /// 规则项目名称 /// 需要加规则的字段 /// 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 计算仓储费 /// /// 计算仓储费 /// /// 事务 /// 开始计费日期 /// 上家承担仓储期限 /// 出库明细关联的入库单wms或wms_in的BSNO /// 出库主表的客户名称 /// 出库量 /// 关联wms_out_detail的GID /// 区别费用收、付类型 /// 登陆用户GID /// 登陆用户名 /// 出库单号或其他单据号 /// 是否计算仓储费 /// 是否库存 /// 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 tempWmsRateDetailDetailEntities = new List(); 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", ""); //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 /// /// 计算仓储时间差 +1 /// 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 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 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 SetWmsRateDetail(StringBuilder strSql) { var headList = new List(); 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(); var outbsnodic = new Dictionary(); 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); } } /// /// 实际执行费用入账操作 /// /// wms_out.GID 用逗号,隔开 /// bool型 wms_out.EIP /// StockOut、StockOutDetail,来自wms_out.ISDETAIL true=StockOutDetail false=StockOut /// 调用时可使用wms_out.CREATEUSER /// 未使用 不填 /// 未使用 不填 /// 未使用 不填 /// 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(",", "','") + "'"; gids=gids.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 e) { sqlTran.Rollback(); result.Success = false; result.Message = $"操作出现错误,请重试或联系系统管理员[{e.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 list = new List(); 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 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(); //如果是新增 需要从中去除其他出库明细的内容 //去除方式:如果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 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 SetDetail_Box(StringBuilder strSql) { var headList = new List(); 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 } }