Dear list, thanks for all your answers that far. It helped me quite a bit to get into the deeper code structure.
For all the interested parties i will summerize the intend and structure of the branch, that is served at github at https://github.com/rzerres/gnucash/tree/wip-coowner The workflow in this repo has been adopted to make use of the github CI. It will check the branch maint and wip-coowner. Status ====== Given code does compile ... All needed parts have been implemented. I don't expect to have more structure changes in the near future. This is the foundation for new reports. They will rely and consume properties available in the new coonwer specific entities. A proof of concept report (based on new-owner-reoirt,scm) is included. the backend =========== * backend core (libgnucash/engine): `coowner[P].[h,c] serves functionality a an `gncOwner` child, like Customer, Employee and Vendor do. The GncCoOwner stucture has generic parameters (as used in the other business modules) and CoOnwer specific stuff (apartment share, apartment unit, distribution_key). With that in place, it shouldn't be difficult to extend and adopt. Parameter hadling will need more love. * all involved engine helpers (gncAddress, gncBusiness, gncEntry, gncIDSearch, gncInvoice, gncJob and gncTaxTable) have been adopted to handle the new CoOwner type. * backends for sql and xml have been adopted to handle CoOwner * apt-utils are aware of gncCoOwner (business-options and business-preferences) * gnome-plugins are enhanced to handle the Co-Owner type * basic tests (test-coowner.c and test-business-core.scm) are in place. the frontend ============ * gnome dialogs have been implemented to address the task you already know from the other business types. (gnucash/gnome/dialog-coowner_*) `dialog-coowner.c provide the CoOwner aware callbacks, service dialogs have been enhanced (dialog_invoice, dialog-order, dialog-payment) * gnome business plugins (gnucash/gnome/gnc-plugin-business) and gnome-utils have been enhanced to support Co-Owner handling, as well as the helpers (gncplugin-page-invoice, gnc-plugin-page-owner-tree, search-owner) * I am aware, that the given menu-structure is based on the legacy gtk menu system (depreciated since gtk v3.10), that uses an xml file based aproach (gnucash/ui). It will be another big change to migrate towards the gtk4 provided GMenu system. * I did adapt the source to have the CoOwner actions. (gnc-plugin-business-ui.xml) * Glade sources (gnucash/gtkbuilder) have been adopted to make use of Co-Owner callbacks (dialog-coowner.glade, dialog-coowner-import-gui.glade, dialog-coowner-report.glade) the reports =========== * a new menu `property management` was added. It is used to group all standard reports created to simplify property management tasks. * a proof of concept report (owner-billing.scm) is created. This need to be adopted to get into the intended shape. * other useful reports may be introduced later on. i18n ==== * translations for the german language have been included (po.de) Abstract ======== In Germany, a co-owners' association (MEG) is free to decide to self-manage the property in an owner administration. The tasks of [property][property_mgmt] management can then be taken over by an owner of the MEG appointed for this purpose. The rules may be adopted to the needs in other countries as well. [property_mgmt]: https://www.hausverwaltung-ratgeber.de/hausverwaltung.html). Implementation ============== Using the current version of 'gnucash', the property management can create the account structure required for this and manage the necessary bookings. The legal regulations that exist in Germany stipulate that individual accounts must be created annually for the owners, which in particular must show and proportionately allocate apportionable amounts, non-apportionable amounts, the maintenance reserve, as well as income, individual and heating costs. * Property Management The entity Co-Owner is created to provide front and backend functions that handle creation, editing, search and deletion of its parts. The ledgers are handled via standard gnucash books functionality. * Reporting (WIP) The report will extract the relevant books and calculate the share values for each Co-Owner. You are free to build up the book tree but need to define following accounts: Apportionable amounts Individual costs Heating costs Non-Apportionalbe amounts Revenues Provision for maintenance Sub-accounts inside this structure are listed in colums, showing the cumulated balances, the distribution key, the property-total, the apartment/Housing unit shares beside the calculated co-owner amount/balance. A final section will print out the billing totals comparing the business-plan values with the actual realized values in the billing period (usual one year). Again you will see the total amounts as well as the calculated Co-Owner amount based on the actual share. The report will conclude with a Credit-Balance or with an Additional Payment. _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel