ecom_core 1.3.9 → 1.3.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/ecom/core/users_controller.rb +5 -0
  3. data/app/models/ecom/core/crew.rb +1 -1
  4. data/app/models/ecom/core/crew_contract.rb +11 -1
  5. data/app/models/ecom/core/crew_time.rb +6 -6
  6. data/app/models/ecom/core/maintenance_status.rb +5 -0
  7. data/app/models/ecom/core/measurement_unit.rb +1 -1
  8. data/app/models/ecom/core/site_crew.rb +10 -2
  9. data/app/models/ecom/core/task_attachment.rb +1 -2
  10. data/app/models/ecom/core/work_order.rb +1 -0
  11. data/app/models/ecom/core/work_package.rb +1 -0
  12. data/app/serializers/ecom/core/user_lookup_serializer.rb +11 -0
  13. data/app/services/ecom/core/crew_contract_transaction_service.rb +14 -3
  14. data/config/routes.rb +1 -0
  15. data/db/migrate/20191207103731_create_ecom_core_work_orders.rb +4 -0
  16. data/db/migrate/20200813165553_create_ecom_core_measurement_units.rb +1 -1
  17. data/db/migrate/20201013072924_create_ecom_core_crew_contract_transactions.rb +1 -1
  18. data/db/migrate/20210417095657_rename_photo_fields.rb +6 -0
  19. data/db/migrate/20210417120215_create_active_storage_tables.active_storage.rb +36 -0
  20. data/lib/ecom/core/version.rb +1 -1
  21. data/lib/ecom_core.rb +0 -2
  22. data/spec/factories/ecom/core/crews.rb +1 -1
  23. data/spec/factories/ecom/core/measurement_units.rb +1 -1
  24. data/spec/factories/ecom/core/task_attachments.rb +0 -1
  25. data/spec/factories/ecom/core/work_orders.rb +1 -0
  26. metadata +8 -87
  27. data/app/models/ecom/core/unit_of_measure.rb +0 -8
  28. data/app/uploaders/ecom/core/photo_uploader.rb +0 -30
  29. data/app/uploaders/ecom/core/task_attachment_uploader.rb +0 -11
  30. data/config/initializers/carrierwave.rb +0 -8
  31. data/db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb +0 -11
  32. data/spec/factories/ecom/core/unit_of_measures.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93617ca2cba869a455385832706b991a6e206c6bafac294033a4b3809fb9e686
4
- data.tar.gz: a6f5092c66cd10be3f4620cf06dd423acbd84152351e5e99822fb5111f9ba541
3
+ metadata.gz: 6ab0c6a8f72737d10832fea25871db88c0bf73fb77d64ff9cb0daff2b17e1db4
4
+ data.tar.gz: 66794ac216ecde16a14605908bb6aa1d1122f4da9afc2492ff706cf7990f89e9
5
5
  SHA512:
6
- metadata.gz: fdcfcacdc4a155932db91f7e3e334fc1b7b32e66e9855bb326459f9f2dd58898e80d609213fb9064588597f5dc83366cc22e51904061ac2a9cdd408b9f032567
7
- data.tar.gz: e364a949d017317191bb870e53ac40b891970486dbd629fd85684ed949f27f3738f2c0634b5886f574c2d734b65beafcc2880604d01fcf2f8ab950259cab1ad9
6
+ metadata.gz: d105dfc24a2258093e5ad7b69e67c85ce9ba9d7210f39d5b7cd380b9a44450a0f56de7f11879084975ef1049ca4fdb2fc2d6f85fe89c235211cf31fab1636e3b
7
+ data.tar.gz: d6152ee67ea533f0ad926843502d5b25d7f9429cffac6a982db9e126dd09f17c9118ee93167cccf15b84304726c84473a89174a4857c7e5e1b79baa9ac04506e
@@ -7,6 +7,11 @@ module Ecom
7
7
  render json: User.all
8
8
  end
9
9
 
10
+ def lookup
11
+ data = ActiveModelSerializers::SerializableResource.new(User.all, each_serializer: UserLookupSerializer)
12
+ render json: { success: true, data: data }
13
+ end
14
+
10
15
  def active
11
16
  render json: User.active
12
17
  end
@@ -1,7 +1,6 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class Crew < ApplicationRecord
4
- mount_base64_uploader :photo, PhotoUploader
5
4
  PERMANENT = 'Permanent'.freeze
6
5
  SUPERVISOR = 'Supervisor'.freeze
7
6
  TEMPORARY = 'Temporary'.freeze
@@ -13,6 +12,7 @@ module Ecom
13
12
  after_save :set_employee_id
14
13
 
15
14
  belongs_to :crew_type
15
+ has_one_attached :photo
16
16
 
17
17
  validates :name, :address, :qualification, :employment, :wage, :guarantor_name, :guarantor_phone, presence: true
18
18
  validates :employment, inclusion: EMPLOYMENT_TYPES
@@ -5,6 +5,7 @@ module Ecom
5
5
 
6
6
  belongs_to :crew
7
7
  belongs_to :crew_type
8
+ has_many :crew_contract_transactions
8
9
 
9
10
  validates :status, :contract_no, :from, :to, :place_of_work, :probation_period,
10
11
  :contract_type, :wage, :wage_in_words, :crew_type_id, :crew_type, presence: true
@@ -14,10 +15,19 @@ module Ecom
14
15
  validates :wage, presence: true, numericality: { greater_than: 0 }
15
16
 
16
17
  validates_uniqueness_of :crew_id,
17
- if: -> { status == 'in_effect' },
18
+ scope: :status,
19
+ if: :contract_in_effect_exists?,
18
20
  message: 'There can only be one contract' \
19
21
  ' with status `In effect` for a given crew at a time'
20
22
 
23
+ def contract_in_effect_exists?
24
+ contracts_in_effect = Ecom::Core::CrewContract.where(crew_id: crew_id, status: 'in_effect')
25
+
26
+ return true unless contracts_in_effect.empty?
27
+
28
+ false
29
+ end
30
+
21
31
  def validate_date_range
22
32
  return unless from && to
23
33
 
@@ -13,7 +13,7 @@ module Ecom
13
13
 
14
14
  validates :checkin_time, presence: true, if: :checkout_time
15
15
  validate :time_range_validation, :total_time_validation
16
- validates :hours, presence: true, numericality: { greater_than_or_equal_to: 0 }
16
+ validates :hours, numericality: { greater_than_or_equal_to: 0 }, allow_nil: true
17
17
 
