ecom_core 1.2.30 → 1.2.35

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 (104) 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/models/ecom/core/attendance_sheet.rb +19 -19
  4. data/app/models/ecom/core/available_unit_of_measurement.rb +10 -0
  5. data/app/models/ecom/core/crew.rb +14 -3
  6. data/app/models/ecom/core/crew_contract.rb +41 -1
  7. data/app/models/ecom/core/crew_contract_transaction.rb +29 -0
  8. data/app/models/ecom/core/crew_id_card.rb +36 -0
  9. data/app/models/ecom/core/crew_time.rb +11 -3
  10. data/app/models/ecom/core/dimension_element.rb +22 -0
  11. data/app/models/ecom/core/inspection_checklist.rb +6 -0
  12. data/app/models/ecom/core/job_card.rb +1 -1
  13. data/app/models/ecom/core/material.rb +6 -0
  14. data/app/models/ecom/core/material_identity.rb +21 -0
  15. data/app/models/ecom/core/material_item.rb +18 -0
  16. data/app/models/ecom/core/material_sub_type.rb +20 -0
  17. data/app/models/ecom/core/measurement_unit.rb +55 -0
  18. data/app/models/ecom/core/overtime_sheet.rb +26 -16
  19. data/app/models/ecom/core/payroll.rb +3 -3
  20. data/app/models/ecom/core/plan.rb +18 -0
  21. data/app/models/ecom/core/project.rb +0 -3
  22. data/app/models/ecom/core/project_template.rb +11 -0
  23. data/app/models/ecom/core/project_work_item_template.rb +9 -0
  24. data/app/models/ecom/core/schedule_setting.rb +8 -6
  25. data/app/models/ecom/core/{project_crew.rb → site.rb} +8 -4
  26. data/app/models/ecom/core/site_crew.rb +27 -0
  27. data/app/models/ecom/core/takeoff.rb +10 -0
  28. data/app/models/ecom/core/task.rb +32 -4
  29. data/app/models/ecom/core/task_inspection_checklist.rb +18 -0
  30. data/app/models/ecom/core/task_resource.rb +2 -0
  31. data/app/models/ecom/core/task_template.rb +22 -2
  32. data/app/models/ecom/core/task_template_inspection_checklist.rb +8 -0
  33. data/app/models/ecom/core/work_order.rb +26 -0
  34. data/app/models/ecom/core/work_package.rb +3 -0
  35. data/app/models/ecom/core/work_product.rb +3 -18
  36. data/app/models/ecom/core/work_product_template.rb +2 -2
  37. data/app/services/ecom/core/crew_contract_transaction_service.rb +89 -0
  38. data/app/services/ecom/core/site_crew_service.rb +44 -0
  39. data/app/uploaders/ecom/core/photo_uploader.rb +8 -1
  40. data/config/routes.rb +2 -2
  41. data/db/migrate/20191119012030_create_ecom_core_task_templates.rb +6 -1
  42. data/db/migrate/20191119013236_create_ecom_core_work_product_templates.rb +0 -15
  43. data/db/migrate/20191119021405_create_ecom_core_project_templates.rb +15 -0
  44. data/db/migrate/20191119034319_create_ecom_core_project_work_item_templates.rb +20 -0
  45. data/db/migrate/20191201145849_create_ecom_core_sites.rb +16 -0
  46. data/db/migrate/20191202222210_create_ecom_core_work_packages.rb +12 -0
  47. data/db/migrate/20191202235434_create_ecom_core_work_products.rb +2 -18
  48. data/db/migrate/{20191225100054_create_ecom_core_crews.rb → 20191207103729_create_ecom_core_crews.rb} +3 -3
  49. data/db/migrate/20191207103730_create_ecom_core_plans.rb +12 -0
  50. data/db/migrate/20191207103731_create_ecom_core_work_orders.rb +23 -0
  51. data/db/migrate/20191207103735_create_ecom_core_tasks.rb +23 -7
  52. data/db/migrate/20191225140433_create_ecom_core_attendance_sheets.rb +4 -4
  53. data/db/migrate/20200126081005_create_ecom_core_payrolls.rb +3 -3
  54. data/db/migrate/20200410090701_create_ecom_core_overtime_sheets.rb +4 -4
  55. data/db/migrate/20200616044231_create_ecom_core_material_sub_types.rb +14 -0
  56. data/db/migrate/20200616051902_create_ecom_core_material_identities.rb +17 -0
  57. data/db/migrate/20200618105233_create_ecom_core_material_items.rb +16 -0
  58. data/db/migrate/20200813165553_create_ecom_core_measurement_units.rb +14 -0
  59. data/db/migrate/20200813165555_create_ecom_core_available_unit_of_measurements.rb +16 -0
  60. data/db/migrate/20200814043632_create_ecom_core_takeoffs.rb +14 -0
  61. data/db/migrate/20200901085227_create_ecom_core_crew_contracts.rb +7 -1
  62. data/db/migrate/20200901134912_create_ecom_core_dimension_elements.rb +23 -0
  63. data/db/migrate/20200919085613_create_ecom_core_job_cards.rb +1 -0
  64. data/db/migrate/20201013072924_create_ecom_core_crew_contract_transactions.rb +16 -0
  65. data/db/migrate/20201013090609_create_ecom_core_site_crews.rb.rb +22 -0
  66. data/db/migrate/20201013094100_create_ecom_core_crew_id_cards.rb +16 -0
  67. data/db/migrate/20201113050953_create_ecom_core_task_inspection_checklists.rb +22 -0
  68. data/db/migrate/20201113094302_create_ecom_core_task_template_inspection_checklists.rb +17 -0
  69. data/lib/ecom/core/version.rb +1 -1
  70. data/spec/factories/ecom/core/attendance_sheet_entries.rb +1 -1
  71. data/spec/factories/ecom/core/attendance_sheets.rb +1 -1
  72. data/spec/factories/ecom/core/available_unit_of_measurements.rb +6 -0
  73. data/spec/factories/ecom/core/crew_contract_transactions.rb +8 -0
  74. data/spec/factories/ecom/core/crew_contracts.rb +12 -0
  75. data/spec/factories/ecom/core/crew_id_cards.rb +8 -0
  76. data/spec/factories/ecom/core/dimension_elements.rb +8 -0
  77. data/spec/factories/ecom/core/inspection_checklists.rb +5 -0
  78. data/spec/factories/ecom/core/maintenance_statuses.rb +1 -1
  79. data/spec/factories/ecom/core/material_identities.rb +6 -0
  80. data/spec/factories/ecom/core/material_items.rb +6 -0
  81. data/spec/factories/ecom/core/material_sub_types.rb +6 -0
  82. data/spec/factories/ecom/core/materials.rb +5 -0
  83. data/spec/factories/ecom/core/measurement_units.rb +16 -0
  84. data/spec/factories/ecom/core/overtime_sheets.rb +1 -1
  85. data/spec/factories/ecom/core/payrolls.rb +1 -1
  86. data/spec/factories/ecom/core/plans.rb +8 -0
  87. data/spec/factories/ecom/core/project_templates.rb +8 -0
  88. data/spec/factories/ecom/core/project_work_item_templates.rb +7 -0
  89. data/spec/factories/ecom/core/site_crews.rb +10 -0
  90. data/spec/factories/ecom/core/sites.rb +8 -0
  91. data/spec/factories/ecom/core/takeoffs.rb +6 -0
  92. data/spec/factories/ecom/core/task_inspection_checklists.rb +11 -0
  93. data/spec/factories/ecom/core/task_template_inspection_checklists.rb +7 -0
  94. data/spec/factories/ecom/core/task_templates.rb +11 -1
  95. data/spec/factories/ecom/core/tasks.rb +8 -3
  96. data/spec/factories/ecom/core/work_orders.rb +10 -0
  97. data/spec/factories/ecom/core/work_packages.rb +6 -0
  98. data/spec/factories/ecom/core/work_product_templates.rb +0 -1
  99. data/spec/factories/ecom/core/work_products.rb +1 -8
  100. metadata +75 -9
  101. data/app/services/ecom/core/project_crew_service.rb +0 -39
  102. data/db/migrate/20191225121850_create_ecom_core_project_crews.rb +0 -19
  103. data/db/migrate/20200922044959_add_costs_approved_to_job_card.rb +0 -5
  104. data/spec/factories/ecom/core/project_crews.rb +0 -9
