def Descarga_Resultado(): dateini = request.args.get('desde') dateend = request.args.get('hasta') operacion = request.args.get('modulo_ipdial') myRoute = '/BI_Archivos/GOOGLE/Claro/result/' + dateini + '_' + dateend + '_' + operacion + '.csv' # myQuery ='SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where periodo between'+'"'+dateini+'"'+'AND'+'"'+dateend+'"'+'AND'+'"'operacion'"'' myQuery = 'SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where (periodo between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' + ') AND ipdial_code =' + '"' + operacion + '"' print(myQuery) myHeader = [ "id_call", "periodo", "agent_identification", "agent_name", "id_customer", "nombre_cliente", "id_campaing", "date", "hora_inicio_llamada", "tel_number", "duration", "typing_code", "descri__typing_code", "comment", "captura1", "captura2", "captura3", "captura4", "opt1", "opt2", "opt3", "opt4", "opt5", "opt6", "opt7", "opt8", "opt9", "opt10", "opt11", "opt12", "RANK", "ipdial_code", "TIpo", "apellido", "tipoid", "edad", "sexo", "pais", "departamento", "ciudad", "zona", "direccion", "fecha_captura", "hora_captura", "fecha_permanencia", "direccion_alterna", "tel_alterno", "ciudad_captura", "nombre", "customer_phone", "id_captura" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Resultado_Consolidado(): dateini = request.args.get('mes_inicio') dateend = request.args.get('mes_final') if dateini is None: dateini = "" else: dateini = dateini if dateend is None: dateend = "" else: dateend = dateend # operacion= request.args.get('modulo_ipdial') myRoute = '/BI_Archivos/GOOGLE/Liberty/result_consolidado/' "gestion_consolidada" '.csv' # myQuery ='SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where periodo between'+'"'+dateini+'"'+'AND'+'"'+dateend+'"'+'AND'+'"'operacion'"'' if dateini == "": myQuery = 'SELECT * FROM `contento-bi.Liberty.Exportable_Liberty_Consolidado`' else: myQuery = 'SELECT * FROM `contento-bi.Liberty.Exportable_Liberty_Consolidado`where mes_base between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' print(myQuery) myHeader = [ "id_customer", "nombre", "cuenta_gestion", "cuenta_base", "codigo_tipificacion", "tel_number", "mes_base", "fecha_getion_efectiva", "hora_getion_efectiva", "campana", "agent_name", "wpc", "rpc", "sin_contacto", "source", "intentos", "gestionable", "ipdial_code", "producto" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Encuesta(): dateini = request.args.get('desde') dateend = request.args.get('hasta') myRoute = '/BI_Archivos/GOOGLE/Mobility/Perfil_Cliente/' + dateini + '_' + dateend + '.csv' myQuery = 'SELECT * FROM `contento-bi.Auteco_Mobility.Informe_Perfil_Cliente_Agent_Script_Completo` where Fecha_Encuesta between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' myHeader = [ "BASE", "ESTADO", "ANOCREACION", "MESCREACION", "FECHACREACION", "TERCEROPROPIETARIO", "NITPROPIETARIO", "DIRECCIONPROPIETARIO", "CIUDAD", "DEPARTAMENTO", "TELEFONOFIJO", "CELULAR", "OTROTELEFONO", "EMAIL", "AUTORIZAHABEASDATAPROPIETARIO", "CHASISSERIE", "MODELO", "MARCA", "LINEA", "RAZONSOCIALESTABLECIMIENTO", "MODELO_LINEA", "UNIDAD_DE_NEGOCIO", "CATEGORIA", "SUBCATEGORIA", "SEGMENTO", "SUBSEGMENTO", "MARCA2", "Fecha_Encuesta", "Hora_Exacta", "Hora", "Responde_Encuesta", "Podriamos_Comunicarnos_Con_Usted_En_Otro_Horario", "Motivo", "Segun_Genero_Es_Femenino_O_Masculino", "Es_Usted_El_Propietario_Del_Vehiculo", "Cedula_Cliente", "Es_Usted_El_Usuario_Permanente_Del_Vehiculo", "De_Manera_General", "Con_Que_Frecuencia_Conduce_El_Vehiculo", "Cual_Es_El_Uso_Principal_Que_Le_Da_A_Su_Vehiculo", "Herramienta_Trabajo", "Otra_Herramienta_Trabajo", "Cual_Es_La_Actividad_Economica_Principal_Que_Usted_Desempena", "Por_Favor_Me_Indica_Su_Fecha_De_Nacimiento", "Edad", "Rango_Edad", "Cual_Es_Su_Estado_Civil", "Cual_Es_El_Maximo_Nivel_De_Estudios_Que_Ha_Alcanzado_Hasta_El_Momento", "Cual_Es_El_Estrato_Del_Lugar_Donde_Vives", "Tienes_Hijos", "Cuantas_Personas_Dependen_Economicamente_De_Usted", "Cual_Es_Su_Nivel_De_Ingresos", "Realizo_Algun_Prestamo_Para_La_Compra", "En_Que_Entidad_Solicito_El_Prestamo", "Otra_Entidad_Categoria", "Cual_Fue_La_Entidad_Con_La_Cual_Realizo_El_Prestamo", "Otra_Entidad", "Quien_Le_Ayudo_A_Tomar_La_Decision_De_La_Marca_Y_Modelo_Que_Deberia_Comprar", "Otro_Ayuda", "Tenia_Un_Vehiculo_Antes_De_Adquirir_Este_Cual", "Categoria_Vehiculo", "Cuantas_Ha_Tenido_Antes", "Hace_Cuanto_Tiempo_La_Habia_Adquirido", "Categoria_Marca", "Cual_Era_La_Marca", "Recuerda_La_Referencia", "Era_Nuevo_O_Usado", "En_Caso_De_Comprar__En_El_Futuro_Cual_Le_Gustaria_Comprar", "Marca_Compra", "Usa_Y_Conduce_Otro_Vehiculo_Adicional_Al_Que_Compro_Con_Nosotros", "Cual_Usa", "Cedula_Cliente3", "Usa_Facebook", "Usa_Instragram", "Usa_Twitter", "Usa_Youtube", "Usa_Whatsapp", "No_Usa_Ninguna", "Calificacion_Calidad_", "Calificacion_El_Diseno_", "Calificacion_Garantia_Y_Respaldo_", "Calificacion_Tecnologia__", "Calificacion_Desempeno_", "Calificacion_Asesoria__Servicio_", "Calificacion_Ubicacion_O_Cercania_Del_Punto_De_Venta__", "Calificacion_Opciones_De_Financiacion_", "Calificacion_Precio_", "Calificacion_Los_Descuentos_", "Calificacion_Recomendacion", "Id_Llamada", "Asesor" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Encuesta(): dateini = request.args.get('desde') dateend = request.args.get('hasta') myRoute = '/BI_Archivos/GOOGLE/Sensus/Aseguramiento/Dagricola/Descargas/' + dateini + '_' + dateend + '.csv' myQuery = 'SELECT * FROM `contento-bi.sensus.Dagrciola_admin` where fecha between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' myHeader = [ "Unico", "Nombre", "Fecha", "Nombre_gestor", "Cartera", "Nombre_evaluador", "PEC", "Telefono_cliente", "Cierre_de_la_llamada", "Evaluacion_del_Saludo", "Evaluacion_negociacion", "Aspectos_mejora", "Aspectos_positivos", "Observaciones" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def DescargaDatosAgentScript(): dateini = request.args.get('desde') dateend = request.args.get('hasta') myRoute = '/BI_Archivos/GOOGLE/Ucc/Tipificador/' + dateini + '_' + dateend + '.csv' myQuery = 'SELECT * FROM `contento-bi.telefonia_vistas.Vista_Agent_Script_UCC` WHERE FECHA BETWEEN' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' myHeader = [ "FECHA", "HORA", "ID_AGENTE", "NOMBRE", "INTERES", "CANAL", "CEDULA", "CAMPUS", "TIPO_PROGRAMA", "PROGRAMA", "CELULAR", "FIJO", "EMAIL", "CODIGO_1", "CODIGO_2", "CODIGO_3", "CODIGO_2A", "CODIGO_3A", "CODIGO_2B", "CODIGO_3B", "ID_LLAMADA" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Encuesta(): dateini = request.args.get('desde') dateend = request.args.get('hasta') myRoute = '/BI_Archivos/GOOGLE/Claro/result/' + dateini + '_' + dateend + '.csv' myQuery = 'SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where periodo between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' myHeader = [ "id_call", "periodo", "agent_identification", "agent_name", "id_customer", "nombre_cliente", "id_campaing", "date", "final_llamada", "tel_number", "duration", "typing_code", "descri_typing_code", "comment", "captura1", "captura2", "captura3", "captura4", "opt1", "opt2", "opt3", "opt4", "opt5", "opt6", "opt7", "opt8", "opt9", "opt10", "opt11", "opt12", "RANK" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Resultado(): dateini = request.args.get('desde') dateend = request.args.get('hasta') operacion = request.args.get('modulo_ipdial') myRoute = '/BI_Archivos/GOOGLE/Metlife/result/' + dateini + '_' + dateend + '_' + operacion + '.csv' # myQuery ='SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where periodo between'+'"'+dateini+'"'+'AND'+'"'+dateend+'"'+'AND'+'"'operacion'"'' myQuery = 'SELECT * FROM `contento-bi.MetLife.Exportable_Duraciones` where (date between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' + ') AND ipdial_code =' + '"' + operacion + '"' print(myQuery) myHeader = [ "id_call", "id_customer", "date", "hora_llamada", "id_agent", "cod_act", "duration", "ipdial_code" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Resultado_completo(): dateini = request.args.get('desde') dateend = request.args.get('hasta') ##operacion= request.args.get('modulo_ipdial') myRoute = '/BI_Archivos/GOOGLE/Liberty/result_diario_gestiones_completas/' + dateini + '_' + dateend + '.csv' # myQuery ='SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where periodo between'+'"'+dateini+'"'+'AND'+'"'+dateend+'"'+'AND'+'"'operacion'"'' myQuery = 'SELECT * FROM `contento-bi.Liberty.Exportable_Liberty_Gestiones_Totales` where Fecha_Gestion between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' print(myQuery) myHeader = [ "Id", "Nombre", "Cuenta_Gestiones", "Base", "Codigo_Tipificacion", "duration", "tel_number", "Fecha_Gestion", "Campana", "duration", "Agent_name", "wpc", "rpc", "sin_contacto", "hit", "Source", "Intentos", "Gestionable", "Ipdial_code", "Producto", "RANK" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Resultado_Consolidado_pichincha(): ##dateini= request.args.get('desde') ## dateend= request.args.get('hasta') ##operacion= request.args.get('modulo_ipdial') myRoute = '/BI_Archivos/GOOGLE/Liberty/result_consolidado/' "gestion_consolidada_pichincha" '.csv' # myQuery ='SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where periodo between'+'"'+dateini+'"'+'AND'+'"'+dateend+'"'+'AND'+'"'operacion'"'' myQuery = 'SELECT * FROM `contento-bi.Liberty.Exportable_pichincha_bdo_consolidado`' print(myQuery) myHeader = [ "id_customer", "placa", "nombre", "mes_de_campana", "cuenta_gestion", "cuenta_base", "codigo_tipificacion", "fecha_gestion", "campana", "agent_name", "wpc", "rpc", "sin_contacto", "hit", "source", "barridos", "gestionable", "ipdial_code", "producto" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Descarga_Resultado_diario_cafam(): dateini = request.args.get('desde') dateend = request.args.get('hasta') ##operacion= request.args.get('modulo_ipdial') myRoute = '/BI_Archivos/GOOGLE/Cafam/result_diario/' + dateini + '_' + dateend + '_' + "cafam" + '.csv' # myQuery ='SELECT * FROM `contento-bi.telefonia_vistas.claro_fija_cons` where periodo between'+'"'+dateini+'"'+'AND'+'"'+dateend+'"'+'AND'+'"'operacion'"'' myQuery = 'SELECT * FROM `contento-bi.cafam.Exportable_cafam_diario` where Fecha_Gestion between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' print(myQuery) myHeader = [ "id_customer", "nombre", "cuenta_gestion", "cuenta_base", "codigo_tipificacion", "fecha_gestion", "campana", "agent_name", "wpc", "rpc", "sin_contacto", "hit", "source", "intentos", "gestionable", "ipdial_code", "producto" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def Metlife_Rep_descarga_Base(): operacion = request.args.get('operacion') idcampana = request.args.get('idcampana') dateini = request.args.get('desde') dateend = request.args.get('hasta') myRoute = '/BI_Archivos/GOOGLE/Metlife/Bases_Wolkvox/' + operacion + '_' + idcampana + '_' + dateini + '_' + dateend + '.csv' myQuery = 'SELECT * FROM `contento-bi.MetLife.Descarga_Bases_Wolkvox` where (Fecha_gestion between' + '"' + dateini + '"' + 'AND' + '"' + dateend + '"' + ') AND id_campana = ' + '"' + idcampana + '"' + 'AND ipdial_code =' + '"' + operacion + '"' myHeader = [ "nombre_cliente", "apellido_cliente", "tipo_doc", "id_doc_cliente", "sexo", "pais", "departamento", "ciudad", "zona", "direccion", "opt1", "opt2", "opt3", "opt4", "opt5", "opt6", "opt7", "opt8", "opt9", "opt10", "opt11", "opt12", "tel1", "tel2", "tel3", "tel4", "tel5", "tel6", "tel7", "tel8", "tel9", "tel10", "tel_extra", "id_agent", "fecha", "llamadas", "id_call", "rellamada", "resultado", "cod_rslt1", "cod_rslt2", "rellamada_count", "id_cliente", "ipdial_code", "rand_token", "hora", "id_campana", "fecha_cargue", "Fecha_gestion" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def x(): # Query de ejecucion de los campos calculados: # Defino la ruta de descarga. myRoute = '/BI_Archivos/GOOGLE/Refinancia/BD_Calculada/Descargas/Base_Calculada.csv' # Defino la consulta SQL a ejecutar en BigQuery. myQuery = 'SELECT * FROM `contento-bi.refinancia.BD_Calculada_QRY_Consolidado`' # Defino los titulos de los campos resultantes de la ejecucion del query. myHeader = [ "FECHA", "IDENTIFICACION", "CLIENTE", "ID_CLIENTE", "PORTAFOLIO", "CIUDADDEPTO", "PERFIL", "ESTCLIENTE", "ESTCOMERCIAL", "CAPITAL", "MONTOTOTAL", "NO_CRE", "SCORE", "DIAS_MORA", "TOP", "CUANTIA_RANGOS", "E_ASIGNACION", "MEJOR_COD_MES_ACTUAL", "MEJOR_COD_MES_ANTERIOR", "MEJOR_COD_ULT_TRIMESTRE", "PAGOS", "TEL1", "TEL2", "TEL3", "TEL4", "TEL5", "TEL6", "TEL7", "TEL8", "TEL9", "TEL10", "FECHA_GENERACION_ULT_PROMESA", "FECHA_COMPROMISO_ULT_PROMESA", "VALOR_COMPROMISO_ULT_PROMESA", "VALOR_TOTAL_PAGADO_ULT_PROMESA", "ESTADO_ULT_PROMESA" ] return descargas.descargar_csv(myRoute, myQuery, myHeader)
def archivos_masivos(): response = {} response["code"] = 400 response["description"] = "No se encontraron ficheros" response["status"] = False local_route = fileserver_baseroute + "/BI_Archivos/GOOGLE/Bancolombia_Cast/Masivos/" # Definicion de variables insumo. tipo = ['Predictivo', 'SMS', 'TTS'] fecha_ini = [11, 4, 4] fecha_fin = [21, 14, 14] my_storage = ['info-predictivo', 'info-sms', 'info-tts'] my_table = ['predictivo', 'sms', 'tts'] my_pipeline = [ bancolombia_castigada_predictivo_beam, bancolombia_castigada_sms_beam, bancolombia_castigada_tts_beam ] my_dates_process = ['', '', ''] my_files = [[], [], []] # Almacena las fechas de los archivos. my_query = ['QRY_MASIVO_PREDICTIVO', 'QRY_MASIVO_SMS', 'QRY_MASIVO_TTS'] # Hace limpieza de las 3 tablas completamente una sola vez, y no por cada archivo. Esto para prevenir el streaming buffer. for i in [0, 1, 2]: deleteQuery = "DELETE FROM `contento-bi.bancolombia_castigada." + my_table[ i] + "` WHERE 1 = 1" client = bigquery.Client( ) #Eliminamos todos los registros que contengan esa fecha query_job = client.query(deleteQuery) query_job.result( ) # Corremos el job de eliminacion de datos de BigQuery # Limpia la tabla masivos con los resultados finales. for i in [0, 1, 2]: my_route = local_route + tipo[i] + '/' archivos = os.listdir(my_route) myCont = 0 for archivo in archivos: if archivo.endswith(".csv"): mifecha = archivo[ fecha_ini[i]: fecha_fin[i]] # Almacena las fechas de los archivos. my_files[i].append(mifecha) if myCont == 0: my_dates_process[ i] = my_dates_process[i] + "'" + mifecha + "'" else: my_dates_process[ i] = my_dates_process[i] + ",'" + mifecha + "'" myCont += 1 deleteQuery_1 = "DELETE FROM `contento-bi.bancolombia_castigada.masivos` WHERE TIPO = 'Predictivo' AND FECHA IN (" + my_dates_process[ 0] + ") OR TIPO = 'SMS' AND FECHA IN (" + my_dates_process[ 1] + ") OR TIPO = 'TTS' AND FECHA IN (" + my_dates_process[2] + ")" client_1 = bigquery.Client() query_job_1 = client_1.query(deleteQuery_1) query_job_1.result() # Inicia el proceso de carga de la información para los 3 tipos de masivos (Predictivo, SMS y TTS) for i in [0, 1, 2]: my_route = local_route + tipo[i] + '/' archivos = os.listdir(my_route) for archivo in archivos: if archivo.endswith(".csv"): mifecha = archivo[fecha_ini[i]:fecha_fin[i]] storage_client = storage.Client() bucket = storage_client.get_bucket('ct-bancolombia_castigada') # Subir fichero a Cloud Storage antes de enviarlo a procesar a Dataflow blob = bucket.blob(my_storage[i] + '/' + archivo) blob.upload_from_filename(my_route + archivo) # Una vez subido el fichero a Cloud Storage procedemos a eliminar los registros de BigQuery # deleteQuery = "DELETE FROM `contento-bi.bancolombia_castigada." + my_table[i] + "` WHERE fecha = '" + mifecha + "'" # Terminada la eliminacion de BigQuery y la subida a Cloud Storage corremos el Job mensaje = my_pipeline[i].run( 'gs://ct-bancolombia_castigada/' + my_storage[i] + '/' + archivo, mifecha) if mensaje == "Corrio Full HD": move(my_route + archivo, my_route + "Procesados/" + archivo) response["code"] = 200 response["description"] = "Se realizo la peticion Full HD" response["status"] = True time.sleep( 30 ) # Le da tiempo al Storage, para que lleve la informacion a la tabla seguimiento en BigQuery. # Guarda la información ya procesada en Tabla General Masivos. insertQuery_1 = "INSERT INTO `contento-bi.bancolombia_castigada.masivos` (SELECT '" + mifecha + "','" + tipo[ i] + "', LISTO FROM `contento-bi.bancolombia_castigada." + my_query[ i] + "`)" client_11 = bigquery.Client() query_job_11 = client_11.query(insertQuery_1) query_job_11.result() # Inicia el proceso de descarga de la Información ya procesada: for i in [0, 1, 2]: for my_file in my_files[i]: # Defino la ruta de descarga (Sin incluir '//192.168.20.87'). download_route = '/BI_Archivos/GOOGLE/Bancolombia_Cast/Masivos/Exportes/' + tipo[ i] + '_' + my_file + '.csv' # Defino la consulta SQL a ejecutar en BigQuery. export_query = "SELECT INFO FROM `contento-bi.bancolombia_castigada.masivos` WHERE TIPO = '" + tipo[ i] + "' AND FECHA = '" + my_file + "'" # Defino los títulos de los campos resultantes de la ejecución del query. header = ['INFO'] descargas.descargar_csv( download_route, export_query, header) # Hago el llamado a la función de descarga. return jsonify(response), response["code"]
def archivos_Prejuridico_castigada(): response = {} response["code"] = 400 response["description"] = "No se encontraron ficheros" response["status"] = False local_route = fileserver_baseroute + "/BI_Archivos/GOOGLE/Bancolombia_Cast/Prejuridico/" archivos = os.listdir(local_route) for archivo in archivos: if archivo.endswith(".csv"): mifecha = archivo[29:37] storage_client = storage.Client() bucket = storage_client.get_bucket('ct-bancolombia_castigada') # Subir fichero a Cloud Storage antes de enviarlo a procesar a Dataflow blob = bucket.blob('info-prejuridico/' + archivo) blob.upload_from_filename(local_route + archivo) # Una vez subido el fichero a Cloud Storage procedemos a eliminar los registros de BigQuery deleteQuery = "DELETE FROM `contento-bi.bancolombia_castigada.prejuridico` WHERE fecha = '" + mifecha + "'" #Primero eliminamos todos los registros que contengan esa fecha client = bigquery.Client() query_job = client.query(deleteQuery) #result = query_job.result() query_job.result( ) # Corremos el job de eliminacion de datos de BigQuery # Terminada la eliminacion de BigQuery y la subida a Cloud Storage corremos el Job mensaje = bancolombia_castigada_prejuridico_beam.run( 'gs://ct-bancolombia_castigada/info-prejuridico/' + archivo, mifecha) if mensaje == "Corrio Full HD": move( local_route + archivo, fileserver_baseroute + "/BI_Archivos/GOOGLE/Bancolombia_Cast/Prejuridico/Procesados/" + archivo) response["code"] = 200 response["description"] = "Se realizo la peticion Full HD" response["status"] = True time.sleep( 210 ) # Le da tiempo al Storage, para que lleve la informacion a la tabla prejuridico en BigQuery. # Inicia proceso de calculo para Fecha de Promesa Ajustada. # ---------------------------------------------------------------------------------------------------------------- # Busqueda de Fecha Promesa Ajustada (UPDATE): deleteQuery_2 = "UPDATE `contento-bi.bancolombia_castigada.ajuste_promesas` A SET A.MAX_FECHA_PROMESA_AJUSTADA = CAST(B.FECHA_PROMESA AS DATE) FROM `contento-bi.bancolombia_castigada.QRY_CALCULATE_MAX_DATE_HIT_UP` B WHERE A.NIT = B.NIT" client_2 = bigquery.Client() query_job_2 = client_2.query(deleteQuery_2) query_job_2.result() time.sleep(30) # Busqueda de Fecha Promesa Ajustada (INSERT): deleteQuery_3 = "INSERT INTO `contento-bi.bancolombia_castigada.ajuste_promesas` (NIT, MAX_FECHA_PROMESA_AJUSTADA) (SELECT NIT, CAST(FECHA_PROMESA AS DATE) FROM `contento-bi.bancolombia_castigada.QRY_CALCULATE_MAX_DATE_HIT_IN`)" client_3 = bigquery.Client() query_job_3 = client_3.query(deleteQuery_3) query_job_3.result() # ---------------------------------------------------------------------------------------------------------------- time.sleep(15) # Query de ejecución de los campos calculados: # Defino la ruta de descarga. route = '/BI_Archivos/GOOGLE/Bancolombia_Cast/Base_marcada/Base Calculada/Bancolombia_Cast_Base_Calculada.csv' # Defino la consulta SQL a ejecutar en BigQuery. query = 'SELECT * FROM `contento-bi.bancolombia_castigada.QRY_CALCULATE_BM`' # Defino los títulos de los campos resultantes de la ejecución del query. header = [ "IDKEY", "FECHA", "CONSECUTIVO_DOCUMENTO_DEUDOR", "VALOR_CUOTA", "NIT", "NOMBRES", "NUMERO_DOCUMENTO", "TIPO_PRODUCTO", "FECHA_ACTUALIZACION_PRIORIZACION", "FECHA_PAGO_CUOTA", "NOMBRE_DE_PRODUCTO", "FECHA_DE_PERFECCIONAMIENTO", "FECHA_VENCIMIENTO_DEF", "NUMERO_CUOTAS", "CUOTAS_EN_MORA", "DIA_DE_VENCIMIENTO_DE_CUOTA", "VALOR_OBLIGACION", "VALOR_VENCIDO", "SALDO_ACTIVO", "SALDO_ORDEN", "REGIONAL", "CIUDAD", "GRABADOR", "CODIGO_AGENTE", "NOMBRE_ASESOR", "CODIGO_ABOGADO", "NOMBRE_ABOGADO", "FECHA_ULTIMA_GESTION_PREJURIDICA", "ULTIMO_CODIGO_DE_GESTION_PARALELO", "ULTIMO_CODIGO_DE_GESTION_PREJURIDICO", "DESCRIPCION_SUBSECTOR", "DESCRIPCION_CODIGO_SEGMENTO", "DESC_ULTIMO_CODIGO_DE_GESTION_PREJURIDICO", "DESCRIPCION_SUBSEGMENTO", "DESCRIPCION_SECTOR", "DESCRIPCION_CODIGO_CIIU", "CODIGO_ANTERIOR_DE_GESTION_PREJURIDICO", "DESC_CODIGO_ANTERIOR_DE_GESTION_PREJURIDICO", "FECHA_ULTIMA_GESTION_JURIDICA", "ULTIMA_FECHA_DE_ACTUACION_JURIDICA", "ULTIMA_FECHA_PAGO", "EJEC_ULTIMO_CODIGO_DE_GESTION_JURIDICO", "DESC_ULTIMO_CODIGO_DE_GESTION_JURIDICO", "CANT_OBLIG", "CLUSTER_PERSONA", "DIAS_MORA", "PAIS_RESIDENCIA", "TIPO_DE_CARTERA", "CALIFICACION", "RADICACION", "ESTADO_DE_LA_OBLIGACION", "FONDO_NACIONAL_GARANTIAS", "REGION", "SEGMENTO", "CODIGO_SEGMENTO", "FECHA_IMPORTACION", "NIVEL_DE_RIESGO", "FECHA_ULTIMA_FACTURACION", "SUBSEGMENTO", "TITULAR_UNIVERSAL", "NEGOCIO_TITUTULARIZADO", "SECTOR_ECONOMICO", "PROFESION", "CAUSAL", "OCUPACION", "CUADRANTE", "FECHA_TRASLADO_PARA_COBRO", "DESC_CODIGO_DE_GESTION_VISITA", "FECHA_GRABACION_VISITA", "ENDEUDAMIENTO", "CALIFICACION_REAL", "FECHA_PROMESA", "RED", "ESTADO_NEGOCIACION", "TIPO_CLIENTE_SUFI", "CLASE", "FRANQUICIA", "SALDO_CAPITAL_PESOS", "SALDO_INTERESES_PESOS", "PROBABILIDAD_DE_PROPENSION_DE_PAGO", "PRIORIZACION_FINAL", "PRIORIZACION_POR_CLIENTE", "GRUPO_DE_PRIORIZACION", "FECHA_PROMESA_V2", "FECHA_PROMESA_AJUSTADA", "DIAS_DESDE_TRASLADO", "DIAS_SIN_COMPROMISO", "DIAS_SIN_PAGO", "DIAS_SIN_RPC", "FRANJA_MORA", "RANGO_PROP_TRASLADO", "RANGO_PROP_PAGO", "RANGO_PROP_CONTACTO", "RANGO_PROP_ACUERDO", "DESFASE", "EQUIPO", "MEJOR_DIA", "MEJOR_HORA", "LOTE", "VUELTAS_REQUERIDAS", "VUELTAS_REALES", "GRABADOR_AJUSTADO" ] b = descargas.descargar_csv( route, query, header) # Hago el llamado a la función de descarga. return jsonify(response), response["code"]