This commit is contained in:
Mauricio Baeza 2018-10-05 23:13:03 -05:00
parent d70c35b4de
commit 0465b684f0
7 changed files with 141 additions and 4 deletions

View File

@ -543,3 +543,20 @@ class AppCfdiPay(object):
values = req.params values = req.params
req.context['result'] = self._db.cfdipay(values) req.context['result'] = self._db.cfdipay(values)
resp.status = falcon.HTTP_200 resp.status = falcon.HTTP_200
class AppSATBancos(object):
def __init__(self, db):
self._db = db
# ~ def on_get(self, req, resp):
# ~ values = req.params
# ~ req.context['result'] = self._db.get_sat_bancos(values)
# ~ resp.status = falcon.HTTP_200
def on_post(self, req, resp):
values = req.params
req.context['result'] = self._db.satbancos(values)
resp.status = falcon.HTTP_200

View File

@ -3618,3 +3618,32 @@ def respaldar_db(values, path_bk):
args = 'pg_dump -U postgres -Fc {} > "{}"'.format(db, path) args = 'pg_dump -U postgres -Fc {} > "{}"'.format(db, path)
_call(args) _call(args)
return return
def validate_rfc(value):
msg = ''
if len(value) < 12:
msg = 'Longitud inválida del RFC'
return msg
l = 4
if len(value)==12:
l = 3
s = value[0:l]
r = re.match('[A-ZÑ&]{%s}' % l, s)
msg = 'Caracteres inválidos al {} del RFC'
if not r:
return msg.format('inicio')
s = value[-3:]
r = re.match('[A-Z0-9]{3}', s)
if not r:
return msg.format('final')
s = value[l:l+6]
r = re.match('[0-9]{6}', s)
msg = 'Fecha inválida en el RFC'
if not r:
return msg
try:
datetime.datetime.strptime(s, '%y%m%d')
return ''
except:
return msg

View File

@ -17,7 +17,7 @@ from controllers.main import (AppEmpresas,
AppMain, AppValues, AppPartners, AppProducts, AppInvoices, AppFolios, AppMain, AppValues, AppPartners, AppProducts, AppInvoices, AppFolios,
AppDocumentos, AppFiles, AppPreInvoices, AppCuentasBanco, AppDocumentos, AppFiles, AppPreInvoices, AppCuentasBanco,
AppMovimientosBanco, AppTickets, AppStudents, AppEmployees, AppNomina, AppMovimientosBanco, AppTickets, AppStudents, AppEmployees, AppNomina,
AppInvoicePay, AppCfdiPay AppInvoicePay, AppCfdiPay, AppSATBancos
) )
@ -58,6 +58,7 @@ api.add_route('/employees', AppEmployees(db))
api.add_route('/nomina', AppNomina(db)) api.add_route('/nomina', AppNomina(db))
api.add_route('/invoicepay', AppInvoicePay(db)) api.add_route('/invoicepay', AppInvoicePay(db))
api.add_route('/cfdipay', AppCfdiPay(db)) api.add_route('/cfdipay', AppCfdiPay(db))
api.add_route('/satbancos', AppSATBancos(db))
# ~ Activa si usas waitress y NO estas usando servidor web # ~ Activa si usas waitress y NO estas usando servidor web

View File

@ -441,3 +441,6 @@ class StorageEngine(object):
def bankmovement(self, values): def bankmovement(self, values):
return main.MovimientosBanco.post(values) return main.MovimientosBanco.post(values)
def satbancos(self, values):
return main.SATBancos.post(values)

View File

@ -1517,6 +1517,25 @@ class SATBancos(BaseModel):
def __str__(self): def __str__(self):
return 'Banco: {} ({})'.format(self.name, self.key) return 'Banco: {} ({})'.format(self.name, self.key)
def _updaterfc(self, args):
id = int(args['id'])
values = util.loads(args['values'])
msg = util.validate_rfc(values['rfc'])
if msg:
return {'ok': False, 'msg': msg}
q = (SATBancos
.update(**values)
.where(SATBancos.id==id))
result = bool(q.execute())
msg = 'RFC actualizado correctamente'
return {'ok': result, 'msg': msg}
@classmethod
def post(cls, values):
opt = values.pop('opt')
return getattr(cls, '_{}'.format(opt))(cls, values)
@classmethod @classmethod
def get_(cls): def get_(cls):
rows = SATBancos.select().dicts() rows = SATBancos.select().dicts()

View File

