ecom_core 1.2.33 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) 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/inspection_checklist.rb +6 -0
  11. data/app/models/ecom/core/lookahead_plan.rb +41 -0
  12. data/app/models/ecom/core/lookahead_plan_history.rb +16 -0
  13. data/app/models/ecom/core/lookahead_plan_review_time.rb +29 -0
  14. data/app/models/ecom/core/lookahead_plan_task_progress.rb +22 -0
  15. data/app/models/ecom/core/material.rb +6 -0
  16. data/app/models/ecom/core/material_identity.rb +21 -0
  17. data/app/models/ecom/core/material_item.rb +18 -0
  18. data/app/models/ecom/core/material_sub_type.rb +20 -0
  19. data/app/models/ecom/core/measurement_unit.rb +4 -14
  20. data/app/models/ecom/core/overtime_sheet.rb +16 -16
  21. data/app/models/ecom/core/payroll.rb +3 -3
  22. data/app/models/ecom/core/project.rb +0 -3
  23. data/app/models/ecom/core/project_template.rb +13 -0
  24. data/app/models/ecom/core/project_work_item_template.rb +9 -0
  25. data/app/models/ecom/core/resource_requisition.rb +21 -0
  26. data/app/models/ecom/core/resource_requisition_item.rb +45 -0
  27. data/app/models/ecom/core/{project_crew.rb → site.rb} +8 -4
  28. data/app/models/ecom/core/site_crew.rb +27 -0
  29. data/app/models/ecom/core/stakeholder.rb +1 -1
  30. data/app/models/ecom/core/task.rb +22 -9
  31. data/app/models/ecom/core/task_attachment.rb +11 -0
  32. data/app/models/ecom/core/task_inspection_checklist.rb +18 -0
  33. data/app/models/ecom/core/task_template.rb +20 -90
  34. data/app/models/ecom/core/task_template_inspection_checklist.rb +8 -0
  35. data/app/models/ecom/core/unit_cost.rb +27 -0
  36. data/app/models/ecom/core/unit_of_measure.rb +8 -0
  37. data/app/models/ecom/core/work_item_resource_requirement_template.rb +18 -0
  38. data/app/models/ecom/core/work_package.rb +3 -0
  39. data/app/models/ecom/core/work_product.rb +2 -18
  40. data/app/models/ecom/core/work_product_template.rb +2 -2
  41. data/app/serializers/ecom/core/unit_cost_serializer.rb +21 -0
  42. data/app/services/ecom/core/crew_contract_transaction_service.rb +89 -0
  43. data/app/services/ecom/core/site_crew_service.rb +44 -0
  44. data/app/uploaders/ecom/core/photo_uploader.rb +13 -2
  45. data/app/uploaders/ecom/core/task_attachment_uploader.rb +11 -0
  46. data/config/initializers/carrierwave.rb +8 -0
  47. data/config/routes.rb +4 -2
  48. data/db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb +11 -0
  49. data/db/migrate/20191119012030_create_ecom_core_task_templates.rb +10 -8
  50. data/db/migrate/20191119013236_create_ecom_core_work_product_templates.rb +0 -15
  51. data/db/migrate/20191119021405_create_ecom_core_project_templates.rb +15 -0
  52. data/db/migrate/20191119034319_create_ecom_core_project_work_item_templates.rb +20 -0
  53. data/db/migrate/20191201145849_create_ecom_core_sites.rb +16 -0
  54. data/db/migrate/20191202222210_create_ecom_core_work_packages.rb +12 -0
  55. data/db/migrate/20191202235434_create_ecom_core_work_products.rb +2 -17
  56. data/db/migrate/20191207103730_create_ecom_core_lookahead_plans.rb +19 -0
  57. data/db/migrate/20191207103735_create_ecom_core_tasks.rb +15 -10
  58. data/db/migrate/20191225140433_create_ecom_core_attendance_sheets.rb +4 -4
  59. data/db/migrate/20200126081005_create_ecom_core_payrolls.rb +3 -3
  60. data/db/migrate/20200410090701_create_ecom_core_overtime_sheets.rb +4 -4
  61. data/db/migrate/20200616044231_create_ecom_core_material_sub_types.rb +14 -0
  62. data/db/migrate/20200616051902_create_ecom_core_material_identities.rb +17 -0
  63. data/db/migrate/20200618105233_create_ecom_core_material_items.rb +16 -0
  64. data/db/migrate/20200813165555_create_ecom_core_available_unit_of_measurements.rb +16 -0
  65. data/db/migrate/20200901085227_create_ecom_core_crew_contracts.rb +7 -1
  66. data/db/migrate/20201013072924_create_ecom_core_crew_contract_transactions.rb +16 -0
  67. data/db/migrate/20201013090609_create_ecom_core_site_crews.rb.rb +22 -0
  68. data/db/migrate/20201013094100_create_ecom_core_crew_id_cards.rb +16 -0
  69. data/db/migrate/20201113050953_create_ecom_core_task_inspection_checklists.rb +22 -0
  70. data/db/migrate/20201113094302_create_ecom_core_task_template_inspection_checklists.rb +17 -0
  71. data/db/migrate/20201121064916_create_ecom_core_unit_costs.rb +30 -0
  72. data/db/migrate/20201122123227_create_ecom_core_lookahead_plan_backlogs.rb +18 -0
  73. data/db/migrate/20201122170645_create_ecom_core_lookahead_plan_histories.rb +21 -0
  74. data/db/migrate/20201122170724_create_ecom_core_lookahead_plan_task_progresses.rb +21 -0
  75. data/db/migrate/20201123134917_create_ecom_core_task_attachments.rb +15 -0
  76. data/db/migrate/20201124171642_create_ecom_core_lookahead_plan_review_times.rb +17 -0
  77. data/db/migrate/20201125191158_create_ecom_core_work_item_resource_requirement_templates.rb +31 -0
  78. data/db/migrate/20201126191334_create_ecom_core_resource_requisitions.rb +23 -0
  79. data/db/migrate/20201126191349_create_ecom_core_resource_requisition_items.rb +33 -0
  80. data/lib/ecom/core/version.rb +1 -1
  81. data/spec/factories/ecom/core/attendance_sheets.rb +1 -1
  82. data/spec/factories/ecom/core/available_unit_of_measurements.rb +6 -0
  83. data/spec/factories/ecom/core/crew_contract_transactions.rb +8 -0
  84. data/spec/factories/ecom/core/crew_contracts.rb +12 -0
  85. data/spec/factories/ecom/core/crew_id_cards.rb +8 -0
  86. data/spec/factories/{dimension_elements.rb → ecom/core/dimension_elements.rb} +0 -0
  87. data/spec/factories/ecom/core/inspection_checklists.rb +5 -0
  88. data/spec/factories/ecom/core/lookahead_plan_histories.rb +9 -0
  89. data/spec/factories/ecom/core/lookahead_plan_review_times.rb +8 -0
  90. data/spec/factories/ecom/core/lookahead_plan_task_progresses.rb +9 -0
  91. data/spec/factories/ecom/core/lookahead_plans.rb +10 -0
  92. data/spec/factories/ecom/core/material_identities.rb +6 -0
  93. data/spec/factories/ecom/core/material_items.rb +6 -0
  94. data/spec/factories/ecom/core/material_sub_types.rb +6 -0
  95. data/spec/factories/ecom/core/materials.rb +5 -0
  96. data/spec/factories/{measurement_units.rb → ecom/core/measurement_units.rb} +6 -0
  97. data/spec/factories/ecom/core/overtime_sheets.rb +1 -1
  98. data/spec/factories/ecom/core/payrolls.rb +1 -1
  99. data/spec/factories/ecom/core/project_templates.rb +8 -0
  100. data/spec/factories/ecom/core/project_work_item_templates.rb +7 -0
  101. data/spec/factories/ecom/core/resource_requisition_items.rb +12 -0
  102. data/spec/factories/ecom/core/resource_requisitions.rb +9 -0
  103. data/spec/factories/ecom/core/site_crews.rb +10 -0
  104. data/spec/factories/ecom/core/sites.rb +8 -0
  105. data/spec/factories/ecom/core/task_attachments.rb +8 -0
  106. data/spec/factories/ecom/core/task_inspection_checklists.rb +11 -0
  107. data/spec/factories/ecom/core/task_template_inspection_checklists.rb +7 -0
  108. data/spec/factories/ecom/core/task_templates.rb +11 -6
  109. data/spec/factories/ecom/core/tasks.rb +9 -3
  110. data/spec/factories/ecom/core/unit_costs.rb +13 -0
  111. data/spec/factories/ecom/core/unit_of_measures.rb +7 -0
  112. data/spec/factories/ecom/core/work_item_resource_requirement_templates.rb +10 -0
  113. data/spec/factories/ecom/core/work_packages.rb +6 -0
  114. data/spec/factories/ecom/core/work_product_templates.rb +0 -1
  115. data/spec/factories/ecom/core/work_products.rb +1 -7
  116. metadata +96 -22
  117. data/app/controllers/concerns/ecom/core/filterable.rb +0 -14
  118. data/app/models/ecom/core/plan.rb +0 -18
  119. data/app/models/ecom/core/takeoff_calculator.rb +0 -115
  120. data/app/models/ecom/core/task_step.rb +0 -85
  121. data/app/models/ecom/core/task_step_dependency.rb +0 -10
  122. data/app/services/ecom/core/project_crew_service.rb +0 -39
  123. data/db/migrate/20191119012027_create_ecom_core_takeoff_calculators.rb +0 -11
  124. data/db/migrate/20191207103730_create_ecom_core_plans.rb +0 -12
  125. data/db/migrate/20191225121850_create_ecom_core_project_crews.rb +0 -19
  126. data/db/migrate/20200820123719_create_ecom_core_task_steps.rb +0 -17
  127. data/db/migrate/20200821130934_create_ecom_core_task_step_dependencies.rb +0 -16
  128. data/spec/factories/ecom/core/plans.rb +0 -8
  129. data/spec/factories/ecom/core/project_crews.rb +0 -9
  130. data/spec/factories/ecom/core/takeoff_calculators.rb +0 -18
  131. data/spec/factories/ecom/core/task_step_dependencies.rb +0 -6
  132. data/spec/factories/ecom/core/task_steps.rb +0 -8
@@ -0,0 +1,8 @@
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
@@ -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
@@ -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
@@ -0,0 +1,22 @@
1
+ class CreateEcomCoreSiteCrews < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_site_crews do |t|
4
+ t.references :crew,
5
+ null: false,
6
+ index: { name: 'gp_on_crew_indx' },
7
+ foreign_key: { to_table: :ecom_core_crews }
8
+
9
+ t.references :site,
10
+ null: false,
11
+ index: { name: 'gp_on_site_indx' },
12
+ foreign_key: { to_table: :ecom_core_sites }
13
+
14
+ t.string :site_crew_type, null: false
15
+ t.string :start_date, null: false
16
+ t.string :end_date
17
+ t.string :status, null: false, default: 'Inactive'
18
+
19
+ t.timestamps
20
+ end
21
+ end
22
+ end