Fix active order display in supplier side

This commit is contained in:
2013-03-10 18:24:09 +01:00
parent 5eac918255
commit 0979eda9be
11 changed files with 157 additions and 34 deletions
+21 -6
View File
@@ -15,25 +15,40 @@ class Order
view :active_for_supplier_view, type: :custom, map_function: %[function(doc){
if(doc.ruby_class == 'Order' && (doc.state == 'placed' || doc.state == 'active')){
emit(doc.supplier_id, 1);
emit([doc.supplier_id, doc.list_id], 1);
}
}], reduce_function: '_sum'
}], reduce_function: '_sum'
view :active_for_supplier_and_section_view, type: :custom, map_function: %[function(doc){
if(doc.ruby_class == 'Order' && (doc.state == 'placed' || doc.state == 'active')){
emit([doc.supplier_id, doc.section_id], 1);
}
}], reduce_function: '_sum'
view :by_supplier_id_and_id, key: [:supplier_id, :_id]
view :by_list_id, key: :list_id
}], reduce_function: '_sum'
#view :by_supplier_id_and_id, key: [:supplier_id, :_id]
# Return all currently active orders for a given supplier
def self.active_for_supplier(supplier_id)
database.view(active_for_supplier_view(key: supplier_id, reduce: false, include_docs: true))
database.view(active_for_supplier_view(startkey: [supplier_id], endkey: [supplier_id, {}], reduce: false, include_docs: true))
end
# Return all currently active orders for a given supplier and list
def self.active_for_supplier_and_list(supplier_id, list_id)
supplier_id = supplier_id.id if supplier_id.is_a?(SimplyStored::Couch)
list_id = list_id.id if list_id.is_a?(SimplyStored::Couch)
database.view(active_for_supplier_view(key: [supplier_id, list_id], reduce: false, include_docs: true))
end
def self.count_active_for_supplier_and_list(supplier_id, list_id)
supplier_id = supplier_id.id if supplier_id.is_a?(SimplyStored::Couch)
list_id = list_id.id if list_id.is_a?(SimplyStored::Couch)
database.view(active_for_supplier_view(key: [supplier_id, list_id], reduce: true, include_docs: false))
end
# Return all currently active orders for a given section
def self.active_for_supplier_and_section(supplier, section_id)
supplier_id = supplier.is_a?(SimplyStored::Couch) ? supplier.id : supplier
section_id = section_id.id if section_id.is_a?(SimplyStored::Couch)
database.view(active_for_supplier_and_section_view(key: [supplier_id, section_id], reduce: false, include_docs: true))
end