Packages

A very thin wrapper for the Szamlazz.hu API.

Current section

Files

Jump to
ex_szamlazz_hu lib modules create_invoice customer.ex
Raw

lib/modules/create_invoice/customer.ex

defmodule ExSzamlazzHu.CreateInvoice.Customer do
@moduledoc false
alias ExSzamlazzHu.CreateInvoice.CustomerLedger
alias ExSzamlazzHu.Utils.StructToXML
@type t :: %__MODULE__{}
@enforce_keys [
:nev,
:irsz,
:telepules,
:cim
]
defstruct [
:nev,
:orszag,
:irsz,
:telepules,
:cim,
:email,
:sendEmail,
:adoalany,
:adoszam,
:csoportazonosito,
:adoszamEU,
:postazasiNev,
:postazasiOrszag,
:postazasiIrsz,
:postazasiTelepules,
:postazasiCim,
:vevoFokonyv,
:azonosito,
:alairoNeve,
:telefonszam,
:megjegyzes
]
@spec parse(map() | nil) :: t() | nil
def parse(nil), do: nil
def parse(params) do
__MODULE__
|> struct(Map.drop(params, [:vevoFokonyv]))
|> Map.put(:vevoFokonyv, CustomerLedger.parse(params[:vevoFokonyv]))
end
def tag(), do: :vevo
def attrs(), do: nil
def content(_) do
[
:nev,
:orszag,
:irsz,
:telepules,
:cim,
:email,
:sendEmail,
:adoalany,
:adoszam,
:csoportazonosito,
:adoszamEU,
:postazasiNev,
:postazasiOrszag,
:postazasiIrsz,
:postazasiTelepules,
:postazasiCim,
:vevoFokonyv,
:azonosito,
:alairoNeve,
:telefonszam,
:megjegyzes
]
end
@spec to_xml(t()) :: String.t()
def to_xml(%__MODULE__{} = module) do
StructToXML.convert(module)
end
end