Bugfix job role info allocation

This commit is contained in:
2024-10-02 08:32:47 +02:00
parent 5b60eb64ad
commit f5eece52ee
2 changed files with 25 additions and 20 deletions

View File

@@ -16,7 +16,7 @@ class Job < ApplicationRecord
validate :acceptable_pdf
before_save :update_status_changed_at, if: :will_save_change_to_status?
before_save :update_user_status_infos, if: :will_save_change_to_status?
before_save :update_user_status_infos, if: -> { will_save_change_to_status? || new_record? }
before_save :set_cost_qm
before_save :calc_cost, if: :printed_pages_changes?
@@ -205,6 +205,10 @@ class Job < ApplicationRecord
self.operator_lastname = nil
end
def operator_infos_set?
self.operator && self.operator_firstname && self.operator_lastname
end
def set_cashier_infos
self.paid_at = Time.now
self.cashier = current_user unless self.cashier
@@ -226,25 +230,23 @@ class Job < ApplicationRecord
end
def update_user_status_infos
if status_changed?
case status.to_sym
when :open
reset_operator_and_cashier_infos
self.printed_at = nil
self.paid_at = nil
when :printing
clear_cashier_infos
set_operator_infos
self.printed_at = nil
when :pickup
clear_cashier_infos
self.printed_at = Time.now unless self.printed_at
when :paid
set_operator_infos unless self.operator
self.printed_at = Time.now unless self.printed_at
set_cashier_infos unless self.cashier
self.paid_at = Time.now unless self.paid_at
end
case status.to_sym
when :open
reset_operator_and_cashier_infos
self.printed_at = nil
self.paid_at = nil
when :printing
clear_cashier_infos
set_operator_infos
self.printed_at = nil
when :pickup
clear_cashier_infos
self.printed_at = Time.now unless self.printed_at
when :paid
set_operator_infos unless operator_infos_set?
self.printed_at = Time.now unless self.printed_at
set_cashier_infos
self.paid_at = Time.now
end
end

View File

@@ -31,6 +31,7 @@ students = []
# created_at = Faker::Time.backward(days: 60, period: :day)
created_at = Faker::Time.between_dates(from: Date.today - 60, to: Date.today - 30, period: :day)
email="#{firstname}.#{lastname}@student.hs-rm.de".downcase.gsub('ö', 'oe').gsub('ä', 'ae').gsub('ü', 'ue').gsub('ß', 'ss')
puts "Create Student:" + email
email.delete(" ")
students << User.new(email: email, firstname: firstname, lastname: lastname, password_digest: BCrypt::Password.create("password"), verified: true, created_at: created_at)
students.last.save!
@@ -44,6 +45,7 @@ end
# created_at = Faker::Time.between_dates(from: Date.today - 60, to: Date.today, period: :day)
email="#{firstname}.#{lastname}@student.hs-rm.de".downcase.gsub('ö', 'oe').gsub('ä', 'ae').gsub('ü', 'ue').gsub('ß', 'ss')
email.delete(" ")
puts "Create Student:" + email
User.new(email: email, firstname: firstname, lastname: lastname, password_digest: BCrypt::Password.create("password"), verified: true, created_at: created_at).save!
end
@@ -55,6 +57,7 @@ end
# created_at = Faker::Time.between_dates(from: Date.today - 60, to: Date.today, period: :day)
email="#{firstname}.#{lastname}@student.hs-rm.de".downcase.gsub('ö', 'oe').gsub('ä', 'ae').gsub('ü', 'ue').gsub('ß', 'ss')
email.delete(" ")
puts "Create Student:" + email
User.new(email: email, firstname: firstname, lastname: lastname, password_digest: BCrypt::Password.create("password"), verified: false, created_at: created_at).save!
end