/* 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.
*
{
FLT_STATUS_UNCATEGORIZED = 0,
FLT_STATUS_UNRECONCILED = 1,
- // 2 separator
- FLT_STATUS_ALL = 3
+ FLT_STATUS_UNCLEARED = 2,
+ FLT_STATUS_RECONCILED = 3,
+ FLT_STATUS_CLEARED = 4,
+ // 5 separator
+ FLT_STATUS_ALL = 6
};
FLT_QSEARCH_INFO = 1<<1,
FLT_QSEARCH_PAYEE = 1<<2,
FLT_QSEARCH_CATEGORY = 1<<3,
- FLT_QSEARCH_TAGS = 1<<4
+ FLT_QSEARCH_TAGS = 1<<4,
+ FLT_QSEARCH_AMOUNT = 1<<5
};
struct _filter
{
+
+
+
+
guint32 mindate, maxdate;
gint range;
- gint type;
- gint status;
gshort option[FILTER_MAX];
gboolean reconciled;
- gboolean reminded;
- gboolean forceadd;
- gboolean forcechg;
+ gboolean cleared;
+
gboolean paymode[NUM_PAYMODE_MAX];
gdouble minamount, maxamount;
gboolean exact;
gchar *info;
- gchar *wording;
+ gchar *memo;
gchar *tag;
- guint last_tab;
+
+ /* unsaved datas */
+ gint nbdaysfuture;
+ gint type; /* ! not sure necessary to store this :: dsp_account: inc/exp used */
+ gint status; /* ! not sure necessary to store this :: dsp_account */
+ gboolean forceadd;
+ gboolean forcechg;
+ gboolean forceremind;
+ gchar last_tab[8]; /* keep last active tab */
};
-Filter *da_filter_malloc(void);
-void da_filter_free(Filter *flt);
+Filter *da_flt_malloc(void);
+void da_flt_free(Filter *flt);
+
+void da_flt_destroy(void);
+void da_flt_new(void);
-void filter_default_all_set(Filter *flt);
-void filter_preset_daterange_set(Filter *flt, gint range);
+void da_flt_status_acc_set(Filter *flt, guint32 kacc, gboolean status);
+void da_flt_status_pay_set(Filter *flt, guint32 kpay, gboolean status);
+void da_flt_status_cat_set(Filter *flt, guint32 kcat, gboolean status);
+gboolean da_flt_status_acc_get(Filter *flt, guint32 kacc);
+gboolean da_flt_status_pay_get(Filter *flt, guint32 kpay);
+gboolean da_flt_status_cat_get(Filter *flt, guint32 kcat);
+
+void filter_status_acc_clear_except(Filter *flt, guint32 selkey);
+void filter_status_pay_clear_except(Filter *flt, guint32 selkey);
+void filter_status_cat_clear_except(Filter *flt, guint32 selkey);
+
+void filter_reset(Filter *flt);
+void filter_preset_daterange_set(Filter *flt, gint range, guint32 kacc);
void filter_preset_type_set(Filter *flt, gint value);
+gboolean filter_preset_daterange_future_enable(gint range);
+void filter_preset_daterange_add_futuregap(Filter *filter, gint nbdays);
+
+void filter_set_tag_by_id(Filter *flt, guint32 key);
void filter_preset_status_set(Filter *flt, gint value);
+
gchar *filter_daterange_text_get(Filter *flt);
gboolean filter_txn_search_match(gchar *needle, Transaction *txn, gint flags);
-gint filter_test(Filter *flt, Transaction *ope);
+gint filter_txn_match(Filter *flt, Transaction *ope);
#endif