Below is the standard code you need to try :
if (_chequeStatus == ChequeStatus::Cancelled
|| _chequeStatus == ChequeStatus::Rejected
|| _chequeStatus == ChequeStatus::Void)
{
bankChequeTable.voidPositivePay();
}
The standard method in the table BankChequeTable:
public static void setChequeStatus(
CompanyBankAccountId _accountID,
BankChequeNum _chequeNum,
ChequeStatus _chequeStatus,
TransDate _transDate,
Voucher _voucher,
BankChequeRecipientType _recipientType,
CompanyId _recipientCompany,
CustVendAC _recipientAccountNum,
CurrencyCode _currencyCode,
AmountCur _amountCur,
BankNegInstRecipientName _recipientName,
RemittanceAddress _remittanceAddress = 0,
RefTableId _sourceTableId = 0,
RefRecId _sourceRecId = 0)
{
BankChequeTable bankChequeTable;
select firstonly forupdate bankChequeTable
where bankChequeTable.AccountID == _accountID
&& bankChequeTable.ChequeNum == _chequeNum;
if (!bankChequeTable)
{
throw error(strfmt("@SYS76941", _accountID, _chequeNum));
}
bankChequeTable.ChequeStatus = _chequeStatus;
bankChequeTable.TransDate = _transDate;
bankChequeTable.Voucher = _voucher;
bankChequeTable.RecipientType = _recipientType;
bankChequeTable.RecipientCompany = _recipientCompany;
bankChequeTable.RecipientAccountNum = _recipientAccountNum;
bankChequeTable.RecipientTransVoucher = _voucher;
bankChequeTable.CurrencyCode = _currencyCode;
bankChequeTable.AmountCur = _amountCur;
if (_recipientName)
{
bankChequeTable.BankNegInstRecipientName = _recipientName;
}
if (_remittanceAddress)
{
bankChequeTable.RemittanceAddress = _remittanceAddress;
}
if (_sourceTableId
&& _sourceRecId)
{
bankChequeTable.SourceTableId = _sourceTableId;
bankChequeTable.SourceRecId = _sourceRecId;
}
bankChequeTable.BankCurrency = BankAccountTable::find(_accountID).CurrencyCode;
if (_currencyCode == bankChequeTable.BankCurrency)
{
bankChequeTable.BankCurrencyAmount = _amountCur;
}
else
{
bankChequeTable.BankCurrencyAmount = CurrencyExchangeHelper::curAmount2CurAmount(_amountCur, _currencyCode, bankChequeTable.BankCurrency, bankChequeTable.TransDate);
}
if (_chequeStatus == ChequeStatus::Cancelled
|| _chequeStatus == ChequeStatus::Rejected
|| _chequeStatus == ChequeStatus::Void)
{
bankChequeTable.voidPositivePay();
}
bankChequeTable.update();
}