class Atol::Request::PostDocument::Item::Body

Constants

BadPaymentMethodError
BadPaymentObjectError
PAYMENT_METHODS
PAYMENT_OBJECTS

Attributes

config[RW]
name[RW]
payment_method[RW]
payment_object[RW]
price[RW]
quantity[RW]

Public Class Methods

new(config: nil, name:, price:, quantity: 1, payment_method:, payment_object:) click to toggle source
# File lib/atol/request/post_document/item/body.rb, line 26
def initialize(config: nil, name:, price:, quantity: 1, payment_method:, payment_object:)
  raise Atol::ZeroItemQuantityError if quantity.to_f.zero?
  raise BadPaymentMethodError unless PAYMENT_METHODS.include?(payment_method.to_s)
  raise BadPaymentObjectError unless PAYMENT_OBJECTS.include?(payment_object.to_s)

  self.config = config || Atol.config
  self.name = name
  self.price = price.to_f
  self.quantity = quantity.to_f
  self.payment_method = payment_method.to_s
  self.payment_object = payment_object.to_s
end

Public Instance Methods

to_h() click to toggle source
# File lib/atol/request/post_document/item/body.rb, line 39
def to_h
  body.clone
end
to_json(*_args) click to toggle source
# File lib/atol/request/post_document/item/body.rb, line 43
def to_json(*_args)
  body.to_json
end

Private Instance Methods

body() click to toggle source
# File lib/atol/request/post_document/item/body.rb, line 49
def body
  @body ||= {
    name: name,
    price: price,
    quantity: quantity,
    sum: (price * quantity).round(2),
    tax: config.default_tax,
    payment_method: payment_method,
    payment_object: payment_object
  }
end