diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index 5ad942f..4ea557c 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -2317,6 +2317,8 @@ class ImportFacturaLibre(object): nombre = 'COMERCIALIZADORA PECOLLA SA DE CV' elif rfc == 'SMA850101TQ4': nombre = 'SECRETARIA DE MARINA ARMADA DE MEXICO DRAGA BAHIA CHAMELA ADR-05' + elif rfc == 'GTR0610314Z0': + nombre = 'GRUPO TORQUE SA DE CV' tipo_persona = 1 if rfc == 'XEXX010101000': diff --git a/source/app/models/main.py b/source/app/models/main.py index b743ffe..24ea30e 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -4099,6 +4099,11 @@ class Tickets(BaseModel): else: return user.sucursal.serie_tickets or default_serie + @classmethod + def get_notes(cls, tickets): + rows = Tickets.select(Tickets.notas).where(Tickets.id.in_(tickets)) + return '\n'.join([r.notas for r in rows]) + @classmethod def add(cls, values, user): productos = util.loads(values.pop('productos')) @@ -4153,6 +4158,7 @@ class Tickets(BaseModel): totals_tax = {} total_trasladados = None total_retenciones = None + notes = Tickets.get_notes(tickets) details = TicketsDetalle.select().where(TicketsDetalle.ticket.in_(tickets)) @@ -4226,6 +4232,7 @@ class Tickets(BaseModel): 'total_mn': total_mn, 'total_trasladados': total_trasladados, 'total_retenciones': total_retenciones, + 'notas': notes, } return data @@ -4277,6 +4284,7 @@ class Tickets(BaseModel): obj.total = totals['total'] obj.saldo = totals['total'] obj.total_mn = totals['total_mn'] + obj.notas = totals['notas'] obj.save() cls._cancel_tickets(cls, obj, tickets) @@ -5085,6 +5093,8 @@ def _importar_facturas(rows): detalles = row.pop('detalles') impuestos = row.pop('impuestos') cliente = row.pop('cliente') + if cliente['rfc'] == 'GTR0610314Z0': + cliente['slug'] = 'grupo_torque_sa_de_cv' row['cliente'] = Socios.get(**cliente) with database_proxy.atomic() as txn: if _existe_factura(row): @@ -5157,10 +5167,14 @@ def _get_id_unidad(unidad): def _get_impuestos(impuestos): lines = '|' for impuesto in impuestos: + # ~ print (dict(impuesto)) if impuesto['tasa'] == '-2/3': tasa = str(round(2/3, 6)) else: - tasa = str(round(float(impuesto['tasa']) / 100.0, 6)) + if impuesto['tasa'] == 'EXENTO': + tasa = '0.00' + else: + tasa = str(round(float(impuesto['tasa']) / 100.0, 6)) info = ( IMPUESTOS.get(impuesto['nombre']), @@ -5472,14 +5486,18 @@ def _importar_productos(archivo): taxes = [SATImpuestos.select().where(SATImpuestos.id==6)] else: taxes = [] - for i in range(0, len(impuestos), 4): - w = { - 'key': impuestos[i], - 'name': impuestos[i+1], - 'tipo': impuestos[i+2], - 'tasa': float(impuestos[i+3]), - } - taxes.append(SATImpuestos.get_o_crea(w)) + try: + for i in range(0, len(impuestos), 4): + w = { + 'key': impuestos[i], + 'name': impuestos[i+1], + 'tipo': impuestos[i+2], + 'tasa': float(impuestos[i+3]), + } + taxes.append(SATImpuestos.get_o_crea(w)) + except IndexError: + print (data) + continue with database_proxy.transaction(): try: diff --git a/source/app/settings.py b/source/app/settings.py index 37d027f..8c4d106 100644 --- a/source/app/settings.py +++ b/source/app/settings.py @@ -109,6 +109,7 @@ IMPUESTOS = { 'ISR': '001', 'IVA': '002', 'IEPS': '003', + 'EXENTO': '000', 'ISH': '000', 'INSPECCION DE OBRA': '000', 'ICIC': '000',