Index: openacs-4/packages/invoices/lib/offer-items-list.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/lib/offer-items-list.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/invoices/lib/offer-items-list.tcl 3 Nov 2005 22:49:12 -0000 1.3 +++ openacs-4/packages/invoices/lib/offer-items-list.tcl 7 Nov 2005 23:10:51 -0000 1.4 @@ -1,6 +1,6 @@ -set optional_param_list [list elements category_filter_clause] +set optional_param_list [list elements category_filter_clause date_range_start date_range_end] set optional_unset_list [list offer_items_orderby category_id \ - customer_id filter_package_id date_range \ + customer_id filter_package_id \ project_status_id groupby] foreach optional_unset $optional_unset_list { @@ -17,10 +17,25 @@ } } -if { [exists_and_not_null date_range] } { - catch { set date_range [lc_time_fmt $date_range %y-%m-%d] } errMsg +set date_range_clause "" + +if { [exists_and_not_null date_range_start] } { + set date_range 1 + catch { set date_range_start [lc_time_fmt $date_range_start %y-%m-%d] } errMsg + append date_range_clause "to_char(oi.creation_date,'yy-mm-dd') >= :date_range_start" } +if { [exists_and_not_null date_range_end] } { + set date_range 1 + catch { set date_range_end [lc_time_fmt $date_range_end %y-%m-%d] } errMsg + + if { [exists_and_not_null date_range_start] } { + append date_range_clause " and to_char(oi.creation_date,'yy-mm-dd') <= :date_range_end" + } else { + append date_range_clause "to_char(oi.creation_date,'yy-mm-dd') <= :date_range_end" + } +} + if {![info exist filters_p] } { set filters_p 1 } @@ -45,10 +60,6 @@ set return_url [ad_return_url] } -if { [exists_and_not_null category_id] } { - set category_filter_clause "and com.category_id = $category_id" -} - set categories_p 0 # Elements to construnct row_lists @@ -68,31 +79,71 @@ # Create the elements for the list template set elements [list] +set categories_filter [list] -# We are going to create the elements for each mapped categories +# We are going to create the elements for each mapped category tree if { $categories_p } { - set categories [db_list_of_lists get_categories { }] + set categories_trees [db_list_of_lists get_category_trees { }] set mapped_objects [list] set multirow_extend [list] - - foreach category $categories { - set cat_name [lindex $category 0] - set cat_id [lindex $category 1] + set tree_ids [list] + + foreach tree $categories_trees { + set tree_name [lindex $tree 0] + set tree_id [lindex $tree 1] + + lappend tree_ids $tree_id + lappend multirow_extend tree_$tree_id + + set label "$tree_name" - lappend multirow_extend category_$cat_id - if { [exists_and_not_null category_id] } { - set label "$cat_name" - append label "  ([_ invoices.clear])" - } else { - set label "$cat_name" - } - lappend elements category_$cat_id [list label $label] - lappend row_list category_$cat_id + lappend elements tree_$tree_id [list label $label] + lappend row_list tree_$tree_id lappend row_list [list] } + set categories [db_list_of_lists get_categories " "] + foreach cat $categories { + lappend categories_filter [list [lang::util::localize [lindex $cat 0]] [lindex $cat 1]] + } } +set aggregate_amount "" +if { [exists_and_not_null groupby] } { + append aggregate_amount "