/********************************************************************\ * gnc_trans_scm_append_split_scm * * append the scheme split onto the scheme transaction * * * * Args: trans_scm - the scheme transaction * * split_scm - the scheme split to append * * Returns: Nothing * \********************************************************************/ void gnc_trans_scm_append_split_scm(SCM trans_scm, SCM split_scm) { initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return; if (!gnc_is_split_scm(split_scm)) return; scm_call_2(setters.trans_scm_append_split_scm, trans_scm, split_scm); }
/********************************************************************\ * gnc_trans_scm_get_split_scm * * get the indexth scheme split of a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * index - the index of the split to get * * Returns: scheme split to get, or SCM_UNDEFINED if none * \********************************************************************/ SCM gnc_trans_scm_get_split_scm(SCM trans_scm, int index) { SCM arg; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return SCM_UNDEFINED; arg = scm_from_int (index); return scm_call_2(getters.trans_scm_split_scm, trans_scm, arg); }
/********************************************************************\ * gnc_trans_scm_set_notes * * set the notes of a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * notes - the notes to set * * Returns: Nothing * \********************************************************************/ void gnc_trans_scm_set_notes(SCM trans_scm, const char *notes) { SCM arg; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return; if (notes == NULL) return; arg = scm_from_utf8_string(notes); scm_call_2(setters.trans_scm_notes, trans_scm, arg); }
/********************************************************************\ * gnc_trans_scm_set_description * * set the description of a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * description - the description to set * * Returns: Nothing * \********************************************************************/ void gnc_trans_scm_set_description(SCM trans_scm, const char *description) { SCM arg; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return; if (description == NULL) return; arg = scm_from_utf8_string(description); scm_call_2(setters.trans_scm_description, trans_scm, arg); }
/********************************************************************\ * gnc_trans_scm_set_date * * set the date of a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * ts - the time to set * * Returns: Nothing * \********************************************************************/ void gnc_trans_scm_set_date(SCM trans_scm, Timespec *ts) { SCM arg; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return; if (ts == NULL) return; arg = gnc_timespec2timepair(*ts); scm_call_2(setters.trans_scm_date, trans_scm, arg); }
/********************************************************************\ * gnc_trans_scm_set_num * * set the num of a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * num - the num to set * * Returns: Nothing * \********************************************************************/ void gnc_trans_scm_set_num(SCM trans_scm, const char *num) { SCM arg; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return; if (num == NULL) return; arg = scm_makfrom0str(num); scm_call_2(setters.trans_scm_num, trans_scm, arg); }
/********************************************************************\ * gnc_trans_scm_get_num_splits * * get the number of scheme splits in a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * Returns: number of scheme splits in the transaction * \********************************************************************/ int gnc_trans_scm_get_num_splits(SCM trans_scm) { SCM result; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return 0; result = scm_call_1(getters.trans_scm_split_scms, trans_scm); if (!scm_is_list(result)) return 0; return scm_to_int(scm_length(result)); }
/********************************************************************\ * gnc_trans_scm_get_other_split_scm * * get the other scheme split of a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * split_scm - the split not to get * * Returns: other scheme split, or SCM_UNDEFINED if none * \********************************************************************/ SCM gnc_trans_scm_get_other_split_scm(SCM trans_scm, SCM split_scm) { SCM result; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return SCM_UNDEFINED; if (!gnc_is_split_scm(split_scm)) return SCM_UNDEFINED; result = scm_call_2(getters.trans_scm_other_split_scm, trans_scm, split_scm); if (!gnc_is_split_scm(result)) return SCM_UNDEFINED; return result; }