Source code for satcfdi.create.cfd.aerolineas10

"""aerolineas http://www.sat.gob.mx/aerolineas"""
from decimal import Decimal
from datetime import datetime, date, time
from collections.abc import Sequence
from ...cfdi import CFDI
from ...xelement import XElement
from ...utils import ScalarMap


[docs] class Cargo(ScalarMap): """ Nodo para expresar la información detallada de un cargo. :param codigo_cargo: Atributo requerido para indicar el código del cargo según el catálogo de la IATA. :param importe: Atributo requerido para representar el importe del cargo. """ def __init__( self, codigo_cargo: str, importe: Decimal | int, ): super().__init__({ 'CodigoCargo': codigo_cargo, 'Importe': importe, })
[docs] class OtrosCargos(ScalarMap): """ Nodo opcional para expresar otros cargos aplicables :param total_cargos: Atributo requerido para expresar el total de los cargos adicionales que se están aplicando. :param cargo: Nodo para expresar la información detallada de un cargo. """ def __init__( self, total_cargos: Decimal | int, cargo: Cargo | dict | Sequence[Cargo | dict], ): super().__init__({ 'TotalCargos': total_cargos, 'Cargo': cargo, })
[docs] class Aerolineas(CFDI): """ Complemento al Comprobante Fiscal Digital a través de Internet (CFDI) para el manejo de datos de Aerolíneas para pasajeros. :param tua: Atributo requerido para indicar el importe del TUA aplicable al boleto. :param otros_cargos: Nodo opcional para expresar otros cargos aplicables """ tag = '{http://www.sat.gob.mx/aerolineas}Aerolineas' version = '1.0' def __init__( self, tua: Decimal | int, otros_cargos: OtrosCargos | dict = None, ): super().__init__({ 'Version': self.version, 'TUA': tua, 'OtrosCargos': otros_cargos, })