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