@@ -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,14 @@
1
+ class CreateEcomCoreMeasurementUnits < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_measurement_units do |t|
4
+ t.string :name, null: false
5
+ t.string :abbrivation, null: false
6
+ t.string :physical_quantity, null: false
7
+ t.boolean :is_si_unit, null: false, default: false
8
+ t.float :conversion_factor, null: false
9
+ t.string :system_of_measurement, null: false
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+ 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
@@ -0,0 +1,14 @@
1
+ class CreateEcomCoreTakeoffs < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_takeoffs do |t|
4
+ t.references :task,
5
+ null: false,
6
+ index: { name: 'takeoff_on_task_indx' },
7
+ foreign_key: { to_table: :ecom_core_tasks }
8
+
9
+ t.float :takeoff_quantity, null: false
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+ 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,23 @@
1
+ class CreateEcomCoreDimensionElements < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_dimension_elements do |t|
4
+
5
+ t.references :work_product,
6
+ null: false,
7
+ index: { name: 'dimension_on_wp_indx' },
8
+ foreign_key: { to_table: :ecom_core_work_products }
9
+
10
+ t.references :measurement_unit,
11
+ null: false,
12
+ index: { name: 'dimension_on_mu_indx' },
13
+ foreign_key: { to_table: :ecom_core_measurement_units }
14
+
15
+ t.string :dimension_element_name, null: false
16
+ t.float :amount
17
+
18
+ t.timestamps
19
+ end
20
+
21
+ add_index :ecom_core_dimension_elements, [:work_product_id, :dimension_element_name], unique: true, name: 'de_on_wp_and_den'
22
+ end
23
+ 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
@@ -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
@@ -0,0 +1,16 @@
1
+ class CreateEcomCoreCrewIdCards < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_crew_id_cards do |t|
4
+ t.references :crew,
5
+ null: false,
6
+ index: { name: 'ci_on_crew_indx' },
7
+ foreign_key: { to_table: :ecom_core_crews }
8
+
9
+ t.datetime :issued_on, null: false
10
+ t.datetime :valid_until, null: false
11
+ t.string :status, null: false, default: 'Active'
12
+
13
+ t.timestamps
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,22 @@
1
+ class CreateEcomCoreTaskInspectionChecklists < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_task_inspection_checklists do |t|
4
+ t.string :name, null: false
5
+ t.date :date_of_inspection
6
+ t.references :inspected_by,
7
+ null: true,
8
+ index: { name: 'tic_on_ib_indx' },
9
+ foreign_key: { to_table: :ecom_core_users }
10
+ t.string :status, null: false, default: 'Not Inspected'
11
+ t.string :remark
12
+ t.string :recommendation
13
+ t.references :task,
14
+ null: false,
15
+ index: { name: 'tic_on_task_indx' },
16
+ foreign_key: { to_table: :ecom_core_tasks }
17
+ t.string :standard
18
+
19
+ t.timestamps
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,17 @@
1
+ class CreateEcomCoreTaskTemplateInspectionChecklists < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_task_template_inspection_checklists do |t|
4
+ t.references :task_template,
5
+ null: false,
6
+ index: { name: 'ttic_on_tt_indx' },
7
+ foreign_key: { to_table: :ecom_core_task_templates }
8
+ t.references :inspection_checklist,
9
+ null: false,
10
+ index: { name: 'ttic_on_ic_indx' },
11
+ foreign_key: { to_table: :ecom_core_lookups }
12
+ t.string :standard
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.2.30'.freeze
3
+ VERSION = '1.2.35'.freeze
4
4
  end
