Merge branch 'develop'

Administrar monedas en configuración
This commit is contained in:
Mauricio Baeza 2017-11-06 23:00:06 -06:00
commit 9b74a12871
6 changed files with 119 additions and 15 deletions

View File

@ -1164,13 +1164,6 @@ def cancel_cfdi(uuid, pk12, rfc, auth):
return data, result
#~ def run_in_thread(fn, *args, **kwargs):
#~ t = threading.Thread(target=fn, args=args, kwargs=kwargs)
#~ t.daemon = True
#~ t.start()
#~ return
def run_in_thread(fn):
def run(*k, **kw):
t = threading.Thread(target=fn, args=k, kwargs=kw)

View File

@ -82,9 +82,15 @@ class StorageEngine(object):
def _get_alltaxes(self, values):
return main.SATImpuestos.get_()
def _get_allcurrencies(self, values):
return main.SATMonedas.get_()
def _get_taxupdate(self, values):
return main.SATImpuestos.actualizar(values)
def _get_currencyupdate(self, values):
return main.SATMonedas.actualizar(values)
def _get_satkey(self, values):
return main.get_sat_key(values['key'])

View File

@ -604,6 +604,11 @@ class SATMonedas(BaseModel):
def __str__(self):
return 'Moneda: ({}) {}'.format(self.key, self.name)
@classmethod
def get_(self):
rows = SATMonedas.select().dicts()
return tuple(rows)
@classmethod
def get_activos(cls):
rows = (SATMonedas
@ -615,6 +620,27 @@ class SATMonedas(BaseModel):
)
return tuple(rows)
@classmethod
def actualizar(self, values):
id = int(values['id'])
if values['field'] == 'activo':
v = {'0': False, '1': True}
q = (SATMonedas
.update(**{'activo': v[values['value']]})
.where(SATMonedas.id==id))
result = bool(q.execute())
elif values['field'] == 'default':
q = SATMonedas.update(**{'default': False})
q.execute()
v = {'false': False, 'true': True}
q = (SATMonedas
.update(**{'default': v[values['value']]})
.where(SATMonedas.id==id))
result = bool(q.execute())
return {'ok': result}
class SATImpuestos(BaseModel):
key = TextField(index=True)

View File

