forked from elmau/empresa-libre
UI para importar XML
This commit is contained in:
parent
e67a1756a8
commit
06c32e56a8
|
@ -1696,6 +1696,14 @@ def upload_file(rfc, opt, file_obj):
|
|||
|
||||
name = '{}_nomina.ods'.format(rfc.lower())
|
||||
path = _join(PATH_MEDIA, 'tmp', name)
|
||||
elif opt == 'cfdixml':
|
||||
tmp = file_obj.filename.split('.')
|
||||
ext = tmp[-1].lower()
|
||||
if ext != 'xml':
|
||||
msg = 'Extensión de archivo incorrecta, selecciona un archivo XML'
|
||||
return {'status': 'server', 'name': msg, 'ok': False}
|
||||
|
||||
return import_xml(file_obj.file.read())
|
||||
|
||||
if save_file(path, file_obj.file.read()):
|
||||
return {'status': 'server', 'name': file_obj.filename, 'ok': True}
|
||||
|
@ -2979,3 +2987,14 @@ def get_log(name):
|
|||
if is_file(path):
|
||||
data = open(path).read()
|
||||
return data, name
|
||||
|
||||
|
||||
def import_xml(stream):
|
||||
try:
|
||||
xml = ET.fromstring(stream.decode())
|
||||
except ET.ParseError:
|
||||
return {'ok': False, 'status': 'error'}
|
||||
|
||||
print (xml)
|
||||
return {'ok': True, 'status': 'server'}
|
||||
|
||||
|
|
|
@ -78,7 +78,9 @@ var controllers = {
|
|||
$$('chk_usar_nomina').attachEvent('onItemClick', chk_config_item_click)
|
||||
|
||||
$$('cmd_subir_bdfl').attachEvent('onItemClick', cmd_subir_bdfl_click)
|
||||
$$('cmd_subir_cfdixml').attachEvent('onItemClick', cmd_subir_cfdixml_click)
|
||||
$$('up_bdfl').attachEvent('onUploadComplete', up_bdfl_upload_complete)
|
||||
$$('up_cfdixml').attachEvent('onUploadComplete', up_cfdixml_upload_complete)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1593,6 +1595,69 @@ function up_bdfl_upload_complete(response){
|
|||
}
|
||||
|
||||
|
||||
function cmd_subir_cfdixml_click(){
|
||||
var form = $$('form_upload_cfdixml')
|
||||
|
||||
if (!form.validate()){
|
||||
msg = 'Valores inválidos'
|
||||
msg_error(msg)
|
||||
return
|
||||
}
|
||||
|
||||
var values = form.getValues()
|
||||
|
||||
if($$('lst_cfdixml').count() < 1){
|
||||
msg = 'Selecciona un archivo XML'
|
||||
msg_error(msg)
|
||||
return
|
||||
}
|
||||
|
||||
if($$('lst_cfdixml').count() > 1){
|
||||
msg = 'Selecciona solo un archivo'
|
||||
msg_error(msg)
|
||||
return
|
||||
}
|
||||
|
||||
var cfdixml = $$('up_cfdixml').files.getItem($$('up_cfdixml').files.getFirstId())
|
||||
|
||||
var ext = []
|
||||
if(cfdixml.type.toLowerCase() != 'xml'){
|
||||
msg = 'Archivo inválido, se requiere un archivo XML'
|
||||
msg_error(msg)
|
||||
return
|
||||
}
|
||||
|
||||
msg = '¿Estás seguro de subir este archivo?'
|
||||
webix.confirm({
|
||||
title: 'Importar CFDI',
|
||||
ok: 'Si',
|
||||
cancel: 'No',
|
||||
type: 'confirm-error',
|
||||
text: msg,
|
||||
callback:function(result){
|
||||
if(result){
|
||||
$$('up_cfdixml').send()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function up_cfdixml_upload_complete(response){
|
||||
if(response.status != 'server'){
|
||||
msg = 'Ocurrio un error al subir los archivos'
|
||||
msg_error(msg)
|
||||
return
|
||||
}
|
||||
|
||||
msg = 'Archivo importado correctamente'
|
||||
msg_ok(msg)
|
||||
|
||||
$$('form_upload_cfdixml').setValues({})
|
||||
$$('up_cfdixml').files.data.clearAll()
|
||||
}
|
||||
|
||||
|
||||
function cmd_usuario_agregar_click(){
|
||||
var form = $$('form_usuario')
|
||||
|
||||
|
|
|
@ -675,6 +675,18 @@ var utilidades_archivos = [
|
|||
{cols: [{}, {view: 'button', id: 'cmd_subir_bdfl',
|
||||
label: 'Subir base de datos de Factura Libre'}, {}]},
|
||||
]},
|
||||
{maxHeight: 15},
|
||||
{template: 'Importar archivo CFDI (XML)', type: 'section'},
|
||||
{view: 'form', id: 'form_upload_cfdixml', rows: [
|
||||
{cols: [{},
|
||||
{view: 'uploader', id: 'up_cfdixml', autosend: false, link: 'lst_cfdixml',
|
||||
value: 'Seleccionar archivo XML', upload: '/files/cfdixml'}, {}]},
|
||||
{cols: [{},
|
||||
{view: 'list', id: 'lst_cfdixml', name: 'cfdixml',
|
||||
type: 'uploader', autoheight: true, borderless: true}, {}]},
|
||||
{cols: [{}, {view: 'button', id: 'cmd_subir_cfdixml',
|
||||
label: 'Importar CFDI'}, {}]},
|
||||
]},
|
||||
{}]
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue