Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def applyNegativePeriodPreferences(shift: Seq[Seq[Schedule]], periodPreferences: Seq[NursePeriodPreference]) : Option[Seq[Seq[Schedule]]] = {
- val negative = periodPreferences.filter(p => p.factor < 0)
- val result = for(p <- negative) yield {
- val period = p.period
- if(period.equals("afternoon")) {
- val result = shift.last.exists(s => s.nurse.name.equals(p.nurse.name))
- //val result = shift.map(s => s.filter(n => n.nurse.name.equals(p.nurse.name)))
- result
- } else if(period.equals("morning")) {
- val result = shift.head.exists(s => s.nurse.name.equals(p.nurse.name))
- result
- } else None
- }
- if(result.contains(true)) None else Option(shift)
- }
- def applyPositivePeriodPreferences(shift: Seq[Seq[Schedule]], periodPreferences: Seq[NursePeriodPreference]) : Option[Seq[Seq[Schedule]]] = {
- val positive = periodPreferences.filter(p => p.factor > 0)
- val result = for(p <- positive) yield {
- val period = p.period
- if(period.equals("afternoon")) {
- // Check if nurse exists in afternoon
- val result = shift.last.exists(s => s.nurse.name.equals(p.nurse.name))
- //Check if nurse exists in morning
- val resMorning = shift.head.exists(s => s.nurse.name.equals(p.nurse.name))
- if(resMorning) false else true
- } else if(period.equals("morning")) {
- val result = shift.head.exists(s => s.nurse.name.equals(p.nurse.name))
- val resAfternoon = shift.last.exists(s => s.nurse.name.equals(p.nurse.name))
- if(resAfternoon) false else true
- } else None
- }
- if(result.contains(false)) None else Option(shift)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement