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

Robert Fewell <[email protected]>
Newsgroups gmane.comp.gnome.apps.gnucash.devel
Message-ID <CAMY+hktjdVc4nXxFrcBQBuuqSXxwTHy3HLkS4xpTry60OVBKLA@mail.gmail.com>
Ralf,
The current minimum Gtk3 version is 3.22.30. All the glade files have been
generated with Glade 3.38.2 with the minimum Gtk version set to 3.22.

Is there a specific problem you have found that you need help with?

Regards,
Bob

On Wed, 29 Jun 2022 at 18:32, Ralf Zerres <[email protected]> wrote:

> 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
> > [email protected]
> > https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> _______________________________________________
> gnucash-devel mailing list
> [email protected]
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.