mobilart_models 1.2.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +37 -0
- data/app/models/bundle.rb +39 -0
- data/app/models/chosen_deck.rb +76 -0
- data/app/models/chosen_furniture.rb +114 -0
- data/app/models/chosen_item.rb +187 -0
- data/app/models/chosen_room.rb +114 -0
- data/app/models/commission.rb +58 -0
- data/app/models/deck.rb +25 -0
- data/app/models/furniture.rb +45 -0
- data/app/models/furniture_item.rb +20 -0
- data/app/models/item.rb +25 -0
- data/app/models/room.rb +22 -0
- data/app/models/timetable.rb +171 -0
- data/app/models/workflow.rb +173 -0
- data/config/initializers/mobilart_models_after_initialize.rb +7 -0
- data/config/locales/en.activerecord.yml +36 -0
- data/config/locales/en.yml +38 -0
- data/config/locales/it.activerecord.yml +157 -0
- data/config/locales/it.yml +33 -0
- data/config/routes.rb +2 -0
- data/db/migrate/20150825174853_create_items.rb +13 -0
- data/db/migrate/20150825175219_create_commissions.rb +14 -0
- data/db/migrate/20150825175836_create_decks.rb +13 -0
- data/db/migrate/20150825175853_create_rooms.rb +13 -0
- data/db/migrate/20150825175952_create_furnitures.rb +13 -0
- data/db/migrate/20150825180027_create_furniture_items.rb +10 -0
- data/db/migrate/20150825180510_create_bundles.rb +14 -0
- data/db/migrate/20150827084511_create_chosen_decks.rb +12 -0
- data/db/migrate/20150827084626_create_chosen_rooms.rb +12 -0
- data/db/migrate/20150827084745_create_chosen_furnitures.rb +12 -0
- data/db/migrate/20150827184845_create_chosen_items.rb +12 -0
- data/db/migrate/20150828180910_create_workflows.rb +13 -0
- data/db/migrate/20150903152839_create_timetables.rb +17 -0
- data/db/migrate/20151201145832_add_external_to_user.rb +5 -0
- data/db/migrate/20151202155259_add_external_to_workflow.rb +6 -0
- data/db/migrate/20151218145139_add_closed_to_commission.rb +5 -0
- data/db/migrate/20151221083612_add_checked_to_chosen_item.rb +5 -0
- data/db/migrate/20151221100829_add_bundle_to_chosen_item.rb +5 -0
- data/db/migrate/20151221100914_add_checked_in_bundle_to_chosen_item.rb +5 -0
- data/db/migrate/20160212155936_remove_chosen_furniture_from_timetable.rb +5 -0
- data/db/migrate/20160212160511_add_chosen_item_to_timetable.rb +5 -0
- data/db/migrate/20160331101901_add_code_to_user.rb +6 -0
- data/db/migrate/20160519144818_save_items_to_make_name_code_the_same.rb +7 -0
- data/db/migrate/20160622132452_add_barcode_to_chosen_item.rb +154 -0
- data/db/migrate/20160629135548_edit_index_for_furniture.rb +6 -0
- data/db/migrate/20170723195528_remove_barcode_from_chosen_items.rb +5 -0
- data/lib/mobilart_models.rb +14 -0
- data/lib/mobilart_models/engine.rb +12 -0
- data/lib/mobilart_models/version.rb +3 -0
- data/lib/mobilart_models_abilities.rb +53 -0
- data/lib/mobilart_roles.rb +6 -0
- data/lib/rails_admin_print_jobs_concern.rb +13 -0
- data/lib/rails_admin_printers_concern.rb +13 -0
- data/lib/rails_admin_user_main_concern.rb +11 -0
- data/lib/tasks/mobilart_models_tasks.rake +4 -0
- data/lib/user_model_concerns.rb +13 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +25 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/log/development.log +1 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +8 -0
- data/test/mobilart_models_test.rb +7 -0
- data/test/test_helper.rb +20 -0
- metadata +206 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: afddb939c222cffb43c0e95ee15e83a0cb052ae5
|
4
|
+
data.tar.gz: 846942720f0c6581e5ec71d6321ebb6bdfa2d0a1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 16f48274905c68059f6a1328dbe886588d174136e9807e66dcd1c135360cd54befbe7b9c5543491ff09d632137544e488713c8b8eb8d9a6f6d56870677562994
|
7
|
+
data.tar.gz: 81586ab334e3bca35870fd53344bd3bd327610940063c857c58cad1392e33eb22cbff3bc6a538a198f5abfb70d210a4718fadc91a4aa2a5de7399ba0d07d377b
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2016 Gabriele Tassoni
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'MobilartModels'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
18
|
+
load 'rails/tasks/engine.rake'
|
19
|
+
|
20
|
+
|
21
|
+
load 'rails/tasks/statistics.rake'
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
Bundler::GemHelper.install_tasks
|
26
|
+
|
27
|
+
require 'rake/testtask'
|
28
|
+
|
29
|
+
Rake::TestTask.new(:test) do |t|
|
30
|
+
t.libs << 'lib'
|
31
|
+
t.libs << 'test'
|
32
|
+
t.pattern = 'test/**/*_test.rb'
|
33
|
+
t.verbose = false
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
task default: :test
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class Bundle < ApplicationRecord
|
2
|
+
belongs_to :commission, inverse_of: :bundles
|
3
|
+
has_many :chosen_items, inverse_of: :bundle, dependent: :nullify
|
4
|
+
|
5
|
+
validates :commission, presence: true
|
6
|
+
validates :code, presence: true, uniqueness: { case_sensitive: false, scope: :commission_id }
|
7
|
+
|
8
|
+
# Items: I need a method to obtain all the items in the
|
9
|
+
# current selected Commission
|
10
|
+
def records_for_print
|
11
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
12
|
+
# what Mobilart wants
|
13
|
+
# chosen_item.name
|
14
|
+
# chosen_item.barcode
|
15
|
+
# chosen_item.timetables.last.status
|
16
|
+
# chosen_item.timetables.last.job_type
|
17
|
+
ChosenItem.joins(:bundle).where(bundles: {id: id}).distinct
|
18
|
+
end
|
19
|
+
|
20
|
+
def display_name
|
21
|
+
[commission.code, code].compact.join(" - ")
|
22
|
+
end
|
23
|
+
|
24
|
+
rails_admin do
|
25
|
+
navigation_label I18n.t("admin.tools.label")
|
26
|
+
navigation_icon 'fa fa-dropbox'
|
27
|
+
weight 9
|
28
|
+
|
29
|
+
configure :id do
|
30
|
+
visible false
|
31
|
+
end
|
32
|
+
configure :created_at do
|
33
|
+
visible false
|
34
|
+
end
|
35
|
+
configure :updated_at do
|
36
|
+
visible false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
class ChosenDeck < ApplicationRecord
|
2
|
+
belongs_to :deck, inverse_of: :chosen_decks
|
3
|
+
belongs_to :commission, inverse_of: :chosen_decks
|
4
|
+
|
5
|
+
has_many :chosen_rooms, inverse_of: :chosen_deck, dependent: :destroy
|
6
|
+
has_many :rooms, through: :chosen_rooms, inverse_of: :chosen_decks
|
7
|
+
accepts_nested_attributes_for :chosen_rooms, allow_destroy: true
|
8
|
+
|
9
|
+
validates :deck, presence: true
|
10
|
+
validates :commission, presence: true
|
11
|
+
|
12
|
+
before_create :increment_code
|
13
|
+
# Items: I need a method to obtain all the items in the
|
14
|
+
# current selected Commission
|
15
|
+
def records_for_print id
|
16
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
17
|
+
# what Mobilart wants
|
18
|
+
# chosen_item.name
|
19
|
+
# chosen_item.barcode
|
20
|
+
# chosen_item.timetables.last.status
|
21
|
+
# chosen_item.timetables.last.job_type
|
22
|
+
ChosenItem.joins(chosen_furniture: {chosen_room: :chosen_deck}).where(chosen_decks: {id: id}).distinct
|
23
|
+
end
|
24
|
+
|
25
|
+
def list_associated_items
|
26
|
+
true
|
27
|
+
end
|
28
|
+
|
29
|
+
default_scope {joins(:commission)}
|
30
|
+
|
31
|
+
amoeba do
|
32
|
+
enable
|
33
|
+
include_association :chosen_rooms
|
34
|
+
end
|
35
|
+
|
36
|
+
def display_name
|
37
|
+
"Ponte #{deck.name} della commessa #{commission.name} contenente #{chosen_rooms.count} stanze"
|
38
|
+
end
|
39
|
+
|
40
|
+
rails_admin do
|
41
|
+
navigation_label I18n.t(:operative_section)
|
42
|
+
navigation_icon 'fa fa-tasks'
|
43
|
+
parent Commission
|
44
|
+
weight 5
|
45
|
+
|
46
|
+
# list do
|
47
|
+
field :commission do
|
48
|
+
read_only true
|
49
|
+
end
|
50
|
+
field :deck do
|
51
|
+
read_only true
|
52
|
+
end
|
53
|
+
field :chosen_rooms
|
54
|
+
end
|
55
|
+
|
56
|
+
def readable_barcode
|
57
|
+
"#{commission.code}|#{deck.code}|#{code}"
|
58
|
+
end
|
59
|
+
|
60
|
+
def barcode
|
61
|
+
"#{commission.code}#{deck.code}#{code}"
|
62
|
+
end
|
63
|
+
|
64
|
+
def name
|
65
|
+
# "#{deck.name rescue nil} (#{readable_barcode rescue nil})"
|
66
|
+
deck.name rescue "Undefined"
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def increment_code
|
72
|
+
max_code = ChosenDeck.order("chosen_decks.code DESC").pluck(:code).compact.map(&:to_i).max.to_i
|
73
|
+
# Rails.logger.debug "MAX CODE IS:#{max_code} Adding 1: #{(max_code + 1)}"
|
74
|
+
self.code = (max_code + 1)
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
class ChosenFurniture < ApplicationRecord
|
2
|
+
belongs_to :chosen_room, inverse_of: :chosen_furnitures
|
3
|
+
belongs_to :furniture, inverse_of: :chosen_furnitures
|
4
|
+
|
5
|
+
has_many :chosen_items, inverse_of: :chosen_furniture, dependent: :destroy
|
6
|
+
has_many :furniture_items, through: :chosen_items, inverse_of: :chosen_furnitures
|
7
|
+
|
8
|
+
#has_many :timetables, dependent: :destroy, inverse_of: :chosen_furniture
|
9
|
+
|
10
|
+
validates :furniture, presence: true
|
11
|
+
validates :chosen_room, presence: true
|
12
|
+
# Whenever I choose a furniture for a room,
|
13
|
+
# I must track even the chosen items to add a code to them
|
14
|
+
before_save :link_to_items
|
15
|
+
before_create :increment_code
|
16
|
+
# Items: I need a method to obtain all the items in the
|
17
|
+
# current selected Commission
|
18
|
+
def records_for_print id
|
19
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
20
|
+
# what Mobilart wants
|
21
|
+
# chosen_item.name
|
22
|
+
# chosen_item.barcode
|
23
|
+
# chosen_item.timetables.last.status
|
24
|
+
# chosen_item.timetables.last.job_type
|
25
|
+
ChosenItem.joins(:chosen_furniture).where(chosen_furnitures: {id: id}).distinct
|
26
|
+
end
|
27
|
+
|
28
|
+
def list_associated_items
|
29
|
+
true
|
30
|
+
end
|
31
|
+
|
32
|
+
amoeba do
|
33
|
+
enable
|
34
|
+
exclude_association :chosen_items
|
35
|
+
exclude_association :furniture_items
|
36
|
+
end
|
37
|
+
|
38
|
+
def deck
|
39
|
+
chosen_room.chosen_deck.name rescue "-"
|
40
|
+
end
|
41
|
+
|
42
|
+
def commission
|
43
|
+
chosen_room.chosen_deck.commission.code rescue "-"
|
44
|
+
end
|
45
|
+
|
46
|
+
def display_name
|
47
|
+
"#{name} presente in #{[commission, deck, chosen_room.name].compact.join(" - ")} contenente #{furniture_items.count} particolari"
|
48
|
+
end
|
49
|
+
|
50
|
+
# Necessario per poter cercare nei filed associati
|
51
|
+
default_scope {joins(chosen_room: [:room, {chosen_deck: [:deck, :commission ]}])}
|
52
|
+
|
53
|
+
rails_admin do
|
54
|
+
navigation_label I18n.t(:operative_section)
|
55
|
+
navigation_icon 'fa fa-cubes'
|
56
|
+
parent Commission
|
57
|
+
weight 7
|
58
|
+
|
59
|
+
edit do
|
60
|
+
field :furniture
|
61
|
+
end
|
62
|
+
list do
|
63
|
+
field :commission do
|
64
|
+
searchable "commissions.code"
|
65
|
+
sortable "commissions.code"
|
66
|
+
read_only true
|
67
|
+
filterable true
|
68
|
+
end
|
69
|
+
field :deck do
|
70
|
+
searchable "decks.name"
|
71
|
+
sortable "decks.name"
|
72
|
+
read_only true
|
73
|
+
filterable true
|
74
|
+
end
|
75
|
+
field :chosen_room do
|
76
|
+
searchable "rooms.name"
|
77
|
+
sortable "rooms.name"
|
78
|
+
read_only true
|
79
|
+
filterable true
|
80
|
+
end
|
81
|
+
field :furniture do
|
82
|
+
searchable "furnitures.name"
|
83
|
+
sortable "furnitures.name"
|
84
|
+
filterable true
|
85
|
+
end
|
86
|
+
field :furniture_items
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def readable_barcode
|
91
|
+
"#{chosen_room.readable_barcode}|#{furniture.code}|#{code}"
|
92
|
+
end
|
93
|
+
|
94
|
+
def barcode
|
95
|
+
"#{chosen_room.barcode}#{furniture.code}#{code}"
|
96
|
+
end
|
97
|
+
|
98
|
+
def name
|
99
|
+
furniture.name rescue "-"
|
100
|
+
end
|
101
|
+
|
102
|
+
private
|
103
|
+
|
104
|
+
def link_to_items
|
105
|
+
self.furniture_items = self.furniture.furniture_items
|
106
|
+
end
|
107
|
+
|
108
|
+
def increment_code
|
109
|
+
# Cerco il numero più alto e incremento
|
110
|
+
max_code = ChosenFurniture.order("chosen_furnitures.code DESC").pluck(:code).compact.map(&:to_i).max.to_i
|
111
|
+
# Rails.logger.debug "MAX CODE IS:#{max_code} Adding 1: #{(max_code + 1)}"
|
112
|
+
self.code = (max_code + 1)
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,187 @@
|
|
1
|
+
class ChosenItem < ApplicationRecord
|
2
|
+
belongs_to :chosen_furniture, inverse_of: :chosen_items #, dependent: :destroy
|
3
|
+
belongs_to :furniture_item, inverse_of: :chosen_items
|
4
|
+
belongs_to :bundle, inverse_of: :chosen_items
|
5
|
+
|
6
|
+
has_many :timetables, dependent: :destroy, inverse_of: :chosen_item
|
7
|
+
has_many :workflows, inverse_of: :chosen_item, dependent: :destroy
|
8
|
+
|
9
|
+
before_create :increment_code
|
10
|
+
|
11
|
+
def self.barcode_concat
|
12
|
+
"concat(commissions.code,decks.code,chosen_decks.code,rooms.code,chosen_rooms.code,furnitures.code,chosen_furnitures.code,items.code,LPAD(chosen_items.code::text, 5, '0'))"
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.select_with_barcode
|
16
|
+
select "chosen_items.*, #{ChosenItem.barcode_concat} as barcode"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.barcode_concat_where barcode
|
20
|
+
where ["#{ChosenItem.barcode_concat} = ?", barcode]
|
21
|
+
end
|
22
|
+
# All the chosen_items must have the full chain of relations up to commission,
|
23
|
+
# Otherwise is invalid (and mustn't exist anyway)
|
24
|
+
# this gives me the ability to simply query for fields on related tables
|
25
|
+
default_scope {
|
26
|
+
joins({chosen_furniture: [:furniture, { chosen_room: [:room, {chosen_deck: [:deck, :commission]}]}], furniture_item: :item}).select_with_barcode
|
27
|
+
}
|
28
|
+
|
29
|
+
def records_for_print id
|
30
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
31
|
+
# what Mobilart wants
|
32
|
+
# chosen_item.name
|
33
|
+
# chosen_item.barcode
|
34
|
+
# chosen_item.timetables.last.status
|
35
|
+
# chosen_item.timetables.last.job_type
|
36
|
+
ChosenItem.where(chosen_items: {id: id}).distinct
|
37
|
+
end
|
38
|
+
|
39
|
+
def room
|
40
|
+
chosen_furniture.chosen_room.name rescue "-"
|
41
|
+
end
|
42
|
+
|
43
|
+
def deck
|
44
|
+
chosen_furniture.chosen_room.chosen_deck.name rescue "-"
|
45
|
+
end
|
46
|
+
|
47
|
+
def commission
|
48
|
+
chosen_furniture.chosen_room.chosen_deck.commission.code rescue "-"
|
49
|
+
end
|
50
|
+
|
51
|
+
def status
|
52
|
+
" -overridden by pretty_value- "
|
53
|
+
end
|
54
|
+
|
55
|
+
def user
|
56
|
+
workflows.last.user.email rescue "-"
|
57
|
+
end
|
58
|
+
|
59
|
+
def furniture
|
60
|
+
chosen_furniture.furniture.name rescue "-"
|
61
|
+
end
|
62
|
+
|
63
|
+
def item
|
64
|
+
furniture_item.item.name
|
65
|
+
end
|
66
|
+
|
67
|
+
def tiered_times
|
68
|
+
tt = self.timetables
|
69
|
+
t = (tt.sum(:hours)*60 + tt.sum(:minutes))*60
|
70
|
+
t.to_tiered_times true
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.filter_by_id
|
74
|
+
#Rails.logger.debug "QQQQQQQQQQQQQ: #{params.inspect}"
|
75
|
+
end
|
76
|
+
|
77
|
+
rails_admin do
|
78
|
+
navigation_label I18n.t(:operative_section)
|
79
|
+
parent Commission
|
80
|
+
weight 8
|
81
|
+
# TODO: mettere a true per i test, mettere a false in production
|
82
|
+
visible false
|
83
|
+
|
84
|
+
export do
|
85
|
+
field :barcode
|
86
|
+
field :commission
|
87
|
+
field :deck
|
88
|
+
field :room
|
89
|
+
field :furniture
|
90
|
+
field :item
|
91
|
+
field :status
|
92
|
+
field :user
|
93
|
+
end
|
94
|
+
|
95
|
+
list do
|
96
|
+
field :barcode do
|
97
|
+
sortable false
|
98
|
+
searchable false
|
99
|
+
read_only true
|
100
|
+
filterable false
|
101
|
+
end
|
102
|
+
|
103
|
+
field :commission do
|
104
|
+
#column_width 12
|
105
|
+
searchable "commissions.code"
|
106
|
+
read_only true
|
107
|
+
sortable "commissions.code"
|
108
|
+
filterable true
|
109
|
+
end
|
110
|
+
field :deck do
|
111
|
+
#column_width 12
|
112
|
+
searchable "decks.name"
|
113
|
+
sortable "decks.name"
|
114
|
+
read_only true
|
115
|
+
filterable true
|
116
|
+
end
|
117
|
+
field :room do
|
118
|
+
searchable "rooms.name"
|
119
|
+
sortable "rooms.name"
|
120
|
+
read_only true
|
121
|
+
filterable true
|
122
|
+
end
|
123
|
+
field :chosen_furniture do
|
124
|
+
searchable "furnitures.name"
|
125
|
+
sortable "furnitures.name"
|
126
|
+
read_only true
|
127
|
+
filterable true
|
128
|
+
end
|
129
|
+
field :furniture_item do
|
130
|
+
searchable "items.name"
|
131
|
+
sortable "items.name"
|
132
|
+
read_only true
|
133
|
+
filterable true
|
134
|
+
end
|
135
|
+
field :status do
|
136
|
+
pretty_value do
|
137
|
+
obj = bindings[:object]
|
138
|
+
wf = obj.workflows.last
|
139
|
+
status = []
|
140
|
+
status << (wf.stat rescue nil)
|
141
|
+
status << (wf.third_party.username rescue nil)
|
142
|
+
user = (wf.user.username rescue nil)
|
143
|
+
|
144
|
+
html = []
|
145
|
+
html << "<small><strong>#{obj.tiered_times}</strong></small>" unless obj.tiered_times.blank?
|
146
|
+
html << "<small>#{status.compact.join("/")}</small>" unless status.compact.blank?
|
147
|
+
html << "<small>#{user}</small>" unless user.blank?
|
148
|
+
|
149
|
+
html.join("<br/>").html_safe
|
150
|
+
end
|
151
|
+
end
|
152
|
+
# field :user do
|
153
|
+
# column_width 8
|
154
|
+
# end
|
155
|
+
# field :times
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def readable_barcode
|
160
|
+
"#{chosen_furniture.readable_barcode}|#{furniture_item.item.code}|#{code.rjust(5, '0')}"
|
161
|
+
end
|
162
|
+
|
163
|
+
# def barcode
|
164
|
+
# "#{chosen_furniture.barcode}#{furniture_item.item.code}#{code.rjust(5, '0')}"
|
165
|
+
# end
|
166
|
+
#
|
167
|
+
# def barcode=(value)
|
168
|
+
# end
|
169
|
+
|
170
|
+
def title
|
171
|
+
# "#{furniture_item.item.name rescue nil} (#{readable_barcode rescue nil})"
|
172
|
+
furniture_item.item.name rescue "Undefined"
|
173
|
+
end
|
174
|
+
|
175
|
+
def name
|
176
|
+
"#{chosen_furniture.chosen_room.chosen_deck.commission.name rescue nil}: #{chosen_furniture.name rescue nil} -> #{title}"
|
177
|
+
end
|
178
|
+
|
179
|
+
private
|
180
|
+
|
181
|
+
def increment_code
|
182
|
+
next_code = (ChosenItem.order("chosen_items.code DESC").pluck(:code).compact.map(&:to_i).max.to_i + 1).to_s
|
183
|
+
# Rails.logger.debug "MAX CODE IS:#{max_code} Adding 1: #{(max_code + 1)}"
|
184
|
+
# self.barcode = "#{chosen_furniture.barcode}#{furniture_item.item.code}#{next_code.rjust(5, '0')}"
|
185
|
+
self.code = next_code
|
186
|
+
end
|
187
|
+
end
|