ecom_core 1.0.11 → 1.0.16

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: adb99a2389da27cf20e597f3df0f857dbf1de773c2255d045bb55759067ffb4c
4
- data.tar.gz: d9f3e700661b7801a39edb4bcf37e7b19fe5de32d2649efc41d340dd0bed89a7
3
+ metadata.gz: 788f4d113098571cc799a0c9279597378b44d653f7515118c01b2fa164afd243
4
+ data.tar.gz: f109fdd69d9da9cc717c35d824f831982da67c087eece901b9c2c8eccf893e07
5
5
  SHA512:
6
- metadata.gz: 989e447f42b80d4cb90244824f55e1aedfa4bed71ba6cb01c1cd0c03f097be9f4baa74a57188b2e7ee86ec6a84aa8d5932ecdad97754a2489df8b3a7609784c1
7
- data.tar.gz: 7930b48144947c87148205ac07e4aa4fe297df099984d32ec844ab88fe824e3d24fe44ce13f667e0e655ad364e9d635d10ea91791f2ed530e01485f7cd90e847
6
+ metadata.gz: a2aeae45d21fc34414c778230e8607fe086bd794e4db3b712d1a3700ed6a71f0dc5e54b4341f8fdc77ddbc570a720625ff14827eb675108af4e60d084a0ef03f
7
+ data.tar.gz: 4a2221c71893ce5f70457a5c90330beadae19af3f4cbde506dda97283e8be871dd1895afd624e75a48ff05afb235863370aeb3f6f742eef740345199d008fa63
@@ -4,12 +4,19 @@ module Ecom
4
4
  PERMANENT = 'Permanent'.freeze
5
5
  TEMPORARY = 'Temporary'.freeze
6
6
 
7
+ before_save :set_employment_date,
8
+ if: proc { |c| c.employment_date.nil? }
9
+
7
10
  belongs_to :crew_type
8
11
 
9
12
  validates :name, :qualification, presence: true
10
13
  validates :employment, inclusion: [PERMANENT, TEMPORARY]
11
14
  #validates :wage, presence: true, if: ->(o) { o.employment == PERMANENT }
12
15
  #validates :wage, absence: true, if: ->(o) { o.employment == TEMPORARY }
16
+
17
+ def set_employment_date
18
+ self.employment_date = Date.today
19
+ end
13
20
  end
14
21
  end
15
22
  end
@@ -0,0 +1,20 @@
1
+ module Ecom
2
+ module Core
3
+ class Payment < ApplicationRecord
4
+ belongs_to :payroll
5
+ has_many :payment_details, class_name: 'Ecom::Core::PaymentDetail', dependent: :destroy
6
+ validates :from, :to, presence: true
7
+
8
+ before_validation :set_payment_order
9
+
10
+ def set_payment_order
11
+ unless payroll
12
+ self.payment_order = 1
13
+ return
14
+ end
15
+ previous_payment = payroll.payments.find_by(approved: true)
16
+ self.payment_order = previous_payment ? previous_payment.payment_order + 1 : 1
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ module Ecom
2
+ module Core
3
+ class PaymentDetail < ApplicationRecord
4
+ belongs_to :crew
5
+ belongs_to :payment
6
+
7
+ validates :hours, :ot_hours, :base_salary, :overtime, :gross_salary, :tax, :pension, :net_salary, :net_pay,
8
+ presence: true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module Ecom
2
+ module Core
3
+ class Payroll < ApplicationRecord
4
+ validates :month, :year, presence: true
5
+
6
+ has_many :payments, class_name: 'Ecom::Core::Payment'
7
+ end
8
+ end
9
+ end
@@ -7,6 +7,10 @@ class CreateEcomCoreCrews < ActiveRecord::Migration[6.0]
7
7
  t.string :qualification, null: false
8
8
  t.string :employment, null: false
9
9
  t.float :wage
10
+ t.date :employment_date
11
+ t.boolean :sub_contracted, null: false, default: false
12
+ t.string :guarantor_name
13
+ t.string :guarantor_phone
10
14
  t.boolean :active, null: false, default: true
11
15
  t.references :crew_type, index: { name: 'crew_on_ct_indx' }
12
16
 
