コード例 #1
0
ファイル: gsb_data_mix.c プロジェクト: jbq/grisbi
gboolean gsb_data_mix_set_sub_category_number ( gint transaction_number,
                        gint no_sub_category,
                        gboolean is_transaction )
{
    if ( is_transaction )
        return (gsb_data_transaction_set_sub_category_number ( transaction_number,
                        no_sub_category ) );
    else
        return (gsb_data_scheduled_set_sub_category_number ( transaction_number,
                        no_sub_category ) );
}
コード例 #2
0
/**
 * used to catch a transaction from a scheduled transaction
 * take the category, check if it's a transfer or a split and
 * do the necessary (create contra-transaction)
 * don't execute the children if it's a split, need to call 
 * gsb_scheduler_execute_children_of_scheduled_transaction later
 * 
 *
 * \param transaction_number
 * \param scheduled_number
 *
 * \return TRUE if ok, FALSE else
 * */
gboolean gsb_scheduler_get_category_for_transaction_from_transaction ( gint transaction_number,
								       gint scheduled_number )
{
    /* if category is set, it's a normal category */

    if ( gsb_data_scheduled_get_category_number (scheduled_number))
    {
	/* it's a normal category */

	gsb_data_transaction_set_category_number ( transaction_number,
						   gsb_data_scheduled_get_category_number (scheduled_number));
	gsb_data_transaction_set_sub_category_number ( transaction_number,
						       gsb_data_scheduled_get_sub_category_number (scheduled_number));
	return TRUE;
    }

    if ( gsb_data_scheduled_get_split_of_scheduled (scheduled_number))
    {
	/* it's a split of transaction,
	 * we don't append the children here, we need to call later
	 * the function gsb_scheduler_execute_children_of_scheduled_transaction */

	gsb_data_transaction_set_split_of_transaction ( transaction_number,
							    1 );
    }
    else
    {
	/* it's not a split of transaction and not a normal category so it's a transfer
	 * except if the target account is -1 then it's a
	 * transaction with no category */

	if ( gsb_data_scheduled_get_account_number_transfer (scheduled_number) != -1 )
	{
	    gint contra_transaction_number;

	    contra_transaction_number = gsb_form_transaction_validate_transfer ( transaction_number,
										 TRUE,
										 gsb_data_scheduled_get_account_number_transfer (scheduled_number));
	    gsb_data_transaction_set_method_of_payment_number ( contra_transaction_number,
								gsb_data_scheduled_get_contra_method_of_payment_number (scheduled_number));
	}
    }
    return TRUE;
}