[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