@@ -0,0 +1,11 @@
1
+ class CreateEcomCorePayrolls < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_payrolls do |t|
4
+ t.integer :month, null: false
5
+ t.integer :year, null: false
6
+ t.boolean :approved, null: false, default: false
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ class CreateEcomCorePayments < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_payments do |t|
4
+ t.date :from, null: false
5
+ t.date :to, null: false
6
+ t.references :payroll, null: false, index: { name: 'payments_on_payroll_indx' }
7
+
8
+ t.timestamps
9
+ end
10
+
11
+ add_foreign_key :ecom_core_payments, :ecom_core_payrolls, column: :payroll_id
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ class CreateEcomCorePaymentDetails < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_payment_details do |t|
4
+ t.float :hours, null: false
5
+ t.float :ot_hours, null: false, default: 0
6
+ t.float :base_salary, null: false
7
+ t.float :overtime, null: false, default: 0
8
+ t.float :gross_salary, null: false
9
+ t.float :tax, null: false, default: 0
10
+ t.float :pension, null: false, default: 0
11
+ t.float :net_salary, null: false
12
+ t.references :crew, null: false, index: { name: 'pd_on_crew_indx' }
13
+ t.references :payment, null: false, index: { name: 'pd_on_payment_indx' }
14
+
15
+ t.timestamps
16
+ end
17
+
18
+ add_foreign_key :ecom_core_payment_details, :ecom_core_crews, column: :crew_id
19
+ add_foreign_key :ecom_core_payment_details, :ecom_core_payments, column: :payment_id
20
+ end
21
+ end
@@ -0,0 +1,6 @@
1
+ class AddAdditionalColumnsToPayment < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :ecom_core_payments, :approved, :boolean, null: false, default: false
4
+ add_column :ecom_core_payments, :payment_order, :integer, null: false, default: 1
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddNetPayColumnToPaymentDetails < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :ecom_core_payment_details, :net_pay, :float, null: false, default: 0
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.0.11'.freeze
3
+ VERSION = '1.0.16'.freeze
4
4
  end
5
5
  end
@@ -6,6 +6,10 @@ FactoryBot.define do
6
6
  qualification { FFaker::Name.name }
7
7
  employment { Ecom::Core::Crew::PERMANENT }
8
8
  wage { FFaker::Random.rand(1000..5000) }
9
+ employment_date { Date.today }
10
+ sub_contracted { false }
11
+ guarantor_name { FFaker::Name.name }
12
+ guarantor_phone { FFaker::Name.name }
9
13
  active { true }
10
14
 
11
15
  association :crew_type
@@ -0,0 +1,15 @@
1
+ FactoryBot.define do
2
+ factory :payment_detail, class: 'Ecom::Core::PaymentDetail' do
3
+ hours { 1.5 }
4
+ ot_hours { 1.5 }
5
+ base_salary { 1.5 }
6
+ overtime { 1.5 }
7
+ gross_salary { 100 }
8
+ tax { 15 }
9
+ pension { 5 }
10
+ net_salary { 80 }
11
+ net_pay { 80 }
12
+ association :crew
13
+ association :payment
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :payment, class: 'Ecom::Core::Payment' do
3
+ from { Date.parse('2000-01-01') }
4
+ to { Date.parse('2000-01-15') }
5
+ approved { false }
6
+ payment_order { 1 }
7
+ association :payroll
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :payroll, class: 'Ecom::Core::Payroll' do
3
+ month { 1 }
4
+ year { 2000 }
5
+ approved { false }
6
+ end
7
+ 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.0.11
4
+ version: 1.0.16
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-01-15 00:00:00.000000000 Z
11
+ date: 2020-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -206,6 +206,9 @@ files:
206
206
  - app/models/ecom/core/material_type.rb
207
207
  - app/models/ecom/core/menu.rb
208
208
  - app/models/ecom/core/overtime_type.rb
209
+ - app/models/ecom/core/payment.rb
210
+ - app/models/ecom/core/payment_detail.rb
211
+ - app/models/ecom/core/payroll.rb
209
212
  - app/models/ecom/core/product_type.rb
210
213
  - app/models/ecom/core/project.rb
211
214
  - app/models/ecom/core/resource_type.rb
@@ -246,6 +249,11 @@ files:
246
249
  - db/migrate/20191206104247_create_ecom_core_work_components.rb
247
250
  - db/migrate/20191225100054_create_ecom_core_crews.rb
248
251
  - db/migrate/20191225211712_create_ecom_core_crew_times.rb
252
+ - db/migrate/20200126081005_create_ecom_core_payrolls.rb
253
+ - db/migrate/20200126082103_create_ecom_core_payments.rb
254
+ - db/migrate/20200126183218_create_ecom_core_payment_details.rb
255
+ - db/migrate/20200207035823_add_additional_columns_to_payment.rb
256
+ - db/migrate/20200207040844_add_net_pay_column_to_payment_details.rb
249
257
  - lib/ecom/core.rb
250
258
  - lib/ecom/core/engine.rb
251
259
  - lib/ecom/core/version.rb
@@ -261,6 +269,9 @@ files:
261
269
  - spec/factories/ecom/core/material_types.rb
262
270
  - spec/factories/ecom/core/menus.rb
263
271
  - spec/factories/ecom/core/overtime_types.rb
272
+ - spec/factories/ecom/core/payment_details.rb
273
+ - spec/factories/ecom/core/payments.rb
274
+ - spec/factories/ecom/core/payrolls.rb
264
275
  - spec/factories/ecom/core/product_types.rb
265
276
  - spec/factories/ecom/core/projects.rb
266
277
  - spec/factories/ecom/core/resource_types.rb