Summary: Some German business users brought up a "feature" request that sounds a bit weird for a programmer: They asked for a gnucash mode of operation where the user can not edit older transactions anymore!
I'll explain why this might make sense and why I'll probably commit some patches in that direction. For sure it won't affect anyone who doesn't explicitily enable that new "feature". Long text: The reason here is that this would fulfil one important part of the German business accounting rules, "Grundlagen ordnungsgemäßer Buchführung" (GOB); Wikipedia proposes to translate this with Generally Accepted Accounting Principles (GAAP), although the exact content is somewhat different. These "GOB" require that, among other requirements, older records of transaction cannot be altered, but instead any changes have to be recorded as new transactions, which may potentially be reverse transactions of older ones. As a programmer, I'd immediately say this is impossible (on Unix/MacOS/Windows, that is) - records of older transactions could always be altered as long as they are some bytes in a file and there is a root user who can change anything. Well, technically that requirement might be achievable through cryptograpic signature and a signed audit trail, but -- to my surprise, the reply by the business users was that the technical implementation isn't the important part but instead the presentation to the user is the important part. Hence, contrary to what programmers would say, this "GOB" requirement would indeed be fulfilled if only the GUI of gnucash doesn't allow altering older transactions anymore! The argument here is that an electronic record of transactions doesn't have to provide more fraud-protection than a paper record of transactions. Paper records could be manipulated as well, but for the normal accountant it wouldn't be easy and manipulation would only be possible with a clear criminal intent. From a normal accountant's point of view, this would be the same with a bookkeeping software which doesn't allow any alteration of older transactions in its normal GUI. Normal accountant's wouldn't bother with manipulating the data file of the software, hence the "GOB" requirement is fulfilled. In that discussion it was asked how that disable-editing-feature could be switched on and off, as any non-business users will want to keep the current mode of operation. The interesting and practical proposal that came up is that this should be stored in the GncBook: The user could select this as a preference in the "New File" wizard, and from thereon this new book won't allow alteration of older transactions in the book. I'm still not completely sure how the actual implementation would look like. Should we disable editing of transactions altogether? Or allow editing only for today's transactions (other time intervals are easily imaginable)? I'll ask for the preferences in that German discussion and eventually I'll probably commit some proposals for this feature to ask the German users for testing. In any case, I think this could be achived with no changes to any user who doesn't explicitly ask for it. Also, this can be achieved with very little effort from our side. Both together make this an ideal candidate to be committed to SVN... Christian _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel