@ -3628,27 +3628,19 @@ namespace DSWeb.Areas.MvcShipping.DAL.MsOp_BLISSUE
var _recount = 0 ;
var _recount = 0 ;
var headList = GetDataList ( " B.BSNO in (" + BSNO + ") " , 0 , 999 , out _recount ) ;
var headList = GetDataList ( " B.BSNO in (" + BSNO + ") " , 0 , 999 , out _recount ) ;
//0 如果所有BSNO对应的特殊放单申请都已被审核通过 则直接返回true
if ( headList . Count = = 0 ) {
var cdc = new CommonDataContext ( ) ;
result . SetErrorInfo ( "没有可以放单或放货的业务" ) ;
var bsnoList = BSNO . Replace ( "'" , "" ) . Split ( ',' ) . ToList ( ) ;
return result ;
var 特 放 明 细 List = cdc . v_op_blissuelist_Detail . Where ( x = > bsnoList . Contains ( x . bsno ) ) ;
}
var 特 放 审 核 通 过 = true ;
foreach ( var bsno in bsnoList ) {
var 审 批 通 过 的 特 放 明 细 = 特 放 明 细 List . Where ( x = > x . bsno = = bsno & & x . BLSTATUS = = "审核通过" ) . ToList ( ) ;
var 未 审 批 通 过 的 特 放 明 细 = 特 放 明 细 List . Where ( x = > x . bsno = = bsno & & x . BLSTATUS ! = "审核通过" ) . ToList ( ) ;
if ( 审 批 通 过 的 特 放 明 细 ! = null & & 审 批 通 过 的 特 放 明 细 . Count > 0 & & ( 未 审 批 通 过 的 特 放 明 细 = = null | | 未 审 批 通 过 的 特 放 明 细 . Count = = 0 ) )
//0 如果所有BSNO对应的特殊放单申请都已被审核通过 则直接返回true
{
result = 是 否 全 部 特 放 审 核 通 过 ( BSNO ) ;
if ( result . Success ) return result ;
}
//如果有财务扣单的 直接报错返回
else {
result = ISKDWithCW ( BSNO ) ;
特 放 审 核 通 过 = false ;
if ( result . Success ) {
break ;
result . Success = false ;
}
}
if ( 特 放 审 核 通 过 ) {
result . OK ( ) ;
return result ;
return result ;
}
}
@ -3737,9 +3729,12 @@ namespace DSWeb.Areas.MvcShipping.DAL.MsOp_BLISSUE
var result = new DBResult ( ) ;
var result = new DBResult ( ) ;
result . OK ( ) ;
result . OK ( ) ;
try
{
//判断标准 该客户的全部其他业务 是否存在 BLISSUESTATUS<>'提单签出'且<>'已放货' 且其下属明细中有箱号长度11位的箱号 的
//判断标准 该客户的全部其他业务 是否存在 BLISSUESTATUS<>'提单签出'且<>'已放货' 且其下属明细中有箱号长度11位的箱号 的
var recordcount = 0 ;
var recordcount = 0 ;
var bsnostr = "'" + string . Join ( "','" , headList . Select ( s = > s . BSNO ) ) + "'" ;
var bsnostr = "'" + string . Join ( "','" , headList . Select ( s = > s . BSNO ) ) + "'" ;
var 其 他 未 签 出 业 务 List = GetDataList ( $" b.CUSTOMERNAME='{headList[0].CUSTOMERNAME}' and b.BLISSUESTATUS<>'提单签出' and b.BLISSUESTATUS<>'已放货' and exists(select 1 from op_ctn where BSNO=b.BSNO and len(CNTRNO)=11) and b.BSNO not in({bsnostr})" , 0 , 9 , out recordcount ) ;
var 其 他 未 签 出 业 务 List = GetDataList ( $" b.CUSTOMERNAME='{headList[0].CUSTOMERNAME}' and b.BLISSUESTATUS<>'提单签出' and b.BLISSUESTATUS<>'已放货' and exists(select 1 from op_ctn where BSNO=b.BSNO and len(CNTRNO)=11) and b.BSNO not in({bsnostr})" , 0 , 9 , out recordcount ) ;
if ( recordcount > 0 )
if ( recordcount > 0 )
@ -3756,11 +3751,12 @@ namespace DSWeb.Areas.MvcShipping.DAL.MsOp_BLISSUE
{
{
var 最 晚 业 务 = headList . Where ( x = > x . ETD = = LastEtd ) . ToList ( ) ;
var 最 晚 业 务 = headList . Where ( x = > x . ETD = = LastEtd ) . ToList ( ) ;
//有其他未签出的 且用于判断的这些业务是ETD最晚的 是最后一票
//有其他未签出的 且用于判断的这些业务是ETD最晚的 是最后一票
var custnoStr = "单号[" + string . Join ( "," , 最 晚 业 务 . Select ( s = > s . CUSTNO ) . Distinct ( ) . ToArray ( ) ) + "]ATD:" + LastEtd + ",此后无单" ;
var custnoStr = "单号[" + string . Join ( "," , 最 晚 业 务 . Select ( s = > s . CUSTNO ) . Distinct ( ) . ToArray ( ) ) + "]ATD:" + LastEtd + ",此后无单" ;
result . OK ( $"最后开船的{headList.Count}票," + custnoStr + "" , true ) ;
result . OK ( $"最后开船的{headList.Count}票," + custnoStr + "" , true ) ;
}
}
else {
else
{
//有其他未签出的 但用于判断的这些业务不是ETD最晚的 不是最后一票
//有其他未签出的 但用于判断的这些业务不是ETD最晚的 不是最后一票
result . OK ( "" , false ) ;
result . OK ( "" , false ) ;
}
}
@ -3770,7 +3766,10 @@ namespace DSWeb.Areas.MvcShipping.DAL.MsOp_BLISSUE
//没有其他未签出的业务了 是最后一票
//没有其他未签出的业务了 是最后一票
result . OK ( $"警示!!!该客户仅剩此{headList.Count}票" , true ) ;
result . OK ( $"警示!!!该客户仅剩此{headList.Count}票" , true ) ;
}
}
}
catch ( Exception e ) {
result . SetErrorInfo ( e . Message ) ;
}
return result ;
return result ;
}
}
@ -3995,38 +3994,93 @@ namespace DSWeb.Areas.MvcShipping.DAL.MsOp_BLISSUE
return result ;
return result ;
}
}
public static DBResult 是 否 全 部 特 放 审 核 通 过 ( string BSNO )
{
var result = new DBResult ( ) ;
var cdc = new CommonDataContext ( ) ;
var bsnoList = BSNO . Replace ( "'" , "" ) . Split ( ',' ) . ToList ( ) ;
var 特 放 明 细 List = cdc . v_op_blissuelist_Detail . Where ( x = > bsnoList . Contains ( x . bsno ) ) ;
var 特 放 审 核 通 过 = true ;
foreach ( var bsno in bsnoList )
{
var 审 批 通 过 的 特 放 明 细 = 特 放 明 细 List . Where ( x = > x . bsno = = bsno & & x . BLSTATUS = = "审核通过" ) . ToList ( ) ;
var 未 审 批 通 过 的 特 放 明 细 = 特 放 明 细 List . Where ( x = > x . bsno = = bsno & & x . BLSTATUS ! = "审核通过" ) . ToList ( ) ;
if ( 审 批 通 过 的 特 放 明 细 ! = null & & 审 批 通 过 的 特 放 明 细 . Count > 0 & & ( 未 审 批 通 过 的 特 放 明 细 = = null | | 未 审 批 通 过 的 特 放 明 细 . Count = = 0 ) )
{
}
else
{
特 放 审 核 通 过 = false ;
break ;
}
}
if ( 特 放 审 核 通 过 )
{
result . OK ( ) ;
}
else {
result . SetErrorInfo ( "" ) ;
}
return result ;
}
/// <summary>
/// <summary>
/// 是否财务扣单
/// 是否财务扣单
/// 由财务扣单的业务 不可以申请特放
/// 由财务扣单的业务 不可以申请特放;
/// 如有财务扣单 返回true,如无返回false
/// </summary>
/// </summary>
/// <param name="BSNO"></param>
/// <param name="BSNO"></param>
/// <returns></returns>
/// <returns></returns>
public static DBResult ISKDWithCW ( string BSNO )
public static DBResult ISKDWithCW ( string BSNO )
{
var _recount = 0 ;
var headList = GetDataList ( " B.BSNO in (" + BSNO + ") and oB.blstatus='扣单' " , 0 , 999 , out _recount ) ;
return ISKDWithCW ( headList ) ;
}
/// <summary>
/// 是否财务扣单
/// 由财务扣单的业务 不可以申请特放;
/// 如有财务扣单 返回true,如无返回false
/// </summary>
/// <param name="BSNO"></param>
/// <returns></returns>
public static DBResult ISKDWithCW ( List < MsOp_BLISSUEmb > headList )
{
{
var result = new DBResult ( ) ;
var result = new DBResult ( ) ;
result . SetErrorInfo ( "没有财务角色扣单" ) ;
result . SetErrorInfo ( "没有财务角色扣单" ) ;
var _recount = 0 ;
//var _recount = 0 ;
var headList = GetDataList ( " B.BSNO in (" + BSNO + ") and oB.blstatus='扣单' " , 0 , 999 , out _recount ) ;
//var headList = GetDataList(" B.BSNO in (" + BSNO + ") and oB.blstatus='扣单' ", 0, 999, out _recount) ;
if ( headList ! = null & & headList . Count > 0 ) {
if ( headList ! = null & & headList . Count > 0 )
{
var 特 放 GIDList = headList . Select ( s = > s . GID ) . ToList ( ) ;
var 特 放 GIDList = headList . Select ( s = > s . GID ) . ToList ( ) ;
var cdc = new CommonDataContext ( ) ;
var cdc = new CommonDataContext ( ) ;
var 扣 单 动 作 日 志 = cdc . WorkLog . Where ( x = > 特 放 GIDList . Contains ( x . BSNO ) & & x . ACTNAME = = BLSTATUSTYPE . 扣 单 ) . ToList ( ) ;
var 扣 单 动 作 日 志 = cdc . WorkLog . Where ( x = > 特 放 GIDList . Contains ( x . BSNO ) & & x . ACTNAME = = BLSTATUSTYPE . 扣 单 ) . ToList ( ) ;
var 扣 单 执 行 人 UseridList = 扣 单 动 作 日 志 . Select ( s = > s . OP ) . Distinct ( ) . ToList ( ) ;
var 扣 单 执 行 人 UseridList = 扣 单 动 作 日 志 . Select ( s = > s . OP ) . Distinct ( ) . ToList ( ) ;
var 角 色 List = 获 取 角 色 列 表 ( ) ;
var 角 色 List = 获 取 角 色 列 表 ( ) ;
var 财 务 角 色 IDList = 角 色 List . Where ( x = > x . GVALUE . Contains ( "财务" ) ) . Select ( s = > s . GID ) . ToList ( ) ;
var 财 务 角 色 IDList = 角 色 List . Where ( x = > x . GVALUE . Contains ( "财务" ) ) . Select ( s = > s . GID ) . ToList ( ) ;
var 扣 单 财 务 人 员 角 色 IDList = cdc . user_role . Where ( x = > 扣 单 执 行 人 UseridList . Contains ( x . USERID ) & & 财 务 角 色 IDList . Contains ( x . ROLEID ) ) . ToList ( ) ;
var 扣 单 财 务 人 员 角 色 IDList = cdc . user_role . Where ( x = > 扣 单 执 行 人 UseridList . Contains ( x . USERID ) & & 财 务 角 色 IDList . Contains ( x . ROLEID ) ) . ToList ( ) ;
if ( 扣 单 财 务 人 员 角 色 IDList . Count > 0 ) {
if ( 扣 单 财 务 人 员 角 色 IDList . Count > 0 )
{
var 扣 单 USERID = 扣 单 财 务 人 员 角 色 IDList [ 0 ] . USERID ;
var 扣 单 USERID = 扣 单 财 务 人 员 角 色 IDList [ 0 ] . USERID ;
var 扣 单 动 作 = 扣 单 动 作 日 志 . First ( x = > x . OP = = 扣 单 USERID ) ;
var 扣 单 动 作 = 扣 单 动 作 日 志 . First ( x = > x . OP = = 扣 单 USERID ) ;
var head = headList . First ( x = > x . GID = = 扣 单 动 作 . BSNO ) ;
var head = headList . First ( x = > x . GID = = 扣 单 动 作 . BSNO ) ;
var msg = $"存在一个由财务扣单的业务,不能执行特殊放单申请【{head.CUSTNO}】" ;
var msg = $"存在一个由财务扣单的业务,不能执行 放货或 特殊放单申请【{head.CUSTNO}】";
result . OK ( msg ) ;
result . OK ( msg ) ;
return result ;
return result ;
}
}