Index: openacs-4/packages/expense-tracking/www/admin/addedit-expense.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/expense-tracking/www/admin/addedit-expense.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/expense-tracking/www/admin/addedit-expense.tcl 31 May 2005 22:06:17 -0000 1.1 +++ openacs-4/packages/expense-tracking/www/admin/addedit-expense.tcl 2 Jun 2005 10:44:50 -0000 1.2 @@ -53,7 +53,12 @@ -categorized_object_id [value_if_exists exp_id] \ -form_name new_expense -ad_form -extend -name new_expense -new_request { +ad_form -extend -name new_expense -form { + { new_expense_code:text(text),optional + {label "New Expense Code"} + {value ""} + {help_text "Enter a new expense code if the expense code you want is not listed above.<br />This new expense code will be available next time when you add an expense." } } +} -new_request { set exp_amount [template::util::currency::create "$" "0" "." "00" ] } -edit_request { array set exp_item [exptrack::get_expense -id $exp_id] @@ -74,10 +79,22 @@ set category_ids [category::ad_form::get_categories -container_object_id $expenses_package_id] } -new_data { exptrack::add_expense -id $exp_id -date $exp_date -expense $expense -amount $exp_amount -class_key $class_key -user_id $user_id -community_id $community_id - category::map_object -remove_old -object_id $exp_id $category_ids + if { $new_expense_code != "" } { + set tree_id [db_string "get_tree_id" "select tree_id from category_tree_map where object_id =:expenses_package_id"] + set new_category_id [category::add -tree_id $tree_id -parent_id "" -name $new_expense_code ] + category::map_object -remove_old -object_id $exp_id $new_category_id + } else { + category::map_object -remove_old -object_id $exp_id $category_ids + } } -edit_data { exptrack::update_expense -id $exp_id -date $exp_date -expense $expense -amount $exp_amount -class_key $class_key -user_id $user_id -community_id $community_id - category::map_object -remove_old -object_id $exp_id $category_ids + if { $new_expense_code != "" } { + set tree_id [db_string "get_tree_id" "select tree_id from category_tree_map where object_id =:expenses_package_id"] + set new_category_id [category::add -tree_id $tree_id -parent_id "" -name $new_expense_code ] + category::map_object -remove_old -object_id $exp_id $new_category_id + } else { + category::map_object -remove_old -object_id $exp_id $category_ids + } } -after_submit { ad_returnredirect "$package_url/admin" ad_script_abort