Index: openacs-4/packages/invoices/invoices.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/invoices.info,v diff -u -r1.15 -r1.16 --- openacs-4/packages/invoices/invoices.info 15 Nov 2005 22:38:03 -0000 1.15 +++ openacs-4/packages/invoices/invoices.info 15 Dec 2005 18:58:42 -0000 1.16 @@ -7,15 +7,15 @@ f t - + Timo Hentschel Invoices package that will collect costs to invoice items in invoices and store data about received payment. 2005-11-15 Cognovis Collect costs to invoice items and invoices, store payment information. 0 - + Index: openacs-4/packages/invoices/catalog/invoices.de_DE.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/catalog/invoices.de_DE.ISO-8859-1.xml,v diff -u -r1.14 -r1.15 --- openacs-4/packages/invoices/catalog/invoices.de_DE.ISO-8859-1.xml 14 Dec 2005 17:39:30 -0000 1.14 +++ openacs-4/packages/invoices/catalog/invoices.de_DE.ISO-8859-1.xml 15 Dec 2005 18:58:42 -0000 1.15 @@ -115,6 +115,9 @@ Rabatt Nummer Titel + Lektorat + Adaption + Sprachen Mehrwertsteuer Rechnungsposition ansehen Neue Rechnung Index: openacs-4/packages/invoices/catalog/invoices.en_US.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/catalog/invoices.en_US.ISO-8859-1.xml,v diff -u -r1.19 -r1.20 --- openacs-4/packages/invoices/catalog/invoices.en_US.ISO-8859-1.xml 14 Dec 2005 17:39:30 -0000 1.19 +++ openacs-4/packages/invoices/catalog/invoices.en_US.ISO-8859-1.xml 15 Dec 2005 18:58:42 -0000 1.20 @@ -140,6 +140,9 @@ Rebate Sort order Title + Editing + Translation + Languages VAT View Invoice Item New Invoice Index: openacs-4/packages/invoices/sql/postgresql/invoices-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/sql/postgresql/invoices-create.sql,v diff -u -r1.6 -r1.7 --- openacs-4/packages/invoices/sql/postgresql/invoices-create.sql 2 Dec 2005 14:27:38 -0000 1.6 +++ openacs-4/packages/invoices/sql/postgresql/invoices-create.sql 15 Dec 2005 18:58:42 -0000 1.7 @@ -299,6 +299,9 @@ offer_item_id integer constraint iv_default_objects_offer_item_fk references acs_objects, + offer_item_title_id integer + constraint iv_default_objects_offer_title_fk + references acs_objects, invoice_id integer constraint iv_default_objects_invoice_fk references acs_objects, Index: openacs-4/packages/invoices/sql/postgresql/upgrade/upgrade-0.01d19-0.01d20.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/sql/postgresql/upgrade/upgrade-0.01d19-0.01d20.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/invoices/sql/postgresql/upgrade/upgrade-0.01d19-0.01d20.sql 15 Dec 2005 18:58:42 -0000 1.1 @@ -0,0 +1 @@ +alter table iv_default_objects add column offer_item_title_id integer; Index: openacs-4/packages/invoices/tcl/invoices-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/tcl/invoices-callback-procs.tcl,v diff -u -r1.10 -r1.11 --- openacs-4/packages/invoices/tcl/invoices-callback-procs.tcl 14 Dec 2005 22:06:38 -0000 1.10 +++ openacs-4/packages/invoices/tcl/invoices-callback-procs.tcl 15 Dec 2005 18:58:43 -0000 1.11 @@ -311,34 +311,38 @@ lappend group_ids [group::get_id -group_name $group_name] } - set already_offer_p [db_0or1row check_for_offer { - select of.offer_id as credit_offer_rev_id - from iv_offers of, cr_items oi, acs_data_links r, - pm_projects p, cr_items pi - where r.object_id_one = pi.item_id - and r.object_id_two = oi.item_id - and oi.latest_revision = of.offer_id - and of.status = 'credit' - and pi.latest_revision = p.project_id - and p.status_id = 2 - and p.customer_id = :organization_id - }] + if {[lsearch $group_ids $group_id] >-1} { + # check if there is already an offer dummy project + set already_offer_p [db_0or1row check_for_offer { + select of.offer_id as credit_offer_rev_id + from iv_offers of, cr_items oi, acs_data_links r, + pm_projects p, cr_items pi + where r.object_id_one = pi.item_id + and r.object_id_two = oi.item_id + and oi.latest_revision = of.offer_id + and of.status = 'credit' + and pi.latest_revision = p.project_id + and p.status_id = 2 + and p.customer_id = :organization_id + }] - set root_folder_id [lindex [application_data_link::get_linked -from_object_id $organization_id -to_object_type content_folder] 0] - foreach folder {invoices offers accepted} { - if {[empty_string_p [fs::get_folder -name $folder -parent_id $root_folder_id]]} { - set folder_id [fs::new_folder \ - -name $folder \ - -pretty_name "#invoices.${folder}#" \ - -parent_id $root_folder_id \ - -no_callback] - } - } + if {!$already_offer_p} { + # Create the new project and credit offer - if {[lsearch $group_ids $group_id] >-1 && !$already_offer_p} { - # Create the new project and credit offer - foreach package_id [apm_package_id_from_key invoices] { - iv::offer::new_credit -organization_id $organization_id -package_id $package_id + set root_folder_id [lindex [application_data_link::get_linked -from_object_id $organization_id -to_object_type content_folder] 0] + foreach folder {invoices offers accepted} { + if {[empty_string_p [fs::get_folder -name $folder -parent_id $root_folder_id]]} { + set folder_id [fs::new_folder \ + -name "${folder}_${root_folder_id}" \ + -pretty_name "#invoices.${folder}#" \ + -parent_id $root_folder_id \ + -no_callback] + } + } + + foreach package_id [apm_package_id_from_key invoices] { + iv::offer::new_credit -organization_id $organization_id -package_id $package_id + } } } } Index: openacs-4/packages/invoices/tcl/iv-install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/tcl/iv-install-procs.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/invoices/tcl/iv-install-procs.tcl 26 Oct 2005 12:33:37 -0000 1.6 +++ openacs-4/packages/invoices/tcl/iv-install-procs.tcl 15 Dec 2005 18:58:43 -0000 1.7 @@ -130,6 +130,7 @@ set cost_id [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Costs Default Object"]] acs_object] set offer_id [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Offers Default Object"]] acs_object] set offer_item_id [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Offer Items Default Object"]] acs_object] + set offer_item_title_id [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Offer Items Title Default Object"]] acs_object] set invoice_id [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Invoices Default Object"]] acs_object] set invoice_item_id [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Invoice Items Default Object"]] acs_object] set payment_id [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Payments Default Object"]] acs_object] @@ -141,6 +142,7 @@ -cost_id $cost_id \ -offer_id $offer_id \ -offer_item_id $offer_item_id \ + -offer_item_title_id $offer_item_title_id \ -invoice_id $invoice_id \ -invoice_item_id $invoice_item_id \ -payment_id $payment_id @@ -247,6 +249,27 @@ } } } + 0.01d19 0.01d20 { + foreach package_id [apm_package_id_from_key invoices] { + array set objects [iv::util::get_default_objects -package_id $package_id] + + set objects(invoice_item_id) [package_instantiate_object -package_name acs_object -var_list [list [list new__context_id $package_id] [list new__package_id $package_id] [list new__title "Invoice Items Default Object"]] acs_object] + + iv::util::set_default_objects \ + -package_id $package_id \ + -list_id $objects(list_id) \ + -price_id $objects(price_id) \ + -cost_id $objects(cost_id) \ + -offer_id $objects(offer_id) \ + -offer_item_id $objects(offer_item_id) \ + -offer_item_title_id $objects(offer_item_title_id) \ + -invoice_id $objects(invoice_id) \ + -invoice_item_id $objects(invoice_item_id) \ + -payment_id $objects(payment_id) + + array unset objects + } + } } } Index: openacs-4/packages/invoices/tcl/util-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/tcl/util-procs.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/invoices/tcl/util-procs.tcl 1 Oct 2005 11:05:05 -0000 1.3 +++ openacs-4/packages/invoices/tcl/util-procs.tcl 15 Dec 2005 18:58:43 -0000 1.4 @@ -37,6 +37,7 @@ -cost_id:required -offer_id:required -offer_item_id:required + -offer_item_title_id:required -invoice_id:required -invoice_item_id:required -payment_id:required Index: openacs-4/packages/invoices/tcl/util-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/tcl/util-procs.xql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/invoices/tcl/util-procs.xql 28 Sep 2005 19:08:28 -0000 1.2 +++ openacs-4/packages/invoices/tcl/util-procs.xql 15 Dec 2005 18:58:43 -0000 1.3 @@ -5,7 +5,7 @@ - select list_id, price_id, cost_id, offer_id, offer_item_id, + select list_id, price_id, cost_id, offer_id, offer_item_id, offer_item_title_id, invoice_id, invoice_item_id, payment_id from iv_default_objects where package_id = :package_id @@ -17,10 +17,10 @@ insert into iv_default_objects - (package_id, list_id, price_id, cost_id, offer_id, + (package_id, list_id, price_id, cost_id, offer_id, offer_item_title_id, offer_item_id, invoice_id, invoice_item_id, payment_id) values - (:package_id, :list_id, :price_id, :cost_id, :offer_id, + (:package_id, :list_id, :price_id, :cost_id, :offer_id, :offer_item_title_id, :offer_item_id, :invoice_id, :invoice_item_id, :payment_id) Index: openacs-4/packages/invoices/www/offer-ae.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/www/offer-ae.tcl,v diff -u -r1.10 -r1.11 --- openacs-4/packages/invoices/www/offer-ae.tcl 2 Nov 2005 14:50:43 -0000 1.10 +++ openacs-4/packages/invoices/www/offer-ae.tcl 15 Dec 2005 18:58:43 -0000 1.11 @@ -378,6 +378,13 @@ [list help_text "[_ invoices.iv_offer_item_Title_help]"] \ [list section "[_ invoices.iv_offer_item_1] $i"] ] ] ad_form -extend -name iv_offer_form -form \ + [list [list "item_title_cat.${i}:text(category),optional" \ + [list label "[_ invoices.iv_offer_item_title_category]"] \ + [list value [list 0 $container_objects(offer_item_title_id)]] \ + [list help_text "[_ invoices.iv_offer_item_title_category_help]"] \ + [list section "[_ invoices.iv_offer_item_1] $i"] ] ] + + ad_form -extend -name iv_offer_form -form \ [list [list "item_description.${i}:text(textarea),optional" \ [list label "[_ invoices.iv_offer_item_Description]"] \ [list html [list rows 5 cols 80]] \ @@ -544,7 +551,23 @@ set item(rebate) $item_rebate($i) set item(page_count) $item_pages($i) set item(file_count) $item_files($i) + set title_cat $item_title_cat($i) + + # generate item title from categories if empty title + if {[empty_string_p $item(title)]} { + # if only single category + if {[llength $title_cat] == 1} { + set item(title) "#invoices.iv_invoice_item_title_cat_1# ([category::get_name [lindex $title_cat 0]])" + } + # if two categories selected + if {[llength $title_cat] == 2} { + set from_cat [category::get_name [lindex $title_cat 0]] + set to_cat [category::get_name [lindex $title_cat 1]] + set item(title) "#invoices.iv_invoice_item_title_cat_2# ($from_cat -> $to_cat)" + } + } + if {[empty_string_p $item(price)]} { set item(sum) "0" } else {