Skip to content

Commit a7dd7c3

Browse files
'#TDP - IW Change diagramm class
1 parent 7065255 commit a7dd7c3

File tree

15 files changed

+5035
-1076
lines changed

15 files changed

+5035
-1076
lines changed

IndividualWork/DIAGRAM/Diagram.mdj

Lines changed: 4902 additions & 1031 deletions
Large diffs are not rendered by default.

IndividualWork/DIAGRAM/Main.png

126 KB
Loading

IndividualWork/controller/controller.rb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,26 @@ def change_entity(num_tab)
3737
self.data_list = nil
3838
end
3939

40-
def refresh_data(k,n,filter_initials:nil,filter_phone:nil,filter_mail:nil)
40+
def refresh_data(k,n,filter_initials:nil,filter_phone:nil,filter_mail:nil,
41+
filter_color:nil,filter_model:nil,filter_mark:nil,filter_owner:nil)
4142
if(self.data_list==nil) then
4243
self.data_list = @entity_list.get_k_n_elements_list(k,n,data_list:self.data_list,
4344
filter_initials:filter_initials,
4445
filter_phone:filter_phone,
45-
filter_mail:filter_mail)
46+
filter_mail:filter_mail,
47+
filter_color:filter_color,
48+
filter_model:filter_model,
49+
filter_mark:filter_mark,
50+
filter_owner:filter_owner)
4651
else
4752
@entity_list.get_k_n_elements_list(k,n,data_list:self.data_list,
4853
filter_initials:filter_initials,
4954
filter_phone:filter_phone,
50-
filter_mail:filter_mail)
55+
filter_mail:filter_mail,
56+
filter_color:filter_color,
57+
filter_model:filter_model,
58+
filter_mark:filter_mark,
59+
filter_owner:filter_owner)
5160
end
5261
self.data_list.observer = self.view if self.data_list.observer == nil
5362
self.data_list.notify(n)

