36 #ifndef XACC_SCHEDXACTION_H 37 #define XACC_SCHEDXACTION_H 44 #include "Recurrence.h" 48 #define GNC_TYPE_SCHEDXACTION (gnc_schedxaction_get_type ()) 49 #define GNC_SCHEDXACTION(o) \ 50 (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_SCHEDXACTION, SchedXaction)) 51 #define GNC_SCHEDXACTION_CLASS(k) \ 52 (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_SCHEDXACTION, SchedXactionClass)) 53 #define GNC_IS_SCHEDXACTION(o) \ 54 (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_SCHEDXACTION)) 55 #define GNC_IS_SCHEDXACTION_CLASS(k) \ 56 (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_SCHEDXACTION)) 57 #define GNC_SCHEDXACTION_GET_CLASS(o) \ 58 (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_SCHEDXACTION, SchedXactionClass)) 59 GType gnc_schedxaction_get_type(
void);
61 #define GNC_IS_SX(obj) GNC_IS_SCHEDXACTION(obj) 62 #define GNC_SX(obj) GNC_SCHEDXACTION(obj) 101 gint num_occurances_total;
103 gint num_occurances_remain;
109 gboolean autoCreateOption;
110 gboolean autoCreateNotify;
111 gint advanceCreateDays;
112 gint advanceRemindDays;
123 QofInstanceClass parent_class;
127 typedef struct _SXTmpStateData
134 #define xaccSchedXactionSetGUID(X,G) qof_instance_set_guid(QOF_INSTANCE(X),(G)) 141 void sx_set_template_account (SchedXaction *sx,
Account *account);
148 void gnc_sx_begin_edit (SchedXaction *sx);
149 void gnc_sx_commit_edit (SchedXaction *sx);
157 gchar *xaccSchedXactionGetName(
const SchedXaction *sx );
163 const GDate* xaccSchedXactionGetStartDate(
const SchedXaction *sx );
164 time64 xaccSchedXactionGetStartDateTT(
const SchedXaction *sx );
165 void xaccSchedXactionSetStartDate( SchedXaction *sx,
const GDate* newStart );
166 void xaccSchedXactionSetStartDateTT( SchedXaction *sx,
const time64 newStart );
168 int xaccSchedXactionHasEndDate(
const SchedXaction *sx );
178 const GDate* xaccSchedXactionGetLastOccurDate(
const SchedXaction *sx );
179 time64 xaccSchedXactionGetLastOccurDateTT(
const SchedXaction *sx );
180 void xaccSchedXactionSetLastOccurDate( SchedXaction *sx,
const GDate* newLastOccur );
181 void xaccSchedXactionSetLastOccurDateTT( SchedXaction *sx,
const time64 newLastOccur );
188 gint xaccSchedXactionGetNumOccur(
const SchedXaction *sx );
193 gint xaccSchedXactionGetRemOccur(
const SchedXaction *sx );
194 void xaccSchedXactionSetRemOccur( SchedXaction *sx, gint numRemain );
216 GList *xaccSchedXactionGetSplits(
const SchedXaction *sx );
217 void xaccSchedXactionSetSplits( SchedXaction *sx, GList *newSplits );
219 gboolean xaccSchedXactionGetEnabled(
const SchedXaction *sx );
220 void xaccSchedXactionSetEnabled( SchedXaction *sx, gboolean newEnabled );
222 void xaccSchedXactionGetAutoCreate(
const SchedXaction *sx,
223 gboolean *outAutoCreate,
224 gboolean *outNotify );
225 void xaccSchedXactionSetAutoCreate( SchedXaction *sx,
226 gboolean newAutoCreate,
227 gboolean newNotify );
229 gint xaccSchedXactionGetAdvanceCreation(
const SchedXaction *sx );
230 void xaccSchedXactionSetAdvanceCreation( SchedXaction *sx, gint createDays );
232 gint xaccSchedXactionGetAdvanceReminder(
const SchedXaction *sx );
233 void xaccSchedXactionSetAdvanceReminder( SchedXaction *sx, gint reminderDays );
309 #define GNC_SX_SHARES "shares" 310 #define GNC_SX_FREQ_SPEC "scheduled-frequency" 311 #define GNC_SX_NAME "sched-xname" 312 #define GNC_SX_START_DATE "sched-start-date" 313 #define GNC_SX_LAST_DATE "sched-last-date" 314 #define GNC_SX_NUM_OCCUR "sx-total-number" 315 #define GNC_SX_REM_OCCUR "sx-remaining-num" 321 #define xaccSchedXactionIsDirty(X) qof_instance_is_dirty (QOF_INSTANCE(X)) 323 #define xaccSchedXactionGetGUID(X) qof_entity_get_guid(QOF_INSTANCE(X)) const GDate * xaccSchedXactionGetEndDate(const SchedXaction *sx)
Returns invalid date when there is no end-date specified.
void gnc_sx_set_schedule(SchedXaction *sx, GList *schedule)
void gnc_sx_set_instance_count(SchedXaction *sx, gint instanceNum)
Sets the instance count to something other than the default.
GList * gnc_sx_get_schedule(const SchedXaction *sx)
GList * deferredList
The list of deferred SX instances.
void gnc_sx_destroy_temporal_state(SXTmpStateData *stateData)
Frees the given stateDate object.
void xaccSchedXactionSetNumOccur(SchedXaction *sx, gint numNum)
Set to '0' to turn off number-of-occurrences definition.
SXTmpStateData * gnc_sx_create_temporal_state(const SchedXaction *sx)
Allocates a new SXTmpStateData object and fills it with the current state of the given sx...
Just the variable temporal bits from the SX structure.
GDate xaccSchedXactionGetNextInstance(const SchedXaction *sx, SXTmpStateData *stateData)
Returns the next occurrence of a scheduled transaction.
gboolean SXRegister(void)
QOF registration.
void gnc_sx_incr_temporal_state(const SchedXaction *sx, SXTmpStateData *stateData)
Calculates the next occurrence of the given SX and stores that occurrence in the remporalStateDate.
void gnc_sx_add_defer_instance(SchedXaction *sx, void *deferStateData)
Adds an instance to the deferred list of the SX.
gint gnc_sx_get_num_occur_daterange(const SchedXaction *sx, const GDate *start_date, const GDate *end_date)
Calculates and returns the number of occurrences of the given SX in the given date range (inclusive)...
SXTmpStateData * gnc_sx_clone_temporal_state(SXTmpStateData *stateData)
Allocates and returns a one-by-one copy of the given temporal state.
void xaccSchedXactionSetTemplateTrans(SchedXaction *sx, GList *t_t_list, QofBook *book)
Set the schedxaction's template transaction.
All type declarations for the whole Gnucash engine.
A single scheduled transaction.
void xaccSchedXactionSetName(SchedXaction *sx, const gchar *newName)
A copy of the name is made.
void gnc_sx_remove_defer_instance(SchedXaction *sx, void *deferStateData)
Removes an instance from the deferred list.
SchedXaction * xaccSchedXactionMalloc(QofBook *book)
Creates and initializes a scheduled transaction.
gint64 time64
Many systems, including Microsoft Windows and BSD-derived Unixes like Darwin, are retaining the int-3...
gboolean xaccSchedXactionHasOccurDef(const SchedXaction *sx)
Returns true if the scheduled transaction has a defined number of occurrences, false if not...
void xaccSchedXactionSetEndDate(SchedXaction *sx, const GDate *newEnd)
Set to an invalid GDate to turn off 'end-date' definition.
void xaccSchedXactionDestroy(SchedXaction *sx)
Cleans up and frees a SchedXaction and its associated data.
GList * gnc_sx_get_defer_instances(SchedXaction *sx)
Returns the defer list from the SX.
gint gnc_sx_get_instance_count(const SchedXaction *sx, SXTmpStateData *stateData)
Get the instance count.