ecom_core 1.2.34 → 1.3.2
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/{project_crews_controller.rb → site_crews_controller.rb} +5 -4
- data/app/controllers/ecom/core/unit_costs_controller.rb +29 -0
- data/app/models/ecom/core/attendance_sheet.rb +19 -19
- data/app/models/ecom/core/available_unit_of_measurement.rb +10 -0
- data/app/models/ecom/core/crew.rb +4 -2
- data/app/models/ecom/core/crew_contract.rb +41 -1
- data/app/models/ecom/core/crew_contract_transaction.rb +29 -0
- data/app/models/ecom/core/crew_id_card.rb +36 -0
- data/app/models/ecom/core/inspection_checklist.rb +6 -0
- data/app/models/ecom/core/lookahead_plan.rb +41 -0
- data/app/models/ecom/core/lookahead_plan_history.rb +16 -0
- data/app/models/ecom/core/lookahead_plan_review_time.rb +29 -0
- data/app/models/ecom/core/lookahead_plan_task_progress.rb +22 -0
- data/app/models/ecom/core/material.rb +6 -0
- data/app/models/ecom/core/material_identity.rb +21 -0
- data/app/models/ecom/core/material_item.rb +18 -0
- data/app/models/ecom/core/material_sub_type.rb +20 -0
- data/app/models/ecom/core/measurement_unit.rb +4 -14
- data/app/models/ecom/core/overtime_sheet.rb +13 -15
- data/app/models/ecom/core/payroll.rb +3 -3
- data/app/models/ecom/core/project.rb +0 -3
- data/app/models/ecom/core/project_template.rb +13 -0
- data/app/models/ecom/core/project_work_item_template.rb +9 -0
- data/app/models/ecom/core/resource_requisition.rb +21 -0
- data/app/models/ecom/core/resource_requisition_item.rb +45 -0
- data/app/models/ecom/core/{project_crew.rb → site.rb} +8 -4
- data/app/models/ecom/core/site_crew.rb +27 -0
- data/app/models/ecom/core/stakeholder.rb +1 -1
- data/app/models/ecom/core/task.rb +22 -9
- data/app/models/ecom/core/task_attachment.rb +11 -0
- data/app/models/ecom/core/task_inspection_checklist.rb +18 -0
- data/app/models/ecom/core/task_template.rb +20 -90
- data/app/models/ecom/core/task_template_inspection_checklist.rb +8 -0
- data/app/models/ecom/core/unit_cost.rb +27 -0
- data/app/models/ecom/core/unit_of_measure.rb +8 -0
- data/app/models/ecom/core/work_item_resource_requirement_template.rb +18 -0
- data/app/models/ecom/core/work_package.rb +3 -0
- data/app/models/ecom/core/work_product.rb +2 -18
- data/app/models/ecom/core/work_product_template.rb +2 -2
- data/app/serializers/ecom/core/unit_cost_serializer.rb +21 -0
- data/app/services/ecom/core/crew_contract_transaction_service.rb +89 -0
- data/app/services/ecom/core/menu_service.rb +2 -2
- data/app/services/ecom/core/site_crew_service.rb +44 -0
- data/app/uploaders/ecom/core/photo_uploader.rb +5 -1
- data/app/uploaders/ecom/core/task_attachment_uploader.rb +11 -0
- data/config/initializers/carrierwave.rb +8 -0
- data/config/routes.rb +4 -2
- data/db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb +11 -0
- data/db/migrate/20191119012030_create_ecom_core_task_templates.rb +10 -8
- data/db/migrate/20191119013236_create_ecom_core_work_product_templates.rb +0 -15
- data/db/migrate/20191119021405_create_ecom_core_project_templates.rb +15 -0
- data/db/migrate/20191119034319_create_ecom_core_project_work_item_templates.rb +20 -0
- data/db/migrate/20191201145849_create_ecom_core_sites.rb +16 -0
- data/db/migrate/20191202222210_create_ecom_core_work_packages.rb +12 -0
- data/db/migrate/20191202235434_create_ecom_core_work_products.rb +2 -17
- data/db/migrate/20191207103730_create_ecom_core_lookahead_plans.rb +19 -0
- data/db/migrate/20191207103735_create_ecom_core_tasks.rb +15 -10
- data/db/migrate/20191225140433_create_ecom_core_attendance_sheets.rb +4 -4
- data/db/migrate/20200126081005_create_ecom_core_payrolls.rb +3 -3
- data/db/migrate/20200410090701_create_ecom_core_overtime_sheets.rb +4 -4
- data/db/migrate/20200616044231_create_ecom_core_material_sub_types.rb +14 -0
- data/db/migrate/20200616051902_create_ecom_core_material_identities.rb +17 -0
- data/db/migrate/20200618105233_create_ecom_core_material_items.rb +16 -0
- data/db/migrate/20200813165555_create_ecom_core_available_unit_of_measurements.rb +16 -0
- data/db/migrate/20200901085227_create_ecom_core_crew_contracts.rb +7 -1
- data/db/migrate/20201013072924_create_ecom_core_crew_contract_transactions.rb +16 -0
- data/db/migrate/20201013090609_create_ecom_core_site_crews.rb.rb +22 -0
- data/db/migrate/20201013094100_create_ecom_core_crew_id_cards.rb +16 -0
- data/db/migrate/20201113050953_create_ecom_core_task_inspection_checklists.rb +22 -0
- data/db/migrate/20201113094302_create_ecom_core_task_template_inspection_checklists.rb +17 -0
- data/db/migrate/20201121064916_create_ecom_core_unit_costs.rb +30 -0
- data/db/migrate/20201122123227_create_ecom_core_lookahead_plan_backlogs.rb +18 -0
- data/db/migrate/20201122170645_create_ecom_core_lookahead_plan_histories.rb +21 -0
- data/db/migrate/20201122170724_create_ecom_core_lookahead_plan_task_progresses.rb +21 -0
- data/db/migrate/20201123134917_create_ecom_core_task_attachments.rb +15 -0
- data/db/migrate/20201124171642_create_ecom_core_lookahead_plan_review_times.rb +17 -0
- data/db/migrate/20201125191158_create_ecom_core_work_item_resource_requirement_templates.rb +31 -0
- data/db/migrate/20201126191334_create_ecom_core_resource_requisitions.rb +23 -0
- data/db/migrate/20201126191349_create_ecom_core_resource_requisition_items.rb +33 -0
- data/lib/ecom/core/version.rb +1 -1
- data/spec/factories/ecom/core/attendance_sheets.rb +1 -1
- data/spec/factories/ecom/core/available_unit_of_measurements.rb +6 -0
- data/spec/factories/ecom/core/crew_contract_transactions.rb +8 -0
- data/spec/factories/ecom/core/crew_contracts.rb +12 -0
- data/spec/factories/ecom/core/crew_id_cards.rb +8 -0
- data/spec/factories/{dimension_elements.rb → ecom/core/dimension_elements.rb} +0 -0
- data/spec/factories/ecom/core/inspection_checklists.rb +5 -0
- data/spec/factories/ecom/core/lookahead_plan_histories.rb +9 -0
- data/spec/factories/ecom/core/lookahead_plan_review_times.rb +8 -0
- data/spec/factories/ecom/core/lookahead_plan_task_progresses.rb +9 -0
- data/spec/factories/ecom/core/lookahead_plans.rb +10 -0
- data/spec/factories/ecom/core/material_identities.rb +6 -0
- data/spec/factories/ecom/core/material_items.rb +6 -0
- data/spec/factories/ecom/core/material_sub_types.rb +6 -0
- data/spec/factories/ecom/core/materials.rb +5 -0
- data/spec/factories/{measurement_units.rb → ecom/core/measurement_units.rb} +6 -0
- data/spec/factories/ecom/core/overtime_sheets.rb +1 -1
- data/spec/factories/ecom/core/payrolls.rb +1 -1
- data/spec/factories/ecom/core/project_templates.rb +8 -0
- data/spec/factories/ecom/core/project_work_item_templates.rb +7 -0
- data/spec/factories/ecom/core/resource_requisition_items.rb +12 -0
- data/spec/factories/ecom/core/resource_requisitions.rb +9 -0
- data/spec/factories/ecom/core/site_crews.rb +10 -0
- data/spec/factories/ecom/core/sites.rb +8 -0
- data/spec/factories/ecom/core/task_attachments.rb +8 -0
- data/spec/factories/ecom/core/task_inspection_checklists.rb +11 -0
- data/spec/factories/ecom/core/task_template_inspection_checklists.rb +7 -0
- data/spec/factories/ecom/core/task_templates.rb +11 -6
- data/spec/factories/ecom/core/tasks.rb +9 -3
- data/spec/factories/ecom/core/unit_costs.rb +13 -0
- data/spec/factories/ecom/core/unit_of_measures.rb +7 -0
- data/spec/factories/ecom/core/work_item_resource_requirement_templates.rb +10 -0
- data/spec/factories/ecom/core/work_packages.rb +6 -0
- data/spec/factories/ecom/core/work_product_templates.rb +0 -1
- data/spec/factories/ecom/core/work_products.rb +1 -7
- metadata +97 -23
- data/app/controllers/concerns/ecom/core/filterable.rb +0 -14
- data/app/models/ecom/core/plan.rb +0 -18
- data/app/models/ecom/core/takeoff_calculator.rb +0 -115
- data/app/models/ecom/core/task_step.rb +0 -85
- data/app/models/ecom/core/task_step_dependency.rb +0 -10
- data/app/services/ecom/core/project_crew_service.rb +0 -39
- data/db/migrate/20191119012027_create_ecom_core_takeoff_calculators.rb +0 -11
- data/db/migrate/20191207103730_create_ecom_core_plans.rb +0 -12
- data/db/migrate/20191225121850_create_ecom_core_project_crews.rb +0 -19
- data/db/migrate/20200820123719_create_ecom_core_task_steps.rb +0 -17
- data/db/migrate/20200821130934_create_ecom_core_task_step_dependencies.rb +0 -16
- data/spec/factories/ecom/core/plans.rb +0 -8
- data/spec/factories/ecom/core/project_crews.rb +0 -9
- data/spec/factories/ecom/core/takeoff_calculators.rb +0 -18
- data/spec/factories/ecom/core/task_step_dependencies.rb +0 -6
- data/spec/factories/ecom/core/task_steps.rb +0 -8
@@ -0,0 +1,21 @@
|
|
1
|
+
class CreateEcomCoreLookaheadPlanTaskProgresses < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_lookahead_plan_task_progresses do |t|
|
4
|
+
|
5
|
+
t.references :lookahead_plan,
|
6
|
+
null: false,
|
7
|
+
index: { name: 'lptp_on_lp_indx' },
|
8
|
+
foreign_key: { to_table: :ecom_core_lookahead_plans }
|
9
|
+
|
10
|
+
t.references :task,
|
11
|
+
null: false,
|
12
|
+
index: { name: 'lptp_on_tas_indx' },
|
13
|
+
foreign_key: { to_table: :ecom_core_tasks }
|
14
|
+
t.date :started_on, null: false
|
15
|
+
t.date :ended_on, null: false
|
16
|
+
t.integer :lookahead_plan_revision_number, null: false
|
17
|
+
|
18
|
+
t.timestamps
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateEcomCoreTaskAttachments < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_task_attachments do |t|
|
4
|
+
t.string :title, null: false
|
5
|
+
t.string :description
|
6
|
+
t.string :file
|
7
|
+
t.references :task,
|
8
|
+
null: false,
|
9
|
+
index: { name: 'ta_on_task_indx' },
|
10
|
+
foreign_key: { to_table: :ecom_core_tasks }
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateEcomCoreLookaheadPlanReviewTimes < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_lookahead_plan_review_times do |t|
|
4
|
+
|
5
|
+
t.references :lookahead_plan,
|
6
|
+
null: false,
|
7
|
+
index: { name: 'lprt_on_lp_indx' },
|
8
|
+
foreign_key: { to_table: :ecom_core_lookahead_plans }
|
9
|
+
|
10
|
+
t.datetime :review_time, null: false
|
11
|
+
t.string :status
|
12
|
+
t.integer :lookahead_plan_revision_number
|
13
|
+
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class CreateEcomCoreWorkItemResourceRequirementTemplates < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_work_item_resource_requirement_templates do |t|
|
4
|
+
t.references :project_work_item_template,
|
5
|
+
null: true,
|
6
|
+
index: { name: 'wirrl_on_pwit_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_project_work_item_templates }
|
8
|
+
|
9
|
+
t.references :resource_type,
|
10
|
+
null: true,
|
11
|
+
index: { name: 'wirrl_on_rt_indx' },
|
12
|
+
foreign_key: { to_table: :ecom_core_resource_types }
|
13
|
+
|
14
|
+
t.float :work_item_quantity, null: false
|
15
|
+
|
16
|
+
t.references :work_item_quantity_measurement_unit,
|
17
|
+
null: true,
|
18
|
+
index: { name: 'wirrl_on_wiqmu_indx' },
|
19
|
+
foreign_key: { to_table: :ecom_core_measurement_units }
|
20
|
+
|
21
|
+
t.float :resource_quantity, null: false
|
22
|
+
|
23
|
+
t.references :resource_quantity_measurement_unit,
|
24
|
+
null: true,
|
25
|
+
index: { name: 'wirrl_on_rqmu_indx' },
|
26
|
+
foreign_key: { to_table: :ecom_core_measurement_units }
|
27
|
+
|
28
|
+
t.timestamps
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class CreateEcomCoreResourceRequisitions < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_resource_requisitions do |t|
|
4
|
+
t.references :lookahead_plan,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'rr_on_lp_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_lookahead_plans }
|
8
|
+
|
9
|
+
t.references :reviewed_by,
|
10
|
+
null: true,
|
11
|
+
index: { name: 'rr_on_rb_indx' },
|
12
|
+
foreign_key: { to_table: :ecom_core_users }
|
13
|
+
t.references :approved_by,
|
14
|
+
null: true,
|
15
|
+
index: { name: 'rr_on_ab_indx' },
|
16
|
+
foreign_key: { to_table: :ecom_core_users }
|
17
|
+
t.string :delivery_point, null:false
|
18
|
+
t.string :status, null: false, default: 'Draft'
|
19
|
+
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class CreateEcomCoreResourceRequisitionItems < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
create_table :ecom_core_resource_requisition_items do |t|
|
4
|
+
t.references :resource_requisition,
|
5
|
+
null: false,
|
6
|
+
index: { name: 'rri_on_rr_indx' },
|
7
|
+
foreign_key: { to_table: :ecom_core_resource_requisitions }
|
8
|
+
|
9
|
+
t.references :resource_type,
|
10
|
+
null: false,
|
11
|
+
index: { name: 'rri_on_rt_indx' },
|
12
|
+
foreign_key: { to_table: :ecom_core_resource_types }
|
13
|
+
|
14
|
+
t.float :requested_quantity, null: false
|
15
|
+
|
16
|
+
t.references :requested_quantity_measurement_unit,
|
17
|
+
null: false,
|
18
|
+
index: { name: 'rri_on_rqmu_indx' },
|
19
|
+
foreign_key: { to_table: :ecom_core_measurement_units }
|
20
|
+
|
21
|
+
t.float :awaiting_quantity, null: false
|
22
|
+
|
23
|
+
t.references :awaiting_quantity_measurement_unit,
|
24
|
+
null: false,
|
25
|
+
index: { name: 'rri_on_aqmu_indx' },
|
26
|
+
foreign_key: { to_table: :ecom_core_measurement_units }
|
27
|
+
t.string :status, null: false, default: 'Pending'
|
28
|
+
t.datetime :due_date, null: false
|
29
|
+
|
30
|
+
t.timestamps
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/ecom/core/version.rb
CHANGED
@@ -0,0 +1,8 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :crew_contract_transaction, class: Ecom::Core::CrewContractTransaction do
|
3
|
+
association :crew_contract
|
4
|
+
status { Ecom::Core::CrewContractTransaction::STATUSES.sample }
|
5
|
+
transaction_type { Ecom::Core::CrewContractTransaction::TRANSACTION_TYPES.sample }
|
6
|
+
effective_date { Date.today }
|
7
|
+
end
|
8
|
+
end
|
@@ -9,5 +9,17 @@ FactoryBot.define do
|
|
9
9
|
contract_signed { false }
|
10
10
|
date_contract_signed { Date.today }
|
11
11
|
association :crew
|
12
|
+
association :crew_type
|
13
|
+
wage { 75.0 }
|
14
|
+
wage_in_words { 'Seventy five birr only' }
|
15
|
+
status { :draft }
|
16
|
+
|
17
|
+
factory :active_crew_contract do
|
18
|
+
status { :in_effect }
|
19
|
+
end
|
20
|
+
|
21
|
+
factory :void_crew_contract do
|
22
|
+
status { :void }
|
23
|
+
end
|
12
24
|
end
|
13
25
|
end
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :lookahead_plan_task_progress, class: Ecom::Core::LookaheadPlanTaskProgress do
|
3
|
+
association :lookahead_plan
|
4
|
+
association :task
|
5
|
+
started_on { Time.now }
|
6
|
+
ended_on { Time.now + 2.day }
|
7
|
+
lookahead_plan_revision_number { 1 }
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :lookahead_plan, class: Ecom::Core::LookaheadPlan do
|
3
|
+
name { FFaker::Name.name }
|
4
|
+
start_date { Time.now }
|
5
|
+
end_date { (Time.now + 1.day).to_s }
|
6
|
+
status { :new }
|
7
|
+
revision_number { 1 }
|
8
|
+
association :prepared_by, factory: :user
|
9
|
+
end
|
10
|
+
end
|
@@ -6,5 +6,11 @@ FactoryBot.define do
|
|
6
6
|
is_si_unit { true }
|
7
7
|
conversion_factor { 1 }
|
8
8
|
system_of_measurement { Ecom::Core::MeasurementUnit::METRIC }
|
9
|
+
|
10
|
+
factory :non_si_measurement_unit do
|
11
|
+
name { 'kilometer' }
|
12
|
+
is_si_unit { false }
|
13
|
+
conversion_factor { 0.001 }
|
14
|
+
end
|
9
15
|
end
|
10
16
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :resource_requisition_item, class: Ecom::Core::ResourceRequisitionItem do
|
3
|
+
association :resource_requisition
|
4
|
+
association :resource_type
|
5
|
+
requested_quantity { 2000 }
|
6
|
+
association :requested_quantity_measurement_unit, factory: :measurement_unit
|
7
|
+
association :awaiting_quantity_measurement_unit, factory: :non_si_measurement_unit
|
8
|
+
awaiting_quantity { 1 }
|
9
|
+
due_date { Time.now + 1.week }
|
10
|
+
status { 'Pending' }
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :resource_requisition, class: Ecom::Core::ResourceRequisition do
|
3
|
+
association :lookahead_plan
|
4
|
+
association :reviewed_by, factory: :user
|
5
|
+
association :approved_by, factory: :user
|
6
|
+
status { 'Draft' }
|
7
|
+
delivery_point { FFaker::Name.name }
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :site_crew, class: Ecom::Core::SiteCrew do
|
3
|
+
association :crew
|
4
|
+
association :site
|
5
|
+
site_crew_type { Ecom::Core::SiteCrew::SITE_CREW_TYPES.sample }
|
6
|
+
start_date { Time.now }
|
7
|
+
end_date { Time.now + 1.month }
|
8
|
+
status { 'Active' }
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :task_inspection_checklist, class: Ecom::Core::TaskInspectionChecklist do
|
3
|
+
name { FFaker::Name.name }
|
4
|
+
date_of_inspection { Date.today }
|
5
|
+
association :inspected_by, factory: :user
|
6
|
+
status { Ecom::Core::TaskInspectionChecklist::NOT_INSPECTED }
|
7
|
+
remark { FFaker::Name.name }
|
8
|
+
recommendation { FFaker::Name.name }
|
9
|
+
association :task
|
10
|
+
end
|
11
|
+
end
|
@@ -6,13 +6,18 @@ FactoryBot.define do
|
|
6
6
|
name { FFaker::Name.name }
|
7
7
|
description { FFaker::Name.name }
|
8
8
|
association :task_template_type
|
9
|
+
association :unit_of_measure
|
9
10
|
has_takeoff_fields { false }
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
takeoff_fields { [{ name: 'length', label: 'Length' }] }
|
12
|
+
percentage_contribution { nil }
|
13
|
+
task_sequence { 1 }
|
14
|
+
has_inspection { false }
|
15
|
+
discipline { false }
|
16
|
+
task_completion_detail do
|
17
|
+
[
|
18
|
+
{ name: 'length', label: 'Length' },
|
19
|
+
{ name: 'width', label: 'Width' }
|
20
|
+
]
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|