File Edit Options Buffers Tools Tcl Help
ad_page_contract {} {
{event_id:naturalnum,optional}
{page:naturalnum,optional}
}
ns_log Notice "Running TCL script items.tcl"
set tree_id [category_tree::get_id "EventsQA" "en_US"]
set categories [category::get_mapped_categories -tree_id $tree_id $event_id]
set category_names [category::get_names $categories "pt_BR"]
set item_ids [ee_event::event::matching_items -event_id $event_id]
set count [llength $item_ids]
set latitude "-12.9704"
set longitude "-38.5124"
set max_distance 50
ns_log Notice "ITEMS $item_ids"
if { [llength $item_ids] > 0 } {
ns_log Notice "$item_ids"
set item_ids [join [join $item_ids " "] ","]
}
ns_log Notice "$item_ids"
#ns_log Notice "EVENTTYPES $mapped_objs"
# To use evex QA as extension of cr_items Iuri Sampaio (iuri@iurix.com)
set from_table "ee_qa_item_info qa1, ee_qa_item_category_score qa2 "
append where_clauses " AND qa1.item_id = qa2.item_id "
set categories [join $categories ", "]
append where_clauses " AND qa2.category_id IN ($categories) "
set order_by " GROUP BY qa1.item_id, qa2.score, cr.title ORDER BY qa2.score DESC, qa1.score DESC"
set tree_id [category_tree::get_id "Supplier Types" "en_US"]
set serv_categories [category::get_mapped_categories -tree_id $tree_id $event_id]
set where_clauses ""
set from_tables ""
# Service categories
if { [llength $serv_categories] } {
set serv_category_names [category::get_names $serv_categories "pt_BR"]
set serv_categories [join $serv_categories ", "]
ns_log Notice "CATEGORIES $serv_categories | NAMES: $serv_category_names"
set from_tables ", category_object_map com"
set where_clauses " AND com.object_id = qa1.item_id AND com.category_id IN ($serv_categories)"
}
list::create \
-name items \
-multirow items \
-key item_id \
-page_flush_p 1 \
-page_size 250 \
-page_query_name select_items \
-actions {
"#evex-event.Send_request#" request-proposal "#evex-event.Send_a_request_to_partner#"
} \
-bulk_action_method post \
-bulk_action_export_vars { event_id } \
-bulk_actions {
"#evex-event.Send_request#" request-proposal "#evex-event.Send_request_to_all_partners#"
} \
-elements {
title {
label "#evex-event.Title#"
}
distance {
label "#evex-event.Distance#"
}
score {
label "#evex-event.Category_Score#"
}
total {
label "#evex-event.Total_Score#"
}
serv_category_name {
label "Servico"
}
location {
label "#evex-event.Location#"
}
}
db_multirow -extend { thumbnail_url serv_category_name} items select_items_page "
SELECT qa1.item_id, qa1.score AS total, qa2.score, cr.title,
pa.latitude, pa.longitude, pa.delivery_address AS location,
to_char((( 3959 * acos ( cos ( radians(:latitude) ) * cos( radians( CAST(pa.latitude AS NUMERIC)) ) * cos( radians( CAST(pa.longitude AS NUMERIC) ) - radians(:longitude) )+ sin ( radians(:latitude) )* sin( radians( CAST(pa.latitude AS NUMERIC) ) ) )) * 1.6)::float, 'FM999999990.00') AS distance, com.category_id AS serv_category
FROM
cr_items ci, cr_revisions cr,
ee_qa_item_info qa1, ee_qa_item_category_score qa2,
postal_addresses pa,
acs_data_links adl
$from_tables
WHERE ci.item_id = cr.item_id
AND ci.live_revision = cr.revision_id
AND (ci.content_type = 'ee_venue' OR ci.content_type = 'ee_service')
AND qa1.item_id = ci.item_id
AND qa1.item_id = qa2.item_id
AND adl.object_id_one = qa1.item_id
AND adl.object_id_two = pa.party_id
AND adl.relation_tag = 'item_group_rel'
AND (( 3959 * acos ( cos ( radians(:latitude) ) * cos( radians( CAST(pa.latitude AS NUMERIC)) ) * cos( radians( CAST(pa.longitude AS NUMERIC) ) - radians(:longitude) )+ sin ( radians(:latitude) )* sin( radians( CAST(pa.latitude AS NUMERIC) ) ) )) * 1.6) < :max_distance
AND ci.item_id IN ($item_ids)
AND qa2.category_id IN ($categories)
$where_clauses
AND [template::list::page_where_clause -name items -key qa1.item_id ]
[template::list::filter_where_clauses -and -name items]
GROUP BY qa1.item_id, qa2.score, cr.title, pa.latitude, pa.longitude, pa.delivery_address, com.category_id
ORDER BY qa2.score DESC, qa1.score DESC
" {
set thumbnail_url ""
set serv_category_name [lindex [category::get_names $serv_category "pt_BR"] 0]
#set tree_id [category_tree::get_id "EventosQA" "pt_BR"]
#set categories [category::get_mapped_categories -tree_id $tree_id $event_id]
# set category_names [category::get_names $categories "pt_BR"]
# ns_log Notice "NAMES $category_names"
# set category1_pretty [lindex $category_names 0]
# set category2_pretty [lindex $category_names 1]
}