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