ecom_core 1.2.14 → 1.2.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/ecom/core/product_group.rb +7 -0
  3. data/app/models/ecom/core/task.rb +41 -2
  4. data/app/models/ecom/core/task_resource.rb +10 -0
  5. data/app/models/ecom/core/task_template.rb +1 -1
  6. data/app/models/ecom/core/work_package.rb +10 -0
  7. data/app/models/ecom/core/work_product.rb +18 -45
  8. data/app/models/ecom/core/work_product_template.rb +1 -1
  9. data/db/migrate/20191119013236_create_ecom_core_work_product_templates.rb +10 -3
  10. data/db/migrate/20191201251015_create_ecom_core_product_groups.rb +13 -0
  11. data/db/migrate/20191202222210_create_ecom_core_work_packages.rb +13 -0
  12. data/db/migrate/20191202235434_create_ecom_core_work_products.rb +7 -13
  13. data/db/migrate/20191207103735_create_ecom_core_tasks.rb +45 -0
  14. data/db/migrate/20191210724614_create_ecom_core_task_resources.rb +18 -0
  15. data/lib/ecom/core/version.rb +1 -1
  16. data/spec/factories/ecom/core/application_modules.rb +1 -1
  17. data/spec/factories/ecom/core/companies.rb +1 -1
  18. data/spec/factories/ecom/core/product_groups.rb +6 -0
  19. data/spec/factories/ecom/core/resource_types.rb +1 -1
  20. data/spec/factories/ecom/core/task_resources.rb +8 -0
  21. data/spec/factories/ecom/core/task_template_types.rb +1 -1
  22. data/spec/factories/ecom/core/task_templates.rb +1 -7
  23. data/spec/factories/ecom/core/tasks.rb +12 -3
  24. data/spec/factories/ecom/core/work_component_templates.rb +1 -1
  25. data/spec/factories/ecom/core/work_packages.rb +9 -0
  26. data/spec/factories/ecom/core/work_product_templates.rb +1 -2
  27. data/spec/factories/ecom/core/work_products.rb +3 -6
  28. metadata +12 -3
  29. data/db/migrate/20191202103735_create_ecom_core_tasks.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 556990381397a6b8767f5e0b8f169a9f3ec26fe4ca86f3511f2c032e87980b36
4
- data.tar.gz: 519d394938acc41e78d25cbab80b720347686cb14c059dd9b5d742316d69bb8a
3
+ metadata.gz: 6e47a28bd7b3ce16d86c8ae18b5ff906bfba496c0a862dc97c41babd5760ea9e
4
+ data.tar.gz: '09dd7a50a6ac74286a82557aa1561c308a2ac295b75a3472fbe6d4af583bce22'
5
5
  SHA512:
6
- metadata.gz: fdf6100d006de268f4dd92f9ee2583e02067f8a88e0c231cb67ea8939fff986e56cf5f121c94efcd14980016067e394469a46e3b9379369200e72c87e91c8ed4
7
- data.tar.gz: 46dfdcef2f8300fd34fc89f81beced4d313ef6c63207392290e87457d4d00e236c97d1a1b8f5fdb6ab23709dd86555a75c53ba10de2c2a22caf2bc59452aed65
6
+ metadata.gz: a1d13e668d8382fe3a87d8386df80300488c09785b7357e7e33a061a058765abbab8ff84d798e49a065ac44c8708adebe68a5423b5387b702f8919da565871e4
7
+ data.tar.gz: e377ee5714e4e21c3e73bef63bb1aeec0e7621215eba0bfd81c8fd804974cb1e6b72ee1fbfd53cc746e465cf988c254dc89d2413a5ae47a8fa6e755851bc0d28
@@ -0,0 +1,7 @@
1
+ module Ecom::Core
2
+ class ProductGroup < ApplicationRecord
3
+ belongs_to :project
4
+
5
+ validates :name, presence: true, uniqueness: true
6
+ end
7
+ end
@@ -1,10 +1,49 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class Task < ApplicationRecord
4
- belongs_to :project
4
+ include AASM
5
+
6
+ belongs_to :work_product
5
7
  belongs_to :task_template
