cats_core 1.5.23 → 1.5.24
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/controllers/cats/core/dispatches_controller.rb +7 -0
- data/app/controllers/cats/core/stack_transactions_controller.rb +6 -0
- data/app/models/cats/core/dispatch.rb +8 -0
- data/app/models/cats/core/stack_transaction.rb +21 -0
- data/app/notifications/cats/core/dispatch_notification.rb +1 -0
- data/config/routes.rb +6 -1
- data/lib/cats/core/version.rb +1 -1
- data/spec/factories/cats/core/stack_transactions.rb +7 -3
- 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: e90178cd66acd3f96313a3663036ba07bbf157e092e672adc393d840f701cfde
         | 
| 4 | 
            +
              data.tar.gz: 7236c8485554e65bc5058bc600bfe25b38465b5d760823c3e96aec29c37ae951
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 80fff7d2dae7ed8e2d0fe77339bc0dbcd433d1fba6be6083e0c1e3b118c222912a957c0eee129908016a1fd7b25b1f4c4c931b8ef632fe12943d5b5facd620ce
         | 
| 7 | 
            +
              data.tar.gz: '0765604991129318a519ad3960f32a43582f561492972264b027dda9846d87c1255c3009743a3f493386abda67ca9c373184f1d809b06ce5109017a1b96a6da4'
         | 
| @@ -76,6 +76,13 @@ module Cats | |
| 76 76 | 
             
                    render json: {success: true, data: serialize(data)}
         | 
| 77 77 | 
             
                  end
         | 
| 78 78 |  | 
| 79 | 
            +
                  def revert
         | 
| 80 | 
            +
                    data = set_object.revert
         | 
| 81 | 
            +
                    render json: {success: true, data: serialize(data)}
         | 
| 82 | 
            +
                  rescue StandardError => e
         | 
| 83 | 
            +
                    render json: {success: false, error: e.message}
         | 
| 84 | 
            +
                  end
         | 
| 85 | 
            +
             | 
| 79 86 | 
             
                  private
         | 
| 80 87 |  | 
| 81 88 | 
             
                  def set_service
         | 
| @@ -15,6 +15,12 @@ module Cats | |
| 15 15 | 
             
                    render json: {success: true, data: serialize(query.result)}
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 |  | 
| 18 | 
            +
                  def commit
         | 
| 19 | 
            +
                    transaction = set_object
         | 
| 20 | 
            +
                    transaction.commit
         | 
| 21 | 
            +
                    render json: {success: true, data: serialize(transaction)}
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
             | 
| 18 24 | 
             
                  private
         | 
| 19 25 |  | 
| 20 26 | 
             
                  def model_params
         | 
| @@ -54,6 +54,14 @@ module Cats | |
| 54 54 | 
             
                    save!
         | 
| 55 55 | 
             
                  end
         | 
| 56 56 |  | 
| 57 | 
            +
                  def revert
         | 
| 58 | 
            +
                    raise(StandardError, "Dispatch has to be in approved state.") unless dispatch_status == Dispatch::APPROVED
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                    self.dispatch_status = DRAFT
         | 
| 61 | 
            +
                    self.quantity = 0
         | 
| 62 | 
            +
                    save!
         | 
| 63 | 
            +
                  end
         | 
| 64 | 
            +
             | 
| 57 65 | 
             
                  def all_authorizations_confirmed?
         | 
| 58 66 | 
             
                    statuses = dispatch_authorizations.map(&:status).uniq
         | 
| 59 67 | 
             
                    return true if statuses.length == 1 && statuses[0] == Authorization::CONFIRMED
         | 
| @@ -5,6 +5,8 @@ module Cats | |
| 5 5 | 
             
                  belongs_to :destination, class_name: "Cats::Core::Stack"
         | 
| 6 6 | 
             
                  belongs_to :unit, class_name: "Cats::Core::UnitOfMeasure"
         | 
| 7 7 |  | 
| 8 | 
            +
                  validate :validate_commodity
         | 
| 9 | 
            +
             | 
| 8 10 | 
             
                  def validate_quantity
         | 
| 9 11 | 
             
                    return unless quantity.present? && source.present?
         | 
| 10 12 |  | 
| @@ -15,6 +17,25 @@ module Cats | |
| 15 17 |  | 
| 16 18 | 
             
                    errors.add(:quantity, "total is higher than source quantity (Max = #{available}).") if quantity > available
         | 
| 17 19 | 
             
                  end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  def validate_commodity
         | 
| 22 | 
            +
                    return unless source && destination
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                    return if source.commodity.batch_no == destination.commodity.batch_no
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    errors.add(:commodity, "batch number should be the same.")
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  def commit
         | 