IndividualWork/logger/log_create.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,3 +242,5 @@ I, [2023-05-17T14:38:33.145637 #2073] INFO -- : Creating element with params {"
242242
I, [2023-05-18T20:40:47.094538 #52713] INFO -- : Creating element with params {"id_owner"=>"3", "model"=>"X6", "color"=>"white", "surname_owner"=>"Бирюков", "mark"=>"BMW"}
243243
I, [2023-05-18T20:42:13.112478 #52795] INFO -- : Creating element with params {"id_owner"=>"3", "model"=>"X6", "color"=>"white", "surname_owner"=>"Бирюков", "mark"=>"BMW"}
244244
I, [2023-05-18T21:22:35.953615 #54330] INFO -- : Creating element with params {"id_owner"=>"6", "model"=>"X6", "color"=>"white", "surname_owner"=>"Kocpit", "mark"=>"BMW"}
245+
I, [2023-05-18T21:56:46.069509 #56984] INFO -- : Creating element with params {"id_owner"=>"5", "model"=>"X6", "color"=>"black", "surname_owner"=>"Kolins", "mark"=>"BMW"}
246+
I, [2023-05-18T21:57:06.918367 #56984] INFO -- : Creating element with params {"id_owner"=>"8", "model"=>"GL-3", "color"=>"pink", "surname_owner"=>"Kolins", "mark"=>"Mersedes-Benz"}

IndividualWork/model_auto/auto_DB/auto_list_DB.rb

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,35 @@
11
require_relative File.dirname($0) + './auto.rb'
22
require_relative '../../model_entity/entity_DB/entity_list_DB.rb'
3-
require 'date'
3+
4+
require_relative '../../model_entity/Decorator/Auto_filter/mark_dec.rb'
5+
require_relative '../../model_entity/Decorator/Auto_filter/model_dec.rb'
6+
require_relative '../../model_entity/Decorator/Auto_filter/color_dec.rb'
7+
require_relative '../../model_entity/Decorator/Auto_filter/owner_dec.rb'
48

59
class Auto_list_DB < Entities_list_DB
610

711
def initialize()
8-
super()
12+
super(query_select:"Select Auto.id as id, Auto.owner_id, Auto.model, Auto.color, Model.mark, Owner.surname FROM Auto INNER JOIN Model ON Model.model = Auto.model INNER JOIN Owner ON Owner.id = Auto.owner_id WHERE ")
913
end
1014

1115
def get_element_by_id(id)
1216
auto = @dbcon.crud_by_db("Select * FROM Auto WHERE id = #{id}").to_a
1317
auto[0]
1418
end
1519

16-
def get_k_n_elements_list(k,n,data_list:nil,filter_initials:nil,filter_phone:nil,filter_mail:nil)
20+
def get_k_n_elements_list(k,n,data_list:nil,filter_initials:nil,filter_phone:nil,filter_mail:nil,filter_color:nil,filter_model:nil,filter_mark:nil,filter_owner:nil)
1721
offset = (k - 1) * n
1822
limit = n
1923

24+
query = Owner_decorator.new(filter_owner,
25+
Mark_decorator.new(filter_mark,
26+
Color_decorator.new(filter_color,
27+
Model_decorator.new(filter_model,
28+
Auto_list_DB.new())))).query_select
29+
query = query + " LIMIT #{limit} OFFSET #{offset};"
30+
2031
list_auto = []
21-
@dbcon.crud_by_db("Select * FROM Auto LIMIT #{limit} OFFSET #{offset};").to_a.each do |elem|
32+
@dbcon.crud_by_db(query).to_a.each do |elem|
2233
surname_owner = @dbcon.crud_by_db("Select surname FROM Owner WHERE id = #{elem["owner_id"]};").to_a
2334
mark = @dbcon.crud_by_db("Select mark FROM Model WHERE model = '#{elem["model"]}';").to_a
2435
auto = Auto.new(
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
require_relative File.dirname($0) + '/../decorator.rb'
2+
3+
class Color_decorator < Decorator
4+
5+
def initialize(filter,component)
6+
query = make_query(filter)
7+
super(component,component.query_select + query)
8+
end
9+
10+
def make_query(filter)
11+
filter = '' if filter == nil
12+
return " AND (color LIKE '%#{filter}%')"
13+
end
14+
end
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
require_relative File.dirname($0) + '/../decorator.rb'
2+
3+
class Mark_decorator < Decorator
4+
5+
def initialize(filter,component)
6+
query = make_query(filter)
7+
super(component,component.query_select + query)
8+
end
9+
10+
def make_query(filter)
11+
filter = '' if filter == nil
12+
return " AND (Model.mark LIKE '%#{filter}%')"
13+
end
14+
end
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
require_relative File.dirname($0) + '/../decorator.rb'
2+
3+
class Model_decorator < Decorator
4+
5+
def initialize(filter,component)
6+
query = make_query(filter)
7+
super(component,component.query_select + query)
8+
end
9+
10+
def make_query(filter)
11+
filter = '' if filter == nil
12+
return "(Auto.model LIKE '%#{filter}%')"
13+
end
14+
15+
end
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
require_relative File.dirname($0) + '/../decorator.rb'
2+
3+
class Owner_decorator < Decorator
4+
5+
def initialize(filter,component)
6+
query = make_query(filter)
7+
super(component,component.query_select + query)
8+
end
9+
10+
def make_query(filter)
11+
filter = '' if filter == nil
12+
return " AND (Owner.surname LIKE '%#{filter}%')"
13+
end
14+
end

IndividualWork/model_entity/entity_DB/entity_list_DB.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ def get_element_by_id(id)
1515
raise 'This method should be oveeriden and retun element'
1616
end
1717

18-
def get_k_n_elements_list(k,n,data_list:nil,filter_initials:nil,filter_phone:nil,filter_mail:nil)
18+
def get_k_n_elements_list(k,n,data_list:nil,filter_initials:nil,filter_phone:nil,filter_mail:nil,
19+
filter_color:nil,filter_model:nil,filter_mark:nil,filter_owner:nil)
1920
raise 'This method should be oveeriden and retun data_list_elements'
2021
end
2122

0 commit comments

Comments
 (0)