ecom_core 1.2.32 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/ecom/core/{project_crews_controller.rb → site_crews_controller.rb} +5 -4
  3. data/app/controllers/ecom/core/unit_costs_controller.rb +29 -0
  4. data/app/models/ecom/core/attendance_sheet.rb +19 -19
  5. data/app/models/ecom/core/available_unit_of_measurement.rb +10 -0
  6. data/app/models/ecom/core/crew.rb +6 -3
  7. data/app/models/ecom/core/crew_contract.rb +41 -1
  8. data/app/models/ecom/core/crew_contract_transaction.rb +29 -0
  9. data/app/models/ecom/core/crew_id_card.rb +36 -0
  10. data/app/models/ecom/core/crew_time.rb +1 -1
  11. data/app/models/ecom/core/inspection_checklist.rb +6 -0
  12. data/app/models/ecom/core/lookahead_plan.rb +41 -0
  13. data/app/models/ecom/core/lookahead_plan_history.rb +16 -0
  14. data/app/models/ecom/core/lookahead_plan_review_time.rb +29 -0
  15. data/app/models/ecom/core/lookahead_plan_task_progress.rb +22 -0
  16. data/app/models/ecom/core/material.rb +6 -0
  17. data/app/models/ecom/core/material_identity.rb +21 -0
  18. data/app/models/ecom/core/material_item.rb +18 -0
  19. data/app/models/ecom/core/material_sub_type.rb +20 -0
  20. data/app/models/ecom/core/measurement_unit.rb +4 -14
  21. data/app/models/ecom/core/overtime_sheet.rb +16 -16
  22. data/app/models/ecom/core/payroll.rb +3 -3
  23. data/app/models/ecom/core/project.rb +0 -3
  24. data/app/models/ecom/core/project_template.rb +13 -0
  25. data/app/models/ecom/core/project_work_item_template.rb +9 -0
  26. data/app/models/ecom/core/resource_requisition.rb +21 -0
  27. data/app/models/ecom/core/resource_requisition_item.rb +45 -0
  28. data/app/models/ecom/core/{project_crew.rb → site.rb} +8 -4
  29. data/app/models/ecom/core/site_crew.rb +27 -0
  30. data/app/models/ecom/core/stakeholder.rb +1 -1
  31. data/app/models/ecom/core/task.rb +22 -9
  32. data/app/models/ecom/core/task_attachment.rb +11 -0
  33. data/app/models/ecom/core/task_inspection_checklist.rb +18 -0
  34. data/app/models/ecom/core/task_template.rb +20 -90
  35. data/app/models/ecom/core/task_template_inspection_checklist.rb +8 -0
  36. data/app/models/ecom/core/unit_cost.rb +27 -0
  37. data/app/models/ecom/core/unit_of_measure.rb +8 -0
  38. data/app/models/ecom/core/work_item_resource_requirement_template.rb +18 -0
  39. data/app/models/ecom/core/work_package.rb +3 -0
  40. data/app/models/ecom/core/work_product.rb +2 -18
  41. data/app/models/ecom/core/work_product_template.rb +2 -2
  42. data/app/serializers/ecom/core/unit_cost_serializer.rb +21 -0
  43. data/app/services/ecom/core/crew_contract_transaction_service.rb +89 -0
  44. data/app/services/ecom/core/site_crew_service.rb +44 -0
  45. data/app/uploaders/ecom/core/photo_uploader.rb +13 -2
  46. data/app/uploaders/ecom/core/task_attachment_uploader.rb +11 -0
  47. data/config/initializers/carrierwave.rb +9 -0
  48. data/config/routes.rb +4 -2
  49. data/db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb +11 -0
  50. data/db/migrate/20191119012030_create_ecom_core_task_templates.rb +10 -8
  51. data/db/migrate/20191119013236_create_ecom_core_work_product_templates.rb +0 -15
  52. data/db/migrate/20191119021405_create_ecom_core_project_templates.rb +15 -0
  53. data/db/migrate/20191119034319_create_ecom_core_project_work_item_templates.rb +20 -0
  54. data/db/migrate/20191201145849_create_ecom_core_sites.rb +16 -0
  55. data/db/migrate/20191202222210_create_ecom_core_work_packages.rb +12 -0
  56. data/db/migrate/20191202235434_create_ecom_core_work_products.rb +2 -17
  57. data/db/migrate/20191207103730_create_ecom_core_lookahead_plans.rb +19 -0
  58. data/db/migrate/20191207103735_create_ecom_core_tasks.rb +15 -10
  59. data/db/migrate/20191225140433_create_ecom_core_attendance_sheets.rb +4 -4
  60. data/db/migrate/20200126081005_create_ecom_core_payrolls.rb +3 -3
  61. data/db/migrate/20200410090701_create_ecom_core_overtime_sheets.rb +4 -4
  62. data/db/migrate/20200616044231_create_ecom_core_material_sub_types.rb +14 -0
  63. data/db/migrate/20200616051902_create_ecom_core_material_identities.rb +17 -0
  64. data/db/migrate/20200618105233_create_ecom_core_material_items.rb +16 -0
  65. data/db/migrate/20200813165555_create_ecom_core_available_unit_of_measurements.rb +16 -0
  66. data/db/migrate/20200901085227_create_ecom_core_crew_contracts.rb +7 -1
  67. data/db/migrate/20200919085613_create_ecom_core_job_cards.rb +1 -0
  68. data/db/migrate/20201013072924_create_ecom_core_crew_contract_transactions.rb +16 -0
  69. data/db/migrate/20201013090609_create_ecom_core_site_crews.rb.rb +22 -0
  70. data/db/migrate/20201013094100_create_ecom_core_crew_id_cards.rb +16 -0
  71. data/db/migrate/20201113050953_create_ecom_core_task_inspection_checklists.rb +22 -0
  72. data/db/migrate/20201113094302_create_ecom_core_task_template_inspection_checklists.rb +17 -0
  73. data/db/migrate/20201121064916_create_ecom_core_unit_costs.rb +30 -0
  74. data/db/migrate/20201122123227_create_ecom_core_lookahead_plan_backlogs.rb +18 -0
  75. data/db/migrate/20201122170645_create_ecom_core_lookahead_plan_histories.rb +21 -0
  76. data/db/migrate/20201122170724_create_ecom_core_lookahead_plan_task_progresses.rb +21 -0
  77. data/db/migrate/20201123134917_create_ecom_core_task_attachments.rb +15 -0
  78. data/db/migrate/20201124171642_create_ecom_core_lookahead_plan_review_times.rb +17 -0
  79. data/db/migrate/20201125191158_create_ecom_core_work_item_resource_requirement_templates.rb +31 -0
  80. data/db/migrate/20201126191334_create_ecom_core_resource_requisitions.rb +23 -0
  81. data/db/migrate/20201126191349_create_ecom_core_resource_requisition_items.rb +33 -0
  82. data/lib/ecom/core/version.rb +1 -1
  83. data/spec/factories/ecom/core/attendance_sheets.rb +1 -1
  84. data/spec/factories/ecom/core/available_unit_of_measurements.rb +6 -0
  85. data/spec/factories/ecom/core/crew_contract_transactions.rb +8 -0
  86. data/spec/factories/ecom/core/crew_contracts.rb +12 -0
  87. data/spec/factories/ecom/core/crew_id_cards.rb +8 -0
  88. data/spec/factories/{dimension_elements.rb → ecom/core/dimension_elements.rb} +0 -0
  89. data/spec/factories/ecom/core/inspection_checklists.rb +5 -0
  90. data/spec/factories/ecom/core/lookahead_plan_histories.rb +9 -0
  91. data/spec/factories/ecom/core/lookahead_plan_review_times.rb +8 -0
  92. data/spec/factories/ecom/core/lookahead_plan_task_progresses.rb +9 -0
  93. data/spec/factories/ecom/core/lookahead_plans.rb +10 -0
  94. data/spec/factories/ecom/core/material_identities.rb +6 -0
  95. data/spec/factories/ecom/core/material_items.rb +6 -0
  96. data/spec/factories/ecom/core/material_sub_types.rb +6 -0
  97. data/spec/factories/ecom/core/materials.rb +5 -0
  98. data/spec/factories/{measurement_units.rb → ecom/core/measurement_units.rb} +6 -0
  99. data/spec/factories/ecom/core/overtime_sheets.rb +1 -1
  100. data/spec/factories/ecom/core/payrolls.rb +1 -1
  101. data/spec/factories/ecom/core/project_templates.rb +8 -0
  102. data/spec/factories/ecom/core/project_work_item_templates.rb +7 -0
  103. data/spec/factories/ecom/core/resource_requisition_items.rb +12 -0
  104. data/spec/factories/ecom/core/resource_requisitions.rb +9 -0
  105. data/spec/factories/ecom/core/site_crews.rb +10 -0
  106. data/spec/factories/ecom/core/sites.rb +8 -0
  107. data/spec/factories/ecom/core/task_attachments.rb +8 -0
  108. data/spec/factories/ecom/core/task_inspection_checklists.rb +11 -0
  109. data/spec/factories/ecom/core/task_template_inspection_checklists.rb +7 -0
  110. data/spec/factories/ecom/core/task_templates.rb +11 -6
  111. data/spec/factories/ecom/core/tasks.rb +9 -3
  112. data/spec/factories/ecom/core/unit_costs.rb +13 -0
  113. data/spec/factories/ecom/core/unit_of_measures.rb +7 -0
  114. data/spec/factories/ecom/core/work_item_resource_requirement_templates.rb +10 -0
  115. data/spec/factories/ecom/core/work_packages.rb +6 -0
  116. data/spec/factories/ecom/core/work_product_templates.rb +0 -1
  117. data/spec/factories/ecom/core/work_products.rb +1 -7
  118. metadata +130 -23
  119. data/app/controllers/concerns/ecom/core/filterable.rb +0 -14
  120. data/app/models/ecom/core/plan.rb +0 -18
  121. data/app/models/ecom/core/takeoff_calculator.rb +0 -115
  122. data/app/models/ecom/core/task_step.rb +0 -85
  123. data/app/models/ecom/core/task_step_dependency.rb +0 -10
  124. data/app/services/ecom/core/project_crew_service.rb +0 -39
  125. data/db/migrate/20191119012027_create_ecom_core_takeoff_calculators.rb +0 -11
  126. data/db/migrate/20191207103730_create_ecom_core_plans.rb +0 -12
  127. data/db/migrate/20191225121850_create_ecom_core_project_crews.rb +0 -19
  128. data/db/migrate/20200820123719_create_ecom_core_task_steps.rb +0 -17
  129. data/db/migrate/20200821130934_create_ecom_core_task_step_dependencies.rb +0 -16
  130. data/db/migrate/20200922044959_add_costs_approved_to_job_card.rb +0 -5
  131. data/spec/factories/ecom/core/plans.rb +0 -8
  132. data/spec/factories/ecom/core/project_crews.rb +0 -9
  133. data/spec/factories/ecom/core/takeoff_calculators.rb +0 -18
  134. data/spec/factories/ecom/core/task_step_dependencies.rb +0 -6
  135. data/spec/factories/ecom/core/task_steps.rb +0 -8
