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.1 -r1.2
--- openacs-4/packages/invoices/www/offer-ae.tcl 16 Aug 2005 20:04:34 -0000 1.1
+++ openacs-4/packages/invoices/www/offer-ae.tcl 6 Sep 2005 23:01:24 -0000 1.2
@@ -9,6 +9,7 @@
{item_nr:array,optional}
{item_title:array,optional}
{item_description:array,optional}
+ {item_comment:array,optional}
{item_files:array,optional}
{item_pages:array,optional}
{item_category:array,optional}
@@ -21,7 +22,9 @@
{accept:optional}
{send:optional}
{send_accepted:optional}
+ {to_project:optional}
{project_id:optional}
+ {return_url:optional ""}
} -properties {
context:onevalue
page_title:onevalue
@@ -31,6 +34,18 @@
set date_format "YYYY-MM-DD"
set has_submit 0
set has_edit 0
+
+if {(![info exists offer_id] || $__new_p) && [exists_and_not_null project_id]} {
+ set _project_id $project_id
+ set offer_id [lindex [application_data_link::get_linked_content -from_object_id $project_id -to_content_type iv_offer] 0]
+
+ if {[empty_string_p $offer_id]} {
+ unset offer_id
+ } else {
+ set mode display
+ }
+}
+
if {![info exists offer_id] || $__new_p} {
set page_title "[_ invoices.iv_offer_Add2]"
set _offer_id 0
@@ -49,11 +64,16 @@
set page_title "[_ invoices.iv_offer_View]"
set has_submit 1
set date_format [lc_get formbuilder_date_format]
- set has_edit 1
+ set has_edit 0
}
set _offer_id [content::item::get_latest_revision -item_id $offer_id]
}
+if {$_offer_id} {
+ # we are editing/displaying data
+ set _project_id [lindex [application_data_link::get_linked -from_object_id $offer_id -to_object_type content_item] 0]
+}
+
if {[info exists accept]} {
ad_returnredirect [export_vars -base offer-accept {organization_id offer_id}]
ad_script_abort
@@ -66,6 +86,12 @@
ad_returnredirect [export_vars -base offer-accept-2 {offer_id}]
ad_script_abort
}
+if {[info exists to_project]} {
+ acs_object::get -object_id $_project_id -array project
+ set pm_url [lindex [site_node::get_url_from_object_id -object_id $project(package_id)] 0]
+ ad_returnredirect [export_vars -base "${pm_url}one" {{project_item_id $project_id}}]
+ ad_script_abort
+}
set organization_name [organizations::name -organization_id $organization_id]
@@ -81,9 +107,9 @@
db_multirow pricelist all_prices {}
-ad_form -name iv_offer_form -action offer-ae -mode $mode -has_submit $has_submit -has_edit $has_edit -export {organization_id} -form {
+ad_form -name iv_offer_form -action offer-ae -mode $mode -has_submit $has_submit -has_edit $has_edit -export {organization_id return_url} -form {
{offer_id:key}
- {organization_namex:text(inform) {label "[_ invoices.iv_offer_organization]"} {value "$organization_name"} {help_text "[_ invoices.iv_offer_organization_help]"}}
+ {organization_namex:text(inform) {label "[_ invoices.iv_offer_organization]"} {value "$organization_name"}}
{title:text {label "[_ invoices.iv_offer_Title]"} {html {size 80 maxlength 1000}} {help_text "[_ invoices.iv_offer_Title_help]"}}
{description:text(textarea),optional {label "[_ invoices.iv_offer_Description]"} {html {rows 5 cols 80}} {help_text "[_ invoices.iv_offer_Description_help]"}}
{comment:text(textarea),optional {label "[_ invoices.iv_offer_comment]"} {html {rows 5 cols 80}} {help_text "[_ invoices.iv_offer_comment_help]"}}
@@ -97,26 +123,23 @@
{offer_nr:text {label "[_ invoices.iv_offer_offer_nr]"} {html {size 80 maxlength 200}} {help_text "[_ invoices.iv_offer_offer_nr_help]"}}
}
-if {$_offer_id} {
- # we are editing/displaying data
- set _project_id [lindex [application_data_link::get_linked -from_object_id $offer_id -to_object_type content_item] 0]
-}
-
if {[exists_and_not_null _project_id]} {
# display linked project
db_1row get_project {}
+ set project_title $project_name
set dotlrn_club_id [lindex [application_data_link::get_linked -from_object_id $organization_id -to_object_type "dotlrn_club"] 0]
set pm_base_url [apm_package_url_from_id [dotlrn_community::get_package_id_from_package_key -package_key "project-manager" -community_id $dotlrn_club_id]]
set project_name "$project_name"
ad_form -extend -name iv_offer_form -form {
{project:text(inform),optional {label "[_ invoices.iv_offer_project]"} {value $project_name} {help_text "[_ invoices.iv_offer_project_help]"}}
+ {project_id:text(hidden) {value $_project_id}}
}
} elseif {!$has_submit} {
# let user assign project if not displaying data
- set project_options [concat [list [list "" ""]] [db_list_of_lists open_projects {}]]
+ set project_options [concat [list [list "" ""]] [lang::util::localize [db_list_of_lists open_projects {}]]]
if {[llength $project_options] > 1} {
ad_form -extend -name iv_offer_form -form {
{project_id:text(select),optional {label "[_ invoices.iv_offer_project]"} {options $project_options} {help_text "[_ invoices.iv_offer_project_help]"}}
@@ -131,6 +154,7 @@
{creator_name:text,optional {label "[_ invoices.iv_offer_creation_user]"} {html {size 80 maxlength 200}} {help_text "[_ invoices.iv_offer_creation_user_help]"}}
{creation_date:text,optional {label "[_ invoices.iv_offer_creation_date]"} {html {size 12 maxlength 10}} {help_text "[_ invoices.iv_offer_creation_date_help]"}}
{finish_date:text,optional {label "[_ invoices.iv_offer_finish_date]"} {html {size 12 maxlength 10}} {help_text "[_ invoices.iv_offer_finish_date_help]"}}
+ {date_comment:text,optional {label "[_ invoices.iv_offer_date_comment]"} {html {size 80 maxlength 1000}} {help_text "[_ invoices.iv_offer_date_comment_help]"}}
}
if {![empty_string_p $accepted_date]} {
@@ -146,6 +170,7 @@
{currency:text(select) {mode display} {label "[_ invoices.iv_offer_currency]"} {options $currency_options} {help_text "[_ invoices.iv_offer_currency_help]"}}
{finish_date:text,optional {label "[_ invoices.iv_offer_finish_date]"} {html {size 12 maxlength 10 id sel1}} {help_text "[_ invoices.iv_offer_finish_date_help]"} {after_html { \[y-m-d \]}}}
{finish_time:date,optional {label "[_ invoices.iv_offer_finish_time]"} {format {[lc_get formbuilder_time_format]}} {help_text "[_ invoices.iv_offer_finish_time_help]"}}
+ {date_comment:text,optional {label "[_ invoices.iv_offer_date_comment]"} {html {size 80 maxlength 1000}} {help_text "[_ invoices.iv_offer_date_comment_help]"}}
}
}
@@ -305,7 +330,7 @@
set start $i
}
- for {set i $start} {$i < [expr $start + 5] } {incr i} {
+ for {set i $start} {$i < [expr $start + 2] } {incr i} {
ad_form -extend -name iv_offer_form -form \
[list [list "item_nr.${i}:text,optional" \
[list label "[_ invoices.iv_offer_item_nr]"] \
@@ -409,29 +434,44 @@
{send_accepted:text(submit) {label "[_ invoices.iv_offer_send_accepted]"} {value t}}
}
}
+ ad_form -extend -name iv_offer_form -form {
+ {to_project:text(submit) {label "[_ invoices.back_to_project]"} {value t}}
+ }
}
ad_form -extend -name iv_offer_form -new_request {
- set description ""
+ if {[exists_and_not_null _project_id]} {
+ db_1row get_project_description {}
+ } else {
+ set description ""
+ }
set today [db_string today {}]
set finish_date ""
set finish_time ""
- set title "[_ invoices.iv_offer_1] $organization_name $today"
+ if {[exists_and_not_null project_title]} {
+ set title "[_ invoices.iv_offer_1] $project_title"
+ } else {
+ set title "[_ invoices.iv_offer_1] $organization_name $today"
+ }
set offer_nr [db_nextval iv_offer_seq]
set amount_sum "0.00"
set amount_total "0.00"
# get this from organization_id
- set payment_days ""
+ set payment_days "30"
set vat_percent "16.0"
- # set contacts_package_id [lindex [application_link::get_linked -from_package_id $package_id -to_package_key contacts] 0]
- # array set org_data [contacts::get_values \
-# -group_name "#acs-translation.Customers#" \
-# -object_type "organization" \
-# -party_id $organization_id \
-# -contacts_package_id $contacts_package_id]
- # set payment_days $org_data(payment_days)
- # set vat_percent [format "%.1f" $org_data(vat_percent)]
+ set contacts_package_id [lindex [application_link::get_linked -from_package_id $package_id -to_package_key contacts] 0]
+ array set org_data [contacts::get_values \
+ -group_name "Customers" \
+ -object_type "organization" \
+ -party_id $organization_id \
+ -contacts_package_id $contacts_package_id]
+ if {[info exists org_data(payment_days)]} {
+ set payment_days $org_data(payment_days)
+ }
+ if {[info exists org_data(vat_percent)]} {
+ set vat_percent [format "%.1f" $org_data(vat_percent)]
+ }
} -edit_request {
db_1row get_data {}
set creator_name "$first_names $last_name"
@@ -503,6 +543,7 @@
-amount_sum $item_sum \
-currency $currency \
-finish_date $finish_date \
+ -date_comment $date_comment \
-payment_days $payment_days \
-vat_percent $vat_percent \
-vat $vat]
@@ -547,6 +588,7 @@
-amount_sum $item_sum \
-currency $currency \
-finish_date $finish_date \
+ -date_comment $date_comment \
-payment_days $payment_days \
-vat_percent $vat_percent \
-vat $vat]
@@ -598,18 +640,37 @@
}
} -after_submit {
if {[exists_and_not_null project_id]} {
- application_data_link::new -this_object_id $offer_id -target_object_id $project_id
+ catch {
+ application_data_link::new -this_object_id $offer_id -target_object_id $project_id
+ set _project_id $project_id
+ }
}
+
+ if {[exists_and_not_null _project_id]} {
+ set status [pm::project::get_status_description -project_item_id $_project_id]
+ if {$status == "#acs-kernel.common_Open#"} {
+ db_dml set_accepted_date {}
+ }
+ }
+
if {![empty_string_p $finish_date]} {
- db_dml set_finish_date {
- update iv_offers
- set finish_date = to_timestamp(:finish_date_list,'YYYY MM DD HH24 MI SS')
- where offer_id = :new_offer_rev_id
+ db_dml set_finish_date {}
+
+ if {[exists_and_not_null _project_id]} {
+ set project_rev_id [pm::project::get_project_id -project_item_id $_project_id]
+ # no update of project deadline here
+ # so that it can be different from the offer deadline the customer gets
+ # db_dml set_project_deadline {}
}
}
- ad_returnredirect [export_vars -base offer-ae {offer_id {mode display}}]
- ad_script_abort
+ if {[empty_string_p $return_url]} {
+ ad_returnredirect [export_vars -base offer-ae {offer_id {mode display}}]
+ ad_script_abort
+ } else {
+ ad_returnredirect $return_url
+ ad_script_abort
+ }
}
ad_return_template