ecom_core 1.1.7 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2c0b15c898c1865b73c99b6c2c94eefd24830c2e5849cd04f173208bdd2e3da7
4
- data.tar.gz: fb1f5f442e4e33d457c51656efca5d4f11c25968be4f260b0cc0f72b047040f7
3
+ metadata.gz: f3c37e72f220d44c53d4755665e74b1686cf2564b849fc3f2c4c841262e67b4f
4
+ data.tar.gz: d5c2e34ef00245ae8e71a19222df308c5a4ccd2b25c33d805431c6afe7e5d215
5
5
  SHA512:
6
- metadata.gz: 25e3d49560ae3e835c3673f284da580c03b12787ba84423d45f27d49dbb8f71acbc64d3dea90511aa1b363e1fd7767e50ce530d004cdfc7fb5ae317286614e1a
7
- data.tar.gz: ca28ea1b20d10bfcb7938ee402fe60cc10a7d6a142d2b876aa722333c7d6da178fab22939768a65ec09856e971c7bfc5e9b358eb29c8ec73d84a2c4ce26e6937
6
+ metadata.gz: dbcf516b21e2758bd8c338a12f03a07b34e074681faec9213b849e86db236a110ea2cb80333c1dd405948f0d389969b08d7ff1a655ce33b4a0e7ef75e6c28c36
7
+ data.tar.gz: 982a4664a200653053ae74380f2d2f8a53b7dc077543d0aec4b202b17ec2d64a28dad16bf7b9cd66204f2599744e21f977154f5e165a828a3e65e5eb7d0480a2
@@ -0,0 +1,11 @@
1
+ module Ecom
2
+ module Core
3
+ class AttendanceSheet < ApplicationRecord
4
+ validates :date, presence: true, uniqueness: true
5
+
6
+ def self.create_current
7
+ AttendanceSheet.where(date: Date.today).first_or_create
8
+ end
9
+ end
10
+ end
11
+ end
@@ -2,14 +2,15 @@ module Ecom
2
2
  module Core
3
3
  class CrewTime < ApplicationRecord
4
4
  belongs_to :crew
5
+ belongs_to :attendance_sheet
5
6
  belongs_to :overtime_type, optional: true
6
7
 
7
- validates :date, :hours, :converted_hours, presence: true
8
- validates_each :date do |record, attr, value|
9
- if record.crew && value && (value < record.crew.employment_date)
10
- record.errors.add(attr, 'should be after employment date')
11
- end
12
- end
8
+ validates :hours, :converted_hours, presence: true
9
+ # validates_each :date do |record, attr, value|
10
+ # if record.crew && value && (value < record.crew.employment_date)
11
+ # record.errors.add(attr, 'should be after employment date')
12
+ # end
13
+ # end
13
14
 
14
15
  before_save :calculate_converted_hours
15
16
 
@@ -0,0 +1,20 @@
1
+ class MoveDateToAttendanceSheet < ActiveRecord::Migration[6.0]
2
+ def up
3
+ dates = Ecom::Core::CrewTime.pluck('DISTINCT date(date)')
4
+
5
+ return if dates.count.zero?
6
+
7
+ attendances = []
8
+ dates.each do |date|
9
+ attendances << Ecom::Core::AttendanceSheet.new(date: date)
10
+ end
11
+
12
+ Ecom::Core::AttendanceSheet.transaction do
13
+ attendances.each(&:save)
14
+ end
15
+ end
16
+
17
+ def down
18
+ raise ActiveRecord::IrreversibleMigration
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ class CreateEcomCoreAttendanceSheets < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_attendance_sheets do |t|
4
+ t.date :date, null: false, unique: true
5
+ t.time :opened_at
6
+ t.time :closed_at
7
+ t.string :remark
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ class LinkCrewTimesWithAttendanceSheet < ActiveRecord::Migration[6.0]
2
+ def up
3
+ add_column :ecom_core_crew_times, :attendance_sheet_id, :integer, index: { name: 'ct_on_as_indx' }
4
+ add_foreign_key :ecom_core_crew_times, :ecom_core_attendance_sheets, column: :attendance_sheet_id
5
+ end
6
+
7
+ def down
8
+ raise ActiveRecord::IrreversibleMigration
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveDateColumnFromCrewTimes < ActiveRecord::Migration[6.0]
2
+ def change
3
+ remove_column :ecom_core_crew_times, :date
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.1.7'.freeze
3
+ VERSION = '1.1.8'.freeze
4
4
  end