@@ -0,0 +1,9 @@
1
+ CarrierWave.configure do |config|
2
+ config.fog_provider = 'fog/google'
3
+ config.fog_credentials = {
4
+ provider: 'Google',
5
+ google_storage_access_key_id: ENV["GOOGLE_STORAGE_ACCESS_KEY"],
6
+ google_storage_secret_access_key: ENV["GOOGLE_STORAGE_SECRETE_KEY"]
7
+ }
8
+ config.fog_directory = ENV["GOOGLE_STORAGE_BUCKET_NAME"]
9
+ end
@@ -15,6 +15,8 @@ Ecom::Core::Engine.routes.draw do
15
15
  resources :projects
16
16
  resources :companies
17
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
18
+ get '/sites/:id/crew', controller: :site_crews, action: :index
19
+ post '/site_crews', controller: :site_crews, action: :update
20
+
21
+ resources :unit_costs, only: %i[index create]
20
22
  end
@@ -0,0 +1,11 @@
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
@@ -8,16 +8,18 @@ class CreateEcomCoreTaskTemplates < ActiveRecord::Migration[6.0]
8
8
  null: false,
9
9
  index: { name: 'tt_on_ttt_indx' },
10
10
  foreign_key: { to_table: :ecom_core_task_template_types }
11
- t.references :takeoff_calculator,
12
- null: true,
13
- index: { name: 'tt_on_tc_indx' },
14
- foreign_key: { to_table: :ecom_core_takeoff_calculators }
11
+ t.references :unit_of_measure,
12
+ null: false,
13
+ index: { name: 'tt_on_uof_indx' },
14
+ foreign_key: { to_table: :ecom_core_unit_of_measures }
15
15
  t.string :ancestry, index: true
