Class: Ticketbai::Operations::Issuance
- Inherits:
-
Ticketbai::Operation
- Object
- Ticketbai::Operation
- Ticketbai::Operations::Issuance
- Defined in:
- lib/ticketbai/operations/issuance.rb
Constant Summary collapse
- DEFAULT_VAT_KEY =
'01'.freeze
- OPERATION_NAME =
:issuance- ATTRIBUTES =
i[company_cert issuing_company_nif issuing_company_name receiver_nif receiver_name receiver_country receiver_in_eu invoice_serial invoice_number invoice_date invoice_time simplified_invoice invoice_description invoice_total invoice_vat_key invoice_amount invoice_vat invoice_vat_total prev_invoice_number prev_invoice_signature prev_invoice_date].freeze
Instance Attribute Summary
Attributes inherited from Ticketbai::Operation
Instance Method Summary collapse
- #build_document ⇒ Object
-
#initialize(**args) ⇒ Issuance
constructor
A new instance of Issuance.
Methods inherited from Ticketbai::Operation
Constructor Details
#initialize(**args) ⇒ Issuance
Returns a new instance of Issuance.
36 37 38 39 40 41 |
# File 'lib/ticketbai/operations/issuance.rb', line 36 def initialize(**args) args[:receiver_nif]&.strip! args[:receiver_country] = args[:receiver_country]&.upcase || 'ES' super(args) end |
Instance Method Details
#build_document ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/ticketbai/operations/issuance.rb', line 43 def build_document @issuer = Ticketbai::Nodes::Issuer.new(issuing_company_nif: @issuing_company_nif, issuing_company_name: @issuing_company_name) if @receiver_nif && @receiver_name @receiver = Ticketbai::Nodes::Receiver.new(receiver_country: @receiver_country, receiver_nif: @receiver_nif, receiver_name: @receiver_name) end @invoice_header = Ticketbai::Nodes::InvoiceHeader.new( invoice_serial: @invoice_serial, invoice_number: @invoice_number, invoice_date: @invoice_date, invoice_time: @invoice_time, simplified_invoice: @simplified_invoice ) @invoice_data = Ticketbai::Nodes::InvoiceData.new( invoice_description: @invoice_description, invoice_total: @invoice_total, invoice_vat_key: @invoice_vat_key ) @breakdown_type = Ticketbai::Nodes::BreakdownType.new( receiver_country: @receiver_country, invoice_amount: @invoice_amount, invoice_vat: @invoice_vat, invoice_vat_total: @invoice_vat_total, receiver_in_eu: @receiver_in_eu, simplified_invoice: @simplified_invoice ) if @prev_invoice_number && @prev_invoice_date && @prev_invoice_signature @invoice_chaining = Ticketbai::Nodes::InvoiceChaining.new( prev_invoice_serial: @prev_invoice_serial, prev_invoice_number: @prev_invoice_number, prev_invoice_date: @prev_invoice_date, prev_invoice_signature: @prev_invoice_signature ) end @software = Ticketbai::Nodes::Software.new Ticketbai::Documents::Issuance.new( issuer: @issuer, receiver: @receiver, invoice_header: @invoice_header, invoice_data: @invoice_data, breakdown_type: @breakdown_type, invoice_chaining: @invoice_chaining, software: @software ).create end |