8
+ belongs_to :work_package, optional: true
9
+ belongs_to :performer, class_name: 'Ecom::Core::User', optional: true
10
+ belongs_to :approver, class_name: 'Ecom::Core::User', optional: true
11
+ belongs_to :supervisor, class_name: 'Ecom::Core::User', optional: true
12
+ belongs_to :quality_controller, class_name: 'Ecom::Core::User', optional: true
13
+
14
+ validates :code, :name, :status, :percent_completed, presence: true
15
+ validates_numericality_of :percent_completed,
16
+ only_integer: true,
17
+ greater_than_or_equal_to: 0,
18
+ less_than_or_equal_to: 100
19
+
20
+ aasm column: 'status' do
21
+ state :new, initial: true
22
+ state :in_progress
23
+ state :submitted
24
+ state :under_review
25
+ state :completed
26
+
27
+ event :start do
28
+ transitions from: :new, to: :in_progress
29
+ end
30
+
31
+ event :submit do
32
+ transitions from: :in_progress, to: :submitted
33
+ end
34
+
35
+ event :review do
36
+ transitions from: :submitted, to: :under_review
37
+ end
38
+
39
+ event :complete do
40
+ transitions from: %i[submitted under_review], to: :completed
41
+ end
6
42
 
7
- validates :code, :name, presence: true
43
+ event :rework do
44
+ transitions from: :under_review, to: :in_progress
45
+ end
46
+ end
8
47
  end
9
48
  end
10
49
  end
@@ -0,0 +1,10 @@
1
+ module Ecom
2
+ module Core
3
+ class TaskResource < ApplicationRecord
4
+ belongs_to :task
5
+ belongs_to :resource_type
6
+
7
+ validates :amount, presence: true, numericality: { greater_than: 0 }
8
+ end
9
+ end
10
+ end
@@ -4,7 +4,7 @@ module Ecom
4
4
  has_ancestry
5
5
 
6
6
  belongs_to :task_template_type
7
- has_one :work_product_template
7
+ has_and_belongs_to_many :work_product_templates, join_table: 'ecom_core_task_templates_work_product_templates'
8
8
  has_and_belongs_to_many :resource_types, join_table: 'ecom_core_task_templates_resource_types'
9
9
 
10
10
  validates :name, :code, presence: true
@@ -0,0 +1,10 @@
1
+ module Ecom
2
+ module Core
3
+ class WorkPackage < ApplicationRecord
4
+ validates :code, :name, presence: true
5
+ validates :code, uniqueness: true
6
+
7
+ has_many :tasks
8
+ end
9
+ end
10
+ end
@@ -17,53 +17,26 @@ module Ecom
17
17
  class WorkProduct < ApplicationRecord
18
18
  include AASM
19
19
 
20
- belongs_to :work_product_template
21
- belongs_to :task
22
- belongs_to :project
23
- belongs_to :performer, class_name: 'Ecom::Core::User'
24
- belongs_to :approver, class_name: 'Ecom::Core::User'
25
- belongs_to :supervisor, class_name: 'Ecom::Core::User'
26
- belongs_to :quality_controller, class_name: 'Ecom::Core::User'
27
-
28
- validates :name, presence: true
29
- validates :design_reference_no, uniqueness: true
30
-
31
- aasm column: 'task_status' do
32
- state :new, initial: true
33
- state :in_progress
34
- state :submitted
35
- state :under_review
36
- state :completed
37
-
38
- event :start do
39
- transitions from: :new, to: :in_progress
40
- end
41
-
42
- event :submit do
43
- transitions from: :in_progress, to: :submitted
44
- end
20
+ NEW = 'New'.freeze
21
+ UNDER_CONSTRUCTION = 'Under Construction'.freeze
22
+ COMPLETED = 'Completed'.freeze
45
23
 
46
- event :review do
47
- transitions from: :submitted, to: :under_review
48
- end
24
+ STATUSES = [NEW, UNDER_CONSTRUCTION, COMPLETED].freeze
49
25
 