| 30 | 
            +
                    StackTransaction.transaction do
         | 
| 31 | 
            +
                      source.quantity -= UnitConversion.convert(unit, source.unit, quantity)
         | 
| 32 | 
            +
                      source.save!
         | 
| 33 | 
            +
                      destination.quantity += UnitConversion.convert(unit, destination.unit, quantity)
         | 
| 34 | 
            +
                      destination.save!
         | 
| 35 | 
            +
                      self.status = COMMITTED
         | 
| 36 | 
            +
                      save!
         | 
| 37 | 
            +
                    end
         | 
| 38 | 
            +
                  end
         | 
| 18 39 | 
             
                end
         | 
| 19 40 | 
             
              end
         | 
| 20 41 | 
             
            end
         | 
| @@ -14,6 +14,7 @@ module Cats | |
| 14 14 | 
             
                      Commodity with the following details has been dispatched to you:
         | 
| 15 15 | 
             
                          Authorization no. = #{dispatch.dispatch_plan_item.reference_no}
         | 
| 16 16 | 
             
                          Dispatch Ref. = #{dispatch.reference_no}
         | 
| 17 | 
            +
                          Shipping Ref. = #{commodity.shipping_reference}
         | 
| 17 18 | 
             
                          Batch No. = #{commodity.batch_no}
         | 
| 18 19 | 
             
                          Commodity = #{commodity.name}
         | 
| 19 20 | 
             
                          Allocated Quantity = #{dispatch.dispatch_plan_item.quantity}
         | 
    
        data/config/routes.rb
    CHANGED
    
    | @@ -122,6 +122,7 @@ Cats::Core::Engine.routes.draw do | |
| 122 122 | 
             
                  get "receipts", controller: :receipts, action: :index
         | 
| 123 123 | 
             
                  get "commodity"
         | 
| 124 124 | 
             
                  post "approve"
         | 
| 125 | 
            +
                  post "revert"
         | 
| 125 126 | 
             
                  post "start"
         | 
| 126 127 | 
             
                  post "confirm"
         | 
| 127 128 | 
             
                  post "start_with_pin"
         | 
| @@ -192,7 +193,11 @@ Cats::Core::Engine.routes.draw do | |
| 192 193 | 
             
              resources :dispatch_transactions, except: %i[index new edit destroy]
         | 
| 193 194 | 
             
              post "/receipt_transactions/filter", controller: :receipt_transactions, action: :filter
         | 
| 194 195 | 
             
              resources :receipt_transactions, except: %i[index new edit destroy]
         | 
| 195 | 
            -
              resources :stack_transactions, except: %i[index new edit destroy]
         | 
| 196 | 
            +
              resources :stack_transactions, except: %i[index new edit destroy] do
         | 
| 197 | 
            +
                member do
         | 
| 198 | 
            +
                  post "commit"
         | 
| 199 | 
            +
                end
         | 
| 200 | 
            +
              end
         | 
| 196 201 | 
             
              resources :lost_commodities, except: %i[index destroy]
         | 
| 197 202 | 
             
              get "/plans/:id/round_plans", controller: :round_plans, action: :index, as: :round_plans_plan
         | 
| 198 203 |  | 
    
        data/lib/cats/core/version.rb
    CHANGED
    
    
| @@ -1,10 +1,14 @@ | |
| 1 1 | 
             
            FactoryBot.define do
         | 
| 2 2 | 
             
              factory :stack_transaction, class: "Cats::Core::StackTransaction" do
         | 
| 3 | 
            -
                 | 
| 4 | 
            -
             | 
| 3 | 
            +
                transient do
         | 
| 4 | 
            +
                  unit_of_measure { create(:unit_of_measure) }
         | 
| 5 | 
            +
                  commodity { create(:commodity, unit: unit_of_measure) }
         | 
| 6 | 
            +
                end
         | 
| 7 | 
            +
                source { association :stack, commodity: commodity }
         | 
| 8 | 
            +
                destination { association :stack, commodity: commodity }
         | 
| 5 9 | 
             
                transaction_date { Date.today }
         | 
| 6 10 | 
             
                quantity { 25 }
         | 
| 7 | 
            -
                unit {  | 
| 11 | 
            +
                unit { unit_of_measure }
         | 
| 8 12 | 
             
                status { Cats::Core::Transaction::DRAFT }
         | 
| 9 13 | 
             
              end
         | 
| 10 14 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cats_core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.5. | 
| 4 | 
            +
              version: 1.5.24
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Henock L.
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023- | 
| 11 | 
            +
            date: 2023-11-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: active_model_serializers
         |