Class: Atol::Request::PostDocument::Correction::V5::Body
- Inherits:
-
Object
- Object
- Atol::Request::PostDocument::Correction::V5::Body
- Defined in:
- lib/atol/request/post_document/correction/v5/body.rb
Defined Under Namespace
Classes: BadAdditionalCheckPropsError, BadCorrectionBaseDateError, BadCorrectionBaseNumberError, BadCorrectionTypeError
Constant Summary collapse
- CORRECTION_TYPES =
%w[self instruction].freeze
- BASE_DATE_FORMAT =
/\A\d{2}\.\d{2}\.\d{4}\z/- BASE_NUMBER_MAX_BYTESIZE =
32- ADDITIONAL_CHECK_PROPS_MAX_BYTESIZE =
16
Instance Method Summary collapse
-
#initialize(external_id:, items:, correction_type:, base_date:, phone: '', email: '', payments: nil, base_number: nil, additional_check_props: nil, config: nil, **options) ⇒ Body
constructor
A new instance of Body.
- #to_h ⇒ Object
- #to_json(*_args) ⇒ Object
Constructor Details
#initialize(external_id:, items:, correction_type:, base_date:, phone: '', email: '', payments: nil, base_number: nil, additional_check_props: nil, config: nil, **options) ⇒ Body
Returns a new instance of Body.
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 |
# File 'lib/atol/request/post_document/correction/v5/body.rb', line 22 def initialize(external_id:, items:, correction_type:, base_date:, phone: '', email: '', payments: nil, base_number: nil, additional_check_props: nil, config: nil, **) raise(Atol::EmptyClientContactError) if phone.empty? && email.empty? raise(Atol::EmptySellItemsError) if items.empty? raise(BadCorrectionTypeError) unless CORRECTION_TYPES.include?(correction_type) raise(BadCorrectionBaseDateError) unless base_date.to_s.match?(BASE_DATE_FORMAT) raise(BadCorrectionBaseNumberError) if base_number && base_number.to_s.bytesize > BASE_NUMBER_MAX_BYTESIZE if additional_check_props && additional_check_props.to_s.bytesize > ADDITIONAL_CHECK_PROPS_MAX_BYTESIZE raise(BadAdditionalCheckPropsError) end total = items.sum { |item| item[:sum] } validate_payments!(payments, total) @config = config || Atol.config @external_id = external_id @phone = phone @email = email @items = items @correction_type = correction_type @base_date = base_date @base_number = base_number @additional_check_props = additional_check_props @total = total @payments = payments end |
Instance Method Details
#to_h ⇒ Object
49 50 51 |
# File 'lib/atol/request/post_document/correction/v5/body.rb', line 49 def to_h build_body.clone end |
#to_json(*_args) ⇒ Object
53 54 55 |
# File 'lib/atol/request/post_document/correction/v5/body.rb', line 53 def to_json(*_args) build_body.to_json end |