@ -112,6 +112,11 @@ var controllers = {
$$('cmd_subir_cfdixml').attachEvent('onItemClick', cmd_subir_cfdixml_click) $$('cmd_subir_cfdixml').attachEvent('onItemClick', cmd_subir_cfdixml_click)
$$('up_bdfl').attachEvent('onUploadComplete', up_bdfl_upload_complete) $$('up_bdfl').attachEvent('onUploadComplete', up_bdfl_upload_complete)
$$('up_cfdixml').attachEvent('onUploadComplete', up_cfdixml_upload_complete) $$('up_cfdixml').attachEvent('onUploadComplete', up_cfdixml_upload_complete)
$$('grid_admin_bancos').attachEvent('onAfterEditStart', grid_admin_bancos_after_edit_start)
$$('grid_admin_bancos').attachEvent('onBeforeEditStop', grid_admin_bancos_before_edit_stop)
//~ $$('grid_admin_bancos').attachEvent('onAfterEditStop', grid_admin_bancos_after_edit_stop)
} }
} }
@ -2276,3 +2281,64 @@ function grid_emisor_cuentas_banco_on_check(row, column, state){
} }
}) })
} }
function admin_sat_bank_update_rfc(id, rfc){
var data = {opt: 'updaterfc', id: id, values: {rfc: rfc}}
webix.ajax().post('/satbancos', data, {
error:function(text, data, XmlHttpRequest){
msg = 'Ocurrio un error, consulta a soporte técnico'
msg_error(msg)
},
success:function(text, data, XmlHttpRequest){
var values = data.json()
if(values.ok){
msg_ok(values.msg)
}else{
msg_error(values.msg)
}
}
})
}
function grid_admin_bancos_after_edit_start(id){
var grid = $$('grid_admin_bancos')
if(id['column']=='rfc'){
var row = grid.getItem(id)
if(row['key']=='999'){
grid.editCancel()
}
}
}
function grid_admin_bancos_before_edit_stop(state, editor){
var grid = $$('grid_admin_bancos')
var row = grid.getItem(editor.row)
if(editor.column == 'rfc' && row['key']!='999'){
var rfc = state.value
if (rfc.length != 12){
msg_error('Longitud incorrecta del RFC')
grid.blockEvent()
state.value = state.old
grid.editCancel()
grid.unblockEvent()
return true
}
if(!validar_rfc(rfc)){
grid.blockEvent()
state.value = state.old
grid.editCancel()
grid.unblockEvent()
return true
}
grid.blockEvent()
state.value = state.value.trim().toUpperCase()
grid.editCancel()
grid.unblockEvent()
admin_sat_bank_update_rfc(row.id, state.value)
}
}

View File

@ -804,7 +804,9 @@ var grid_admin_monedas_cols = [
var grid_admin_bancos_cols = [ var grid_admin_bancos_cols = [
{id: 'id', header: 'ID', hidden: true}, {id: 'id', header: 'ID', hidden: true},
{id: 'key', header: 'Clave', footer: {content: 'countRows', css: 'right'}}, {id: 'key', header: 'Clave', footer: {content: 'countRows', css: 'right'}},
{id: 'name', header: 'Nombre', adjust: 'data', footer: 'Bancos'}, {id: 'name', header: 'Nombre', footer: 'Bancos', fillspace: true},
{id: 'razon_social', header: 'Razón Social', fillspace: true},
{id: 'rfc', header: 'RFC', width: 125, editor: 'text'},
{id: 'activo', header: 'Activo', template: '{common.checkbox()}', {id: 'activo', header: 'Activo', template: '{common.checkbox()}',
editor: 'checkbox'}, editor: 'checkbox'},
] ]
@ -851,7 +853,7 @@ var grid_admin_bancos = {
id: 'grid_admin_bancos', id: 'grid_admin_bancos',
select: 'cell', select: 'cell',
adjust: true, adjust: true,
autowidth: true, editable: true,
headermenu: true, headermenu: true,
footer: true, footer: true,
columns: grid_admin_bancos_cols, columns: grid_admin_bancos_cols,
@ -1027,7 +1029,7 @@ var sat_bancos = [
{maxHeight: 20}, {maxHeight: 20},
{cols: [{maxWidth: 15}, {view: 'label', label: msg_bancos}, {}]}, {cols: [{maxWidth: 15}, {view: 'label', label: msg_bancos}, {}]},
{maxHeight: 20}, {maxHeight: 20},
{cols: [{maxWidth: 15}, grid_admin_bancos, {}]}, {cols: [{maxWidth: 15}, grid_admin_bancos]},
{maxHeight: 20}, {maxHeight: 20},
] ]