16
16
  t.boolean :has_takeoff_fields, null:false, default: false
17
- t.jsonb :fields
18
- t.jsonb :takeoff_fields
19
- t.jsonb :task_steps
20
- t.jsonb :milestones
17
+ t.jsonb :takeoff_fields, null: false, default: {}
18
+ t.integer :percentage_contribution
19
+ t.integer :task_sequence
20
+ t.boolean :has_inspection, null: false, default: false
21
+ t.boolean :discipline, null: false, default: false
22
+ t.jsonb :task_completion_detail, null: false, default: {}
21
23
 
22
24
  t.timestamps
23
25
  end
@@ -4,23 +4,8 @@ class CreateEcomCoreWorkProductTemplates < ActiveRecord::Migration[6.0]
4
4
  t.string :code, null: false, unique: true
5
5
  t.string :name, null: false, unique: true
6
6
  t.string :description
7
- t.references :task_template_type,
8
- null: false,
9
- index: { name: 'wpt_on_ttt_indx' },
10
- foreign_key: { to_table: :ecom_core_task_template_types }
11
7
 
12
8
  t.timestamps
13
9
  end
14
-
15
- create_table :ecom_core_task_templates_work_product_templates do |t|
16
- t.references :task_template,
17
- null: false,
18
- index: { name: 'ttwpt_on_tt_indx' },
19
- foreign_key: { to_table: :ecom_core_task_templates }
20
- t.references :work_product_template,
21
- null: false,
22
- index: { name: 'ttwpt_on_wpt_indx' },
23
- foreign_key: { to_table: :ecom_core_work_product_templates }
24
- end
25
10
  end
