45 #ifndef XACC_SPLIT_P_H
46 #define XACC_SPLIT_P_H
60 #define GAINS_STATUS_UNKNOWN 0xff
61 #define GAINS_STATUS_CLEAN 0x0
62 #define GAINS_STATUS_GAINS 0x3
63 #define GAINS_STATUS_DATE_DIRTY 0x10
64 #define GAINS_STATUS_AMNT_DIRTY 0x20
65 #define GAINS_STATUS_VALU_DIRTY 0x40
66 #define GAINS_STATUS_LOT_DIRTY 0x80
67 #define GAINS_STATUS_ADIRTY (GAINS_STATUS_AMNT_DIRTY|GAINS_STATUS_LOT_DIRTY)
68 #define GAINS_STATUS_VDIRTY (GAINS_STATUS_VALU_DIRTY)
69 #define GAINS_STATUS_A_VDIRTY (GAINS_STATUS_AMNT_DIRTY|GAINS_STATUS_VALU_DIRTY|GAINS_STATUS_LOT_DIRTY)
139 #define xaccSplitSetGUID(s,g) qof_instance_set_guid(QOF_INSTANCE(s),g)
147 void xaccFreeSplit (
Split *split);
150 void xaccSplitCopyKvp (
const Split *from,
Split *to);
153 void mark_split (
Split *s);
155 void xaccSplitVoid(
Split *split);
156 void xaccSplitUnvoid(
Split *split);
157 void xaccSplitCommitEdit(
Split *s);
158 void xaccSplitRollbackEdit(
Split *s);
166 gboolean xaccSplitRegister (
void);
174 void xaccSplitDetermineGainStatus (
Split *split);
178 void DxaccSplitSetSharePriceAndAmount (
Split *split,
181 void DxaccSplitSetShareAmount (
Split *split,
double amount);
205 #define DATE_CMP(aaa,bbb,field) { \
207 if ( (aaa->field.tv_sec) < \
208 (bbb->field.tv_sec)) { \
211 if ( (aaa->field.tv_sec) > \
212 (bbb->field.tv_sec)) { \
217 if ( (aaa->field.tv_nsec) < \
218 (bbb->field.tv_nsec)) { \
221 if ( (aaa->field.tv_nsec) > \
222 (bbb->field.tv_nsec)) { \
227 #define CHECK_GAINS_STATUS(s) \
228 if (GAINS_STATUS_UNKNOWN == s->gains) xaccSplitDetermineGainStatus(s);
230 #define SET_GAINS_DIRTY(s,flg) do { \
231 if (FALSE == (GAINS_STATUS_GAINS & s->gains)) { \
234 if (s->gains_split) s->gains_split->gains |= flg; \
238 #define SET_GAINS_ADIRTY(s) SET_GAINS_DIRTY(s,GAINS_STATUS_ADIRTY);
239 #define SET_GAINS_A_VDIRTY(s) SET_GAINS_DIRTY(s,GAINS_STATUS_A_VDIRTY);
240 #define SET_GAINS_VDIRTY(s) SET_GAINS_DIRTY(s,GAINS_STATUS_VDIRTY);
245 gboolean (*xaccSplitEqualCheckBal) (
const char *tag,
gnc_numeric a,
247 int (*get_currency_denom) (
const Split *s);
248 int (*get_commodity_denom) (
const Split *s);
249 gboolean (*get_corr_account_split) (
const Split *sa,
const Split **retval);
Use a 64-bit unsigned int timespec.
All type declarations for the whole Gnucash engine.