diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py index 021d2b3..e624bc2 100644 --- a/source/app/controllers/util.py +++ b/source/app/controllers/util.py @@ -742,7 +742,10 @@ class LIBO(object): if pakings: col8.append((pakings[i],)) self._total_cantidades += float(cantidad) + if not count: + cell_5.CellStyle = self._get_style(cell_5) + cell_6.CellStyle = self._get_style(cell_6) return style_5 = self._get_style(cell_5) diff --git a/source/app/models/main.py b/source/app/models/main.py index b71b24d..48f2be3 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -3384,11 +3384,25 @@ class MovimientosBanco(BaseModel): msg = 'El movimiento esta conciliado, no se puede cancelar' return {'ok': False, 'msg': msg} - # ~ filters = (CfdiPagos.movimiento==obj) - # ~ cp = CfdiPagos.select().where(filters).count() - # ~ if cp > 0: - # ~ msg = 'El movimiento tiene Factura de Pago, no se puede cancelar' - # ~ return {'ok': False, 'msg': msg} + filters = ( + (CfdiPagos.movimiento==obj) & + (CfdiPagos.uuid.is_null(False)) & + (CfdiPagos.cancelada==False) + ) + cp = CfdiPagos.select().where(filters).count() + if cp > 0: + msg = 'El movimiento tiene Factura de Pago activas, no se puede cancelar' + return {'ok': False, 'msg': msg} + + filters = ( + (CfdiPagos.movimiento==obj) & + (CfdiPagos.uuid.is_null(True)) & + (CfdiPagos.error!='') + ) + cp = CfdiPagos.select().where(filters).count() + if cp > 0: + msg = 'El movimiento tiene Factura de Pago con error, no se puede cancelar' + return {'ok': False, 'msg': msg} with database_proxy.transaction(): obj.cancelado = True diff --git a/source/templates/plantilla_factura_4.0.ods b/source/templates/plantilla_factura_4.0.ods index 982474a..0479ae6 100644 Binary files a/source/templates/plantilla_factura_4.0.ods and b/source/templates/plantilla_factura_4.0.ods differ