Fix - Pasar notas de ticket a factura

This commit is contained in:
Mauricio Baeza 2018-01-04 21:30:31 -06:00
commit 5f6ccf1a77
3 changed files with 30 additions and 9 deletions

View File

@ -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':

View File

@ -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:

View File

@ -109,6 +109,7 @@ IMPUESTOS = {
'ISR': '001',
'IVA': '002',
'IEPS': '003',
'EXENTO': '000',
'ISH': '000',
'INSPECCION DE OBRA': '000',
'ICIC': '000',