21 lines
638 B
Ruby
21 lines
638 B
Ruby
class EmployeeShift
|
|
include SimplyStored::Couch
|
|
include ActiveModel::SerializerSupport
|
|
|
|
property :start_from
|
|
property :end_on
|
|
property :description
|
|
belongs_to :supplier
|
|
belongs_to :employee
|
|
|
|
view :relevants_view, type: :custom, map_function: %|function(doc){
|
|
if(doc.ruby_class == 'EmployeeShift' && doc.start_from && doc.end_on){
|
|
emit([doc.supplier_id, doc.end_on], 1)
|
|
}
|
|
}|, reduce_function: '_sum'
|
|
|
|
def self.for_supplier(supplier, relevant_from: 1.week.ago)
|
|
database.view relevants_view(startkey: [supplier.id, relevant_from], endkey: [supplier.id, {}], reduce: false, include_docs: true)
|
|
end
|
|
end
|