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

Ralf Zerres ralf.zerres at mail.de
Tue Jun 14 05:18:33 EDT 2022


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.




More information about the gnucash-devel mailing list