ecom_core 1.2.30 → 1.2.35

Sign up to get free protection for your applications and to get access to all the features.
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