5
5
  end
@@ -2,6 +2,6 @@ FactoryBot.define do
2
2
  factory :attendance_sheet_entry, class: Ecom::Core::AttendanceSheetEntry do
3
3
  association :attendance_sheet
4
4
  association :crew
5
- total_hours { FFaker::Random.rand(0..8) }
5
+ total_hours { 0 }
6
6
  end
7
7
  end
@@ -6,6 +6,6 @@ FactoryBot.define do
6
6
  approved_at { nil }
7
7
  remark { FFaker::Name.name }
8
8
  status { Ecom::Core::StatusConstants::OPEN }
9
- association :project
9
+ association :site
10
10
  end
11
11
  end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :available_unit_of_measurement, class: Ecom::Core::AvailableUnitOfMeasurement do
3
+ association :material_type
4
+ association :measurement_unit
5
+ end
6
+ end
@@ -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
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :crew_id_card, class: Ecom::Core::CrewIdCard do
3
+ association :crew
4
+ issued_on { Time.now }
5
+ valid_until { Time.now + 1.month }
6
+ status { Ecom::Core::CrewIdCard::STATUSES.sample }
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :dimension_element, class: Ecom::Core::DimensionElement do
3
+ association :work_product
4
+ association :measurement_unit
5
+ amount { 5 }
6
+ dimension_element_name { Ecom::Core::DimensionElement::DIMENSION_ELEMENT_NAMES.sample }
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :inspection_checklist, class: Ecom::Core::InspectionChecklist, parent: :lookup do
3
+ type { 'Ecom::Core::InspectionChecklist' }
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
2
  factory :maintenance_status, class: Ecom::Core::MaintenanceStatus, parent: :lookup do
3
- type { 'Ecom::Core::MaintenanceStatus'}
3
+ type { 'Ecom::Core::MaintenanceStatus' }
4
4
  end
5
5
  end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :material_identity, class: Ecom::Core::MaterialIdentity do
3
+ association :material_type
4
+ material_sub_type { association :material_sub_type, material_type_id: material_type.id }
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :material_item, class: Ecom::Core::MaterialItem do
3
+ association :material_identity
4
+ serial_number { "SN_#{(Time.now.to_f * 1000).to_i}" }
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :material_sub_type, class: Ecom::Core::MaterialSubType do
3
+ name { FFaker::Name.name }
4
+ association :material_type
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :material, class: Ecom::Core::Material, parent: :lookup do
3
+ type { 'Ecom::Core::Material' }
4
+ end
5
+ end
@@ -0,0 +1,16 @@
1
+ FactoryBot.define do
2
+ factory :measurement_unit, class: Ecom::Core::MeasurementUnit do
3
+ name { 'Meter' }
4
+ abbrivation { 'm' }
5
+ physical_quantity { Ecom::Core::MeasurementUnit::LENGTH }
6
+ is_si_unit { true }
7
+ conversion_factor { 1 }
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
15
+ end
16
+ end
@@ -5,6 +5,6 @@ FactoryBot.define do
5
5
  submitted_at { nil }
6
6
  approved_at { nil }
7
7
  status { Ecom::Core::StatusConstants::OPEN }
8
- association :project
8
+ association :site
9
9
  end
10
10
  end