diff --git a/source/app/models/main.py b/source/app/models/main.py index f145442..82665c3 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -934,6 +934,14 @@ class Folios(BaseModel): folio = Folios.select()[0] return folio.serie + @classmethod + def get_id(cls, serie): + try: + obj = Folios.get(Folios.serie==serie) + return obj.id + except: + return 0 + @classmethod def get_all(cls): rows = (Folios @@ -3521,12 +3529,34 @@ class Facturas(BaseModel): ) return {'ok': True, 'rows': rows} - return + def _get_reinvoice(self, id): + obj = Facturas.get(Facturas.id==id) + + receptor = { + 'id': obj.cliente.id, + 'nombre': obj.cliente.nombre, + 'rfc': obj.cliente.rfc, + 'notas': obj.notas, + } + invoice = { + 'tipo_comprobante': obj.tipo_comprobante, + 'serie': Folios.get_id(obj.serie), + 'uso_cfdi': obj.uso_cfdi, + 'metodo_pago': obj.metodo_pago, + 'forma_pago': obj.forma_pago, + 'condicion_pago': obj.condiciones_pago, + } + + data = {'receptor': receptor, 'invoice': invoice} + return data def _get_opt(self, values): if values['opt'] == 'porpagar': return self._get_por_pagar(self, util.loads(values['ids'])) + if values['opt'] == 'reinvoice': + return self._get_reinvoice(self, int(values['id'])) + cfdis = util.loads(values['cfdis']) if values['year'] == '-1': diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js index d4af9dd..b755783 100644 --- a/source/static/js/controller/invoices.js +++ b/source/static/js/controller/invoices.js @@ -68,7 +68,7 @@ function get_condicion_pago(){ function get_series(){ - webix.ajax().get('/values/series', function(text, data){ + webix.ajax().sync().get('/values/series', function(text, data){ var values = data.json() table_series.clear() table_series.insert(values) @@ -201,7 +201,7 @@ function price_without_taxes(price, id){ } -function cmd_new_invoice_click(id, e, node){ +function cmd_new_invoice_click(){ var form = $$('form_invoice') var grid_totals = $$('grid_totals') grid = $$('grid_details') @@ -1130,21 +1130,34 @@ function grid_details_header_click(id){ } +function set_invoice(row){ + $$('lst_serie').setValue(row.serie) + $$('lst_tipo_comprobante').setValue(row.tipo_comprobante) + $$('lst_uso_cfdi').setValue(row.uso_cfdi) + $$('lst_metodo_pago').setValue(row.metodo_pago) + $$('lst_forma_pago').setValue(row.forma_pago) + $$('txt_condicion_pago').setValue(row.condicion_pago) +} + function refacturar_invoice(id){ - //~ webix.ajax().get('/values/preproductos', {'id': id}, { - //~ error: function(text, data, xhr) { - //~ msg_error('Error al consultar') - //~ }, - //~ success: function(text, data, xhr){ - //~ var values = data.json() - //~ set_client(values.receptor) - //~ for(var p of values.rows){ - //~ agregar_preproducto(p) - //~ } - //~ calcular_impuestos() - //~ $$('tv_invoice').getTabbar().setValue('Generar') - //~ } - //~ }) + filters = {id: id, opt: 'reinvoice'} + + webix.ajax().get('/invoices', filters, { + error: function(text, data, xhr) { + msg_error('Error al consultar') + }, + success: function(text, data, xhr) { + var values = data.json(); + cmd_new_invoice_click() + pause(500) + set_client(values.receptor) + set_invoice(values.invoice) + calcular_impuestos() + } + }) + //~ for(var p of values.rows){ + //~ agregar_preproducto(p) + //~ } } @@ -1877,7 +1890,7 @@ function lst_serie_change(nv, ov){ $$('lst_tipo_comprobante').setValue(query.usarcon) $$('lst_tipo_comprobante').config.readonly = true }else{ - $$('lst_tipo_comprobante').setValue('I') + //~ $$('lst_tipo_comprobante').setValue('I') $$('lst_tipo_comprobante').config.readonly = false } $$('lst_tipo_comprobante').refresh()