예제 #1
0
/* gnc_configure_date_completion
 *    sets dateCompletion to the current value on the scheme side.
 *    QOF_DATE_COMPLETION_THISYEAR: use current year
 *    QOF_DATE_COMPLETION_SLIDING: use a sliding 12-month window
 *    backmonths 0-11: windows starts this many months before current month
 *
 * Args: Nothing
 * Returns: Nothing
 */
static void
gnc_configure_date_completion (void)
{
    QofDateCompletion dc = QOF_DATE_COMPLETION_THISYEAR;
    int backmonths = gnc_prefs_get_float(GNC_PREFS_GROUP_GENERAL,
                                         GNC_PREF_DATE_BACKMONTHS);

    if (backmonths < 0)
        backmonths = 0;
    else if (backmonths > 11)
        backmonths = 11;

    if (gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_DATE_COMPL_SLIDING))
        dc = QOF_DATE_COMPLETION_SLIDING;

    qof_date_completion_set(dc, backmonths);
}
예제 #2
0
/* gnc_configure_date_completion
 *    sets dateCompletion to the current value on the scheme side.
 *    QOF_DATE_COMPLETION_THISYEAR: use current year
 *    QOF_DATE_COMPLETION_SLIDING: use a sliding 12-month window
 *    backmonths 0-11: windows starts this many months before current month
 *
 * Args: Nothing
 * Returns: Nothing
 */
static void
gnc_configure_date_completion (void)
{
    char *date_completion = gnc_gconf_get_string(GCONF_GENERAL,
                            KEY_DATE_COMPLETION, NULL);
    int backmonths = gnc_gconf_get_float(GCONF_GENERAL,
                                         KEY_DATE_BACKMONTHS, NULL);
    QofDateCompletion dc;

    if (backmonths < 0)
    {
        backmonths = 0;
    }
    else if (backmonths > 11)
    {
        backmonths = 11;
    }

    if (date_completion && strcmp(date_completion, "sliding") == 0)
    {
        dc = QOF_DATE_COMPLETION_SLIDING;
    }
    else if (date_completion && strcmp(date_completion, "thisyear") == 0)
    {
        dc = QOF_DATE_COMPLETION_THISYEAR;
    }
    else
    {
        /* No preference has been set yet */
        PINFO("Incorrect date completion code, using defaults");
        dc = QOF_DATE_COMPLETION_THISYEAR;
        backmonths = 6;
        gnc_gconf_set_string (GCONF_GENERAL, KEY_DATE_COMPLETION, "thisyear", NULL);
        gnc_gconf_set_float (GCONF_GENERAL, KEY_DATE_BACKMONTHS, 6.0, NULL);
    }
    qof_date_completion_set(dc, backmonths);

    if (date_completion != NULL)
    {
        free(date_completion);
    }
}