|
6 | 6 |
|
7 | 7 | from ...transform.helpers import strcode |
8 | 8 |
|
9 | | -from ...create.cfd.catalogos import Impuesto as CatImpuesto |
| 9 | +from ...create.cfd.catalogos import Impuesto as CatImpuesto, ObjetoImp |
10 | 10 | from . import pago20 |
11 | 11 | from ..compute import make_impuestos, rounder, make_impuesto, \ |
12 | 12 | make_impuestos_dr_parcial, m_decimals, RoundTracker, RoundTrackerManager |
@@ -340,25 +340,22 @@ def _make_conceptos(conceptos, decimals): |
340 | 340 |
|
341 | 341 | def make_concepto(concepto): |
342 | 342 | impuestos = concepto.get("Impuestos") or {} |
343 | | - trasladados = [x if isinstance(x, dict) else Traslado.parse(x) for x in iterate(impuestos.get("Traslados"))] |
344 | | - retenciones = [x if isinstance(x, dict) else Retencion.parse(x) for x in iterate(impuestos.get("Retenciones"))] |
345 | | - |
346 | 343 | valor_unitario = concepto['ValorUnitario'] |
347 | 344 |
|
348 | 345 | importe = rnd_fn(concepto["Cantidad"] * valor_unitario) |
349 | 346 | concepto["Importe"] = importe |
350 | 347 | base = importe - (concepto.get("Descuento") or 0) |
351 | 348 |
|
352 | | - if concepto.get("ObjetoImp") in ("01", "03"): |
353 | | - concepto['Impuestos'] = None |
354 | | - else: |
355 | | - impuestos = { |
356 | | - imp_t: [ |
357 | | - make_impuesto(i, base=base, rnd_fn=rnd_tracker_instance[imp_t + strcode(i["Impuesto"])]) for i in imp |
358 | | - ] |
359 | | - for imp_t, imp in [('Traslados', trasladados), ('Retenciones', retenciones)] if imp |
360 | | - } |
361 | | - concepto['Impuestos'] = impuestos or None |
| 349 | + impuestos = concepto['Impuestos'] = { |
| 350 | + imp_t: [ |
| 351 | + make_impuesto(i, base=base, |
| 352 | + rnd_fn=rnd_tracker_instance[imp_t + strcode(i["Impuesto"])]) for i |
| 353 | + in iterate(impuestos.get(imp_t)) |
| 354 | + ] |
| 355 | + for imp_t in ['Traslados', 'Retenciones'] if impuestos.get(imp_t) |
| 356 | + } or None |
| 357 | + |
| 358 | + if not concepto.get("ObjetoImp"): |
362 | 359 | concepto["ObjetoImp"] = "02" if impuestos else "01" |
363 | 360 |
|
364 | 361 | return concepto |
|
0 commit comments