diff --git a/source/app/models/main.py b/source/app/models/main.py
index 31c09d8..b0f24be 100644
--- a/source/app/models/main.py
+++ b/source/app/models/main.py
@@ -24,6 +24,7 @@ from settings import log, DEBUG, VERSION, PATH_CP, COMPANIES, PRE, CURRENT_CFDI,
FORMAT = '{0:.2f}'
FORMAT3 = '{0:.3f}'
FORMAT_TAX = '{0:.4f}'
+RFC_PUBLICO = 'XAXX010101000'
database_proxy = Proxy()
@@ -3401,6 +3402,9 @@ class Facturas(BaseModel):
if invoice.donativo and invoice.forma_pago == '12':
return
+ if invoice.cliente.rfc == RFC_PUBLICO:
+ return
+
importe = invoice.total_mn
if invoice.tipo_comprobante == 'E':
importe *= -1
@@ -3647,6 +3651,7 @@ class Facturas(BaseModel):
q.execute()
q = FacturasRelacionadas.delete().where(FacturasRelacionadas.factura==obj)
q.execute()
+ Tickets.uncancel(obj)
return bool(obj.delete_instance())
def _get_folio(self, serie):
@@ -4252,7 +4257,7 @@ class Facturas(BaseModel):
tipo_persona = 1
if receptor['rfc'] == 'XEXX010101000':
tipo_persona = 4
- elif receptor['rfc'] == 'XAXX010101000':
+ elif receptor['rfc'] == RFC_PUBLICO:
tipo_persona = 3
elif len(receptor['rfc']) == 12:
tipo_persona = 2
@@ -5353,6 +5358,15 @@ class Tickets(BaseModel):
return inicio
+ @classmethod
+ def uncancel(cls, invoice):
+ query = (Tickets
+ .update(estatus='Generado', cancelado=False, factura=None)
+ .where(Tickets.factura==invoice)
+ )
+ result = query.execute()
+ return result
+
def _cancel_tickets(self, invoice, tickets):
query = (Tickets
.update(estatus='Facturado', cancelado=True, factura=invoice)
@@ -5453,7 +5467,7 @@ class Tickets(BaseModel):
if is_invoice_day:
filters = (
- Socios.rfc == 'XAXX010101000' and
+ Socios.rfc == RFC_PUBLICO and
Socios.slug == 'publico_en_general')
try:
client = Socios.get(filters)
@@ -7166,7 +7180,7 @@ def _init_values(rfc):
data = (
{'clave': 'version', 'valor': VERSION},
{'clave': 'migracion', 'valor': '0'},
- {'clave': 'rfc_publico', 'valor': 'XAXX010101000'},
+ {'clave': 'rfc_publico', 'valor': RFC_PUBLICO},
{'clave': 'rfc_extranjero', 'valor': 'XEXX010101000'},
{'clave': 'decimales', 'valor': '2'},
{'clave': 'path_key', 'valor': ''},
diff --git a/source/static/js/controller/tickets.js b/source/static/js/controller/tickets.js
index 113a345..e408c8d 100644
--- a/source/static/js/controller/tickets.js
+++ b/source/static/js/controller/tickets.js
@@ -495,6 +495,16 @@ function cmd_cancelar_ticket_click(){
return
}
+ if(row['estatus']=='Cancelado'){
+ msg_error('El ticket ya esta cancelado')
+ return
+ }
+
+ if(row['estatus']=='Facturado'){
+ msg_error('El ticket esta facturado')
+ return
+ }
+
msg = '¿Estás seguro de cancelar el siguiente Ticket?
'
msg += 'Folio: ' + row['folio']
msg += '
ESTA ACCIÓN NO SE PUEDE DESHACER'