Going forward, the customer should investigate why they are voiding a check that has already been cashed and reconciled with the bank.
WORK-AROUND: If a reconciled check still needs to be voided, the user should leave the default check date as the void date, and this issue will not happen. Do not change the dates when voiding. This issue only happens when the void date is changed from the default check date.
STEPS:To get the checks to drop off the Safepay window, you will need to update the date on the voided transaction to have the same check date as the original check.
1. Make a backup and do this in a test environment first, before doing this in your live database. If you do not have a test company, refer to this KB article for steps to set up a test company.
871973 Set up a test company that has a copy of live company data by using SQL Server 7.0, SQL Server 2000, SQL Server 2005, SQL Server 2008, or SQL Server 2012
https://mbs.microsoft.com/knowledgebase/KBDisplay.aspx?scid=kb;EN-US;8719732. Open SQL Server Management Studio. Click on the 'new query' button at the top and select the company database.
3. Copy the below script into the query window and execute against the company database to find the check date (TRXDATE) for the original check: (You should find that the reconciled field (RECOND) is marked off (1), but the VOIDED field is not (0) because when you void a reconciled check, it makes a new record in this table with a negative amount.) Note the TRXDATE for the original check.
select RECOND, VOIDED, * from CM20200 where CMTRXNUM = 'xxx'
--insert in the check number for the xxx placeholder above.
4. Now execute these scripts to view the dates for this check in all the tables:
select TRXDATE, * from CM20200 where CMTRXNUM = 'xxx'
select TRXDATE, * from ME123504 where CMTRXNUM = 'xxx' and CMTRXTYPE = 4
select VOIDDATE, * from ME123506 where CMTRXNUM = 'xxx'
--insert the check number for the xxx placeholder in the scripts above before executing.
5. Then run these scripts to find the corresponding records update the corresponding void records to also have this same date as you found in the prior step:
update CM20200 set TRXDATE = 'YYYY-MM-DD' where CMTRXNUM = 'xxx'
update ME123504 set TRXDATE = 'YYYY-MM-DD' where CMTRXNUM = 'xxx' and CMTRXTYPE = 4
update ME123506 set VOIDDATE = 'YYYY-MM-DD' where CMTRXNUM = 'xxx'
--insert the date you found in step 3 in for the YYYY-MM-DD placeholder and
the check number for the xxx placeholder in the scripts above before executing.
6. Now generate the Safe Pay file, and both the void and the check should be listed again, but will then drop off the window after that and be gone from the window going forward.
7. If you get the desired results, then do the same steps in your live database.