Class: Ecom::Core::CrewContractTransactionService
- Inherits:
-
Object
- Object
- Ecom::Core::CrewContractTransactionService
- Defined in:
- app/services/ecom/core/crew_contract_transaction_service.rb
Instance Method Summary collapse
- #activate_contract(crew_contract) ⇒ Object
-
#create_new_id_card(crew, valid_until) ⇒ Object
invalidate other Id cards and creates a new ID card.
- #deactivate_contract(crew_contract) ⇒ Object
- #execute(crew_contract_transaction, crew_contract) ⇒ Object
- #invalidate_gate_pass(crew) ⇒ Object
- #invalidate_id_card(crew) ⇒ Object
- #make_crew_active(crew) ⇒ Object
- #make_crew_inactive(crew) ⇒ Object
Instance Method Details
#activate_contract(crew_contract) ⇒ Object
53 54 55 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 53 def activate_contract(crew_contract) crew_contract.update(status: :in_effect) end |
#create_new_id_card(crew, valid_until) ⇒ Object
invalidate other Id cards and creates a new ID card
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 74 def create_new_id_card(crew, valid_until) issued_on = Time.now previous_id_card = Ecom::Core::CrewIdCard.where(crew_id: crew.id).last previous_id_card&.update(status: 'Invalid') new_id_card = Ecom::Core::CrewIdCard.new( crew_id: crew.id, issued_on: issued_on, valid_until: valid_until, status: 'Valid' ) raise StandardError, new_id_card.errors. unless new_id_card.save end |
#deactivate_contract(crew_contract) ⇒ Object
57 58 59 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 57 def deactivate_contract(crew_contract) crew_contract.update(status: :void) end |
#execute(crew_contract_transaction, crew_contract) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 4 def execute(crew_contract_transaction, crew_contract) Ecom::Core::CrewContractTransaction.transaction do case crew_contract_transaction.transaction_type when Ecom::Core::CrewContractTransaction::TXN_UPDATE_CREW_TYPE create_new_id_card(crew_contract.crew, crew_contract.to) # update crew type crew = crew_contract.crew crew.update(crew_type_id: crew_contract.crew_type_id) crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED) when Ecom::Core::CrewContractTransaction::TXN_UPDATE_PLACE_OF_WORK create_new_id_card(crew_contract.crew, crew_contract.to) crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED) when Ecom::Core::CrewContractTransaction::TXN_UPDATE_WAGE crew = crew_contract.crew # update wage crew.update(wage: crew_contract.wage, wage_in_words: crew_contract.wage_in_words) crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED) when Ecom::Core::CrewContractTransaction::TXN_UPDATE_VALIDITY # make crew active create_new_id_card(crew_contract.crew, crew_contract.to) make_crew_active(crew_contract.crew) activate_contract(crew_contract) crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED) when Ecom::Core::CrewContractTransaction::TXN_TERMINATE_CONTRACT # make crew inactive make_crew_inactive(crew_contract.crew) # make ID card and gate pass invalid invalidate_id_card(crew_contract.crew) invalidate_gate_pass(crew_contract.crew) # make the contract void deactivate_contract(crew_contract) crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED) end end end |
#invalidate_gate_pass(crew) ⇒ Object
95 96 97 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 95 def invalidate_gate_pass(crew) Ecom::Core::SiteCrew.where(crew_id: crew.id).update(status: Ecom::Core::SiteCrew::INACTIVE) end |
#invalidate_id_card(crew) ⇒ Object
90 91 92 93 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 90 def invalidate_id_card(crew) current_id_card = Ecom::Core::CrewIdCard.where(crew_id: crew.id).last current_id_card.update(status: 'Invalid') end |
#make_crew_active(crew) ⇒ Object
61 62 63 64 65 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 61 def make_crew_active(crew) return if crew.active crew.update(active: true) end |
#make_crew_inactive(crew) ⇒ Object
67 68 69 70 71 |
# File 'app/services/ecom/core/crew_contract_transaction_service.rb', line 67 def make_crew_inactive(crew) return unless crew.active crew.update(active: false) end |