Index: openacs-4/packages/contacts/lib/contact-complaint-form.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/lib/contact-complaint-form.tcl,v diff -u -N -r1.11 -r1.12 --- openacs-4/packages/contacts/lib/contact-complaint-form.tcl 5 Oct 2005 22:16:16 -0000 1.11 +++ openacs-4/packages/contacts/lib/contact-complaint-form.tcl 14 Oct 2005 23:02:42 -0000 1.12 @@ -42,6 +42,35 @@ } } +if { [exists_and_not_null customer_id]} { + # We get all the employees of this customer_id + set emp_options [list] + lappend emp_options [list "- - - - - -" ""] + db_foreach get_employees { } { + set emp_name [contact::name -party_id $emp_id] + append emp_name " ([contact::email -party_id $emp_id])" + lappend emp_options [list $emp_name $emp_id] + } + ad_form -extend -name complaint_form -form { + {employee_id:text(select),optional + {label "[_ contacts.Employee]:"} + {options $emp_options} + {value ""} + } + } +} else { + ad_form -extend -name complaint_form -form { + {employee_id:text(hidden) + {label "[_ contacts.Employee]:"} + {value ""} + } + {employee_inform:text(inform) + {label "[_ contacts.Employee]:"} + {value "[_ contacts.Customer_has_no_employees]"} + } + } +} + if { ![exists_and_not_null supplier_id]} { set user_options [list] db_foreach get_users { } { @@ -75,12 +104,12 @@ } ad_form -extend -name complaint_form -form { - {turnover:text(text) + {turnover:text(text),optional {label "[_ contacts.Turnover]"} {html {size 10}} {help_text "[_ contacts.complaint_turnover_help]"} } - {percent:text(text) + {percent:text(text),optional {label "[_ contacts.Percent]"} {html {size 2}} {after_html "%"} @@ -98,17 +127,21 @@ } ad_form -extend -name complaint_form -form { - {paid:text(text) + {paid:text(text),optional {label "[_ contacts.Paid]"} {html {size 10}} {help_text "[_ contacts.complaint_paid_help]"} } - {state:text(select) + {refund_amount:text(text),optional + {label "[_ contacts.Refund]:"} + {html {size 10}} + {help_text "[_ contacts.complaint_refund_help]"} + } + {state:text(select),optional {label "[_ contacts.Status]"} {options { { [_ contacts.open] open } { [_ contacts.valid] valid } { [_ contacts.invalid] invalid } }} {help_text "[_ contacts.complaint_status_help]"} - } {description:text(textarea) {label "[_ contacts.Description]"} @@ -131,9 +164,11 @@ -supplier_id $supplier_id \ -paid $paid \ -complaint_object_id $complaint_object_id \ - -state $state + -state $state \ + -employee_id $employee_id \ + -refund_amount $refund_amount + - } -edit_data { contact::complaint::new \ @@ -146,9 +181,10 @@ -supplier_id $supplier_id \ -paid $paid \ -complaint_object_id $complaint_object_id \ - -state $state + -state $state \ + -employee_id $employee_id \ + -refund_amount $refund_amount - } -new_request { if { [exists_and_not_null complaint_object_id]} { set project "[pm::project::name -project_item_id $complaint_object_id]" Index: openacs-4/packages/contacts/lib/contact-complaint-form.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/lib/contact-complaint-form.xql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/contacts/lib/contact-complaint-form.xql 5 Oct 2005 22:16:16 -0000 1.3 +++ openacs-4/packages/contacts/lib/contact-complaint-form.xql 14 Oct 2005 23:02:42 -0000 1.4 @@ -2,6 +2,18 @@ + + + select + r.object_id_one as emp_id + from + acs_rels r + where + r.object_id_two = :customer_id + and rel_type = 'contact_rels_employment' + + + select Index: openacs-4/packages/contacts/tcl/contact-complaint-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/tcl/contact-complaint-procs.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/contacts/tcl/contact-complaint-procs.tcl 5 Oct 2005 22:17:15 -0000 1.3 +++ openacs-4/packages/contacts/tcl/contact-complaint-procs.tcl 14 Oct 2005 23:03:05 -0000 1.4 @@ -18,6 +18,8 @@ -paid:required -complaint_object_id:required {-state "open"} + {-employee_id ""} + {-refund_amount ""} } { Inserts a new complaint. Creates a new revision if complaint_id is not present, otherwise creates a new item and revision for the complaint. @@ -31,6 +33,9 @@ @param supplier_id @param paid @param complaint_object_id The complaint is being made over this object_id + @param state + @param employee_id + @param refund_amount } { if { [empty_string_p $complaint_id] } { Index: openacs-4/packages/contacts/tcl/contact-complaint-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/tcl/contact-complaint-procs.xql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/contacts/tcl/contact-complaint-procs.xql 5 Oct 2005 22:17:15 -0000 1.3 +++ openacs-4/packages/contacts/tcl/contact-complaint-procs.xql 14 Oct 2005 23:03:05 -0000 1.4 @@ -5,10 +5,10 @@ insert into - contact_complaint_track - (complaint_id,customer_id,turnover,percent,supplier_id,paid,complaint_object_id,state) - values - (:complaint_id,:customer_id,:turnover,:percent,:supplier_id,:paid,:complaint_object_id,:state) + contact_complaint_track + (complaint_id,customer_id,turnover,percent,supplier_id,paid,complaint_object_id,state,employee_id,refund_amount) + values + (:complaint_id,:customer_id,:turnover,:percent,:supplier_id,:paid,:complaint_object_id,:state,:employee_id,:refund_amount) Index: openacs-4/packages/contacts/tcl/contacts-install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/tcl/contacts-install-procs.tcl,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/contacts/tcl/contacts-install-procs.tcl 14 Oct 2005 20:43:35 -0000 1.15 +++ openacs-4/packages/contacts/tcl/contacts-install-procs.tcl 14 Oct 2005 23:04:38 -0000 1.16 @@ -127,7 +127,24 @@ -sort_order 7 \ -column_spec "varchar(7) constraint cct_state_ck check (state in ('valid','invalid','open'))" + + content::type::attribute::new \ + -content_type "contact_complaint" \ + -attribute_name "employee_id" \ + -datatype "integer" \ + -pretty_name "Employee ID" \ + -sort_order 8 \ + -column_spec "integer constraint contact_complaint_track_employee_fk + references parties(party_id) on delete cascade" + content::type::attribute::new \ + -content_type "contact_complaint" \ + -attribute_name "refund" \ + -datatype "money" \ + -pretty_name "Refund" \ + -sort_order 9 \ + -column_spec "float" + } ad_proc -public contacts::install::package_instantiate { @@ -422,5 +439,26 @@ # Now we just delete the table contact_complaint_tracking db_dml drop_table { drop table contact_complaint_tracking } } + + 1.0d21 1.0d22 { + + content::type::attribute::new \ + -content_type "contact_complaint" \ + -attribute_name "employee_id" \ + -datatype "integer" \ + -pretty_name "Employee ID" \ + -sort_order 8 \ + -column_spec "integer constraint contact_complaint_track_employee_fk + references parties(party_id) on delete cascade" + + content::type::attribute::new \ + -content_type "contact_complaint" \ + -attribute_name "refund_amount" \ + -datatype "money" \ + -pretty_name "Refund" \ + -sort_order 9 \ + -column_spec "float" + + } } } \ No newline at end of file