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