26
11
  end
@@ -0,0 +1,15 @@
1
+ class CreateEcomCoreProjectTemplates < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_project_templates do |t|
4
+ t.string :code, unique: true
5
+ t.string :name, null: false
6
+ t.string :description
7
+ t.references :task_template_type,
8
+ null: false,
9
+ index: { name: 'pt_on_ttt_indx' },
10
+ foreign_key: { to_table: :ecom_core_task_template_types }
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ class CreateEcomCoreProjectWorkItemTemplates < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_project_work_item_templates do |t|
4
+ t.references :task_template,
5
+ null: false,
6
+ index: { name: 'pwit_on_tt_indx' },
7
+ foreign_key: { to_table: :ecom_core_task_templates }
8
+ t.references :work_product_template,
9
+ null: false,
10
+ index: { name: 'pwit_on_wpt_indx' },
11
+ foreign_key: { to_table: :ecom_core_work_product_templates }
12
+ t.references :project_template,
13
+ null: false,
14
+ index: { name: 'pwit_on_pt_indx' },
15
+ foreign_key: { to_table: :ecom_core_project_templates }
16
+
17
+ t.timestamps
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ class CreateEcomCoreSites < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_sites do |t|
4
+ t.string :name, null: false
5
+ t.string :address, null: false
6
+ t.string :description
7
+ t.references :project,
8
+ null: false,
9
+ index: { name: 'site_on_project_indx' },
10
+ foreign_key: { to_table: :ecom_core_projects }
11
+ t.string :status, null: false, default: 'Active'
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -6,6 +6,18 @@ class CreateEcomCoreWorkPackages < ActiveRecord::Migration[6.0]
6
6
  t.string :description
