[GNC-dev] Co-Owner (v0.3.0)

Ralf Zerres ralf.zerres at mail.de
Wed Jun 29 13:32:33 EDT 2022


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 at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel


More information about the gnucash-devel mailing list