如果满足条件并抛出自定义错误,则限制发票发放
Restrict Invoice Release if condition satisfied and custom error thrown
如果我的条件满足并且自定义错误被抛出,我已经重写发票屏幕释放操作以限制发票释放,但即使错误被抛出并且在关闭该错误后,发票仍然被释放但我想限制如果抛出错误,则释放发票。
[PXOverride]
public virtual IEnumerable Release(PXAdapter adapter)
{
if (Base.Document.Current != null)
{
var paymentSetup = PaySetup.SelectSingle(Base.Document.Current.PaymentMethodID);
var paymentSettings = PaySettingDetails.SelectSingle(Base.Document.Current.PaymentMethodID);
if (paymentSettings != null && paymentSetup != null && paymentSetup.IsActive == true)
{
if (this.PayCurrentInvoice.Current != null && this.PayCurrentInvoice.Current.PayStatus.ToUpper() != KNPIConstants.PAID)
{
throw new PXException(KNPIMessages.NotPaid);
}
}
else
{
return Base.release.Press(adapter);
}
}
return null;
}
如果抛出错误,则不应释放发票,但即使抛出错误,关闭该错误后仍会释放发票。
你的覆盖是错误的!
public delegate IEnumerable ReleaseDelegate(PXAdapter adapter);
[PXOverride]
public IEnumerable Release(PXAdapter adapter, ReleaseDelegate baseMethod)
{
var paymentSetup = PaySetup.SelectSingle(Base.Document.Current.PaymentMethodID);
var paymentSettings = PaySettingDetails.SelectSingle(Base.Document.Current.PaymentMethodID);
if (paymentSettings != null && paymentSetup != null && paymentSetup.IsActive == true)
{
if (this.PayCurrentInvoice.Current != null && this.PayCurrentInvoice.Current.PayStatus.ToUpper() != KNPIConstants.PAID)
{
throw new PXException(KNPIMessages.NotPaid);
}
}
return baseMethod(adapter);
}
如果我的条件满足并且自定义错误被抛出,我已经重写发票屏幕释放操作以限制发票释放,但即使错误被抛出并且在关闭该错误后,发票仍然被释放但我想限制如果抛出错误,则释放发票。
[PXOverride]
public virtual IEnumerable Release(PXAdapter adapter)
{
if (Base.Document.Current != null)
{
var paymentSetup = PaySetup.SelectSingle(Base.Document.Current.PaymentMethodID);
var paymentSettings = PaySettingDetails.SelectSingle(Base.Document.Current.PaymentMethodID);
if (paymentSettings != null && paymentSetup != null && paymentSetup.IsActive == true)
{
if (this.PayCurrentInvoice.Current != null && this.PayCurrentInvoice.Current.PayStatus.ToUpper() != KNPIConstants.PAID)
{
throw new PXException(KNPIMessages.NotPaid);
}
}
else
{
return Base.release.Press(adapter);
}
}
return null;
}
如果抛出错误,则不应释放发票,但即使抛出错误,关闭该错误后仍会释放发票。
你的覆盖是错误的!
public delegate IEnumerable ReleaseDelegate(PXAdapter adapter);
[PXOverride]
public IEnumerable Release(PXAdapter adapter, ReleaseDelegate baseMethod)
{
var paymentSetup = PaySetup.SelectSingle(Base.Document.Current.PaymentMethodID);
var paymentSettings = PaySettingDetails.SelectSingle(Base.Document.Current.PaymentMethodID);
if (paymentSettings != null && paymentSetup != null && paymentSetup.IsActive == true)
{
if (this.PayCurrentInvoice.Current != null && this.PayCurrentInvoice.Current.PayStatus.ToUpper() != KNPIConstants.PAID)
{
throw new PXException(KNPIMessages.NotPaid);
}
}
return baseMethod(adapter);
}