@ -1,5 +1,6 @@
var msg = ''
var tb_options = null
var tb_sat = null
var controllers = {
@ -21,7 +22,10 @@ var controllers = {
$$('cmd_guardar_correo').attachEvent('onItemClick', cmd_guardar_correo_click)
$$('emisor_logo').attachEvent('onItemClick', emisor_logo_click)
//~ SAT
tb_sat = $$('tab_sat').getTabbar()
tb_sat.attachEvent('onChange', tab_sat_change)
$$('grid_admin_taxes').attachEvent('onCheck', grid_admin_taxes_on_check)
$$('grid_admin_monedas').attachEvent('onCheck', grid_admin_monedas_on_check)
//~ Opciones
tb_options = $$('tab_options').getTabbar()
tb_options.attachEvent('onChange', tab_options_change)
@ -207,8 +211,16 @@ function get_config_correo(){
function get_admin_impuestos(){
webix.ajax().sync().get('/values/alltaxes', function(text, data){
var values = data.json()
$$("grid_admin_taxes").clearAll()
$$("grid_admin_taxes").parse(values, 'json')
$$('grid_admin_taxes').clearAll()
$$('grid_admin_taxes').parse(values, 'json')
})
}
function get_admin_monedas(){
webix.ajax().sync().get('/values/allcurrencies', function(text, data){
var values = data.json()
$$('grid_admin_monedas').clearAll()
$$('grid_admin_monedas').parse(values, 'json')
})
}
@ -702,6 +714,15 @@ function tab_options_change(nv, ov){
}
function tab_sat_change(nv, ov){
//~ show(nv)
if(nv = 'Monedas'){
get_admin_monedas()
return
}
}
function grid_admin_taxes_on_check(row, column, state){
var values = {
@ -716,3 +737,19 @@ function grid_admin_taxes_on_check(row, column, state){
}
})
}
function grid_admin_monedas_on_check(row, column, state){
var values = {
id: row,
field: column,
value: state,
}
webix.ajax().get('/values/currencyupdate', values, {
error: function(text, data, xhr) {
},
success: function(text, data, xhr) {
}
})
}

View File

@ -377,6 +377,17 @@ var grid_admin_taxes_cols = [
]
var grid_admin_monedas_cols = [
{id: 'id', header: 'ID', hidden: true},
{id: 'key', header: 'Clave'},
{id: 'name', header: 'Nombre', adjust: 'data'},
{id: 'activo', header: 'Activa', template: '{common.checkbox()}',
editor: 'checkbox'},
{id: 'default', header: 'Predeterminada', template: '{common.radio()}',
adjust: 'header'},
]
var grid_admin_taxes = {
view: 'datatable',
id: 'grid_admin_taxes',
@ -386,12 +397,24 @@ var grid_admin_taxes = {
autoheight: true,
autowidth: true,
headermenu: true,
columns: grid_admin_taxes_cols,
columns: grid_admin_taxes_cols
}
var grid_admin_monedas = {
view: 'datatable',
id: 'grid_admin_monedas',
select: 'cell',
multiselect: true,
adjust: true,
autoheight: true,
autowidth: true,
headermenu: true,
columns: grid_admin_monedas_cols
}
var msg_tax = 'Activa los impuestos que uses. El predeterminado se muestra primero'
var sat_impuestos = [
{maxHeight: 20},
{cols: [{maxWidth: 15}, {view: 'label', label: msg_tax}, {}]},
@ -399,6 +422,14 @@ var sat_impuestos = [
{cols: [{maxWidth: 15}, grid_admin_taxes, {}]},
{}]
var msg_moneda = 'Activa las monedas que uses. La predeterminada se muestra primero'
var sat_monedas = [
{maxHeight: 20},
{cols: [{maxWidth: 15}, {view: 'label', label: msg_moneda}, {}]},
{maxHeight: 20},
{cols: [{maxWidth: 15}, grid_admin_monedas, {}]},
{}]
var tab_sat = {
view: 'tabview',
@ -406,10 +437,12 @@ var tab_sat = {
multiview: true,
tabbar: {options: [
'Impuestos',
'Monedas',
'Unidades']},
animate: true,
cells: [
{id: 'Impuestos', rows: sat_impuestos},
{id: 'Monedas', rows: sat_monedas},
{id: 'Unidades', rows: [{}]},
{},
]
@ -503,7 +536,7 @@ var menu_user = {
],
type: {
subsign: true,
},
}
}

View File

@ -56,11 +56,13 @@ function get_icon(tipo){
var grid_invoices_cols = [
{id: 'index', header: '#', adjust: 'data', css: 'right',
footer: {content: 'rowCount', colspan: 3, css: 'right'}},
{id: "id", header:"ID", hidden:true},
{id: "serie", header: ["Serie", {content: "selectFilter"}], adjust: "data",
sort:"string"},
{id: "folio", header: ["Folio", {content: "numberFilter"}], adjust: "data",
sort:"int", css: "cell_right"},
{id: 'folio', header: ['Folio', {content: 'numberFilter'}], adjust: 'data',
sort: 'int', css: 'right', footer: {text: 'Facturas', colspan: 3}},
{id: "uuid", header: ["UUID", {content: "textFilter"}], adjust: "data",
sort:"string", hidden:true},
{id: "fecha", header: ["Fecha y Hora"],
@ -89,7 +91,14 @@ var grid_invoices = {
resizeColumn: true,
headermenu: true,
columns: grid_invoices_cols,
};
on:{
'data->onStoreUpdated':function(){
this.data.each(function(obj, i){
obj.index = i + 1
})
}
},
}
var grid_details_cols = [