Hey all, I'm still active on hacking the coowner branch. It's quite a stony path, but I do my best and got into the code structure quite well. The active, rebases branch is now called `cooowner`. No i do get stuck on two nasty problems. Appreciate your advice:
* seems there is the need of a specific GTK environment Which one is needed to use glade and code integration (seems plaind 3.x version isn't enough) * given situation: compiles, but i introduced a regression 11:23:34 ERROR <gnc.engine> gboolean qof_choice_add_class(const char*, char*, char*): assertion 'qof_object_is_choice(select)' failed * debug gnucash build path: cd ~/build-coowner; cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=./install - G Ninja ..) no i'm strugglin within gdb. Since the app is multi-threaded, i like to simplify the debug session and wonder if it would be possible to just run with a singel thread? * does gnucash have a chat for active development (mattermost, discord, et al?) Ralf Am Dienstag, dem 14.06.2022 um 11:18 +0200 schrieb Ralf Zerres: > 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 _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel