ecom_core 1.2.12 → 1.2.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/ecom/core/lookupable.rb +1 -2
- data/app/controllers/concerns/ecom/core/resource_typeable.rb +1 -1
- data/app/controllers/ecom/core/access_controller.rb +1 -2
- data/app/controllers/ecom/core/application_controller.rb +0 -1
- data/app/controllers/ecom/core/application_modules_controller.rb +1 -1
- data/app/controllers/ecom/core/menus_controller.rb +1 -1
- data/app/controllers/ecom/core/user_roles_controller.rb +1 -2
- data/app/controllers/ecom/core/users_controller.rb +1 -2
- data/app/models/ecom/core/attendance_sheet.rb +2 -1
- data/app/models/ecom/core/booked_equipment_item.rb +12 -0
- data/app/models/ecom/core/booking.rb +16 -0
- data/app/models/ecom/core/component_type.rb +1 -1
- data/app/models/ecom/core/crew_time.rb +1 -1
- data/app/models/ecom/core/equipment_item.rb +1 -0
- data/app/models/ecom/core/equipment_location.rb +2 -1
- data/app/models/ecom/core/equipment_request.rb +19 -0
- data/app/models/ecom/core/payment.rb +1 -1
- data/app/models/ecom/core/requested_item.rb +13 -0
- data/app/models/ecom/core/work_product.rb +0 -1
- data/app/serializers/ecom/core/lookup_serializer.rb +1 -1
- data/app/serializers/ecom/core/resource_type_serializer.rb +1 -1
- data/app/serializers/ecom/core/user_role_serializer.rb +1 -1
- data/app/services/ecom/core/menu_service.rb +1 -3
- data/app/services/ecom/core/token_auth_service.rb +2 -1
- data/db/migrate/20200315152143_create_ecom_core_equipment.rb +0 -1
- data/db/migrate/20200601104719_create_ecom_core_equipment_requests.rb +18 -0
- data/db/migrate/{20200602130247_create_ecom_core_booking_requests.rb → 20200602130247_create_ecom_core_requested_items.rb} +7 -12
- data/db/migrate/20200602830603_create_ecom_core_bookings.rb +22 -0
- data/db/migrate/20200603115317_create_ecom_core_booked_equipment_items.rb +23 -0
- data/lib/ecom/core/engine.rb +0 -1
- data/lib/ecom/core/version.rb +1 -1
- data/spec/factories/ecom/core/{booked_equipments.rb → booked_equipment_items.rb} +3 -3
- data/spec/factories/ecom/core/bookings.rb +9 -0
- data/spec/factories/ecom/core/equipment.rb +0 -1
- data/spec/factories/ecom/core/equipment_requests.rb +8 -0
- data/spec/factories/ecom/core/requested_items.rb +13 -0
- data/spec/factories/ecom/core/task_templates.rb +0 -1
- data/spec/factories/ecom/core/users.rb +1 -1
- metadata +13 -7
- data/app/models/ecom/core/booked_equipment.rb +0 -19
- data/app/models/ecom/core/booking_request.rb +0 -26
- data/db/migrate/20200603115317_create_ecom_core_booked_equipments.rb +0 -24
- data/spec/factories/ecom/core/booking_requests.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 785564a6c5e451baa829ed1114ec89b5fb0247a3894a09fd2683b2967e1ae49b
|
4
|
+
data.tar.gz: d0dbc33358d5759b276f0d92575efc6e2333f2bac15674deb81a40c6b5cb850a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be05151af2bb4f6117929e9a220ee1a466629464704ba24054f1be4da8ac1b67f03b8fb8affcea5958d8d6e6f18681f0783dce2744d2f01ef00be6af2479fa0d
|
7
|
+
data.tar.gz: 87f31a859e9e3c2aaa26af4ae2627a425883e4ab3a8c555bbf3a0ed80b30b754fd9ca0ecce920bee1a78fc69f8ab9f266c5878bea6f3fb6814595e8a0e28290c
|
@@ -52,7 +52,8 @@ module Ecom
|
|
52
52
|
raise 'There is an open attendance sheet which needs to be submitted before creating a new one.'
|
53
53
|
end
|
54
54
|
|
55
|
-
AttendanceSheet.create(date: Date.today, opened_at: Time.now, status: StatusConstants::OPEN,
|
55
|
+
AttendanceSheet.create(date: Date.today, opened_at: Time.now, status: StatusConstants::OPEN,
|
56
|
+
project_id: project_id)
|
56
57
|
end
|
57
58
|
|
58
59
|
def self.submit_current(project_id)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class BookedEquipmentItem < ApplicationRecord
|
4
|
+
belongs_to :booking
|
5
|
+
belongs_to :requested_item
|
6
|
+
belongs_to :equipment_item
|
7
|
+
|
8
|
+
validates :start_date, :end_date, presence: true
|
9
|
+
validates_with DateRangeValidator
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class Booking < ApplicationRecord
|
4
|
+
APPROVED = 'Approved'.freeze
|
5
|
+
UNAPPROVED = 'Unapproved'.freeze
|
6
|
+
|
7
|
+
STATUSES = [APPROVED, UNAPPROVED].freeze
|
8
|
+
|
9
|
+
belongs_to :equipment_request
|
10
|
+
belongs_to :booked_by, class_name: 'Ecom::Core::User'
|
11
|
+
belongs_to :booked_for, class_name: 'Ecom::Core::User'
|
12
|
+
|
13
|
+
validates :status, presence: true, inclusion: STATUSES
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -9,7 +9,7 @@ module Ecom
|
|
9
9
|
TIME_RANGE = {
|
10
10
|
MORNING => { start: Time.zone.parse('5:00 AM'), end: Time.zone.parse('9:00 AM') },
|
11
11
|
AFTERNOON => { start: Time.zone.parse('10:00 AM'), end: Time.zone.parse('2:00 PM') },
|
12
|
-
BOTH => {start: Time.zone.parse('5:00 AM'), end: Time.zone.parse('2:00 PM')}
|
12
|
+
BOTH => { start: Time.zone.parse('5:00 AM'), end: Time.zone.parse('2:00 PM') }
|
13
13
|
}.freeze
|
14
14
|
|
15
15
|
belongs_to :attendance_sheet_entry
|
@@ -15,6 +15,7 @@ module Ecom
|
|
15
15
|
belongs_to :equipment
|
16
16
|
belongs_to :country
|
17
17
|
belongs_to :current_location, class_name: 'Ecom::Core::EquipmentLocation'
|
18
|
+
has_many :equipment_components
|
18
19
|
|
19
20
|
validates :name, :status, :serial_number, :purchase_date, :purchase_price, presence: true
|
20
21
|
validates :status, inclusion: EQUIPMENT_STATUSES
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class EquipmentRequest < ApplicationRecord
|
4
|
+
DRAFT = 'Draft'.freeze
|
5
|
+
UNDER_REVIEW = 'Under Review'.freeze
|
6
|
+
APPROVED = 'Approved'.freeze
|
7
|
+
REJECTED = 'Rejected'.freeze
|
8
|
+
|
9
|
+
STATUSES = [DRAFT, UNDER_REVIEW, APPROVED, REJECTED].freeze
|
10
|
+
belongs_to :project
|
11
|
+
belongs_to :requested_by, class_name: 'Ecom::Core::User'
|
12
|
+
has_one :booking
|
13
|
+
|
14
|
+
validates :status, presence: true, inclusion: STATUSES
|
15
|
+
|
16
|
+
scope :by_status, ->(status) { where(status: status) }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class RequestedItem < ApplicationRecord
|
4
|
+
belongs_to :equipment_request
|
5
|
+
belongs_to :equipment
|
6
|
+
belongs_to :country, optional: true
|
7
|
+
|
8
|
+
validates :start_date, :end_date, :quantity, presence: true
|
9
|
+
validates :quantity, numericality: { only_integer: true, greater_than: 0 }
|
10
|
+
validates_with DateRangeValidator
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -14,9 +14,7 @@ module Ecom
|
|
14
14
|
|
15
15
|
menu_list.each do |ml|
|
16
16
|
ml[:items] = menu.reject { |m| m.parent.nil? }.each_with_object([]) do |item, list|
|
17
|
-
if item.parent_id == ml[:id]
|
18
|
-
list << { id: item.id, text: item.label, iconCss: item.icon, url: item.route }
|
19
|
-
end
|
17
|
+
list << { id: item.id, text: item.label, iconCss: item.icon, url: item.route } if item.parent_id == ml[:id]
|
20
18
|
end
|
21
19
|
end
|
22
20
|
{ success: true, data: menu_list }
|
@@ -3,7 +3,8 @@ require 'jwt'
|
|
3
3
|
module Ecom
|
4
4
|
module Core
|
5
5
|
class TokenAuthService
|
6
|
-
AUTH_SECRET = '
|
6
|
+
AUTH_SECRET = '31a70abfaa57e5e77a3fc9f27aeaaf59b9a9f5355b5e16c842ee172035a8ed40bf82c1c971ecc176e4f0b4c9e6141db07'\
|
7
|
+
'fd4a5af3f7db9265e719fbe340b105a'.freeze
|
7
8
|
|
8
9
|
def self.issue(payload)
|
9
10
|
JWT.encode(payload, auth_secret, 'HS256')
|
@@ -5,7 +5,6 @@ class CreateEcomCoreEquipment < ActiveRecord::Migration[6.0]
|
|
5
5
|
t.string :description
|
6
6
|
t.float :minimum_acquisition_time, null: false, default: 0
|
7
7
|
t.string :brands, array: true, default: []
|
8
|
-
t.string :components, array: true, default: []
|
9
8
|
t.references :equipment_category,
|
10
9
|
null: false,
|
11
10
|
index: { name: 'ec_on_ece_indx' },
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class CreateEcomCoreEquipmentRequests < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_equipment_requests do |t|
|
4
|
+
t.references :requested_by,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'er_on_rb_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_users }
|
8
|
+
t.string :remark
|
9
|
+
t.string :status, null: false
|
10
|
+
t.references :project,
|
11
|
+
null: false,
|
12
|
+
index: { name: 'er_on_project_indx' },
|
13
|
+
foreign_key: { to_table: :ecom_core_projects }
|
14
|
+
|
15
|
+
t.timestamps
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,6 +1,10 @@
|
|
1
|
-
class
|
1
|
+
class CreateEcomCoreRequestedItems < ActiveRecord::Migration[6.0]
|
2
2
|
def change
|
3
|
-
create_table :
|
3
|
+
create_table :ecom_core_requested_items do |t|
|
4
|
+
t.references :equipment_request,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'ri_on_er_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_equipment_requests }
|
4
8
|
t.date :start_date, null: false
|
5
9
|
t.date :end_date, null: false
|
6
10
|
t.references :equipment,
|
@@ -13,16 +17,7 @@ class CreateEcomCoreBookingRequests < ActiveRecord::Migration[6.0]
|
|
13
17
|
null: true,
|
14
18
|
index: { name: 'br_on_country_indx' },
|
15
19
|
foreign_key: { to_table: :ecom_core_lookups }
|
16
|
-
t.
|
17
|
-
t.string :status, null: false
|
18
|
-
t.references :requested_by,
|
19
|
-
null: false,
|
20
|
-
index: { name: 'br_on_rb_indx' },
|
21
|
-
foreign_key: { to_table: :ecom_core_users }
|
22
|
-
t.references :approved_by,
|
23
|
-
null: true,
|
24
|
-
index: { name: 'br_on_ab_indx' },
|
25
|
-
foreign_key: { to_table: :ecom_core_users }
|
20
|
+
t.integer :components, array: true, default: []
|
26
21
|
t.string :remark
|
27
22
|
|
28
23
|
t.timestamps
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class CreateEcomCoreBookings < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_bookings do |t|
|
4
|
+
t.references :equipment_request,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'booking_on_er_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_equipment_requests }
|
8
|
+
t.references :booked_by,
|
9
|
+
null: false,
|
10
|
+
index: { name: 'er_on_bb_indx' },
|
11
|
+
foreign_key: { to_table: :ecom_core_users }
|
12
|
+
t.references :booked_for,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'booking_on_bf_indx' },
|
15
|
+
foreign_key: { to_table: :ecom_core_users }
|
16
|
+
t.string :remark
|
17
|
+
t.string :status, null: false
|
18
|
+
|
19
|
+
t.timestamps
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class CreateEcomCoreBookedEquipmentItems < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_booked_equipment_items do |t|
|
4
|
+
t.references :booking,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'bei_on_booking_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_bookings }
|
8
|
+
t.references :requested_item,
|
9
|
+
null: false,
|
10
|
+
index: { name: 'bei_on_ri_indx' },
|
11
|
+
foreign_key: { to_table: :ecom_core_bookings }
|
12
|
+
t.references :equipment_item,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'be_on_ei_indx' },
|
15
|
+
foreign_key: { to_table: :ecom_core_equipment_items }
|
16
|
+
t.date :start_date, null: false
|
17
|
+
t.date :end_date, null: false
|
18
|
+
t.string :remark
|
19
|
+
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/ecom/core/engine.rb
CHANGED
data/lib/ecom/core/version.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
FactoryBot.define do
|
2
|
-
factory :
|
3
|
-
association :
|
2
|
+
factory :booked_equipment_item, class: Ecom::Core::BookedEquipmentItem do
|
3
|
+
association :booking
|
4
|
+
association :requested_item
|
4
5
|
association :equipment_item
|
5
6
|
start_date { Date.yesterday }
|
6
7
|
end_date { Date.today }
|
7
|
-
association :booked_to, factory: :user
|
8
8
|
remark { FFaker::Name.name }
|
9
9
|
end
|
10
10
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :booking, class: Ecom::Core::Booking do
|
3
|
+
association :equipment_request
|
4
|
+
association :booked_by, factory: :user
|
5
|
+
association :booked_for, factory: :user
|
6
|
+
remark { FFaker::Name.name }
|
7
|
+
status { Ecom::Core::Booking::UNAPPROVED }
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :requested_item, class: Ecom::Core::RequestedItem do
|
3
|
+
association :equipment_request
|
4
|
+
start_date { Date.yesterday }
|
5
|
+
end_date { Date.today }
|
6
|
+
association :equipment
|
7
|
+
quantity { 1 }
|
8
|
+
brand { FFaker::Name.name }
|
9
|
+
association :country
|
10
|
+
components { [] }
|
11
|
+
remark { FFaker::Name.name }
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecom_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henock L.
|
@@ -205,8 +205,8 @@ files:
|
|
205
205
|
- app/models/ecom/core/application_record.rb
|
206
206
|
- app/models/ecom/core/attendance_sheet.rb
|
207
207
|
- app/models/ecom/core/attendance_sheet_entry.rb
|
208
|
-
- app/models/ecom/core/
|
209
|
-
- app/models/ecom/core/
|
208
|
+
- app/models/ecom/core/booked_equipment_item.rb
|
209
|
+
- app/models/ecom/core/booking.rb
|
210
210
|
- app/models/ecom/core/company.rb
|
211
211
|
- app/models/ecom/core/component_type.rb
|
212
212
|
- app/models/ecom/core/country.rb
|
@@ -221,6 +221,7 @@ files:
|
|
221
221
|
- app/models/ecom/core/equipment_component.rb
|
222
222
|
- app/models/ecom/core/equipment_item.rb
|
223
223
|
- app/models/ecom/core/equipment_location.rb
|
224
|
+
- app/models/ecom/core/equipment_request.rb
|
224
225
|
- app/models/ecom/core/equipment_type.rb
|
225
226
|
- app/models/ecom/core/equipment_valuation.rb
|
226
227
|
- app/models/ecom/core/location_type.rb
|
@@ -236,6 +237,7 @@ files:
|
|
236
237
|
- app/models/ecom/core/product_type.rb
|
237
238
|
- app/models/ecom/core/project.rb
|
238
239
|
- app/models/ecom/core/project_crew.rb
|
240
|
+
- app/models/ecom/core/requested_item.rb
|
239
241
|
- app/models/ecom/core/resource_type.rb
|
240
242
|
- app/models/ecom/core/stakeholder.rb
|
241
243
|
- app/models/ecom/core/stakeholder_type.rb
|
@@ -297,8 +299,10 @@ files:
|
|
297
299
|
- db/migrate/20200410090701_create_ecom_core_overtime_sheets.rb
|
298
300
|
- db/migrate/20200410100035_create_ecom_core_overtime_sheet_entries.rb
|
299
301
|
- db/migrate/20200410111827_create_ecom_core_crew_overtimes.rb
|
300
|
-
- db/migrate/
|
301
|
-
- db/migrate/
|
302
|
+
- db/migrate/20200601104719_create_ecom_core_equipment_requests.rb
|
303
|
+
- db/migrate/20200602130247_create_ecom_core_requested_items.rb
|
304
|
+
- db/migrate/20200602830603_create_ecom_core_bookings.rb
|
305
|
+
- db/migrate/20200603115317_create_ecom_core_booked_equipment_items.rb
|
302
306
|
- lib/ecom/core.rb
|
303
307
|
- lib/ecom/core/engine.rb
|
304
308
|
- lib/ecom/core/version.rb
|
@@ -307,8 +311,8 @@ files:
|
|
307
311
|
- spec/factories/ecom/core/application_modules.rb
|
308
312
|
- spec/factories/ecom/core/attendance_sheet_entries.rb
|
309
313
|
- spec/factories/ecom/core/attendance_sheets.rb
|
310
|
-
- spec/factories/ecom/core/
|
311
|
-
- spec/factories/ecom/core/
|
314
|
+
- spec/factories/ecom/core/booked_equipment_items.rb
|
315
|
+
- spec/factories/ecom/core/bookings.rb
|
312
316
|
- spec/factories/ecom/core/companies.rb
|
313
317
|
- spec/factories/ecom/core/component_types.rb
|
314
318
|
- spec/factories/ecom/core/countries.rb
|
@@ -323,6 +327,7 @@ files:
|
|
323
327
|
- spec/factories/ecom/core/equipment_components.rb
|
324
328
|
- spec/factories/ecom/core/equipment_items.rb
|
325
329
|
- spec/factories/ecom/core/equipment_locations.rb
|
330
|
+
- spec/factories/ecom/core/equipment_requests.rb
|
326
331
|
- spec/factories/ecom/core/equipment_types.rb
|
327
332
|
- spec/factories/ecom/core/equipment_valuations.rb
|
328
333
|
- spec/factories/ecom/core/location_types.rb
|
@@ -338,6 +343,7 @@ files:
|
|
338
343
|
- spec/factories/ecom/core/product_types.rb
|
339
344
|
- spec/factories/ecom/core/project_crews.rb
|
340
345
|
- spec/factories/ecom/core/projects.rb
|
346
|
+
- spec/factories/ecom/core/requested_items.rb
|
341
347
|
- spec/factories/ecom/core/resource_types.rb
|
342
348
|
- spec/factories/ecom/core/stakeholder_types.rb
|
343
349
|
- spec/factories/ecom/core/stakeholders.rb
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Ecom
|
2
|
-
module Core
|
3
|
-
class BookedEquipment < ApplicationRecord
|
4
|
-
BOOKED = 'Booked'.freeze
|
5
|
-
ON_SITE = 'On Site'.freeze
|
6
|
-
RETURNED = 'Returned'.freeze
|
7
|
-
|
8
|
-
STATUSES = [BOOKED, ON_SITE, RETURNED].freeze
|
9
|
-
|
10
|
-
belongs_to :booking_request
|
11
|
-
belongs_to :equipment_item
|
12
|
-
belongs_to :booked_to, class_name: 'Ecom::Core::User'
|
13
|
-
|
14
|
-
validates :start_date, :end_date, :status, presence: true
|
15
|
-
validates :status, inclusion: STATUSES
|
16
|
-
validates_with DateRangeValidator
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Ecom
|
2
|
-
module Core
|
3
|
-
class BookingRequest < ApplicationRecord
|
4
|
-
DRAFT = 'Draft'.freeze
|
5
|
-
UNDER_REVIEW = 'Under Review'.freeze
|
6
|
-
APPROVED = 'Approved'.freeze
|
7
|
-
REJECTED = 'Rejected'.freeze
|
8
|
-
|
9
|
-
STATUSES = [DRAFT, UNDER_REVIEW, APPROVED, REJECTED].freeze
|
10
|
-
belongs_to :equipment
|
11
|
-
belongs_to :country, optional: true
|
12
|
-
belongs_to :requested_by, class_name: 'Ecom::Core::User'
|
13
|
-
belongs_to :approved_by, class_name: 'Ecom::Core::User', optional: true
|
14
|
-
|
15
|
-
validates :start_date, :end_date, :quantity, :status, presence: true
|
16
|
-
validates :status, inclusion: STATUSES
|
17
|
-
validates_with DateRangeValidator
|
18
|
-
|
19
|
-
scope :by_status, ->(status) { where(status: status) }
|
20
|
-
|
21
|
-
def validate_date_range
|
22
|
-
errors.add(:end_date, 'cannot be before start date') if start_date && end_date && start_date > end_date
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
class CreateEcomCoreBookedEquipments < ActiveRecord::Migration[6.0]
|
2
|
-
def change
|
3
|
-
create_table :ecom_core_booked_equipments do |t|
|
4
|
-
t.references :booking_request,
|
5
|
-
null: false,
|
6
|
-
index: { name: 'be_on_br_indx' },
|
7
|
-
foreign_key: { to_table: :ecom_core_booking_requests }
|
8
|
-
t.references :equipment_item,
|
9
|
-
null: false,
|
10
|
-
index: { name: 'be_on_ei_indx' },
|
11
|
-
foreign_key: { to_table: :ecom_core_equipment_items }
|
12
|
-
t.date :start_date, null: false
|
13
|
-
t.date :end_date, null: false
|
14
|
-
t.string :status, null: false, default: 'Booked'
|
15
|
-
t.references :booked_to,
|
16
|
-
null: false,
|
17
|
-
index: { name: 'be_on_bt_indx' },
|
18
|
-
foreign_key: { to_table: :ecom_core_users }
|
19
|
-
t.string :remark
|
20
|
-
|
21
|
-
t.timestamps
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
FactoryBot.define do
|
2
|
-
factory :booking_request, class: Ecom::Core::BookingRequest do
|
3
|
-
start_date { Date.yesterday }
|
4
|
-
end_date { Date.today }
|
5
|
-
association :equipment
|
6
|
-
quantity { 1 }
|
7
|
-
brand { FFaker::Name.name }
|
8
|
-
association :country
|
9
|
-
association :requested_by, factory: :user
|
10
|
-
association :approved_by, factory: :user
|
11
|
-
components { [FFaker::Name.name, FFaker::Name.name] }
|
12
|
-
status { Ecom::Core::BookingRequest::DRAFT }
|
13
|
-
remark { FFaker::Name.name }
|
14
|
-
end
|
15
|
-
end
|