Class: Cpro::Resources::Factures

Inherits:
Base
  • Object
show all
Defined in:
lib/cpro/resources/factures.rb

Constant Summary collapse

FILTRES =

Contrairement à l'Annuaire, les filtres sont plats : {"nomFlux" => "CPP004…"} et non {"op" => …, "valeur" => …}. Les valeurs partent telles quelles, codeTypeFacture étant un entier.

%w[
  numeroFacture dateEmissionFactureDu dateEmissionFactureAu codeTypeFacture idObjetFacture
  siretVendeur siretAgentVendeur siretAcheteur sirenAcheteur siretTiersFacturant
  dateStatutFactureDu dateStatutFactureAu nomFlux
].freeze
TOTAL_KEY =
"nombreTotalResultats"

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Cpro::Resources::Base

Instance Method Details

#find(uid) ⇒ Object



28
29
30
31
32
33
# File 'lib/cpro/resources/factures.rb', line 28

def find(uid)
  payload = get("facture/#{normalize_uid(uid, "identifiant de facture")}")
  payload = {} unless payload.is_a?(Hash)

  Entities::Facture.new(payload["facture"], historique: payload["historique"])
end

#healthcheckObject



35
36
37
# File 'lib/cpro/resources/factures.rb', line 35

def healthcheck
  get("healthcheck")
end

#search(filtres:, **options) ⇒ Object



17
18
19
20
# File 'lib/cpro/resources/factures.rb', line 17

def search(filtres:, **options)
  payload = post("facture/recherche", search_body(filtres, options))
  Entities::ResultatRecherche.new(payload, item_class: Entities::Facture, total_key: TOTAL_KEY)
end

#search_by_nom_flux(nom_flux, **options) ⇒ Object

Cinématique documentée après un dépôt : le nomFlux rendu par Flux#status mène aux factures que le flux contenait.



24
25
26
# File 'lib/cpro/resources/factures.rb', line 24

def search_by_nom_flux(nom_flux, **options)
  search(filtres: { nomFlux: nom_flux.respond_to?(:nom_flux) ? nom_flux.nom_flux : nom_flux }, **options)
end