7
7
  t.date :start_date
8
8
  t.date :end_date
9
+ t.string :location
10
+ t.decimal :budget, precision: 10, scale: 2
11
+ t.string :resource_required
12
+ t.string :concerns
13
+ t.references :site_engineer,
14
+ null: true,
15
+ index: { name: 'wp_on_si_indx' },
16
+ foreign_key: { to_table: :ecom_core_users }
17
+ t.references :project_manager,
18
+ null: true,
19
+ index: { name: 'wp_on_pm_indx' },
20
+ foreign_key: { to_table: :ecom_core_users }
9
21
  t.references :project,
10
22
  null: false,
11
23
  index: { name: 'wp_on_project_indx' },
@@ -3,7 +3,7 @@ class CreateEcomCoreWorkProducts < ActiveRecord::Migration[6.0]
3
3
  create_table :ecom_core_work_products do |t|
4
4
  t.string :name, null: false
5
5
  t.string :description
6
- t.string :design_reference_no, unique: true
6
+ t.string :design_reference, unique: true
7
7
  t.references :product_group,
8
8
  null: true,
9
9
  index: { name: 'wp_on_pg_indx' },
@@ -16,28 +16,13 @@ class CreateEcomCoreWorkProducts < ActiveRecord::Migration[6.0]
16
16
  null: false,
17
17
  index: { name: 'projects_on_wp_indx' },
18
18
  foreign_key: { to_table: :ecom_core_projects }
19
- t.string :status, default: 'New'
20
- t.integer :percent_completed, null: false, default: 0
21
19
  t.string :remark
22
- t.references :approver,
23
- null: true,
24
- index: false,
25
- foreign_key: { to_table: :ecom_core_users }
26
- t.references :supervisor,
27
- null: true,
28
- index: false,
29
- foreign_key: { to_table: :ecom_core_users }
30
- t.references :quality_controller,
31
- null: true,
32
- index: false,
33
- foreign_key: { to_table: :ecom_core_users }
34
20
  t.datetime :start_date
35
21
  t.datetime :completion_date
36
- t.boolean :tasks_generated, null: false, default: false
37
22
 
38
23
  t.timestamps
39
24
  end
40
25
 
41
- add_index :ecom_core_work_products, %i[design_reference_no project_id], unique: true, name: 'wp_on_drpi_indx'
26
+ add_index :ecom_core_work_products, %i[design_reference project_id], unique: true, name: 'wp_on_dr_pi_indx'
42
27
  end
43
28
  end
@@ -0,0 +1,19 @@
1
+ class CreateEcomCoreLookaheadPlans < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_lookahead_plans do |t|
4
+ t.string :name, null: false
5
+ t.date :start_date, null: false
6
+ t.date :end_date, null: false
7
+ t.string :status, null: false, default: :new
8
+ t.integer :revision_number, default: 0
9
+ t.integer :lead_time, default: 336 # default lead time 2 weeks( 336 hours )
10
+
11
+ t.references :prepared_by,
12
+ null: false,
13
+ index: { name: 'lprt_on_pb_indx' },
14
+ foreign_key: { to_table: :ecom_core_users }
15
+
16
+ t.timestamps
17
+ end
18
+ end
19
+ end
@@ -9,7 +9,16 @@ class CreateEcomCoreTasks < ActiveRecord::Migration[6.0]
9
9
  t.date :end_date
10
10
  t.string :status, null: false, default: :new
11
11
  t.integer :percent_completed, null: false, default: 0
12
+ t.float :quantity
12
13
  t.string :remark
14
+ t.date :inspection_submission_date
15
+ t.string :inspection_status, null: false, default: 'Not Inspected'
16
+ t.boolean :change_order, null: false, default: false
17
+ t.integer :percentage_contribution
18
+ t.references :change_order_for,
19
+ null: true,
20
+ index: { name: 'tasks_on_cot_indx' },
21
+ foreign_key: { to_table: :ecom_core_tasks }
13
22
  t.references :work_package,
