I think that a simple way to reach a compromise is to have a new field where the user can drag and drop a file and so 'magically' the path is auto compiled.
In the ledger the user will see a icon next to every transaction if the field is populated. By clicking on it, the file will be opened by the operating system.
For sure, the user has to set a root path where he will store the docs. In this way, if he needs to move the whole directory, he will have the possibility to change it in one-shot.
So, no upload button or document stored in any kind of new DB, but simply a link, populated by a Drag&Drop and easily clearable.
I think that a simple way to reach a compromise is to have a new field where the user can drag and drop a file and so 'magically' the path is auto compiled.
In the ledger the user will see a icon next to every transaction if the field is populated. By clicking on it, the file will be opened by the operating system.
For sure, the user has to set a root path where he will store the docs. In this way, if he needs to move the whole directory, he will have the possibility to change it in one-shot.
So, no upload button or document stored in any kind of new DB, but simply a link, populated by a Drag&Drop and easily clearable.