I am just writing an API to accommodate a problem with editing bank transactions.
Specifically, I want to be able to get a confirm tag option when I change the reference on an entry from the bank feed to match a tagging rule. Without this, it is a multi-step process to tag an imported transaction (payment to supplier, create new invoice, etc etc) and it is much quicker to just delete it and use ‘Input New Transaction’ - thus negating any benefit of the feed. I did add this as a feature request but it has not been received well (no votes) - I’m not sure what other people do and why they aren’t bothered by this as it seems to affect almost all my transactions. All that is required is for the check that is used on the original transaction entry to be re-run after edit, but I know you have hundreds of outstanding improvement requests so i will write an API.
The API will: display a range of bank transactions, choose 1, edit the reference, save. Effectively a new transaction would be created (and get the confirm tag if suitable) and the old one would be deleted. I have managed the create part but i see no method for the delete part.
I see purchase_delete and payment_delete but the descriptions just say ‘Delete a purchase’ and ‘Delete a payment’, no real explanation. Looking at the XML response, I think a purchase is the part of the data associated with allocating a payment to a particular supplier and i think a payment is from a customer. What then is the status of an untagged bank transaction in the database and how do i reference and delete it pls.
payment_delete refers to a tagged bank transaction. Each payment has an ID which can be used to reference it.
purchase_delete refers to a supplier invoice, so deleting this would do just that.
Do you have a use case of your situation? Why do you need to change transactions after they’re imported?
The usual use case for tagging rules is that you define the rule to match the transaction as it is supplied by the bank, rather than fixing up the transaction to match the rule.
I think you are saying that I cannot reference a bank transaction with the API and hence, I can’t delete one. I see there is no reference or identifier for a transaction on the response to Bank_Search and no Bank_delete method, so that rules it out I suppose.
I have looked at payment_search. Is it fair to say that this returns transactions that are coincidentally bank transactions but mainly it is the client table that is providing the information about the allocation of the payment to the A/P account?
Why am I trying to edit transactions?
Rules can be set to catch imported transactions, but I still want to be able to edit transactions and have them checked against the tagging rules because:
- a payee can receive money for various reasons and I need to distinguish this in the reference – e.g. Nigel – Payroll, Nigel – Dividend, Nigel – Directors Account.
- I want to allocate a small transaction to a general supplier to avoid clutter. Want to change a specific transaction to ‘Payment to Subsistence’.
- I often need to combine two transactions into one, where a transaction is accompanies by a foreign bank charge. [This is more to do with the inability to edit the value of an untagged bank transaction].
- It seems to make sense that edits, where allowed, should be checked against other rules when they are committed to the database just like new transactions are.
When I first started using QF it took me a while to get over the idea that it is not possible to edit the value of a current account transaction – even one that has not been tagged and has no partner transaction in the double-entry system. This just seems so counterintuitive that it has stuck with me ever since.
You can edit date and Reference but the code stops short of handling value changes i.e.updating balances. Tagging rule checking for edited transactions is also a little bit further than the code allows us to go.
Checks are in place to make sure that a new transaction is not in the future (dare I say, unnecessary flexibility prohibition which creates problems in itself) and that the transaction in non-zero, but it seems that a check to see if a transaction is un-tagged and should be editable is missing. I suppose this is the hurdle for value edits and tagging rule checks.
A consequence of this is that you now have a really good API but with logical inconsistencies: it allows something a far reaching as the creation of a new bank account but does not allow the deletion of an untagged bank transaction for a cup of tea.
Anyway, sorry for going on. I thought it might be helpful to frame the problem.
Yes, that is true but there are other cases which would be good to have a tag rule check. Pls see my answer to Mathew.