Fix - impuestos locales

This commit is contained in:
Mauricio Baeza 2017-11-19 21:26:54 -06:00
parent 964d53dbae
commit b70fac7872
4 changed files with 30 additions and 13 deletions

View File

@ -89,6 +89,8 @@ class CFDI(object):
return xml
def _validate(self, datos):
print (datos['impuestos']['total_locales_trasladados'])
print (datos['impuestos']['total_locales_retenciones'])
if datos['impuestos']['total_locales_trasladados'] or \
datos['impuestos']['total_locales_retenciones']:
self._impuestos_locales = True

View File

@ -2197,8 +2197,6 @@ class Facturas(BaseModel):
'UsoCFDI': invoice.uso_cfdi,
}
#~ descuento = 0
#~ tax_locales = False
conceptos = []
rows = FacturasDetalle.select().where(FacturasDetalle.factura==invoice)
for row in rows:
@ -2214,7 +2212,6 @@ class Facturas(BaseModel):
}
if row.descuento:
concepto['Descuento'] = FORMAT.format(row.descuento)
#~ descuento += row.descuento
taxes = {}
traslados = []
@ -2225,7 +2222,6 @@ class Facturas(BaseModel):
continue
if impuesto.key == '000':
#~ tax_locales = True
continue
base = row.importe - row.descuento
@ -2271,19 +2267,21 @@ class Facturas(BaseModel):
.where(FacturasImpuestos.factura==invoice))
for tax in taxes:
if tax.impuesto.key == '000':
tasa = str(round(tax.impuesto.tasa * 100, 2))
simporte = FORMAT.format(tax.importe)
if tax.impuesto.tipo == 'T':
traslado = {
'ImpLocTrasladado': tax.impuesto.name,
'TasadeTraslado': str(round(tax.impuesto.tasa, 2)),
'Importe': FORMAT.format(tax.importe),
'TasadeTraslado': tasa,
'Importe': simporte,
}
locales_trasladados.append(traslado)
total_locales_trasladados += tax.importe
else:
retencion = {
'ImpLocRetenido': tax.impuesto.name,
'TasadeRetencion': str(round(tax.impuesto.tasa, 2)),
'Importe': FORMAT.format(tax.importe),
'TasadeRetencion': tasa,
'Importe': simporte,
}
locales_retenciones.append(retencion)
total_locales_retenciones += tax.importe
@ -2309,10 +2307,14 @@ class Facturas(BaseModel):
impuestos['traslados'] = traslados
impuestos['retenciones'] = retenciones
impuestos['total_locales_trasladados'] = \
FORMAT.format(total_locales_trasladados)
impuestos['total_locales_retenciones'] = \
FORMAT.format(total_locales_retenciones)
impuestos['total_locales_trasladados'] = ''
if total_locales_trasladados:
impuestos['total_locales_trasladados'] = \
FORMAT.format(total_locales_trasladados)
impuestos['total_locales_retenciones'] = ''
if total_locales_retenciones:
impuestos['total_locales_retenciones'] = \
FORMAT.format(total_locales_retenciones)
impuestos['locales_trasladados'] = locales_trasladados
impuestos['locales_retenciones'] = locales_retenciones

View File

@ -298,7 +298,7 @@ function get_config_values(opt){
},
success: function(text, data, xhr) {
var values = data.json()
showvar(values)
//~ showvar(values)
Object.keys(values).forEach(function(key){
$$(key).setValue(values[key])
})

View File

@ -280,6 +280,19 @@ function validate_invoice(values){
}
}
donativo = $$('chk_cfdi_donativo').getValue()
if(donativo){
query = table_totals.chain().data()
for(var t of query){
tax = table_taxes.findOne({'id': t.tax})
if(tax.tipo != 'E'){
msg = 'Los donativos deben de ser exentos'
msg_error(msg)
return false
}
}
}
return true
}