Class: Auth::Work::Minute
- Inherits:
-
Object
- Object
- Auth::Work::Minute
- Includes:
- Mongoid::Document
- Defined in:
- app/models/auth/work/minute.rb
Class Method Summary collapse
-
.get_affected_minutes(cycle_start_time, cycle_end_time, cycle_workers_assigned, cycle_entities_assigned) ⇒ Object
returns all minutes which have affected cycles , only containing the affected cycles.
Class Method Details
.get_affected_minutes(cycle_start_time, cycle_end_time, cycle_workers_assigned, cycle_entities_assigned) ⇒ Object
returns all minutes which have affected cycles , only containing the affected cycles.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'app/models/auth/work/minute.rb', line 8 def self.get_affected_minutes(cycle_start_time,cycle_end_time,cycle_workers_assigned,cycle_entities_assigned) response = Auth::Work::Minute.collection.aggregate([ { "$match" => { "cycles" => { "$elemMatch" => { "$and" => [ { "$or" => [ { "start_time" => { "$gte" => cycle_start_time, "$lte" => cycle_end_time } }, { "end_time" => { "$gte" => cycle_start_time, "$lte" => cycle_end_time } }, { "$and" => [ { "start_time" => { "$lte" => cycle_start_time } }, { "end_time" => { "$gte" => cycle_end_time } } ] } ] }, { "$or" => [ { "workers_available" => { "$in" => cycle_workers_assigned } }, { "entities_available" => { "$in" => cycle_entities_assigned } } ] } ] } } } }, { "$unwind" => "cycles", "includeArrayIndex" => "cycle_index" }, { "$match" => { "$and" => [ { "$or" => [ { "cycles.start_time" => { "$gte" => cycle_start_time, "$lte" => cycle_end_time } }, { "cycles.end_time" => { "$gte" => cycle_start_time, "$lte" => cycle_end_time } }, { "$and" => [ { "cycles.start_time" => { "$lte" => cycle_start_time } }, { "cycles.end_time" => { "$gte" => cycle_end_time } } ] } ] }, { "$or" => [ { "cycles.workers_available" => { "$in" => cycle_workers_assigned } }, { "cycles.entities_available" => { "$in" => cycle_entities_assigned } } ] } ] } }, { "$group" => { "_id" => "$_id", "cycles" => { "$push" => "$cycles" } } } ]) response end |