X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fhomebank;a=blobdiff_plain;f=src%2Fhb-archive.h;h=b4bbc1b4c088de1bde2c5af5b54c2161213b428f;hp=c46c1bde47c7d670c36080742ec5643d790fbd95;hb=236cb5e47660876f46488ea8f76ecd5bebfa1fac;hpb=27f6e3b112df235c8e9afc9911b1f6bce208a001 diff --git a/src/hb-archive.h b/src/hb-archive.h index c46c1bd..b4bbc1b 100644 --- a/src/hb-archive.h +++ b/src/hb-archive.h @@ -1,5 +1,5 @@ /* HomeBank -- Free, easy, personal accounting for everyone. - * Copyright (C) 1995-2014 Maxime DOYEN + * Copyright (C) 1995-2019 Maxime DOYEN * * This file is part of HomeBank. * @@ -20,20 +20,34 @@ #ifndef __HB_ARCHIVE_H__ #define __HB_ARCHIVE_H__ +#include "hb-transaction.h" +#include "hb-split.h" + typedef struct _archive Archive; struct _archive { + guint32 key; gdouble amount; guint32 kacc; - guint32 kxferacc; gushort paymode; gushort flags; guint32 kpay; guint32 kcat; - gchar *wording; + gchar *memo; + + //guint32 date; + //gushort pos; + gushort status, _pad1; + //gchar *info; + guint32 *tags; + //guint32 kxfer; //strong link xfer key + guint32 kxferacc; + + GPtrArray *splits; guint32 nextdate; + gushort daygap; gushort every; gushort unit; gushort limit; @@ -41,15 +55,47 @@ struct _archive }; +/* list define archive (defarchive) */ +enum +{ + LST_DEFARC_DATAS, + LST_DEFARC_OLDPOS, + LST_DEFARC_AUTO, + NUM_LST_DEFARC +}; + +/* +** scheduled unit +*/ +enum +{ + AUTO_UNIT_DAY, + AUTO_UNIT_WEEK, + AUTO_UNIT_MONTH, + //AUTO_UNIT_QUARTER, + AUTO_UNIT_YEAR +}; + + + + Archive *da_archive_malloc(void); Archive *da_archive_clone(Archive *src_item); guint archive_add_get_nbdays(void); void da_archive_free(Archive *item); void da_archive_destroy(GList *list); GList *da_archive_sort(GList *list); + guint da_archive_length(void); +gboolean da_archive_append(Archive *item); +gboolean da_archive_append_new(Archive *item); +guint32 da_archive_get_max_key(void); +Archive *da_archive_get(guint32 key); + + void da_archive_consistency(Archive *item); +Archive *da_archive_init_from_transaction(Archive *arc, Transaction *txn); gboolean scheduled_is_postable(Archive *arc); guint32 scheduled_get_postdate(Archive *arc, guint32 postdate);