50
- event :complete do
51
- transitions from: %i[submitted under_review], to: :completed
52
- end
53
-
54
- event :rework do
55
- transitions from: :under_review, to: :in_progress
56
- end
57
- end
58
-
59
- aasm column: 'assignment_status' do
60
- state :unassigned, initial: true
61
- state :assigned
62
-
63
- event :assign do
64
- transitions from: :unassigned, to: :assigned
65
- end
66
- end
26
+ belongs_to :work_product_template
27
+ belongs_to :project
28
+ belongs_to :product_group, optional: true
29
+ belongs_to :approver, class_name: 'Ecom::Core::User', optional: true
30
+ belongs_to :supervisor, class_name: 'Ecom::Core::User', optional: true
31
+ belongs_to :quality_controller, class_name: 'Ecom::Core::User', optional: true
32
+
33
+ validates :name, :design_reference_no, :status, :percent_completed, presence: true
34
+ validates :design_reference_no, uniqueness: { scope: :project_id }
35
+ validates :status, inclusion: STATUSES
36
+ validates_numericality_of :percent_completed,
37
+ only_integer: true,
38
+ greater_than_or_equal_to: 0,
39
+ less_than_or_equal_to: 100
67
40
  end
68
41
  end
69
42
  end
@@ -2,7 +2,7 @@ module Ecom
2
2
  module Core
3
3
  class WorkProductTemplate < ApplicationRecord
4
4
  validates :code, :name, presence: true, uniqueness: true
5
- belongs_to :task_template
5
+ has_and_belongs_to_many :task_templates
6
6
  has_many :product_types
7
7
 
