Class: SpreeCmCommissioner::DistributionAgreements::Create

Inherits:
Object
  • Object
show all
Includes:
Spree::ServiceModule::Base
Defined in:
app/services/spree_cm_commissioner/distribution_agreements/create.rb

Instance Method Summary collapse

Instance Method Details

#call(params:, vendor:, price_list:, partner:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/services/spree_cm_commissioner/distribution_agreements/create.rb', line 6

def call(params:, vendor:, price_list:, partner:)
  record = SpreeCmCommissioner::DistributionAgreement.new(
    vendor: vendor,
    price_list: price_list,
    partner: partner,
    fee_type: params[:fee_type],
    fee_percentage: params[:fee_percentage],
    fee_fixed_amount: params[:fee_fixed_amount],
    settlement_basis: params[:settlement_basis],
    status: params[:status]
  )

  if record.save
    success(distribution_agreement: record)
  else
    failure(record, record.errors.full_messages.join(', '))
  end
rescue ActiveRecord::RecordNotUnique
  failure(nil, I18n.t('distribution_agreements.not_unique'))
end