Sha256: eec3d2b67420721533dfbdf9ccb8d482bc16780f80c1f21970ff2eb8088a100d

Contents?: true

Size: 999 Bytes

Versions: 1

Compression:

Stored size: 999 Bytes

Contents

# frozen_string_literal: true

require_relative '../reference/serializer'
require_relative '../journal_entry_line_item/serializer'
require_relative '../ledger_class/serializer'

module LedgerSync
  module NetSuite
    class JournalEntry
      class Serializer < NetSuite::Serializer
        attribute :memo

        attribute :trandate

        attribute :tranId

        references_one :currency,
                       serializer: Reference::Serializer, if: :currency_present?

        references_one :ledger_class,
                       serializer: LedgerClass::Serializer

        references_one :subsidiary,
                       serializer: Reference::Serializer

        references_many 'line.items',
                        resource_attribute: :line_items,
                        serializer: JournalEntryLineItem::Serializer

        def currency_present?(args = {})
          resource = args.fetch(:resource)

          resource.currency.present?
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ledger_sync-netsuite-0.3.2 lib/ledger_sync/netsuite/journal_entry/serializer.rb