ecom_core 1.2.20 → 1.2.21
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.
- checksums.yaml +4 -4
- data/app/models/ecom/core/attendance_sheet.rb +18 -2
- data/app/models/ecom/core/overtime_sheet.rb +16 -0
- data/app/models/ecom/core/payment.rb +2 -0
- data/app/models/ecom/core/payroll.rb +10 -0
- data/db/migrate/20191225140433_create_ecom_core_attendance_sheets.rb +3 -2
- data/db/migrate/20200410090701_create_ecom_core_overtime_sheets.rb +3 -2
- data/lib/ecom/core/version.rb +1 -1
- data/spec/factories/ecom/core/application_modules.rb +3 -1
- data/spec/factories/ecom/core/attendance_sheets.rb +3 -2
- data/spec/factories/ecom/core/companies.rb +3 -1
- data/spec/factories/ecom/core/equipment.rb +3 -1
- data/spec/factories/ecom/core/equipment_categories.rb +3 -1
- data/spec/factories/ecom/core/equipment_locations.rb +3 -1
- data/spec/factories/ecom/core/lookups.rb +3 -1
- data/spec/factories/ecom/core/overtime_sheets.rb +3 -2
- data/spec/factories/ecom/core/overtime_types.rb +3 -1
- data/spec/factories/ecom/core/product_groups.rb +3 -1
- data/spec/factories/ecom/core/product_types.rb +3 -1
- data/spec/factories/ecom/core/resource_types.rb +3 -1
- data/spec/factories/ecom/core/stakeholder_types.rb +3 -1
- data/spec/factories/ecom/core/stakeholders.rb +3 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76cfd20fab207f93e180437a06181c5a72c682b358918d9187d37a7e63639eb4
|
4
|
+
data.tar.gz: 1013344fd51d5226101fa61b7517c3e69eb05d9e05b38f6984b6cf29684810a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfb8306c686dcfdae803be799e979d072de88abec6a81dda73e2db6916e444826947b7b7d7bf9868bccc950698b8a8d5b29eab2dfe30876ca7036b71250cb10b
|
7
|
+
data.tar.gz: 889d5da78b1bc946007b65fd923272106f79d9839f94673a78967d5a9815bc5becec7288ad56c9306504a67808f3f3ca74d99d78afedf801e439901dd89dd88a
|
@@ -61,7 +61,7 @@ module Ecom
|
|
61
61
|
|
62
62
|
raise 'There is no open attendance sheet to submit.' if sheet.nil?
|
63
63
|
|
64
|
-
sheet.
|
64
|
+
sheet.submitted_at = DateTime.now
|
65
65
|
sheet.status = StatusConstants::SUBMITTED
|
66
66
|
sheet.save
|
67
67
|
sheet
|
@@ -75,11 +75,27 @@ module Ecom
|
|
75
75
|
sheet = AttendanceSheet.open_for_date(date, project_id)
|
76
76
|
raise 'There is no open attendance sheet to submit for the selected day.' unless sheet
|
77
77
|
|
78
|
-
sheet.
|
78
|
+
sheet.submitted_at = DateTime.now
|
79
79
|
sheet.status = StatusConstants::SUBMITTED
|
80
80
|
sheet.save
|
81
81
|
sheet
|
82
82
|
end
|
83
|
+
|
84
|
+
def submit
|
85
|
+
raise 'Attendance sheet is not open and cannot be submitted' if status != StatusConstants::OPEN
|
86
|
+
|
87
|
+
self.submitted_at = DateTime.now
|
88
|
+
self.status = StatusConstants::SUBMITTED
|
89
|
+
save
|
90
|
+
end
|
91
|
+
|
92
|
+
def approve
|
93
|
+
raise 'Attendance sheet is not submitted and cannot be approved' unless status == StatusConstants::SUBMITTED
|
94
|
+
|
95
|
+
self.status = StatusConstants::APPROVED
|
96
|
+
self.approved_at = DateTime.now
|
97
|
+
save
|
98
|
+
end
|
83
99
|
end
|
84
100
|
end
|
85
101
|
end
|
@@ -44,6 +44,22 @@ module Ecom
|
|
44
44
|
|
45
45
|
OvertimeSheet.create(date: date, opened_at: Time.now, status: StatusConstants::OPEN, project_id: project_id)
|
46
46
|
end
|
47
|
+
|
48
|
+
def submit
|
49
|
+
raise 'Overtime sheet is not open and cannot be submitted' if status != StatusConstants::OPEN
|
50
|
+
|
51
|
+
self.submitted_at = DateTime.now
|
52
|
+
self.status = StatusConstants::SUBMITTED
|
53
|
+
save
|
54
|
+
end
|
55
|
+
|
56
|
+
def approve
|
57
|
+
raise 'Overtime sheet is not submitted and cannot be approved' unless status == StatusConstants::SUBMITTED
|
58
|
+
|
59
|
+
self.status = StatusConstants::APPROVED
|
60
|
+
self.approved_at = DateTime.now
|
61
|
+
save
|
62
|
+
end
|
47
63
|
end
|
48
64
|
end
|
49
65
|
end
|
@@ -9,6 +9,16 @@ module Ecom
|
|
9
9
|
scope :by_project, ->(id) { where(project_id: id) }
|
10
10
|
scope :by_month, ->(month) { where(month: month) }
|
11
11
|
scope :by_year, ->(year) { where(year: year) }
|
12
|
+
|
13
|
+
def create_next
|
14
|
+
m = payroll.month + 1
|
15
|
+
y = payroll.year
|
16
|
+
if m > 12
|
17
|
+
m = 1
|
18
|
+
y += 1
|
19
|
+
end
|
20
|
+
Payroll.create(month: m, year: y)
|
21
|
+
end
|
12
22
|
end
|
13
23
|
end
|
14
24
|
end
|
@@ -2,8 +2,9 @@ class CreateEcomCoreAttendanceSheets < ActiveRecord::Migration[6.0]
|
|
2
2
|
def change
|
3
3
|
create_table :ecom_core_attendance_sheets do |t|
|
4
4
|
t.date :date, null: false
|
5
|
-
t.
|
6
|
-
t.
|
5
|
+
t.datetime :opened_at, null: false
|
6
|
+
t.datetime :submitted_at
|
7
|
+
t.datetime :approved_at
|
7
8
|
t.string :remark
|
8
9
|
t.string :status, null: false, default: 'Open'
|
9
10
|
t.references :project,
|
@@ -2,8 +2,9 @@ class CreateEcomCoreOvertimeSheets < ActiveRecord::Migration[6.0]
|
|
2
2
|
def change
|
3
3
|
create_table :ecom_core_overtime_sheets do |t|
|
4
4
|
t.date :date, null: false
|
5
|
-
t.
|
6
|
-
t.
|
5
|
+
t.datetime :opened_at, null: false
|
6
|
+
t.datetime :submitted_at
|
7
|
+
t.datetime :approved_at
|
7
8
|
t.string :remark
|
8
9
|
t.string :status, null: false, default: 'Open'
|
9
10
|
t.references :project,
|
data/lib/ecom/core/version.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :attendance_sheet, class: Ecom::Core::AttendanceSheet do
|
3
3
|
date { Date.today }
|
4
|
-
opened_at {
|
5
|
-
|
4
|
+
opened_at { DateTime.now }
|
5
|
+
submitted_at { nil }
|
6
|
+
approved_at { nil }
|
6
7
|
remark { FFaker::Name.name }
|
7
8
|
status { Ecom::Core::StatusConstants::OPEN }
|
8
9
|
association :project
|
@@ -3,7 +3,9 @@ FactoryBot.define do
|
|
3
3
|
sequence :code do |n|
|
4
4
|
"CCode#{n}"
|
5
5
|
end
|
6
|
-
name
|
6
|
+
sequence :name do |n|
|
7
|
+
"CName#{n}"
|
8
|
+
end
|
7
9
|
address { FFaker::Address.street_address }
|
8
10
|
telephone { FFaker::PhoneNumber.phone_number }
|
9
11
|
email { FFaker::Internet.email }
|
@@ -1,6 +1,8 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :equipment, class: Ecom::Core::Equipment do
|
3
|
-
name
|
3
|
+
sequence :name do |n|
|
4
|
+
"EQName#{n}"
|
5
|
+
end
|
4
6
|
description { FFaker::Name.name }
|
5
7
|
minimum_acquisition_time { 10 }
|
6
8
|
brands { ['Brand I', 'Brand II', 'Brand III'] }
|
@@ -1,8 +1,9 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :overtime_sheet, class: Ecom::Core::OvertimeSheet do
|
3
3
|
date { Date.today }
|
4
|
-
opened_at {
|
5
|
-
submitted_at {
|
4
|
+
opened_at { DateTime.now }
|
5
|
+
submitted_at { nil }
|
6
|
+
approved_at { nil }
|
6
7
|
status { Ecom::Core::StatusConstants::OPEN }
|
7
8
|
association :project
|
8
9
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :product_type, class: Ecom::Core::ProductType do
|
3
|
-
name
|
3
|
+
sequence :name do |n|
|
4
|
+
"PTname#{n}"
|
5
|
+
end
|
4
6
|
association :work_product_template
|
5
7
|
dimension { [{ name: 'length', label: 'length' }, { name: 'width', label: 'width' }] }
|
6
8
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :stakeholder, class: Ecom::Core::Stakeholder do
|
3
|
-
name
|
3
|
+
sequence :name do |n|
|
4
|
+
"Stakeholder #{n}"
|
5
|
+
end
|
4
6
|
type_of_business { FFaker::Name.name }
|
5
7
|
address { FFaker::Name.name }
|
6
8
|
license_no { FFaker::Name.name }
|
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.
|
4
|
+
version: 1.2.21
|
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-07-
|
11
|
+
date: 2020-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aasm
|