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
|
# File 'lib/tmis/interface/forms/expand_changes.rb', line 26
def on_buttonBox_accepted
from_monday = Date.parse(@ui.fromDateDateEdit.date.toString(Qt::ISODate)).monday
to_date = Date.parse(@ui.toDateDateEdit.date.toString(Qt::ISODate))
week_studies = Study.where(date: from_monday..(from_monday + 6))
Database.instance.transaction do
case @ui.evennessComboBox.currentIndex
when 0
if from_monday == to_date
elsif to_date > from_monday
dates = (from_monday + 7).upto(to_date).select{|date| (1..6).include? date.cwday }.to_a
Study.where(date: (from_monday + 7)..to_date).each{|study| study.destroy }
week_studies.each do |study|
dates.each do |date|
if study.date.cwday == date.cwday
study = study.dup
study.date = date
study.save
end
end
end
elsif to_date < from_monday
dates = (from_monday - 1).downto(to_date).select{|date| (1..6).include? date.cwday }.to_a
Study.where(date: to_date...from_monday).each{|study| study.destroy }
week_studies.each do |study|
dates.each do |date|
if study.date.cwday == date.cwday
study = study.dup
study.date = date
study.save
end
end
end
end
when 1
if from_monday == to_date
elsif to_date > from_monday
dates = (from_monday + 7).upto(to_date).select{|date| date.cweek.even? && ((1..6).include? date.cwday) }.to_a
Study.where(date: (from_monday + 7)..to_date).each{|study| study.destroy }
week_studies.each do |study|
dates.each do |date|
if study.date.cwday == date.cwday
study = study.dup
study.date = date
study.save
end
end
end
elsif to_date < from_monday
dates = (from_monday - 1).downto(to_date).select{|date| date.cweek.even? && ((1..6).include? date.cwday) }.to_a
Study.where(date: to_date...from_monday).each{|study| study.destroy }
week_studies.each do |study|
dates.each do |date|
if study.date.cwday == date.cwday
study = study.dup
study.date = date
study.save
end
end
end
end
when 2
if from_monday == to_date
elsif to_date > from_monday
dates = (from_monday + 7).upto(to_date).select{|date| date.cweek.odd? && ((1..6).include? date.cwday) }.to_a
Study.where(date: (from_monday + 7)..to_date).each{|study| study.destroy }
week_studies.each do |study|
dates.each do |date|
if study.date.cwday == date.cwday
study = study.dup
study.date = date
study.save
end
end
end
elsif to_date < from_monday
dates = (from_monday - 1).downto(to_date).select{|date| date.cweek.odd? && ((1..6).include? date.cwday) }.to_a
Study.where(date: to_date...from_monday).each{|study| study.destroy }
week_studies.each do |study|
dates.each do |date|
if study.date.cwday == date.cwday
study = study.dup
study.date = date
study.save
end
end
end
end
else
end
end
end
|