Class: Dolibarr::SupplierInvoices

Inherits:
Resource
  • Object
show all
Defined in:
lib/dolibarr/supplier_invoices.rb

Overview

Supplier invoices — read-only. Returns normalised hashes (amounts coerced to BigDecimal); no dedicated value object, per the working-set scope.

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from Dolibarr::Resource

Instance Method Details

#all(**filters) ⇒ Array<Hash>

Returns:

  • (Array<Hash>)


34
35
36
# File 'lib/dolibarr/supplier_invoices.rb', line 34

def all(**filters)
  each(**filters).to_a
end

#each(limit: 100, **filters, &block) ⇒ Object

Every matching supplier invoice, paginating transparently. Enumerator when no block.



28
29
30
31
# File 'lib/dolibarr/supplier_invoices.rb', line 28

def each(limit: 100, **filters, &block)
  enum = paginate(limit: limit) { |page, lim| list(page: page, limit: lim, **filters) }
  block ? enum.each(&block) : enum
end

#find(id:) ⇒ Hash

Fetch a single supplier invoice by id.

Parameters:

  • id (Integer, String)

Returns:

  • (Hash)

    normalised payload

Raises:



43
44
45
# File 'lib/dolibarr/supplier_invoices.rb', line 43

def find(id:)
  Coerce.amounts(get_one("/supplierinvoices/#{encode(id)}", "supplier invoice #{id}"))
end

#list(thirdparty_id: nil, status: nil, sqlfilters: nil, limit: 100, page: 0, sortfield: 't.rowid', sortorder: 'ASC') ⇒ Array<Hash>

One page of supplier invoices as normalised hashes.

Parameters:

  • thirdparty_id (Integer, String, nil) (defaults to: nil)

    restrict to a supplier

  • status (String, nil) (defaults to: nil)

    Dolibarr status filter

  • sqlfilters (String, nil) (defaults to: nil)

    raw Restler sqlfilter

  • limit (Integer) (defaults to: 100)

    page size

  • page (Integer) (defaults to: 0)

    0-based page index

  • sortfield (String) (defaults to: 't.rowid')
  • sortorder (String) (defaults to: 'ASC')

Returns:

  • (Array<Hash>)


17
18
19
20
21
22
23
24
25
# File 'lib/dolibarr/supplier_invoices.rb', line 17

def list(thirdparty_id: nil, status: nil, sqlfilters: nil,
         limit: 100, page: 0, sortfield: 't.rowid', sortorder: 'ASC')
  get_list(
    '/supplierinvoices',
    'sortfield' => sortfield, 'sortorder' => sortorder,
    'limit' => limit, 'page' => page,
    'thirdparty_ids' => thirdparty_id, 'status' => status, 'sqlfilters' => sqlfilters
  ).map { |raw| Coerce.amounts(raw) }
end