Update catalogos SAT

This commit is contained in:
Mauricio Baeza 2020-01-12 22:40:45 -06:00
parent aeb045e76a
commit fe09860922
4 changed files with 761 additions and 269 deletions

View File

@ -358,6 +358,10 @@ def loads(data):
return json.loads(data)
def json_loads(path):
return json.loads(open(path, 'r').read())
def _validate_db_rfc():
con = sqlite3.connect(DB_COMPANIES)
sql = """

View File

@ -9009,7 +9009,7 @@ def _init_values(rfc):
pass
if not Certificado.select().count():
Certificado.create(rfc=rfc)
Certificado.create(rfc=rfc.upper())
log.info('Valores iniciales insertados...')
return
@ -10104,6 +10104,26 @@ def _delete_client(rfc, no_database, ask=True):
return result
def _update_sat():
clients = utils.rfc_get()
tables = utils.json_loads(PATHS['SAT'])
for rfc, con in clients:
log.info(f'Importando datos en: {rfc.upper()}')
conectar(utils.loads(con))
for table in tables:
t = globals()[table['tabla']]
with database_proxy.atomic():
for r in table['datos']:
try:
t.get_or_create(**r)
except:
pass
log.info(f"\tTabla importada: {table['tabla']}")
desconectar()
log.info('Importación terminada...')
return
def _process_command_line_arguments():
parser = argparse.ArgumentParser(
description='Empresa Libre')
@ -10115,12 +10135,14 @@ def _process_command_line_arguments():
action='store_true', default=False, required=False)
parser.add_argument('-ndb', '--no-database', dest='no_database',
action='store_true', default=False, required=False)
parser.add_argument('-us', '--update-sat', dest='update_sat',
action='store_true', default=False, required=False)
parser.add_argument('-r', '--rfc', dest='rfc', default='')
return parser.parse_args()
def main2(args):
def main(args):
if args.list_clients:
_list_clients()
return
@ -10133,6 +10155,9 @@ def main2(args):
_delete_client(args.rfc, args.no_database)
return
if args.update_sat:
_update_sat()
return
@ -10170,7 +10195,7 @@ help_lr = 'Listar RFCs'
@click.option('-d', '--detalle', is_flag=True, default=False)
@click.option('-id', '--importar-directorio')
@click.option('-ed', '--exportar_documentos', is_flag=True, default=False)
def main(iniciar_bd, migrar_bd, nuevo_superusuario, cambiar_contraseña,
def main2(iniciar_bd, migrar_bd, nuevo_superusuario, cambiar_contraseña,
borrar_rfc, listar_rfc, importar_valores, archivo, conexion,
factura_libre, test, generar_archivo_productos,
importar_productos, backup_dbs, no_bd, alta, rfc, detalle,
@ -10283,7 +10308,7 @@ def main(iniciar_bd, migrar_bd, nuevo_superusuario, cambiar_contraseña,
if __name__ == '__main__':
args = _process_command_line_arguments()
main2(args)
# ~ main()
main(args)
# ~ main2()

View File

@ -201,6 +201,7 @@ IS_MV = MV
DB_COMPANIES = os.path.abspath(os.path.join(BASE_DIR, '..', 'db', 'rfc.db'))
path_bk = os.path.join(path_docs, 'tmp')
path_local = 'facturas'
path_sat = os.path.abspath(os.path.join(BASE_DIR, '..', 'db', 'valores_iniciales.json'))
EXT = {
'CSS': 'css',
@ -220,6 +221,7 @@ PATHS = {
'LOGOS': path_user_logos,
'BK': path_bk,
'LOCAL': path_local,
'SAT': path_sat,
}
VALUES_PDF = {

File diff suppressed because it is too large Load Diff