5
5
  end
@@ -2,4 +2,5 @@ require 'ecom/core'
2
2
  require 'ecom/core/engine'
3
3
  require 'ancestry'
4
4
  require 'aasm'
5
- require 'active_model_serializers'
5
+ require 'active_model_serializers'
6
+ require 'data_migrate'
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :attendance_sheet, class: 'Ecom::Core::AttendanceSheet' do
3
+ date { Date.today }
4
+ opened_at { Time.now }
5
+ closed_at { Time.now + 1 }
6
+ remark { FFaker::Name.name }
7
+ end
8
+ end
@@ -1,6 +1,5 @@
1
1
  FactoryBot.define do
2
2
  factory :crew_time, class: 'Ecom::Core::CrewTime' do
3
- date { Date.today }
4
3
  checkin_time { Time.now }
5
4
  checkout_time { Time.now + 2 * 60 * 60 }
6
5
  hours { 2 }
@@ -9,5 +8,6 @@ FactoryBot.define do
9
8
  remark { FFaker::Name.name }
10
9
  overtime { false }
11
10
  overtime_type { nil }
11
+ association :attendance_sheet
12
12
  end
13
13
  end
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.1.7
4
+ version: 1.1.8
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-03-31 00:00:00.000000000 Z
11
+ date: 2020-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -95,13 +95,13 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: 6.0.2
97
97
  - !ruby/object:Gem::Dependency
98
- name: factory_bot_rails
98
+ name: data_migrate
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
- type: :development
104
+ type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: ffaker
112
+ name: factory_bot_rails
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rspec-rails
126
+ name: ffaker
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rubocop
140
+ name: rspec-rails
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -216,6 +216,7 @@ files:
216
216
  - app/controllers/ecom/core/users_controller.rb
217
217
  - app/models/ecom/core/application_module.rb
218
218
  - app/models/ecom/core/application_record.rb
219
+ - app/models/ecom/core/attendance_sheet.rb
219
220
  - app/models/ecom/core/crew.rb
220
221
  - app/models/ecom/core/crew_time.rb
221
222
  - app/models/ecom/core/crew_type.rb
@@ -259,6 +260,7 @@ files:
259
260
  - app/services/ecom/core/token_auth_service.rb
260
261
  - config/database.ci.yml
261
262
  - config/routes.rb
263
+ - db/data/20200401064242_move_date_to_attendance_sheet.rb
262
264
  - db/migrate/20190101112620_create_ecom_core_lookups.rb
263
265
  - db/migrate/20190101112625_create_ecom_core_overtime_types.rb
264
266
  - db/migrate/20191119010518_create_ecom_core_task_template_types.rb
@@ -295,12 +297,16 @@ files:
295
297
  - db/migrate/20200315153640_create_ecom_core_equipment_items.rb
296
298
  - db/migrate/20200315160810_create_ecom_core_equipment_valuations.rb
297
299
  - db/migrate/20200316125323_create_ecom_core_equipment_components.rb
300
+ - db/migrate/20200401040433_create_ecom_core_attendance_sheets.rb
301
+ - db/migrate/20200401043014_link_crew_times_with_attendance_sheet.rb
302
+ - db/migrate/20200401071343_remove_date_column_from_crew_times.rb
298
303
  - lib/ecom/core.rb
299
304
  - lib/ecom/core/engine.rb
300
305
  - lib/ecom/core/version.rb
301
306
  - lib/ecom_core.rb
302
307
  - lib/tasks/ecom_core_tasks.rake
303
308
  - spec/factories/ecom/core/application_modules.rb
309
+ - spec/factories/ecom/core/attendance_sheets.rb
304
310
  - spec/factories/ecom/core/crew_times.rb
305
311
  - spec/factories/ecom/core/crew_types.rb
306
312
  - spec/factories/ecom/core/crews.rb