Current section
Files
Jump to
Current section
Files
lib/modules/create_invoice/item.ex
defmodule ExSzamlazzHu.CreateInvoice.Items.Item do
@moduledoc false
alias ExSzamlazzHu.CreateInvoice.Items.Item.ItemLedger
alias ExSzamlazzHu.Utils.StructToXML
@type t() :: %__MODULE__{}
@enforce_keys [
:megnevezes,
:mennyiseg,
:mennyisegiEgyseg,
:nettoEgysegar,
:afakulcs,
:nettoErtek,
:afaErtek,
:bruttoErtek
]
defstruct [
:megnevezes,
:azonosito,
:mennyiseg,
:mennyisegiEgyseg,
:nettoEgysegar,
:afakulcs,
:arresAfaAlap,
:nettoErtek,
:afaErtek,
:bruttoErtek,
:megjegyzes,
:tetelFokonyv
]
@spec parse(map() | nil) :: t() | nil
def parse(nil), do: nil
def parse(params) do
__MODULE__
|> struct(Map.drop(params, [:tetelFokonyv]))
|> Map.put(:tetelFokonyv, ItemLedger.parse(params[:tetelFokonyv]))
end
def tag(), do: :tetel
def attrs(), do: nil
def content(_) do
[
:megnevezes,
:azonosito,
:mennyiseg,
:mennyisegiEgyseg,
:nettoEgysegar,
:afakulcs,
:arresAfaAlap,
:nettoErtek,
:afaErtek,
:bruttoErtek,
:megjegyzes,
:tetelFokonyv
]
end
@spec to_xml(t()) :: String.t()
def to_xml(%__MODULE__{} = module) do
StructToXML.convert(module)
end
end