18
18
  scope :by_attendance, lambda { |id|
19
19
  joins(:attendance_sheet_entry).where(ecom_core_attendance_sheet_entries: { attendance_sheet_id: id })
@@ -32,11 +32,8 @@ module Ecom
32
32
  def total_time_validation
33
33
  return if checkout_time.nil? || checkin_time.nil?
34
34
 
35
- if new_record? & !persisted?
36
- if attendance_sheet_entry.total_hours + compute_hours > 8
37
- errors.add(:attendance_sheet_entry, 'has more than 8 hours')
38
- end
39
- elsif attendance_sheet_entry.total_hours + compute_hours - computed_hour > 8
35
+ if new_record? & !persisted? & (attendance_sheet_entry.total_hours + compute_hours > 8) ||
36
+ (attendance_sheet_entry.total_hours + compute_hours - computed_hour > 8)
40
37
  errors.add(:attendance_sheet_entry, 'has more than 8 hours')
41
38
  end
42
39
  end
@@ -119,6 +116,9 @@ module Ecom
119
116
  # the the currently presisted checkin_time and checkout_time
120
117
  def computed_hour
121
118
  # Reparse time to avoid errors caused by date differences
119
+
120
+ return 0 if checkin_time_was.nil? || checkout_time_was.nil?
121
+
122
122
  range = define_range
123
123
  start = Time.zone.parse(checkin_time_was.strftime('%I:%M%p'))
124
124
  finish = Time.zone.parse(checkout_time_was.strftime('%I:%M%p'))
@@ -1,6 +1,11 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class MaintenanceStatus < Lookup
4
+ EQUIPMENT_NOT_RECEIVED = 'Equipment not received'.freeze
5
+ RECEIVED_EQUIPMENT = 'Received equipment'.freeze
6
+ IN_PROGRESS = 'In progress'.freeze
7
+ WAITING_FOR_PARTS = 'Waiting for parts'.freeze
8
+ MAINTENANCE_COMPLETED = 'Maintenance completed'.freeze
4
9
  end
5
10
  end
6
11
  end
@@ -19,7 +19,7 @@ module Ecom
19
19
 
20
20
  PHYSICAL_QUANTITIES = [LENGTH, MASS, TIME, CURRENT, TEMPRATURE, AREA, VOLUME, ENERGY, DENSITY].freeze
21
21
 
22
- validates :name, :abbrivation, :physical_quantity,
22
+ validates :name, :abbreviation, :physical_quantity,
23
23
  :conversion_factor, :system_of_measurement, presence: true
24
24
 
25
25
  validates :is_si_unit, inclusion: { in: [true, false] }
@@ -13,8 +13,8 @@ module Ecom
13
13
  validates :crew_id, :crew, :site_id, :site, :start_date, :site_crew_type, :status, presence: true
14
14
 
15
15
  validates_uniqueness_of :site_id,
16
- scope: :crew_id,
17
- if: -> { status == 'Active' },
16
+ scope: %i[crew_id status],
17
+ if: :active_site_crew_exists?,
18
18
  message: 'There can only be one record with status `Active` for a given site and crew'
19
19
 
20
20
  validates :site_crew_type, inclusion: SITE_CREW_TYPES
@@ -22,6 +22,14 @@ module Ecom
22
22
 
23
23
  belongs_to :crew
24
24
  belongs_to :site
25
+
26
+ def active_site_crew_exists?
27
+ active_site_crew = Ecom::Core::SiteCrew.where(site_id: site_id, crew_id: crew_id, status: ACTIVE)
28
+
29
+ return true if !active_site_crew.count.zero? && status == ACTIVE
30
+
31
+ false
32
+ end
25
33
  end
26
34
  end
27
35
  end
@@ -1,9 +1,8 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class TaskAttachment < ApplicationRecord
4
- mount_base64_uploader :file, TaskAttachmentUploader
5
-
6
4
  belongs_to :task
5
+ has_one_attached :file
7
6
 
8
7
  validates :title, presence: true
9
8
  end
@@ -14,6 +14,7 @@ module Ecom
14
14
 
15
15
  validates :status, presence: true, inclusion: STATUSES
16
16
 
17
+ belongs_to :work_package
17
18
  belongs_to :assigned_to, class_name: 'Ecom::Core::Crew'
18
19
  belongs_to :generated_by, class_name: 'Ecom::Core::User'
19
20
  has_many :tasks
@@ -10,6 +10,7 @@ module Ecom
10
10
  validates :budget, numericality: true, unless: proc { budget.nil? }
11
11
 
12
12
  has_many :tasks
13
+ has_many :work_orders
13
14
  end
14
15
  end
15
16
  end
@@ -0,0 +1,11 @@
1
+ module Ecom
2
+ module Core
3
+ class UserLookupSerializer < ActiveModel::Serializer
4
+ attributes :id, :name
5
+
6
+ def name
7
+ "#{object.first_name} #{object.last_name}"
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,25 +1,28 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class CrewContractTransactionService
4
- def execute(transaction_type, crew_contract)
4
+ def execute(crew_contract_transaction, crew_contract)
5
5
  Ecom::Core::CrewContractTransaction.transaction do
6
- case transaction_type
6
+ case crew_contract_transaction.transaction_type
7
7
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_CREW_TYPE
8
8
 
9
9
  create_new_id_card(crew_contract.crew, crew_contract.to)
10
10
  # update crew type
11
11
  crew = crew_contract.crew
12
12
  crew.update(crew_type_id: crew_contract.crew_type_id)
13
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
13
14
 
14
15
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_PLACE_OF_WORK
15
16
 
16
17
  create_new_id_card(crew_contract.crew, crew_contract.to)
18
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
17
19
 
18
20
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_WAGE
19
21
 
20
22
  crew = crew_contract.crew
21
23
  # update wage
22
24
  crew.update(wage: crew_contract.wage, wage_in_words: crew_contract.wage_in_words)
25
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
23
26
 
24
27
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_VALIDITY
25
28
 
@@ -27,18 +30,22 @@ module Ecom
27
30
  create_new_id_card(crew_contract.crew, crew_contract.to)
28
31
  make_crew_active(crew_contract.crew)
29
32
  activate_contract(crew_contract)
33
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
30
34
 
31
35
  when Ecom::Core::CrewContractTransaction::TXN_TERMINATE_CONTRACT
32
36
 
33
37
  # make crew inactive
34
38
  make_crew_inactive(crew_contract.crew)
35
39
 
36
- # make ID card invalid
40
+ # make ID card and gate pass invalid
37
41
  invalidate_id_card(crew_contract.crew)
42
+ invalidate_gate_pass(crew_contract.crew)
38
43
 
39
44
  # make the contract void
40
45
  deactivate_contract(crew_contract)
41
46
 
47
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
48
+
42
49
  end
43
50
  end
44
51
  end
@@ -84,6 +91,10 @@ module Ecom
84
91
  current_id_card = Ecom::Core::CrewIdCard.where(crew_id: crew.id).last
85
92
  current_id_card.update(status: 'Invalid')
86
93
  end
94
+
95
+ def invalidate_gate_pass(crew)
96
+ Ecom::Core::SiteCrew.where(crew_id: crew.id).update(status: Ecom::Core::SiteCrew::INACTIVE)
97
+ end
87
98
  end
88
99
  end
89
100
  end
data/config/routes.rb CHANGED
@@ -6,6 +6,7 @@ Ecom::Core::Engine.routes.draw do
6
6
  resources :menus, only: %i[index]
7
7
  resources :users, only: %i[index create update]
8
8
  get '/users/active', controller: :users, action: :active
9
+ get '/users/lookup', controller: :users, action: :lookup
9
10
 
10
11
 
11
12
  resources :crew_types
@@ -3,6 +3,10 @@ class CreateEcomCoreWorkOrders < ActiveRecord::Migration[6.0]
3
3
  create_table :ecom_core_work_orders do |t|
4
4
  t.string :name
5
5
  t.string :reference_number
6
+ t.references :work_package,
7
+ null: false,
8
+ index: { name: 'wo_on_wp_indx' },
9
+ foreign_key: { to_table: :ecom_core_work_packages }
6
10
  t.references :assigned_to,
7
11
  null: false,
8
12
  index: { name: 'wo_on_at_indx' },
@@ -2,7 +2,7 @@ class CreateEcomCoreMeasurementUnits < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :ecom_core_measurement_units do |t|
4
4
  t.string :name, null: false
5
- t.string :abbrivation, null: false
5
+ t.string :abbreviation, null: false
6
6
  t.string :physical_quantity, null: false
7
7
  t.boolean :is_si_unit, null: false, default: false
8
8
  t.float :conversion_factor, null: false
@@ -3,7 +3,7 @@ class CreateEcomCoreCrewContractTransactions < ActiveRecord::Migration[6.0]
3
3
  create_table :ecom_core_crew_contract_transactions do |t|
4
4
  t.string :transaction_type, null: false
5
5
  t.string :status, null: false, default: 'Pending'
6
- t.datetime :effective_date, null: false
6
+ t.date :effective_date, null: false
7
7
 
8
8
  t.references :crew_contract,
9
9
  null: false,
@@ -0,0 +1,6 @@
1
+ class RenamePhotoFields < ActiveRecord::Migration[6.1]
2
+ def change
3
+ rename_column :ecom_core_crews, :photo, :photo_url
4
+ rename_column :ecom_core_task_attachments, :file, :file_url
5
+ end
6
+ end
@@ -0,0 +1,36 @@
1
+ # This migration comes from active_storage (originally 20170806125915)
2
+ class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
3
+ def change
4
+ create_table :active_storage_blobs do |t|
5
+ t.string :key, null: false
6
+ t.string :filename, null: false
7
+ t.string :content_type
8
+ t.text :metadata
9
+ t.string :service_name, null: false
10
+ t.bigint :byte_size, null: false
11
+ t.string :checksum, null: false
12
+ t.datetime :created_at, null: false
13
+
14
+ t.index [ :key ], unique: true
15
+ end
16
+
17
+ create_table :active_storage_attachments do |t|
18
+ t.string :name, null: false
19
+ t.references :record, null: false, polymorphic: true, index: false
20
+ t.references :blob, null: false
21
+
22
+ t.datetime :created_at, null: false
23
+
24
+ t.index [ :record_type, :record_id, :name, :blob_id ], name: "index_active_storage_attachments_uniqueness", unique: true
25
+ t.foreign_key :active_storage_blobs, column: :blob_id
26
+ end
27
+
28
+ create_table :active_storage_variant_records do |t|
29
+ t.belongs_to :blob, null: false, index: false
30
+ t.string :variation_digest, null: false
31
+
32
+ t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true
33
+ t.foreign_key :active_storage_blobs, column: :blob_id
34
+ end
35
+ end
36
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.3.9'.freeze
3
+ VERSION = '1.3.14'.freeze
4
4
  end
5
5
  end
data/lib/ecom_core.rb CHANGED
@@ -3,5 +3,3 @@ require 'ecom/core/engine'
3
3
  require 'ancestry'
4
4
  require 'aasm'
5
5
  require 'active_model_serializers'
6
- require 'carrierwave'
7
- require 'carrierwave/base64'
@@ -10,7 +10,7 @@ FactoryBot.define do
10
10
  wage_in_words { FFaker::Name.name }
11
11
  employment_date { Date.today - 1 }
12
12
  sub_contracted { false }
13
- photo { FFaker::Name.name }
13
+ photo_url { FFaker::Name.name }
14
14
  guarantor_name { FFaker::Name.name }
15
15
  guarantor_phone { FFaker::Name.name }
16
16
  active { true }
@@ -1,7 +1,7 @@
1
1
  FactoryBot.define do
2
2
  factory :measurement_unit, class: Ecom::Core::MeasurementUnit do
3
3
  name { 'Meter' }
4
- abbrivation { 'm' }
4
+ abbreviation { 'm' }
5
5
  physical_quantity { Ecom::Core::MeasurementUnit::LENGTH }
6
6
  is_si_unit { true }
7
7
  conversion_factor { 1 }
@@ -2,7 +2,6 @@ FactoryBot.define do
2
2
  factory :task_attachment, class: Ecom::Core::TaskAttachment do
3
3
  title { FFaker::Name.name }
4
4
  description { FFaker::Name.name }
5
- file { FFaker::Name.name }
6
5
  association :task
7
6
  end
8
7
  end
@@ -1,6 +1,7 @@
1
1
  FactoryBot.define do
2
2
  factory :work_order, class: Ecom::Core::WorkOrder do
3
3
  name { FFaker::Name.unique.name }
4
+ association :work_package
4
5
  association :assigned_to, factory: :crew
5
6
  association :generated_by, factory: :user
6
7
  start_date { (Time.now + 1.day).to_s }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecom_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.9
4
+ version: 1.3.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-02 00:00:00.000000000 Z
11
+ date: 2021-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -38,26 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.10.0
41
- - !ruby/object:Gem::Dependency
42
- name: after_commit_everywhere
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.1'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 0.1.5
51
- type: :runtime
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: '0.1'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 0.1.5
61
41
  - !ruby/object:Gem::Dependency
62
42
  name: ancestry
63
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,34 +66,6 @@ dependencies:
86
66
  - - ">="
87
67
  - !ruby/object:Gem::Version
88
68
  version: '0'
89
- - !ruby/object:Gem::Dependency
90
- name: carrierwave
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :runtime
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: carrierwave-base64
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :runtime
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
69
  - !ruby/object:Gem::Dependency
118
70
  name: jwt
119
71
  requirement: !ruby/object:Gem::Requirement
@@ -134,42 +86,14 @@ dependencies:
134
86
  requirements:
135
87
  - - "~>"
136
88
  - !ruby/object:Gem::Version
137
- version: 6.1.1
138
- type: :runtime
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: 6.1.1
145
- - !ruby/object:Gem::Dependency
146
- name: json-schema
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- type: :runtime
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- - !ruby/object:Gem::Dependency
160
- name: fog-google
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: 1.12.0
89
+ version: 6.1.3
166
90
  type: :runtime
167
91
  prerelease: false
168
92
  version_requirements: !ruby/object:Gem::Requirement
169
93
  requirements:
170
94
  - - "~>"
171
95
  - !ruby/object:Gem::Version
172
- version: 1.12.0
96
+ version: 6.1.3
173
97
  - !ruby/object:Gem::Dependency
174
98
  name: factory_bot_rails
175
99
  requirement: !ruby/object:Gem::Requirement
@@ -360,7 +284,6 @@ files:
360
284
  - app/models/ecom/core/task_template_inspection_checklist.rb
361
285
  - app/models/ecom/core/task_template_type.rb
362
286
  - app/models/ecom/core/unit_cost.rb
363
- - app/models/ecom/core/unit_of_measure.rb
364
287
  - app/models/ecom/core/user.rb
365
288
  - app/models/ecom/core/user_role.rb
366
289
  - app/models/ecom/core/work_item_resource_requirement_template.rb
@@ -372,6 +295,7 @@ files:
372
295
  - app/serializers/ecom/core/lookup_serializer.rb
373
296
  - app/serializers/ecom/core/resource_type_serializer.rb
374
297
  - app/serializers/ecom/core/unit_cost_serializer.rb
298
+ - app/serializers/ecom/core/user_lookup_serializer.rb
375
299
  - app/serializers/ecom/core/user_role_serializer.rb
376
300
  - app/serializers/ecom/core/user_serializer.rb
377
301
  - app/services/ecom/core/crew_contract_transaction_service.rb
@@ -379,16 +303,12 @@ files:
379
303
  - app/services/ecom/core/menu_service.rb
380
304
  - app/services/ecom/core/site_crew_service.rb
381
305
  - app/services/ecom/core/token_auth_service.rb
382
- - app/uploaders/ecom/core/photo_uploader.rb
383
- - app/uploaders/ecom/core/task_attachment_uploader.rb
384
306
  - app/validators/ecom/core/date_range_validator.rb
385
307
  - config/database.ci.yml
386
- - config/initializers/carrierwave.rb
387
308
  - config/routes.rb
388
309
  - db/migrate/20190101085530_create_ecom_core_companies.rb
389
310
  - db/migrate/20190101112620_create_ecom_core_lookups.rb
390
311
  - db/migrate/20190101112625_create_ecom_core_overtime_types.rb
391
- - db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb
392
312
  - db/migrate/20191119010518_create_ecom_core_task_template_types.rb
393
313
  - db/migrate/20191119012030_create_ecom_core_task_templates.rb
394
314
  - db/migrate/20191119013236_create_ecom_core_work_product_templates.rb
@@ -462,6 +382,8 @@ files:
462
382
  - db/migrate/20201125191158_create_ecom_core_work_item_resource_requirement_templates.rb
463
383
  - db/migrate/20201126191334_create_ecom_core_resource_requisitions.rb
464
384
  - db/migrate/20201126191349_create_ecom_core_resource_requisition_items.rb
385
+ - db/migrate/20210417095657_rename_photo_fields.rb
386
+ - db/migrate/20210417120215_create_active_storage_tables.active_storage.rb
465
387
  - lib/ecom/core.rb
466
388
  - lib/ecom/core/engine.rb
467
389
  - lib/ecom/core/version.rb
@@ -545,7 +467,6 @@ files:
545
467
  - spec/factories/ecom/core/task_templates.rb
546
468
  - spec/factories/ecom/core/tasks.rb
547
469
  - spec/factories/ecom/core/unit_costs.rb
548
- - spec/factories/ecom/core/unit_of_measures.rb
549
470
  - spec/factories/ecom/core/user_roles.rb
550
471
  - spec/factories/ecom/core/users.rb
551
472
  - spec/factories/ecom/core/work_item_resource_requirement_templates.rb
@@ -572,7 +493,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
572
493
  - !ruby/object:Gem::Version
573
494
  version: '0'
574
495
  requirements: []
575
- rubygems_version: 3.1.4
496
+ rubygems_version: 3.2.15
576
497
  signing_key:
577
498
  specification_version: 4
578
499
  summary: Core engine for construction management application.
@@ -1,8 +0,0 @@
1
- module Ecom
2
- module Core
3
- class UnitOfMeasure < ApplicationRecord
4
- validates :code, :name, presence: true
5
- validates :code, uniqueness: true
6
- end
7
- end
8
- end
@@ -1,30 +0,0 @@
1
- module Ecom
2
- module Core
3
- class PhotoUploader < CarrierWave::Uploader::Base
4
- if Rails.env.production?
5
- storage :fog
6
- else
7
- storage :file
8
- end
9
-
10
- def store_dir
11
- "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
12
- end
13
-
14
- def extension_whitelist
15
- %w[jpg jpeg gif png]
16
- end
17
-
18
- def filename
19
- "#{secure_token}.#{file.extension}" if original_filename.present?
20
- end
21
-
22
- protected
23
-
24
- def secure_token
25
- var = :"@#{mounted_as}_secure_token"
26
- model.instance_variable_get(var) || model.instance_variable_set(var, SecureRandom.uuid)
27
- end
28
- end
29
- end
30
- end
@@ -1,11 +0,0 @@
1
- module Ecom
2
- module Core
3
- class TaskAttachmentUploader < CarrierWave::Uploader::Base
4
- storage :file
5
-
6
- def store_dir
7
- "#{ENV.fetch('UPLOAD_PREFIX')}uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
8
- end
9
- end
10
- end
11
- end
@@ -1,8 +0,0 @@
1
- CarrierWave.configure do |config|
2
- config.fog_credentials = {
3
- provider: 'Google',
4
- google_storage_access_key_id: ENV["GOOGLE_STORAGE_ACCESS_KEY"],
5
- google_storage_secret_access_key: ENV["GOOGLE_STORAGE_SECRETE_KEY"]
6
- }
7
- config.fog_directory = ENV["GOOGLE_STORAGE_BUCKET_NAME"]
8
- end
@@ -1,11 +0,0 @@
1
- class CreateEcomCoreUnitOfMeasures < ActiveRecord::Migration[6.0]
2
- def change
3
- create_table :ecom_core_unit_of_measures do |t|
4
- t.string :code, unique: true
5
- t.string :name, null: false
6
- t.string :description
7
-
8
- t.timestamps
9
- end
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- FactoryBot.define do
2
- factory :unit_of_measure, class: Ecom::Core::UnitOfMeasure do
3
- code { FFaker::Name.name }
4
- name { FFaker::Name.name }
5
- description { FFaker::Name.name }
6
- end
7
- end