Current section
Files
Jump to
Current section
Files
lib/sat/catalogos/objeto_imp.ex
# ─────────────────────────────────────────────────────────────
# Generado por Sat.Catalogos.Codegen — NO EDITAR.
# Source: packages/files/4.0/catCFDI.xsd + catCFDI.xlsx
# ─────────────────────────────────────────────────────────────
defmodule Sat.Catalogos.ObjetoImp do
@moduledoc "Catálogo c_ObjetoImp del SAT (CFDI 4.0)."
@type t :: %{value: String.t(), label: String.t(), deprecated: boolean()}
@entries [
%{value: "01", label: "No objeto de impuesto.", deprecated: false},
%{value: "02", label: "Sí objeto de impuesto.", deprecated: false},
%{value: "03", label: "Sí objeto del impuesto y no obligado al desglose.", deprecated: false},
%{value: "04", label: "Sí objeto del impuesto y no causa impuesto.", deprecated: false},
%{value: "05", label: "Sí objeto del impuesto, IVA crédito PODEBI.", deprecated: false},
%{value: "06", label: "Sí objeto del IVA, No traslado IVA.", deprecated: false},
%{value: "07", label: "No traslado del IVA, Sí desglose IEPS.", deprecated: false},
%{value: "08", label: "No traslado del IVA, No desglose IEPS.", deprecated: false}
]
@doc "Lista completa del catálogo."
def list, do: @entries
@doc "Devuelve true si el código existe en el catálogo."
def valid?(code) when is_binary(code), do: Enum.any?(@entries, &(&1.value == code))
def valid?(_), do: false
@doc "Busca una entrada por su código."
def from_code(code) when is_binary(code) do
case Enum.find(@entries, &(&1.value == code)) do
nil -> :error
entry -> {:ok, entry}
end
end
end