14
23
  null: true,
15
24
  index: { name: 'tasks_on_work_package_indx' },
@@ -18,25 +27,21 @@ class CreateEcomCoreTasks < ActiveRecord::Migration[6.0]
18
27
  null: true,
19
28
  index: { name: 'tasks_on_wo_indx' },
20
29
  foreign_key: { to_table: :ecom_core_work_orders }
21
- t.references :plan,
22
- null: true,
23
- index: { name: 'tasks_on_plan_indx' },
24
- foreign_key: { to_table: :ecom_core_plans }
25
30
  t.references :performer,
26
31
  null: true,
27
32
  index: { name: 'tasks_on_performer_indx' },
28
33
  foreign_key: { to_table: :ecom_core_users }
29
- t.references :approver,
34
+ t.references :client_consultant,
30
35
  null: true,
31
- index: { name: 'tasks_on_approver_indx' },
36
+ index: { name: 'tasks_on_cc_indx' },
32
37
  foreign_key: { to_table: :ecom_core_users }
33
- t.references :supervisor,
38
+ t.references :foreman,
34
39
  null: true,
35
- index: { name: 'tasks_on_supervisor_indx' },
40
+ index: { name: 'tasks_on_foreman_indx' },
36
41
  foreign_key: { to_table: :ecom_core_users }
37
- t.references :quality_controller,
42
+ t.references :inspector,
38
43
  null: true,
39
- index: { name: 'tasks_on_qc_indx' },
44
+ index: { name: 'tasks_on_inspector_indx' },
40
45
  foreign_key: { to_table: :ecom_core_users }
41
46
  t.references :work_product,
42
47
  null: false,
@@ -7,13 +7,13 @@ class CreateEcomCoreAttendanceSheets < ActiveRecord::Migration[6.0]
7
7
  t.datetime :approved_at
8
8
  t.string :remark
9
9
  t.string :status, null: false, default: 'Open'
10
- t.references :project,
10
+ t.references :site,
11
11
  null: false,
12
- index: { name: 'as_on_project_indx' },
13
- foreign_key: { to_table: :ecom_core_projects }
12
+ index: { name: 'as_on_site_indx' },
13
+ foreign_key: { to_table: :ecom_core_sites }
14
14
 
15
15
  t.timestamps
16
16
  end
17
- add_index :ecom_core_attendance_sheets, %i[date project_id], unique: true
17
+ add_index :ecom_core_attendance_sheets, %i[date site_id], unique: true
18
18
  end
19
19
  end
@@ -4,10 +4,10 @@ class CreateEcomCorePayrolls < ActiveRecord::Migration[6.0]
4
4
  t.integer :month, null: false
5
5
  t.integer :year, null: false
6
6
  t.boolean :approved, null: false, default: false
7
- t.references :project,
7
+ t.references :site,
8
8
  null: false,
9
- index: { name: 'payroll_on_project_indx' },
10
- foreign_key: { to_table: :ecom_core_projects }
9
+ index: { name: 'payroll_on_site_indx' },
10
+ foreign_key: { to_table: :ecom_core_sites }
11
11
 
12
12
  t.timestamps
13
13
  end
@@ -7,13 +7,13 @@ class CreateEcomCoreOvertimeSheets < ActiveRecord::Migration[6.0]
7
7
  t.datetime :approved_at
8
8
  t.string :remark
9
9
  t.string :status, null: false, default: 'Open'
10
- t.references :project,
10
+ t.references :site,
11
11
  null: false,
12
- index: { name: 'os_on_project_indx' },
13
- foreign_key: { to_table: :ecom_core_projects }
12
+ index: { name: 'os_on_site_indx' },
13
+ foreign_key: { to_table: :ecom_core_sites }
14
14
 
15
15
  t.timestamps
16
16
  end