8
8
  scope :filtered_by_template_type, lambda { |id|
@@ -5,12 +5,19 @@ class CreateEcomCoreWorkProductTemplates < ActiveRecord::Migration[6.0]
5
5
  t.string :name, null: false, unique: true
6
6
  t.string :description
7
7
  t.string :remark
8
+
9
+ t.timestamps
10
+ end
11
+
12
+ create_table :ecom_core_task_templates_work_product_templates do |t|
8
13
  t.references :task_template,
9
14
  null: false,
10
- index: { name: 'tt_on_wpt_indx' },
15
+ index: { name: 'ttwpt_on_tt_indx' },
11
16
  foreign_key: { to_table: :ecom_core_task_templates }
12
-
13
- t.timestamps
17
+ t.references :work_product_template,
18
+ null: false,
19
+ index: { name: 'ttwpt_on_wpt_indx' },
20
+ foreign_key: { to_table: :ecom_core_work_product_templates }
14
21
  end
15
22
  end
16
23
  end
@@ -0,0 +1,13 @@
1
+ class CreateEcomCoreProductGroups < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_product_groups do |t|
4
+ t.string :name, null: false, unique: true
5
+ t.references :project,
6
+ null: false,
7
+ index: { name: 'pg_on_project_indx' },
8
+ foreign_key: { to_table: :ecom_core_projects }
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateEcomCoreWorkPackages < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_work_packages do |t|
4
+ t.string :code, null: false, unique: true
5
+ t.string :name, null: false
6
+ t.string :description
7
+ t.date :start_date
8
+ t.date :end_date
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -1,15 +1,14 @@
1
1
  class CreateEcomCoreWorkProducts < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :ecom_core_work_products do |t|
4
- t.string :code, null: false
5
4
  t.string :name, null: false
6
5
  t.string :description
7
6
  t.string :design_reference_no, unique: true
8
7
  t.json :dimension
9
- t.references :task,
10
- null: false,
11
- index: { name: 'task_on_wp_indx' },
12
- foreign_key: { to_table: :ecom_core_tasks }
8
+ t.references :product_group,
9
+ null: true,
10
+ index: { name: 'wp_on_pg_indx' },
11
+ foreign_key: { to_table: :ecom_core_product_groups }
13
12
  t.references :work_product_template,
14
13
  null: false,
15
14
  index: { name: 'wpt_on_wp_indx' },
@@ -18,14 +17,9 @@ class CreateEcomCoreWorkProducts < ActiveRecord::Migration[6.0]
18
17
  null: false,
19
18
  index: { name: 'projects_on_wp_indx' },
20
19
  foreign_key: { to_table: :ecom_core_projects }
21
- t.string :assignment_status, default: 'UNASSIGNED'
22
- t.string :task_status, default: 'NEW'
23
- t.integer :percent_completed
20
+ t.string :status, default: 'New'
21
+ t.integer :percent_completed, null: false, default: 0
24
22
  t.string :remark
25
- t.references :performer,
26
- null: true,
27
- index: false,
28
- foreign_key: { to_table: :ecom_core_users }
29
23
  t.references :approver,
30
24
  null: true,
31
25
  index: false,
@@ -44,6 +38,6 @@ class CreateEcomCoreWorkProducts < ActiveRecord::Migration[6.0]
44
38
  t.timestamps
45
39
  end
46
40
 
47
- add_index :ecom_core_work_products, %i[code project_id], unique: true
41
+ add_index :ecom_core_work_products, %i[design_reference_no project_id], unique: true, name: 'wp_on_drpi_indx'
48
42
  end
49
43
  end
@@ -0,0 +1,45 @@
1
+ class CreateEcomCoreTasks < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_tasks do |t|
4
+ t.string :code, null: false
5
+ t.string :name, null: false
6
+ t.string :description
7
+ t.string :ancestry
8
+ t.date :start_date
9
+ t.date :end_date
10
+ t.string :status, null: false, default: :new
11
+ t.integer :percent_completed, null: false, default: 0
12
+ t.string :remark
13
+ t.references :work_package,
14
+ null: true,
15
+ index: { name: 'wp_on_wp_indx' },
16
+ foreign_key: { to_table: :ecom_core_work_packages }
17
+ t.references :performer,
18
+ null: true,
19
+ index: { name: 'tasks_on_performer_indx' },
20
+ foreign_key: { to_table: :ecom_core_users }
21
+ t.references :approver,
22
+ null: true,
23
+ index: { name: 'tasks_on_approver_indx' },
24
+ foreign_key: { to_table: :ecom_core_users }
25
+ t.references :supervisor,
26
+ null: true,
27
+ index: { name: 'tasks_on_supervisor_indx' },
28
+ foreign_key: { to_table: :ecom_core_users }
29
+ t.references :quality_controller,
30
+ null: true,
31
+ index: { name: 'tasks_on_qc_indx' },
32
+ foreign_key: { to_table: :ecom_core_users }
33
+ t.references :work_product,
34
+ null: false,
35
+ index: { name: 'tasks_on_wp_indx' },
36
+ foreign_key: { to_table: :ecom_core_work_products }
37
+ t.references :task_template,
38
+ null: false,
39
+ index: { name: 'tt_on_project_indx' },
40
+ foreign_key: { to_table: :ecom_core_task_templates }
41
+
42
+ t.timestamps
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,18 @@
1
+ class CreateEcomCoreTaskResources < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_task_resources do |t|
4
+ t.references :task,
5
+ null: false,
6
+ index: { name: 'tr_on_task_indx' },
7
+ foreign_key: { to_table: :ecom_core_tasks }
8
+ t.references :resource_type,
9
+ null: false,
10
+ index: { name: 'tr_on_rt_indx' },
11
+ foreign_key: { to_table: :ecom_core_resource_types }
12
+ t.date :date_assigned
13
+ t.float :amount, nullable: false
14
+
15
+ t.timestamps
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.2.14'.freeze
3
+ VERSION = '1.2.15'.freeze
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :application_module, class: Ecom::Core::ApplicationModule do
3
- code { FFaker::Name.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.name }
5
5
  end
6
6
  end
@@ -1,6 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :company, class: Ecom::Core::Company do
3
- code { FFaker::Name.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.name }
5
5
  address { FFaker::Address.street_address }
6
6
  telephone { FFaker::PhoneNumber.phone_number }
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :product_group, class: Ecom::Core::ProductGroup do
3
+ name { FFaker::Name.name }
4
+ association :project
5
+ end
6
+ end
@@ -1,6 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :resource_type, class: Ecom::Core::ResourceType do
3
- code { FFaker::Name.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.name }
5
5
  base_unit { FFaker::Name.name }
6
6
  type { 'Ecom::Core::CrewType' }
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :task_resource, class: Ecom::Core::TaskResource do
3
+ association :task
4
+ association :resource_type, factory: :crew_type
5
+ date_assigned { Date.today }
6
+ amount { 1 }
7
+ end
8
+ end
@@ -1,6 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :task_template_type, class: Ecom::Core::TaskTemplateType do
3
- code { FFaker::Name.unique.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.unique.name }
5
5
  end
6
6
  end
@@ -1,14 +1,8 @@
1
1
  FactoryBot.define do
2
2
  factory :task_template, class: Ecom::Core::TaskTemplate do
3
- code { FFaker::Name.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.name }
5
5
  description { FFaker::Name.name }
6
6
  association :task_template_type
7
-
8
- factory :task_template_with_product_template do
9
- after :create do |task_template, _|
10
- create(:work_product_template, task_template: task_template)
11
- end
12
- end
13
7
  end
14
8
  end
@@ -1,10 +1,19 @@
1
1
  FactoryBot.define do
2
2
  factory :task, class: Ecom::Core::Task do
3
- code { FFaker::Name.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.name }
5
5
  description { FFaker::Name.name }
6
- ancestry { FFaker::Name.name }
7
- association :project
6
+ start_date { Date.yesterday }
7
+ end_date { Date.today }
8
+ status { :new }
9
+ percent_completed { 0 }
10
+ remark { FFaker::Name.name }
11
+ association :performer, factory: :user
12
+ association :approver, factory: :user
13
+ association :supervisor, factory: :user
14
+ association :quality_controller, factory: :user
8
15
  association :task_template
16
+ association :work_product
17
+ association :work_package
9
18
  end
10
19
  end
@@ -1,6 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :work_component_template, class: Ecom::Core::WorkComponentTemplate do
3
- code { FFaker::Name.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.name }
5
5
  description { FFaker::Name.name }
6
6
  relative_percentage { FFaker::Random.rand(0..100) }
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :work_package, class: Ecom::Core::WorkPackage do
3
+ code { FFaker::Guid.guid }
4
+ name { FFaker::Name.name }
5
+ description { FFaker::Name.name }
6
+ start_date { Date.yesterday }
7
+ end_date { Date.today }
8
+ end
9
+ end
@@ -1,9 +1,8 @@
1
1
  FactoryBot.define do
2
2
  factory :work_product_template, class: Ecom::Core::WorkProductTemplate do
3
- code { FFaker::Name.unique.name }
3
+ code { FFaker::Guid.guid }
4
4
  name { FFaker::Name.unique.name }
5
5
  description { FFaker::Name.name }
6
6
  remark { FFaker::Name.name }
7
- association :task_template
8
7
  end
9
8
  end
@@ -1,18 +1,15 @@
1
1
  FactoryBot.define do
2
2
  factory :work_product, class: Ecom::Core::WorkProduct do
3
- code { FFaker::Name.name }
4
3
  name { FFaker::Name.unique.name }
5
4
  description { FFaker::Name.name }
6
- design_reference_no { FFaker::Name.name }
5
+ design_reference_no { FFaker::Guid.guid }
7
6
  dimension { [{ label: 'Length', name: 'length', value: 12 }] }
8
- association :task
7
+ association :product_group
9
8
  association :work_product_template
10
9
  association :project
11
- assignment_status { :unassigned }
12
- task_status { :new }
10
+ status { Ecom::Core::WorkProduct::NEW }
13
11
  percent_completed { FFaker::Random.rand(1..100) }
14
12
  remark { FFaker::Name.name }
15
- association :performer, factory: :user
16
13
  association :approver, factory: :user
17
14
  association :supervisor, factory: :user
18
15
  association :quality_controller, factory: :user
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecom_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.14
4
+ version: 1.2.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-07 00:00:00.000000000 Z
11
+ date: 2020-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -234,6 +234,7 @@ files:
234
234
  - app/models/ecom/core/payment.rb
235
235
  - app/models/ecom/core/payment_detail.rb
236
236
  - app/models/ecom/core/payroll.rb
237
+ - app/models/ecom/core/product_group.rb
237
238
  - app/models/ecom/core/product_type.rb
238
239
  - app/models/ecom/core/project.rb
239
240
  - app/models/ecom/core/project_crew.rb
@@ -242,12 +243,14 @@ files:
242
243
  - app/models/ecom/core/stakeholder.rb
243
244
  - app/models/ecom/core/stakeholder_type.rb
244
245
  - app/models/ecom/core/task.rb
246
+ - app/models/ecom/core/task_resource.rb
245
247
  - app/models/ecom/core/task_template.rb
246
248
  - app/models/ecom/core/task_template_type.rb
247
249
  - app/models/ecom/core/user.rb
248
250
  - app/models/ecom/core/user_role.rb
249
251
  - app/models/ecom/core/work_component.rb
250
252
  - app/models/ecom/core/work_component_template.rb
253
+ - app/models/ecom/core/work_package.rb
251
254
  - app/models/ecom/core/work_product.rb
252
255
  - app/models/ecom/core/work_product_template.rb
253
256
  - app/serializers/ecom/core/application_module_serializer.rb
@@ -273,14 +276,17 @@ files:
273
276
  - db/migrate/20191201134420_create_ecom_core_work_component_templates.rb
274
277
  - db/migrate/20191201145816_create_ecom_core_currencies.rb
275
278
  - db/migrate/20191201145848_create_ecom_core_projects.rb
276
- - db/migrate/20191202103735_create_ecom_core_tasks.rb
279
+ - db/migrate/20191201251015_create_ecom_core_product_groups.rb
277
280
  - db/migrate/20191202105355_create_task_templates_resource_types.rb
278
281
  - db/migrate/20191202220752_create_ecom_core_application_modules.rb
279
282
  - db/migrate/20191202220832_create_ecom_core_users.rb
280
283
  - db/migrate/20191202220953_create_ecom_core_user_roles.rb
281
284
  - db/migrate/20191202221423_create_ecom_core_menus.rb
285
+ - db/migrate/20191202222210_create_ecom_core_work_packages.rb
282
286
  - db/migrate/20191202235434_create_ecom_core_work_products.rb
283
287
  - db/migrate/20191206104247_create_ecom_core_work_components.rb
288
+ - db/migrate/20191207103735_create_ecom_core_tasks.rb
289
+ - db/migrate/20191210724614_create_ecom_core_task_resources.rb
284
290
  - db/migrate/20191225100054_create_ecom_core_crews.rb
285
291
  - db/migrate/20191225121850_create_ecom_core_project_crews.rb
286
292
  - db/migrate/20191225140433_create_ecom_core_attendance_sheets.rb
@@ -340,6 +346,7 @@ files:
340
346
  - spec/factories/ecom/core/payment_details.rb
341
347
  - spec/factories/ecom/core/payments.rb
342
348
  - spec/factories/ecom/core/payrolls.rb
349
+ - spec/factories/ecom/core/product_groups.rb
343
350
  - spec/factories/ecom/core/product_types.rb
344
351
  - spec/factories/ecom/core/project_crews.rb
345
352
  - spec/factories/ecom/core/projects.rb
@@ -347,6 +354,7 @@ files:
347
354
  - spec/factories/ecom/core/resource_types.rb
348
355
  - spec/factories/ecom/core/stakeholder_types.rb
349
356
  - spec/factories/ecom/core/stakeholders.rb
357
+ - spec/factories/ecom/core/task_resources.rb
350
358
  - spec/factories/ecom/core/task_template_types.rb
351
359
  - spec/factories/ecom/core/task_templates.rb
352
360
  - spec/factories/ecom/core/tasks.rb
@@ -354,6 +362,7 @@ files:
354
362
  - spec/factories/ecom/core/users.rb
355
363
  - spec/factories/ecom/core/work_component_templates.rb
356
364
  - spec/factories/ecom/core/work_components.rb
365
+ - spec/factories/ecom/core/work_packages.rb
357
366
  - spec/factories/ecom/core/work_product_templates.rb
358
367
  - spec/factories/ecom/core/work_products.rb
359
368
  homepage: http://www.mks.com.et
@@ -1,20 +0,0 @@
1
- class CreateEcomCoreTasks < ActiveRecord::Migration[6.0]
2
- def change
3
- create_table :ecom_core_tasks do |t|
4
- t.string :code, null: false
5
- t.string :name, null: false
6
- t.string :description
7
- t.string :ancestry
8
- t.references :project,
9
- null: false,
10
- index: { name: 'tasks_on_project_indx' },
11
- foreign_key: { to_table: :ecom_core_projects }
12
- t.references :task_template,
13
- null: false,
14
- index: { name: 'tt_on_project_indx' },
15
- foreign_key: { to_table: :ecom_core_task_templates }
16
-
17
- t.timestamps
18
- end
19
- end
20
- end