@@ 158-191 (lines=34) @@ | ||
155 | ) |
|
156 | ||
157 | ||
158 | class Retencion(ScalarMap): |
|
159 | """ |
|
160 | Nodo requerido para la información detallada de un traslado de impuesto específico. |
|
161 | ||
162 | :param base: Atributo requerido para señalar la suma de los atributos Base de los conceptos del impuesto trasladado. No se permiten valores negativos. |
|
163 | :param impuesto: Atributo requerido para señalar la clave del tipo de impuesto retencion. |
|
164 | :param tipo_factor: Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto. |
|
165 | :param tasa_o_cuota: Atributo condicional para señalar el valor de la tasa o cuota del impuesto que se traslada por los conceptos amparados en el comprobante. |
|
166 | :param importe: Atributo condicional para señalar la suma del importe del impuesto trasladado, agrupado por impuesto, TipoFactor y TasaOCuota. No se permiten valores negativos. |
|
167 | """ |
|
168 | ||
169 | def __init__( |
|
170 | self, |
|
171 | impuesto: str, |
|
172 | tipo_factor: str, |
|
173 | tasa_o_cuota: Decimal | int = None, |
|
174 | importe: Decimal | int = None, |
|
175 | base: Decimal | int = None, |
|
176 | ): |
|
177 | super().__init__({ |
|
178 | 'Base': base, |
|
179 | 'Impuesto': CatImpuesto.get(impuesto, impuesto), |
|
180 | 'TipoFactor': tipo_factor, |
|
181 | 'TasaOCuota': tasa_o_cuota, |
|
182 | 'Importe': importe, |
|
183 | }) |
|
184 | ||
185 | @classmethod # obsolete |
|
186 | def parse(cls, impuesto: str): |
|
187 | parts = impuesto.split("|") |
|
188 | return cls( |
|
189 | impuesto=parts[0], |
|
190 | tipo_factor=parts[1], |
|
191 | tasa_o_cuota=Decimal(parts[2]) if len(parts) > 2 else None, |
|
192 | ) |
|
193 | ||
194 | ||
@@ 121-154 (lines=34) @@ | ||
118 | }) |
|
119 | ||
120 | ||
121 | class Traslado(ScalarMap): |
|
122 | """ |
|
123 | Nodo requerido para la información detallada de un traslado de impuesto específico. |
|
124 | ||
125 | :param base: Atributo requerido para señalar la suma de los atributos Base de los conceptos del impuesto trasladado. No se permiten valores negativos. |
|
126 | :param impuesto: Atributo requerido para señalar la clave del tipo de impuesto retencion. |
|
127 | :param tipo_factor: Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto. |
|
128 | :param tasa_o_cuota: Atributo condicional para señalar el valor de la tasa o cuota del impuesto que se traslada por los conceptos amparados en el comprobante. |
|
129 | :param importe: Atributo condicional para señalar la suma del importe del impuesto trasladado, agrupado por impuesto, TipoFactor y TasaOCuota. No se permiten valores negativos. |
|
130 | """ |
|
131 | ||
132 | def __init__( |
|
133 | self, |
|
134 | impuesto: str, |
|
135 | tipo_factor: str, |
|
136 | tasa_o_cuota: Decimal | int = None, |
|
137 | importe: Decimal | int = None, |
|
138 | base: Decimal | int = None, |
|
139 | ): |
|
140 | super().__init__({ |
|
141 | 'Base': base, |
|
142 | 'Impuesto': CatImpuesto.get(impuesto, impuesto), |
|
143 | 'TipoFactor': tipo_factor, |
|
144 | 'TasaOCuota': tasa_o_cuota, |
|
145 | 'Importe': importe, |
|
146 | }) |
|
147 | ||
148 | @classmethod # obsolete |
|
149 | def parse(cls, impuesto: str): |
|
150 | parts = impuesto.split("|") |
|
151 | return cls( |
|
152 | impuesto=parts[0], |
|
153 | tipo_factor=parts[1], |
|
154 | tasa_o_cuota=Decimal(parts[2]) if len(parts) > 2 else None, |
|
155 | ) |
|
156 | ||
157 |