17
- add_index :ecom_core_overtime_sheets, %i[date project_id], unique: true
17
+ add_index :ecom_core_overtime_sheets, %i[date site_id], unique: true
18
18
  end
19
19
  end
@@ -0,0 +1,14 @@
1
+ class CreateEcomCoreMaterialSubTypes < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_material_sub_types do |t|
4
+ t.string :name, null: false
5
+
6
+ t.references :material_type,
7
+ null: false,
8
+ index: { name: 'mst_on_mt_indx' },
9
+ foreign_key: { to_table: :ecom_core_resource_types }
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ class CreateEcomCoreMaterialIdentities < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_material_identities do |t|
4
+ t.references :material_type,
5
+ null: false,
6
+ index: { name: 'mi_on_mt_indx' },
7
+ foreign_key: { to_table: :ecom_core_resource_types }
8
+
9
+ t.references :material_sub_type,
10
+ null: true,
11
+ index: { name: 'mi_on_mst_indx' },
12
+ foreign_key: { to_table: :ecom_core_material_sub_types }
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ class CreateEcomCoreMaterialItems < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_material_items do |t|
4
+
5
+ t.references :material_identity,
6
+ null: false,
7
+ index: { name: 'mi_on_mi_indx' },
8
+ foreign_key: { to_table: :ecom_core_material_identities }
9
+
10
+ t.string :serial_number, null: false, unique: true
11
+ t.float :price
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ class CreateEcomCoreAvailableUnitOfMeasurements < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_available_unit_of_measurements do |t|
4
+ t.references :material_type,
5
+ null: false,
6
+ index: { name: 'aum_on_mt_indx' },
7
+ foreign_key: { to_table: :ecom_core_resource_types }
8
+
9
+ t.references :measurement_unit,
10
+ null: false,
11
+ index: { name: 'aum_on_mu_indx' },
12
+ foreign_key: { to_table: :ecom_core_measurement_units }
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -2,9 +2,12 @@ class CreateEcomCoreCrewContracts < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :ecom_core_crew_contracts do |t|
4
4
  t.string :contract_no, null: false, unique: true
5
+ t.string :status, null: false, default: :draft
5
6
  t.date :from, null: false
6
7
  t.date :to, null: false
7
8
  t.string :place_of_work, null: false
9
+ t.float :wage, null: false
10
+ t.string :wage_in_words, null: false
8
11
  t.integer :probation_period, null: false
9
12
  t.string :contract_type, null: false
10
13
  t.boolean :contract_signed, null: false, default: false
@@ -13,7 +16,10 @@ class CreateEcomCoreCrewContracts < ActiveRecord::Migration[6.0]
13
16
  null: false,
14
17
  index: { name: 'cc_on_crew_indx' },
15
18
  foreign_key: { to_table: :ecom_core_crews }
16
-
19
+ t.references :crew_type,
20
+ null: false,
21
+ index: { name: 'cc_on_ct_indx' },
22
+ foreign_key: { to_table: :ecom_core_resource_types }
17
23
  t.timestamps
18
24
  end
19
25
  end
@@ -9,6 +9,7 @@ class CreateEcomCoreJobCards < ActiveRecord::Migration[6.0]
9
9
  t.boolean :approved, null: false, default: false
10
10
  t.boolean :checkin_confirmed, null: false, default: false
11
11
  t.boolean :checkout_confirmed, null: false, default: false
12
+ t.boolean :costs_approved, null: false, default: false
12
13
  t.references :maintenance_service_order,
13
14
  null: false,
14
15
  index: { name: 'jc_on_mso_indx' },
@@ -0,0 +1,16 @@
1
+ class CreateEcomCoreCrewContractTransactions < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_crew_contract_transactions do |t|
4
+ t.string :transaction_type, null: false
5
+ t.string :status, null: false, default: 'Pending'
6
+ t.datetime :effective_date, null: false
7
+
8
+ t.references :crew_contract,
9
+ null: false,
10
+ index: { name: 'cct_on_cc_indx' },
11
+ foreign_key: { to_table: :ecom_core_crew_contracts }
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end