ecom_core 1.2.26 → 1.2.31
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/ecom/core/companies_controller.rb +15 -0
- data/app/controllers/ecom/core/project_crews_controller.rb +25 -0
- data/app/controllers/ecom/core/projects_controller.rb +32 -0
- data/app/models/ecom/core/cost_type.rb +8 -0
- data/app/models/ecom/core/crew.rb +3 -0
- data/app/models/ecom/core/crew_contract.rb +17 -0
- data/app/models/ecom/core/crew_overtime.rb +13 -0
- data/app/models/ecom/core/crew_time.rb +15 -6
- data/app/models/ecom/core/job_card.rb +16 -0
- data/app/models/ecom/core/maintenance_category.rb +6 -0
- data/app/models/ecom/core/maintenance_cost.rb +10 -0
- data/app/models/ecom/core/maintenance_service_order.rb +19 -0
- data/app/models/ecom/core/maintenance_status.rb +6 -0
- data/app/models/ecom/core/maintenance_type.rb +9 -0
- data/app/models/ecom/core/schedule_setting.rb +9 -0
- data/app/models/ecom/core/schedule_unit.rb +6 -0
- data/app/services/ecom/core/project_crew_service.rb +39 -0
- data/config/routes.rb +5 -0
- data/db/migrate/20200901085227_create_ecom_core_crew_contracts.rb +20 -0
- data/db/migrate/20200919053331_create_ecom_core_maintenance_types.rb +14 -0
- data/db/migrate/20200919072216_create_ecom_core_schedule_settings.rb +21 -0
- data/db/migrate/20200919081338_create_ecom_core_maintenance_service_orders.rb +32 -0
- data/db/migrate/20200919085613_create_ecom_core_job_cards.rb +48 -0
- data/db/migrate/20200919101941_create_ecom_core_cost_types.rb +10 -0
- data/db/migrate/20200919102802_create_ecom_core_maintenance_costs.rb +19 -0
- data/db/migrate/20200922044959_add_costs_approved_to_job_card.rb +5 -0
- data/lib/ecom/core/version.rb +1 -1
- data/spec/factories/ecom/core/attendance_sheet_entries.rb +1 -1
- data/spec/factories/ecom/core/cost_types.rb +6 -0
- data/spec/factories/ecom/core/crew_contracts.rb +13 -0
- data/spec/factories/ecom/core/job_cards.rb +17 -0
- data/spec/factories/ecom/core/maintenance_categories.rb +5 -0
- data/spec/factories/ecom/core/maintenance_costs.rb +9 -0
- data/spec/factories/ecom/core/maintenance_service_orders.rb +16 -0
- data/spec/factories/ecom/core/maintenance_statuses.rb +5 -0
- data/spec/factories/ecom/core/maintenance_types.rb +7 -0
- data/spec/factories/ecom/core/overtime_types.rb +1 -1
- data/spec/factories/ecom/core/schedule_settings.rb +8 -0
- data/spec/factories/ecom/core/schedule_units.rb +5 -0
- metadata +35 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e0b7beafc5d7b2e1a7385f1a01db93b9d3279c41434a3e104a76e58aa0b48ac
|
4
|
+
data.tar.gz: 766cbcb8b998e4725c1afe43f0c28a2a3901d8ce2e9a84fd308c5c88623ef392
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6590ea1a50bdc293aa807ed135287cb6c89ecdd83e902898801f758d1d187b5003b31c77117f7d02ab8367e13b06bac4fb0054726c9e1934e8aa4279d6a36f43
|
7
|
+
data.tar.gz: ead89e3cd5136806c9e1ea45fb91c46249604aad30ab6040f902b119307f34c0a34940c491866d04ff8eab5a99b33350dcdbc9a7399a8ce73155ff086d43c802
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class CompaniesController < ApplicationController
|
4
|
+
def index
|
5
|
+
data = Ecom::Core::Company.all
|
6
|
+
render json: data
|
7
|
+
end
|
8
|
+
|
9
|
+
def default_company
|
10
|
+
data = Ecom::Core::Company.first
|
11
|
+
render json: data
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class ProjectCrewsController < ApplicationController
|
4
|
+
before_action :set_service, only: %i[update]
|
5
|
+
|
6
|
+
def index
|
7
|
+
project = Ecom::Core::Project.find(params[:id])
|
8
|
+
serialized = ActiveModelSerializers::SerializableResource.new(project.crews)
|
9
|
+
render json: { success: true, data: serialized }
|
10
|
+
end
|
11
|
+
|
12
|
+
def update
|
13
|
+
data = @service.update(params)
|
14
|
+
serialized = ActiveModelSerializers::SerializableResource.new(data[:data])
|
15
|
+
render json: { success: true, data: serialized }
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def set_service
|
21
|
+
@service = ProjectCrewService.new
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class ProjectsController < ApplicationController
|
4
|
+
before_action :set_project, only: %i[show]
|
5
|
+
# GET /projects
|
6
|
+
def index
|
7
|
+
projects = Ecom::Core::Project.includes(:employer, :contractor, :consultant, :project_manager)
|
8
|
+
.where(company_id: params[:id])
|
9
|
+
serialized = ActiveModelSerializers::SerializableResource.new(projects)
|
10
|
+
render json: { success: true, data: serialized }
|
11
|
+
end
|
12
|
+
|
13
|
+
def show
|
14
|
+
render json: @project
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def set_project
|
20
|
+
@project = Project.find(params[:id])
|
21
|
+
end
|
22
|
+
|
23
|
+
def model_params
|
24
|
+
params.require(:project).permit(:name, :description, :location, :objective, :project_scope, :employer_id,
|
25
|
+
:contractor_id, :consultant_id, :project_manager_id, :contract_number,
|
26
|
+
:company_id, :date_contract_signed, :commencement_date, :completion_date,
|
27
|
+
:contract_amount, :advance_payment, :retention, :remark, :task_template_type_id,
|
28
|
+
:currency_id)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -15,6 +15,9 @@ module Ecom
|
|
15
15
|
validates :name, :address, :qualification, :employment, :wage, :wage_in_words, presence: true
|
16
16
|
validates :employment, inclusion: EMPLOYMENT_TYPES
|
17
17
|
|
18
|
+
has_many :project_crews
|
19
|
+
has_many :projects, through: :project_crews
|
20
|
+
|
18
21
|
scope :by_active, ->(active) { where(active: active) }
|
19
22
|
scope :by_qualification, ->(qualification) { where(qualification: qualification) }
|
20
23
|
scope :by_sub_contracted, ->(sub_contracted) { where(sub_contracted: sub_contracted) }
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class CrewContract < ApplicationRecord
|
4
|
+
belongs_to :crew
|
5
|
+
|
6
|
+
validates :contract_no, :from, :to, :place_of_work, :probation_period, :contract_type, presence: true
|
7
|
+
validates :contract_no, uniqueness: true
|
8
|
+
validate :validate_date_range
|
9
|
+
|
10
|
+
def validate_date_range
|
11
|
+
return unless from && to
|
12
|
+
|
13
|
+
errors.add(:to, 'cannot be before from date.') if from >= to
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -9,6 +9,7 @@ module Ecom
|
|
9
9
|
has_one :revision, class_name: 'Ecom::Core::CrewOvertime', foreign_key: :revision_to_id
|
10
10
|
|
11
11
|
validates :hours, :raw_hours, presence: true
|
12
|
+
validate :validate_overtime_by_type
|
12
13
|
|
13
14
|
scope :by_overtime, lambda { |id|
|
14
15
|
joins(:overtime_sheet_entry).where(ecom_core_overtime_sheet_entries: { overtime_sheet_id: id })
|
@@ -17,6 +18,18 @@ module Ecom
|
|
17
18
|
|
18
19
|
before_save :calculate_hours
|
19
20
|
|
21
|
+
def validate_overtime_by_type
|
22
|
+
return unless overtime_type
|
23
|
+
|
24
|
+
start = Time.zone.parse(overtime_type.from)
|
25
|
+
finish = Time.zone.parse(overtime_type.to)
|
26
|
+
diff = ((finish - start) / 3600).round
|
27
|
+
|
28
|
+
return unless raw_hours > diff
|
29
|
+
|
30
|
+
errors.add(:crew_overtime, 'The selected overtime type does not allow the specified amount of hours.')
|
31
|
+
end
|
32
|
+
|
20
33
|
def calculate_hours
|
21
34
|
rate = OvertimeType.find(overtime_type_id).rate
|
22
35
|
self.hours = raw_hours * rate
|
@@ -6,18 +6,13 @@ module Ecom
|
|
6
6
|
AFTERNOON = :afternoon
|
7
7
|
FULL_DAY = :full_day
|
8
8
|
|
9
|
-
# TIME_RANGE = {
|
10
|
-
# MORNING => { start: Time.zone.parse('5:00 AM'), end: Time.zone.parse('9:00 AM') },
|
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') }
|
13
|
-
# }.freeze
|
14
|
-
|
15
9
|
belongs_to :attendance_sheet_entry
|
16
10
|
belongs_to :revision_to, class_name: 'Ecom::Core::CrewTime', optional: true
|
17
11
|
belongs_to :created_by, class_name: 'Ecom::Core::User'
|
18
12
|
has_one :revision, class_name: 'Ecom::Core::CrewTime', foreign_key: :revision_to_id
|
19
13
|
|
20
14
|
validates :checkin_time, presence: true, if: :checkout_time
|
15
|
+
validate :time_range_validation, :total_time_validation
|
21
16
|
|
22
17
|
scope :by_attendance, lambda { |id|
|
23
18
|
joins(:attendance_sheet_entry).where(ecom_core_attendance_sheet_entries: { attendance_sheet_id: id })
|
@@ -27,6 +22,20 @@ module Ecom
|
|
27
22
|
before_save :calculate_hours
|
28
23
|
after_save :calculate_total
|
29
24
|
|
25
|
+
def time_range_validation
|
26
|
+
return unless checkin_time && checkout_time && checkout_time <= checkin_time
|
27
|
+
|
28
|
+
errors.add(:checkout_time, "can't be less than checkin time.")
|
29
|
+
end
|
30
|
+
|
31
|
+
def total_time_validation
|
32
|
+
return if checkout_time.nil? || checkin_time.nil?
|
33
|
+
|
34
|
+
return unless attendance_sheet_entry.total_hours + compute_hours > 8
|
35
|
+
|
36
|
+
errors.add(:attendance_sheet_entry, 'has more than 8 hours')
|
37
|
+
end
|
38
|
+
|
30
39
|
def calculate_hours
|
31
40
|
self.hours = if checkout_time.nil? || checkin_time.nil?
|
32
41
|
0
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class JobCard < ApplicationRecord
|
4
|
+
belongs_to :maintenance_service_order
|
5
|
+
belongs_to :service_provider, class_name: 'Ecom::Core::EquipmentLocation'
|
6
|
+
belongs_to :checkout_by, class_name: 'Ecom::Core::User', optional: true
|
7
|
+
belongs_to :checkout_to, class_name: 'Ecom::Core::EquipmentLocation', optional: true
|
8
|
+
belongs_to :maintenance_status
|
9
|
+
belongs_to :checkin_by, class_name: 'Ecom::Core::User', optional: true
|
10
|
+
belongs_to :checkin_to, class_name: 'Ecom::Core::EquipmentLocation', optional: true
|
11
|
+
belongs_to :prepared_by, class_name: 'Ecom::Core::User'
|
12
|
+
|
13
|
+
validates :code, presence: true, uniqueness: true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class MaintenanceServiceOrder < ApplicationRecord
|
4
|
+
NEW = 'New'.freeze
|
5
|
+
IN_PROGRESS = 'In Progress'.freeze
|
6
|
+
COMPLETED = 'Completed'.freeze
|
7
|
+
|
8
|
+
STATUSES = [NEW, IN_PROGRESS, COMPLETED].freeze
|
9
|
+
|
10
|
+
belongs_to :equipment_item
|
11
|
+
belongs_to :maintenance_type
|
12
|
+
belongs_to :prepared_by, class_name: 'Ecom::Core::User'
|
13
|
+
belongs_to :approved_by, class_name: 'Ecom::Core::User'
|
14
|
+
|
15
|
+
validates :title, :status, :current_reading, presence: true
|
16
|
+
validates :status, inclusion: STATUSES
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Ecom
|
2
|
+
module Core
|
3
|
+
class ProjectCrewService
|
4
|
+
def update(params)
|
5
|
+
id = params[:project_id]
|
6
|
+
crew = params[:crew]
|
7
|
+
|
8
|
+
# Process new additions
|
9
|
+
new_crew = crew.select { |c| c[:status] == 'checked' }
|
10
|
+
removed = crew.select { |c| c[:status] == 'unchecked' }
|
11
|
+
|
12
|
+
crew_ids = new_crew.map { |c| c[:crew_id] }
|
13
|
+
|
14
|
+
project_crew = Ecom::Core::Crew.where(id: crew_ids)
|
15
|
+
|
16
|
+
new_entries = []
|
17
|
+
new_crew.each do |nc|
|
18
|
+
new_entries << Ecom::Core::ProjectCrew.new(
|
19
|
+
project_id: id, crew_id: nc[:crew_id], start_date: Date.today, status: 'Active'
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
Ecom::Core::ProjectCrew.transaction do
|
24
|
+
new_entries.each(&:save)
|
25
|
+
end
|
26
|
+
|
27
|
+
removed_ids = removed.map { |r| r[:crew_id] }
|
28
|
+
if removed_ids.count.positive?
|
29
|
+
removed_crew = Ecom::Core::ProjectCrew.where(project_id: id, crew_id: removed_ids)
|
30
|
+
Ecom::Core::ProjectCrew.transaction do
|
31
|
+
removed_crew.map(&:delete)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
{ success: true, data: project_crew }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/config/routes.rb
CHANGED
@@ -12,4 +12,9 @@ Ecom::Core::Engine.routes.draw do
|
|
12
12
|
resources :equipment_types
|
13
13
|
resources :material_types
|
14
14
|
resources :menus, only: %i[index]
|
15
|
+
resources :projects
|
16
|
+
resources :companies
|
17
|
+
get '/default_company', controller: :companies, action: :default_company
|
18
|
+
get '/projects/:id/crew', controller: :project_crews, action: :index
|
19
|
+
post '/project_crews', controller: :project_crews, action: :update
|
15
20
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class CreateEcomCoreCrewContracts < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_crew_contracts do |t|
|
4
|
+
t.string :contract_no, null: false, unique: true
|
5
|
+
t.date :from, null: false
|
6
|
+
t.date :to, null: false
|
7
|
+
t.string :place_of_work, null: false
|
8
|
+
t.integer :probation_period, null: false
|
9
|
+
t.string :contract_type, null: false
|
10
|
+
t.boolean :contract_signed, null: false, default: false
|
11
|
+
t.date :date_contract_signed
|
12
|
+
t.references :crew,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'cc_on_crew_indx' },
|
15
|
+
foreign_key: { to_table: :ecom_core_crews }
|
16
|
+
|
17
|
+
t.timestamps
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateEcomCoreMaintenanceTypes < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_maintenance_types do |t|
|
4
|
+
t.string :name, null: false
|
5
|
+
t.string :description
|
6
|
+
t.references :maintenance_category,
|
7
|
+
null: false,
|
8
|
+
index: { name: 'mt_on_mc_indx' },
|
9
|
+
foreign_key: { to_table: :ecom_core_lookups }
|
10
|
+
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class CreateEcomCoreScheduleSettings < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_schedule_settings do |t|
|
4
|
+
t.references :equipment,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'ss_on_equipment_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_equipment }
|
8
|
+
t.references :maintenance_type,
|
9
|
+
null: false,
|
10
|
+
index: { name: 'ss_on_mt_indx' },
|
11
|
+
foreign_key: { to_table: :ecom_core_maintenance_types }
|
12
|
+
t.references :schedule_unit,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'ss_in_su_indx' },
|
15
|
+
foreign_key: { to_table: :ecom_core_lookups }
|
16
|
+
t.float :value, null: false
|
17
|
+
|
18
|
+
t.timestamps
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class CreateEcomCoreMaintenanceServiceOrders < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_maintenance_service_orders do |t|
|
4
|
+
t.string :title, null: false
|
5
|
+
t.string :description
|
6
|
+
t.date :start_date
|
7
|
+
t.date :end_date
|
8
|
+
t.boolean :approved, default: false
|
9
|
+
t.string :status, null: false, default: 'New'
|
10
|
+
t.string :remark
|
11
|
+
t.float :current_reading, null: false
|
12
|
+
t.references :equipment_item,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'mso_on_ei_indx' },
|
15
|
+
foreign_key: { to_table: :ecom_core_equipment_items }
|
16
|
+
t.references :maintenance_type,
|
17
|
+
null: false,
|
18
|
+
index: { name: 'mso_on_mt_indx' },
|
19
|
+
foreign_key: { to_table: :ecom_core_maintenance_types }
|
20
|
+
t.references :prepared_by,
|
21
|
+
null: false,
|
22
|
+
index: { name: 'mso_on_pb_indx' },
|
23
|
+
foreign_key: { to_table: :ecom_core_users }
|
24
|
+
t.references :approved_by,
|
25
|
+
null: false,
|
26
|
+
index: { name: 'mso_on_ab_indx' },
|
27
|
+
foreign_key: { to_table: :ecom_core_users }
|
28
|
+
|
29
|
+
t.timestamps
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
class CreateEcomCoreJobCards < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_job_cards do |t|
|
4
|
+
t.string :code, unique: true
|
5
|
+
t.date :start_date
|
6
|
+
t.date :due_date
|
7
|
+
t.date :checkin_date
|
8
|
+
t.date :checkout_date
|
9
|
+
t.boolean :approved, null: false, default: false
|
10
|
+
t.boolean :checkin_confirmed, null: false, default: false
|
11
|
+
t.boolean :checkout_confirmed, null: false, default: false
|
12
|
+
t.references :maintenance_service_order,
|
13
|
+
null: false,
|
14
|
+
index: { name: 'jc_on_mso_indx' },
|
15
|
+
foreign_key: { to_table: :ecom_core_maintenance_service_orders }
|
16
|
+
t.references :service_provider,
|
17
|
+
null: false,
|
18
|
+
index: { name: 'jc_on_sp_indx' },
|
19
|
+
foreign_key: { to_table: :ecom_core_equipment_locations }
|
20
|
+
t.references :checkout_by,
|
21
|
+
null: true,
|
22
|
+
index: { name: 'jc_on_cb_indx' },
|
23
|
+
foreign_key: { to_table: :ecom_core_users }
|
24
|
+
t.references :checkout_to,
|
25
|
+
null: true,
|
26
|
+
index: { name: 'jc_on_ct_indx' },
|
27
|
+
foreign_key: { to_table: :ecom_core_equipment_locations }
|
28
|
+
t.references :maintenance_status,
|
29
|
+
null: false,
|
30
|
+
index: { name: 'jc_on_ms_indx' },
|
31
|
+
foreign_key: { to_table: :ecom_core_lookups }
|
32
|
+
t.references :checkin_by,
|
33
|
+
null: true,
|
34
|
+
index: { name: 'jc_on_cib_indx' },
|
35
|
+
foreign_key: { to_table: :ecom_core_users }
|
36
|
+
t.references :checkin_to,
|
37
|
+
null: true,
|
38
|
+
index: { name: 'jc_on_cit_indx' },
|
39
|
+
foreign_key: { to_table: :ecom_core_equipment_locations }
|
40
|
+
t.references :prepared_by,
|
41
|
+
null: false,
|
42
|
+
index: { name: 'jc_on_pb_indx' },
|
43
|
+
foreign_key: { to_table: :ecom_core_users }
|
44
|
+
|
45
|
+
t.timestamps
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class CreateEcomCoreMaintenanceCosts < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_maintenance_costs do |t|
|
4
|
+
t.references :job_card,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'mc_on_jc_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_job_cards }
|
8
|
+
t.references :cost_type,
|
9
|
+
null: false,
|
10
|
+
index: { name: 'mc_on_ct_indx' },
|
11
|
+
foreign_key: { to_table: :ecom_core_cost_types }
|
12
|
+
t.jsonb :cost_detail, null: false
|
13
|
+
t.string :remark
|
14
|
+
t.boolean :costs_approved, null: false, default: false
|
15
|
+
|
16
|
+
t.timestamps
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/ecom/core/version.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :crew_contract, class: 'Ecom::Core::CrewContract' do
|
3
|
+
from { Date.yesterday }
|
4
|
+
to { Date.tomorrow }
|
5
|
+
place_of_work { FFaker::Name.name }
|
6
|
+
probation_period { 45 }
|
7
|
+
contract_no { FFaker::Name.name }
|
8
|
+
contract_type { FFaker::Name.name }
|
9
|
+
contract_signed { false }
|
10
|
+
date_contract_signed { Date.today }
|
11
|
+
association :crew
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :job_card, class: Ecom::Core::JobCard do
|
3
|
+
code { FFaker::Name.name }
|
4
|
+
start_date { Date.yesterday }
|
5
|
+
due_date { Date.tomorrow }
|
6
|
+
checkin_date { Date.yesterday }
|
7
|
+
checkout_date { Date.tomorrow }
|
8
|
+
association :maintenance_service_order
|
9
|
+
association :service_provider, factory: :equipment_location
|
10
|
+
association :checkout_by, factory: :user
|
11
|
+
association :checkout_to, factory: :equipment_location
|
12
|
+
association :maintenance_status
|
13
|
+
association :checkin_by, factory: :user
|
14
|
+
association :checkin_to, factory: :equipment_location
|
15
|
+
association :prepared_by, factory: :user
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :maintenance_cost, class: Ecom::Core::MaintenanceCost do
|
3
|
+
association :job_card
|
4
|
+
association :cost_type
|
5
|
+
cost_detail { { part_number: 'ABCDEF', quantity: 1, price: 200 } }
|
6
|
+
remark { FFaker::Name.name }
|
7
|
+
costs_approved { false }
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :maintenance_service_order, class: Ecom::Core::MaintenanceServiceOrder do
|
3
|
+
title { FFaker::Name.name }
|
4
|
+
description { FFaker::Name.name }
|
5
|
+
start_date { Date.yesterday }
|
6
|
+
end_date { Date.today }
|
7
|
+
approved { false }
|
8
|
+
status { 'New' }
|
9
|
+
remark { FFaker::Name.name }
|
10
|
+
current_reading { 1.5 }
|
11
|
+
association :equipment_item
|
12
|
+
association :maintenance_type
|
13
|
+
association :prepared_by, factory: :user
|
14
|
+
association :approved_by, factory: :user
|
15
|
+
end
|
16
|
+
end
|
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.2.
|
4
|
+
version: 1.2.31
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henock L.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aasm
|
@@ -243,10 +243,13 @@ files:
|
|
243
243
|
- app/controllers/ecom/core/access_controller.rb
|
244
244
|
- app/controllers/ecom/core/application_controller.rb
|
245
245
|
- app/controllers/ecom/core/application_modules_controller.rb
|
246
|
+
- app/controllers/ecom/core/companies_controller.rb
|
246
247
|
- app/controllers/ecom/core/crew_types_controller.rb
|
247
248
|
- app/controllers/ecom/core/equipment_types_controller.rb
|
248
249
|
- app/controllers/ecom/core/material_types_controller.rb
|
249
250
|
- app/controllers/ecom/core/menus_controller.rb
|
251
|
+
- app/controllers/ecom/core/project_crews_controller.rb
|
252
|
+
- app/controllers/ecom/core/projects_controller.rb
|
250
253
|
- app/controllers/ecom/core/user_roles_controller.rb
|
251
254
|
- app/controllers/ecom/core/users_controller.rb
|
252
255
|
- app/models/ecom/core/application_module.rb
|
@@ -257,8 +260,10 @@ files:
|
|
257
260
|
- app/models/ecom/core/booking.rb
|
258
261
|
- app/models/ecom/core/company.rb
|
259
262
|
- app/models/ecom/core/component_type.rb
|
263
|
+
- app/models/ecom/core/cost_type.rb
|
260
264
|
- app/models/ecom/core/country.rb
|
261
265
|
- app/models/ecom/core/crew.rb
|
266
|
+
- app/models/ecom/core/crew_contract.rb
|
262
267
|
- app/models/ecom/core/crew_overtime.rb
|
263
268
|
- app/models/ecom/core/crew_time.rb
|
264
269
|
- app/models/ecom/core/crew_type.rb
|
@@ -272,8 +277,14 @@ files:
|
|
272
277
|
- app/models/ecom/core/equipment_request.rb
|
273
278
|
- app/models/ecom/core/equipment_type.rb
|
274
279
|
- app/models/ecom/core/equipment_valuation.rb
|
280
|
+
- app/models/ecom/core/job_card.rb
|
275
281
|
- app/models/ecom/core/location_type.rb
|
276
282
|
- app/models/ecom/core/lookup.rb
|
283
|
+
- app/models/ecom/core/maintenance_category.rb
|
284
|
+
- app/models/ecom/core/maintenance_cost.rb
|
285
|
+
- app/models/ecom/core/maintenance_service_order.rb
|
286
|
+
- app/models/ecom/core/maintenance_status.rb
|
287
|
+
- app/models/ecom/core/maintenance_type.rb
|
277
288
|
- app/models/ecom/core/material_type.rb
|
278
289
|
- app/models/ecom/core/menu.rb
|
279
290
|
- app/models/ecom/core/overtime_sheet.rb
|
@@ -288,6 +299,8 @@ files:
|
|
288
299
|
- app/models/ecom/core/project_crew.rb
|
289
300
|
- app/models/ecom/core/requested_item.rb
|
290
301
|
- app/models/ecom/core/resource_type.rb
|
302
|
+
- app/models/ecom/core/schedule_setting.rb
|
303
|
+
- app/models/ecom/core/schedule_unit.rb
|
291
304
|
- app/models/ecom/core/stakeholder.rb
|
292
305
|
- app/models/ecom/core/stakeholder_type.rb
|
293
306
|
- app/models/ecom/core/task.rb
|
@@ -305,6 +318,7 @@ files:
|
|
305
318
|
- app/serializers/ecom/core/user_role_serializer.rb
|
306
319
|
- app/serializers/ecom/core/user_serializer.rb
|
307
320
|
- app/services/ecom/core/menu_service.rb
|
321
|
+
- app/services/ecom/core/project_crew_service.rb
|
308
322
|
- app/services/ecom/core/token_auth_service.rb
|
309
323
|
- app/uploaders/ecom/core/photo_uploader.rb
|
310
324
|
- app/validators/ecom/core/date_range_validator.rb
|
@@ -354,6 +368,14 @@ files:
|
|
354
368
|
- db/migrate/20200602130247_create_ecom_core_requested_items.rb
|
355
369
|
- db/migrate/20200602830603_create_ecom_core_bookings.rb
|
356
370
|
- db/migrate/20200603115317_create_ecom_core_booked_items.rb
|
371
|
+
- db/migrate/20200901085227_create_ecom_core_crew_contracts.rb
|
372
|
+
- db/migrate/20200919053331_create_ecom_core_maintenance_types.rb
|
373
|
+
- db/migrate/20200919072216_create_ecom_core_schedule_settings.rb
|
374
|
+
- db/migrate/20200919081338_create_ecom_core_maintenance_service_orders.rb
|
375
|
+
- db/migrate/20200919085613_create_ecom_core_job_cards.rb
|
376
|
+
- db/migrate/20200919101941_create_ecom_core_cost_types.rb
|
377
|
+
- db/migrate/20200919102802_create_ecom_core_maintenance_costs.rb
|
378
|
+
- db/migrate/20200922044959_add_costs_approved_to_job_card.rb
|
357
379
|
- lib/ecom/core.rb
|
358
380
|
- lib/ecom/core/engine.rb
|
359
381
|
- lib/ecom/core/version.rb
|
@@ -366,7 +388,9 @@ files:
|
|
366
388
|
- spec/factories/ecom/core/bookings.rb
|
367
389
|
- spec/factories/ecom/core/companies.rb
|
368
390
|
- spec/factories/ecom/core/component_types.rb
|
391
|
+
- spec/factories/ecom/core/cost_types.rb
|
369
392
|
- spec/factories/ecom/core/countries.rb
|
393
|
+
- spec/factories/ecom/core/crew_contracts.rb
|
370
394
|
- spec/factories/ecom/core/crew_overtimes.rb
|
371
395
|
- spec/factories/ecom/core/crew_times.rb
|
372
396
|
- spec/factories/ecom/core/crew_types.rb
|
@@ -381,8 +405,14 @@ files:
|
|
381
405
|
- spec/factories/ecom/core/equipment_requests.rb
|
382
406
|
- spec/factories/ecom/core/equipment_types.rb
|
383
407
|
- spec/factories/ecom/core/equipment_valuations.rb
|
408
|
+
- spec/factories/ecom/core/job_cards.rb
|
384
409
|
- spec/factories/ecom/core/location_types.rb
|
385
410
|
- spec/factories/ecom/core/lookups.rb
|
411
|
+
- spec/factories/ecom/core/maintenance_categories.rb
|
412
|
+
- spec/factories/ecom/core/maintenance_costs.rb
|
413
|
+
- spec/factories/ecom/core/maintenance_service_orders.rb
|
414
|
+
- spec/factories/ecom/core/maintenance_statuses.rb
|
415
|
+
- spec/factories/ecom/core/maintenance_types.rb
|
386
416
|
- spec/factories/ecom/core/material_types.rb
|
387
417
|
- spec/factories/ecom/core/menus.rb
|
388
418
|
- spec/factories/ecom/core/overtime_sheet_entries.rb
|
@@ -397,6 +427,8 @@ files:
|
|
397
427
|
- spec/factories/ecom/core/projects.rb
|
398
428
|
- spec/factories/ecom/core/requested_items.rb
|
399
429
|
- spec/factories/ecom/core/resource_types.rb
|
430
|
+
- spec/factories/ecom/core/schedule_settings.rb
|
431
|
+
- spec/factories/ecom/core/schedule_units.rb
|
400
432
|
- spec/factories/ecom/core/stakeholder_types.rb
|
401
433
|
- spec/factories/ecom/core/stakeholders.rb
|
402
434
|
- spec/factories/ecom/core/task_resources.rb
|
@@ -427,7 +459,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
427
459
|
- !ruby/object:Gem::Version
|
428
460
|
version: '0'
|
429
461
|
requirements: []
|
430
|
-
rubygems_version: 3.1.
|
462
|
+
rubygems_version: 3.1.4
|
431
463
|
signing_key:
|
432
464
|
specification_version: 4
|
433
465
|
summary: Core engine for construction management application.
|