def pag_loader_delayd_receivables_arq(identificador_arquivo):
	retorno = 0
	descr_erro = 'Sucesso'
	df = pd.read_csv(reads3.busca_arquivo_s3(identificador_arquivo), sep=",", doublequote=False)

	try:
		arq_csv_colun_sele = df[['Id','Contrato','Cnpj','Cpf socio','Situação','Tipo de tomador','Entidade','Data de contrato','Taxa efetiva (a.m.)','Forma de pagamento','Saldo Devedor Atual','Saldo Contábil','Valor em atraso','Atraso total (dias)']].fillna('0')
		#print(arq_csv_colun_sele.head())
		#os.system("pause")
		arq_csv_colun_sele = arq_csv_colun_sele.rename(columns={"Id": "idt_operacao"
			,"Contrato": "num_contrato"
			,"Cnpj" : "num_cnpj"
			,"Cpf socio" : "num_cpf_socio"
			,"Situação": "des_situacao"
			,"Tipo de tomador": "ind_tp_tomador"
			,"Entidade": "nam_entidade"
			,"Data de contrato": "dat_contrato"
			,"Taxa efetiva (a.m.)": "num_taxa_efetiva"
			,"Saldo Devedor Atual": "num_saldo_devedor_atual"
			,"Saldo Contábil": 'num_saldo_contabil'
			,"Forma de pagamento": "des_forma_pagamento"
			,"Valor em atraso": "num_valor_atraso"
			,"Atraso total (dias)": "num_atraso_total_dias"
			})

		
		arq_csv_colun_sele['num_cpf_socio'] = arq_csv_colun_sele['num_cpf_socio'].astype(str)
		arq_csv_colun_sele['num_cpf_socio'] = arq_csv_colun_sele.num_cpf_socio.str.pad(11,side='left',fillchar='0')

		arq_csv_colun_sele['num_cnpj'] = arq_csv_colun_sele['num_cnpj'].astype(str)
		arq_csv_colun_sele['num_cnpj'] = arq_csv_colun_sele.num_cnpj.str.pad(14,side='left',fillchar='0')

		arq_csv_colun_sele['num_saldo_devedor_atual'] = arq_csv_colun_sele['num_saldo_devedor_atual'].str.replace('.', '').str.replace('$', '').str.replace('R', '').fillna(0)
		#para pag usa saldocontabil para p2p usa saldodevedor
		arq_csv_colun_sele['num_saldo_contabil'] = arq_csv_colun_sele['num_saldo_contabil'].str.replace('.', '').str.replace('$', '').str.replace('R', '').fillna(0)
		arq_csv_colun_sele['num_valor_atraso'] = arq_csv_colun_sele['num_valor_atraso'].str.replace('.', '').str.replace('$', '').str.replace('R', '').fillna(0)

		arq_csv_colun_sele['des_forma_pagamento'] = listcases.lista_forma_pagamento(arq_csv_colun_sele['des_forma_pagamento'])

		arq_csv_colun_sele['ind_tp_tomador'] = listcases.lista_tp_tomador(arq_csv_colun_sele['ind_tp_tomador'])

		arq_csv_colun_sele['anomes'] = arq_csv_colun_sele['dat_contrato'].str[0:7]
		arq_csv_colun_sele['num_taxa_efetiva'] = arq_csv_colun_sele['num_taxa_efetiva'].fillna(0)*100 
		arq_csv_colun_sele['num_atraso_total_dias'] = arq_csv_colun_sele['num_atraso_total_dias'].astype('int64').fillna(0)
        
		arq_csv_colun_sele['num_rank'] = np.arange(1,len(arq_csv_colun_sele)+1)
		'''
		#dois fluxos desenvolvidos para utilizar rank e row_number - PENSAR SE DEVE OU NAO UTILIZAR
		#rank seq de linhas carregadas
		arq_csv_colun_sele['rank'] = np.arange(1,len(arq_csv_colun_sele)+1)
		
		reads3.envia_arquivo_s3(arq_csv_colun_sele,identificador_arquivo)

		#row_num seq de vezes que o processo foi exec ao dia
		SQL = ("select x.RANK_NUM, nvl(max(x.row_num),1)+1 as ROW_NUM_QUERY from (select  rank_num, ROW_NUMBER() OVER (PARTITION BY RANK_NUM ORDER BY RANK_NUM DESC ) AS ROW_NUM  from credito.teste_rank_py WHERE TRUNC(DAT_IMPORT) >= TRUNC(SYSDATE))x group by x.rank_num")
		ref = pd.read_sql_query(SQL, con=conn)
		ndf = pd.DataFrame(ref)
		arq_csv_colun_sele['row_num'] = ndf['ROW_NUM_QUERY']
		arq_csv_colun_sele['row_num'] = arq_csv_colun_sele['row_num'].fillna(1)
		'''
		lista_array = list(arq_csv_colun_sele.to_records(index=False, column_dtypes=dict))
		log.logger.info('0 - credito.cart_cobr_arq_delayed_rec')
		
		query_insert =("INSERT /*array */ INTO credito.cart_cobr_arq_delayed_rec (idt_operacao ,num_contrato ,num_cnpj ,num_cpf_socio ,des_situacao ,ind_tp_tomador ,nam_entidade ,dat_contrato, num_taxa_efetiva, des_forma_pagamento ,num_saldo_devedor_atual, num_saldo_contabil ,num_valor_atraso ,num_atraso_total_dias, anomes, num_rank) values (:1, :2, :3, :4, :5, :6, :7 ,to_Date(:8,'yyyy-mm-dd'), :9, :10, :11, :12, :13, :14, :15, :16)")
		table_name = ("credito.cart_cobr_arq_delayed_rec")
		insertdb.insertDataBase(lista_array, query_insert, table_name)
	except Exception as err:
		log.logger.error(err)
		#raise err
		retorno = 1
		descr_erro = str(err)

	return retorno, descr_erro
def create_tb_carteira_status():
    retorno = 0
    descr_erro = 'Sucesso'
    conn = conexao.connect_db().oracle

    dctb.drop_create_tb_cart(
    )  #funcao que cria estrutura de tabelas para buscar carteira do cliente
    sql = dctb.query_select(
    )  #query que utiliza o tratamento com tb do lake para buscar carteira de cliente

    df_list = []
    conn = conexao.connect_db().oracle
    for chunk in pd.read_sql_query(sql, conn, chunksize=1000):
        df_list.append(chunk)
    df_tabela = pd.concat(df_list, ignore_index=True)

    try:
        log.logger.info('5 - credito.cart_cobr_sts_cart_valor'
                        )  #print('5 - credito.cart_cobr_sts_cart_valor')

        df_cart_sts_valor = df_tabela.groupby([
            'CARTEIRA', 'IND_DIVISAO'
        ])['NUM_SALDO_CONTABIL'].sum().to_frame().reset_index()
        df_cart_sts_valor = df_cart_sts_valor.pivot_table(
            values='NUM_SALDO_CONTABIL',
            index='CARTEIRA',
            columns='IND_DIVISAO',
            aggfunc=sum).fillna(0)

        df_cart_sts_valor = pd.DataFrame(
            df_cart_sts_valor, columns=['Capital', 'WhiteLabel',
                                        'totalmr']).fillna(0)

        df_cart_sts_valor['totalmr'] = df_cart_sts_valor.sum(axis=1)
        df_cart_sts_valor.loc['totalmr'] = df_cart_sts_valor.sum(axis=0)
        df_cart_sts_valor['num_rank'] = np.arange(1,
                                                  len(df_cart_sts_valor) + 1)

        lista_array = list(
            df_cart_sts_valor.to_records(index=True, column_dtypes=dict))
        query_insert = "INSERT /*array */ INTO credito.cart_cobr_sts_cart_valor (status_carteira, capital, whitelabel, totalmr, num_rank) values (:1, :2, :3, :4, :5)"

        table_name = ("credito.cart_cobr_sts_cart_valor")
        insertdb.insertDataBase(lista_array, query_insert, table_name)
        list.clear(lista_array)

        log.logger.info('6 - credito.cart_cobr_sts_cart_qtd'
                        )  #print('6 - credito.cart_cobr_sts_cart_qtd')

        df_cart_sts_qtd_op = df_tabela.groupby(
            ['CARTEIRA',
             'IND_DIVISAO'])['IDT_OPERACAO'].size().to_frame().reset_index()
        df_cart_sts_qtd_op = df_cart_sts_qtd_op.pivot_table(
            values='IDT_OPERACAO',
            index='CARTEIRA',
            columns='IND_DIVISAO',
            aggfunc=pd.Series.unique).fillna(0)
        df_cart_sts_qtd_op = pd.DataFrame(
            df_cart_sts_qtd_op, columns=['Capital', 'WhiteLabel',
                                         'totalmr']).fillna(0)

        df_cart_sts_qtd_op['totalmr'] = df_cart_sts_qtd_op.sum(axis=1)
        df_cart_sts_qtd_op.loc['totalmr'] = df_cart_sts_qtd_op.sum(axis=0)
        df_cart_sts_qtd_op['num_rank'] = np.arange(1,
                                                   len(df_cart_sts_qtd_op) + 1)

        lista_array = list(
            df_cart_sts_qtd_op.to_records(index=True, column_dtypes=dict))
        query_insert = "INSERT /*array */ INTO credito.cart_cobr_sts_cart_qtd (status_carteira, capital, whitelabel, totalmr, num_rank) values (:1, :2, :3, :4, :5)"

        table_name = ("credito.cart_cobr_sts_cart_qtd")
        insertdb.insertDataBase(lista_array, query_insert, table_name)
        list.clear(lista_array)

        log.logger.info('7 - credito.cart_cobr_sts_cart_porc'
                        )  #print('7 - credito.cart_cobr_sts_cart_porc')

        df_cart_carteira_op_porc = pd.DataFrame(
            df_cart_sts_qtd_op, columns=['Capital', 'WhiteLabel'])
        df_cart_carteira_op_porc = df_cart_carteira_op_porc.drop('totalmr')

        df_cart_carteira_op_porc['Capital'] = df_cart_carteira_op_porc[
            'Capital'] / df_cart_carteira_op_porc['Capital'].sum(axis=0) * 100
        df_cart_carteira_op_porc['WhiteLabel'] = df_cart_carteira_op_porc[
            'WhiteLabel'] / df_cart_carteira_op_porc['WhiteLabel'].sum(
                axis=0) * 100

        df_cart_carteira_op_porc = pd.DataFrame(
            df_cart_carteira_op_porc,
            columns=['Capital', 'WhiteLabel', 'totalmr']).fillna(0)

        df_cart_carteira_op_porc['totalmr'] = df_cart_carteira_op_porc.sum(
            axis=1)
        df_cart_carteira_op_porc.loc['totalmr'] = df_cart_carteira_op_porc.sum(
            axis=0)
        df_cart_carteira_op_porc['num_rank'] = np.arange(
            1,
            len(df_cart_carteira_op_porc) + 1)

        lista_array = list(
            df_cart_carteira_op_porc.to_records(index=True,
                                                column_dtypes=dict))
        query_insert = "INSERT /*array */ INTO credito.cart_cobr_sts_cart_porc (status_carteira, capital, whitelabel, totalmr, num_rank) values (:1, :2, :3, :4, :5)"

        table_name = ("credito.cart_cobr_sts_cart_porc")
        insertdb.insertDataBase(lista_array, query_insert, table_name)
        list.clear(lista_array)

        #print('AGING ')
        log.logger.info('8 - credito.cart_cobr_sts_cart_aging_valor'
                        )  #print('8 - cart_cobr_sts_cart_aging_valor')

        df_tabela['AGING'] = listcases.lista_atraso_dias(
            df_tabela['NUM_ATRASO_TOTAL_DIAS'])

        df_cart_sts_valor = df_tabela.groupby(
            ['AGING',
             'CARTEIRA'])['NUM_SALDO_CONTABIL'].sum().to_frame().reset_index()
        df_cart_carteira_valor = df_cart_sts_valor.pivot_table(
            values='NUM_SALDO_CONTABIL',
            index='AGING',
            columns='CARTEIRA',
            aggfunc=sum).fillna(0)

        df_cart_carteira_valor = pd.DataFrame(df_cart_carteira_valor,
                                              columns=[
                                                  '0', 'GERENTEVIRTUAL',
                                                  'LONGTAIL', 'PARCERIAS',
                                                  'BERCARIO', 'SUBADQUIRENTE',
                                                  'EMPRESAS', 'VAREJO', 'ISO'
                                              ]).fillna(0)

        df_cart_carteira_valor['TOTALMR'] = df_cart_carteira_valor.sum(axis=1)
        df_cart_carteira_valor.loc['TOTALMR'] = df_cart_carteira_valor.sum(
            axis=0)
        df_cart_carteira_valor['NUM_RANK'] = np.arange(
            1,
            len(df_cart_carteira_valor) + 1)

        lista_array = list(
            df_cart_carteira_valor.to_records(index=True, column_dtypes=dict))
        query_insert = "INSERT /*array */ INTO credito.cart_cobr_sts_cart_aging_valor (AGING, ZERO, GERENTEVIRTUAL, LONGTAIL, PARCERIAS, BERCARIO,SUBADQUIRENTE,EMPRESAS,VAREJO, ISO, TOTALMR, NUM_RANK) values (:0, :1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11)"

        table_name = ("credito.cart_cobr_sts_cart_aging_valor")
        insertdb.insertDataBase(lista_array, query_insert, table_name)
        list.clear(lista_array)

        log.logger.info('9 - credito.cart_cobr_sts_cart_aging_qtd'
                        )  #print('9 - credito.cart_cobr_sts_cart_aging_qtd')
        df_cart_sts_aging_qtd_op = df_tabela.groupby(
            ['AGING',
             'CARTEIRA'])['IDT_OPERACAO'].size().to_frame().reset_index()
        df_cart_sts_aging_qtd_op = df_cart_sts_aging_qtd_op.pivot_table(
            values='IDT_OPERACAO',
            index=['AGING'],
            columns='CARTEIRA',
            aggfunc=pd.Series.unique).fillna(0)

        df_cart_sts_aging_qtd_op = pd.DataFrame(df_cart_sts_aging_qtd_op,
                                                columns=[
                                                    '0', 'GERENTEVIRTUAL',
                                                    'LONGTAIL', 'PARCERIAS',
                                                    'BERCARIO',
                                                    'SUBADQUIRENTE',
                                                    'EMPRESAS', 'VAREJO', 'ISO'
                                                ]).fillna(0)

        df_cart_sts_aging_qtd_op['TOTALMR'] = df_cart_sts_aging_qtd_op.sum(
            axis=1)
        df_cart_sts_aging_qtd_op.loc['TOTALMR'] = df_cart_sts_aging_qtd_op.sum(
            axis=0)
        df_cart_sts_aging_qtd_op['NUM_RANK'] = np.arange(
            1,
            len(df_cart_sts_aging_qtd_op) + 1)

        lista_array = list(
            df_cart_sts_aging_qtd_op.to_records(index=True,
                                                column_dtypes=dict))
        query_insert = "INSERT /*array */ INTO credito.cart_cobr_sts_cart_aging_qtd (AGING, ZERO, GERENTEVIRTUAL, LONGTAIL, PARCERIAS, BERCARIO,SUBADQUIRENTE,EMPRESAS,VAREJO, ISO, TOTALMR, NUM_RANK)  values (:0, :1, :2, :3, :4, :5, :6, :7, :8, :09 ,:10, :11)"

        table_name = ("credito.cart_cobr_sts_cart_aging_qtd")
        insertdb.insertDataBase(lista_array, query_insert, table_name)
        list.clear(lista_array)

        log.logger.info('10 - credito.cart_cobr_sts_cart_aging_porc'
                        )  #print('10 - credito.cart_cobr_sts_cart_aging_porc')

        #0  BERÇÁRIO    EMPRESAS    GERENTE VIRTUAL LONGTAIL    PARCERIAS   SUBADQUIRENTE   A DESCOBRIR VAREJO  ISO
        df_cart_sts_aging_qtd_porc = pd.DataFrame(
            df_cart_sts_aging_qtd_op,
            columns=[
                '0', 'GERENTEVIRTUAL', 'LONGTAIL', 'PARCERIAS', 'BERCARIO',
                'SUBADQUIRENTE', 'EMPRESAS', 'VAREJO', 'ISO'
            ])
        df_cart_sts_aging_qtd_porc = df_cart_sts_aging_qtd_porc.drop('TOTALMR')

        df_cart_sts_aging_qtd_porc['0'] = df_cart_sts_aging_qtd_porc[
            '0'] / df_cart_sts_aging_qtd_porc['0'].sum(axis=0) * 100
        df_cart_sts_aging_qtd_porc[
            'GERENTEVIRTUAL'] = df_cart_sts_aging_qtd_porc[
                'GERENTEVIRTUAL'] / df_cart_sts_aging_qtd_porc[
                    'GERENTEVIRTUAL'].sum(axis=0) * 100
        df_cart_sts_aging_qtd_porc['LONGTAIL'] = df_cart_sts_aging_qtd_porc[
            'LONGTAIL'] / df_cart_sts_aging_qtd_porc['LONGTAIL'].sum(
                axis=0) * 100
        df_cart_sts_aging_qtd_porc['PARCERIAS'] = df_cart_sts_aging_qtd_porc[
            'PARCERIAS'] / df_cart_sts_aging_qtd_porc['PARCERIAS'].sum(
                axis=0) * 100
        df_cart_sts_aging_qtd_porc['BERCARIO'] = df_cart_sts_aging_qtd_porc[
            'BERCARIO'] / df_cart_sts_aging_qtd_porc['BERCARIO'].sum(
                axis=0) * 100
        df_cart_sts_aging_qtd_porc[
            'SUBADQUIRENTE'] = df_cart_sts_aging_qtd_porc[
                'SUBADQUIRENTE'] / df_cart_sts_aging_qtd_porc[
                    'SUBADQUIRENTE'].sum(axis=0) * 100
        df_cart_sts_aging_qtd_porc['EMPRESAS'] = df_cart_sts_aging_qtd_porc[
            'EMPRESAS'] / df_cart_sts_aging_qtd_porc['EMPRESAS'].sum(
                axis=0) * 100
        df_cart_sts_aging_qtd_porc['VAREJO'] = df_cart_sts_aging_qtd_porc[
            'VAREJO'] / df_cart_sts_aging_qtd_porc['VAREJO'].sum(axis=0) * 100
        df_cart_sts_aging_qtd_porc['ISO'] = df_cart_sts_aging_qtd_porc[
            'ISO'] / df_cart_sts_aging_qtd_porc['ISO'].sum(axis=0) * 100

        df_cart_sts_aging_qtd_porc = pd.DataFrame(
            df_cart_sts_aging_qtd_porc,
            columns=[
                '0', 'GERENTEVIRTUAL', 'LONGTAIL', 'PARCERIAS', 'BERCARIO',
                'SUBADQUIRENTE', 'EMPRESAS', 'VAREJO', 'ISO'
            ]).fillna(0)

        df_cart_sts_aging_qtd_porc['TOTALMR'] = df_cart_sts_aging_qtd_porc.sum(
            axis=1)
        df_cart_sts_aging_qtd_porc.loc[
            'TOTALMR'] = df_cart_sts_aging_qtd_porc.sum(axis=0)
        df_cart_sts_aging_qtd_porc['NUM_RANK'] = np.arange(
            1,
            len(df_cart_sts_aging_qtd_porc) + 1)

        lista_array = list(
            df_cart_sts_aging_qtd_porc.to_records(index=True,
                                                  column_dtypes=dict))

        query_insert = "INSERT /*array */ INTO credito.cart_cobr_sts_cart_aging_porc (AGING, ZERO, GERENTEVIRTUAL, LONGTAIL, PARCERIAS, BERCARIO,SUBADQUIRENTE,EMPRESAS,VAREJO, ISO, TOTALMR, NUM_RANK) values (:0, :1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11)"

        table_name = ("credito.cart_cobr_sts_cart_aging_porc")
        insertdb.insertDataBase(lista_array, query_insert, table_name)
        list.clear(lista_array)

    except Exception as err:
        log.logger.error(err)
        #raise err
        retorno = 1
        descr_erro = str(err)
    return retorno, descr_erro
    #print(datetime.date_time_zn().now - startTime)

    conn.close()
Esempio n. 3
0
def create_tb_carteira_aging(identificador_arquivo):
    retorno = 0
    descr_erro = 'Sucesso'

    df = pd.read_csv(reads3.busca_arquivo_s3(identificador_arquivo),
                     sep=",",
                     doublequote=False)
    #arq_csv_colun_sele = df[['Id','Contrato','Situação','Tipo de tomador','Entidade','Data de contrato','Saldo Devedor Atual','Saldo Contábil','Valor em atraso','Forma de pagamento','Atraso total (dias)']].fillna(0)
    try:
        arq_csv_colun_sele = df[[
            'Id', 'Situação', 'Data de contrato', 'Saldo Contábil',
            'Valor em atraso', 'Forma de pagamento', 'Atraso total (dias)'
        ]].fillna(0)

        arq_csv_colun_sele = arq_csv_colun_sele.rename(
            columns={
                "Id": "idt_operacao"
                #,"Contrato": "num_contrato"
                #,"Cnpj" : "num_cnpj"
                #,"Cpf socio" : "num_cpf_socio" #"{0:011d}".format(1234567)
                #,"Situação": "des_situacao"
                #,"Tipo de tomador": "ind_tp_tomador"
                #,"Entidade": "nam_entidade"
                ,
                "Data de contrato": "dat_contrato"
                #,"Saldo Devedor Atual": "num_saldo_devedor_atual"
                ,
                "Saldo Contábil": "num_saldo_contabil",
                "Forma de pagamento": "des_forma_pagamento",
                "Valor em atraso": "num_valor_atraso",
                "Atraso total (dias)": "num_atraso_total_dias"
            })

        #para pag usa saldocontabil para p2p usa saldodevedor
        arq_csv_colun_sele['num_saldo_contabil'] = arq_csv_colun_sele[
            'num_saldo_contabil'].str.replace('.', '').str.replace(
                ',', '.').str.replace('$', '').str.replace(
                    'R', '').astype('float64').fillna(0)
        arq_csv_colun_sele['ind_divisao'] = listcases.lista_forma_pagamento(
            arq_csv_colun_sele['des_forma_pagamento'])

        df_agrupado_cart_cobr = pd.DataFrame(arq_csv_colun_sele,
                                             columns=[
                                                 'ind_divisao',
                                                 'num_atraso_total_dias',
                                                 'num_saldo_contabil'
                                             ])
        #
        log.logger.info(
            '1 - credito.cart_cobr_sum')  #print('1 - credito.cart_cobr_sum')
        #gera a primeira tabela consolidado valores somatoria e porc
        df_agrupado_group_sum = arq_csv_colun_sele.groupby(
            ['ind_divisao'])['num_saldo_contabil'].sum().to_frame()
        df_agrupado_group_sum['porcent'] = df_agrupado_group_sum[
            'num_saldo_contabil'] / df_agrupado_group_sum[
                'num_saldo_contabil'].sum() * 100
        df_agrupado_group_sum.loc['totalmr'] = df_agrupado_group_sum.sum(
            axis=0)
        '''   
        list_column = []
        for index in df_agrupado_group_sum:
            list_column.append(index)
        df_agrupado_group_sum['rank'] = list_column
        '''

        df_agrupado_group_sum['num_rank'] = np.arange(
            1,
            len(df_agrupado_group_sum) + 1)

        lista_array = list(
            df_agrupado_group_sum.to_records(index=True, column_dtypes=dict))

        query_insert = "INSERT /*array */ INTO credito.cart_cobr_sum (cart_cobr, totalmr, porc, num_rank) values (:1, :2, :3, :4)"
        table_name = ("credito.cart_cobr_sum")
        insertdb.insertDataBase(lista_array, query_insert, table_name)

        ##
        log.logger.info('2 - credito.cart_cobr_aging_valor'
                        )  #print('2 - credito.cart_cobr_aging_valor')
        #gera a seg tabela consolidado valores somatoria com aging dias
        df_agrupado_cart_cobr = pd.DataFrame(arq_csv_colun_sele,
                                             columns=[
                                                 'idt_operacao', 'ind_divisao',
                                                 'num_atraso_total_dias',
                                                 'num_saldo_contabil'
                                             ])

        df_agrupado_cart_cobr['aging'] = listcases.lista_atraso_dias(
            df_agrupado_cart_cobr['num_atraso_total_dias'])

        df_cart_aging_valor = df_agrupado_cart_cobr.groupby([
            'aging', 'ind_divisao'
        ])['num_saldo_contabil'].sum().to_frame().reset_index()
        df_cart_aging_valor = df_cart_aging_valor.pivot_table(
            values='num_saldo_contabil',
            index='aging',
            columns='ind_divisao',
            aggfunc=sum).fillna(0)

        df_cart_aging_valor = pd.DataFrame(
            df_cart_aging_valor, columns=['Capital', 'WhiteLabel',
                                          'totalmr']).fillna(0)

        df_cart_aging_valor['totalmr'] = df_cart_aging_valor.sum(axis=1)
        df_cart_aging_valor.loc['totalmr'] = df_cart_aging_valor.sum(axis=0)

        df_cart_aging_valor['num_rank'] = np.arange(
            1,
            len(df_cart_aging_valor) + 1)

        lista_array = list(
            df_cart_aging_valor.to_records(index=True, column_dtypes=dict))

        query_insert = "INSERT /*array */ INTO credito.cart_cobr_aging_valor (aging, capital, whitelabel, totalmr, num_rank) values (:1, :2, :3, :4, :5)"
        table_name = ("credito.cart_cobr_aging_valor")
        insertdb.insertDataBase(lista_array, query_insert, table_name)

        ###
        log.logger.info('3 - credito.cart_cobr_aging_qtd'
                        )  #print('3 - credito.cart_cobr_aging_qtd')
        #gera a terc tabela consolidado valores qtd ope com aging dias

        df_cart_aging_qtd_op = df_agrupado_cart_cobr.groupby(
            ['aging',
             'ind_divisao'])['idt_operacao'].size().to_frame().reset_index()
        df_cart_aging_qtd_op = df_cart_aging_qtd_op.pivot_table(
            values='idt_operacao',
            index=['aging'],
            columns='ind_divisao',
            aggfunc=pd.Series.unique).fillna(0)

        df_cart_aging_qtd_op = pd.DataFrame(
            df_cart_aging_qtd_op, columns=['Capital', 'WhiteLabel',
                                           'totalmr']).fillna(0)

        df_cart_aging_qtd_op['totalmr'] = df_cart_aging_qtd_op.sum(axis=1)
        df_cart_aging_qtd_op.loc['totalmr'] = df_cart_aging_qtd_op.sum(axis=0)
        df_cart_aging_qtd_op['num_rank'] = np.arange(
            1,
            len(df_cart_aging_qtd_op) + 1)

        lista_array = list(
            df_cart_aging_qtd_op.to_records(index=True, column_dtypes=dict))
        query_insert = "INSERT /*array */ INTO credito.cart_cobr_aging_qtd (aging, capital, whitelabel, totalmr, num_rank) values (:1, :2, :3, :4, :5)"
        table_name = ("credito.cart_cobr_aging_qtd")
        insertdb.insertDataBase(lista_array, query_insert, table_name)

        ####
        log.logger.info('4 - credito.cart_cobr_aging_porc'
                        )  #print('4 - credito.cart_cobr_aging_porc')
        #gera a quart tabela consolidado porc  aging dias

        df_cart_aging_qtd_porc = pd.DataFrame(
            df_cart_aging_qtd_op, columns=['Capital', 'WhiteLabel'])
        df_cart_aging_qtd_porc = df_cart_aging_qtd_porc.drop('totalmr')

        df_cart_aging_qtd_porc['Capital'] = df_cart_aging_qtd_porc[
            'Capital'] / df_cart_aging_qtd_porc['Capital'].sum(axis=0) * 100
        df_cart_aging_qtd_porc['WhiteLabel'] = df_cart_aging_qtd_porc[
            'WhiteLabel'] / df_cart_aging_qtd_porc['WhiteLabel'].sum(
                axis=0) * 100

        df_cart_aging_qtd_op = pd.DataFrame(
            df_cart_aging_qtd_op, columns=['Capital', 'WhiteLabel',
                                           'totalmr']).fillna(0)

        df_cart_aging_qtd_porc['totalmr'] = df_cart_aging_qtd_porc.sum(axis=1)
        df_cart_aging_qtd_porc.loc['totalmr'] = df_cart_aging_qtd_porc.sum(
            axis=0)
        df_cart_aging_qtd_porc['num_rank'] = np.arange(
            1,
            len(df_cart_aging_qtd_porc) + 1)

        lista_array = list(
            df_cart_aging_qtd_porc.to_records(index=True, column_dtypes=dict))

        query_insert = "INSERT /*array */ INTO credito.cart_cobr_aging_porc (aging, capital, whitelabel, totalmr, num_rank) values (:1, :2, :3, :4, :5)"
        table_name = ("credito.cart_cobr_aging_porc")
        insertdb.insertDataBase(lista_array, query_insert, table_name)

    except Exception as err:
        log.logger.error(err)
        #raise err
        retorno = 1
        descr_erro = str(err)

    return retorno, descr_erro
Esempio n. 4
0
def p2p_pag_loader_delayd_receivables_arq(identificador_arquivo):
    df = pd.read_csv(reads3.busca_arquivo_s3(identificador_arquivo),
                     sep=";",
                     doublequote=False)
    try:
        arq_csv_colun_sele = df[[
            'Id', 'Contrato', 'Cnpj', 'Cpf socio', 'Situação',
            'Tipo de tomador', 'Entidade', 'Data de contrato',
            'Taxa efetiva (a.m.)', 'Forma de pagamento', 'Saldo Devedor Atual',
            'Valor em atraso', 'Atraso total (dias)'
        ]].fillna('0')

        arq_csv_colun_sele = arq_csv_colun_sele.rename(
            columns={
                "Id": "idt_operacao",
                "Contrato": "num_contrato",
                "Cnpj": "num_cnpj",
                "Cpf socio": "num_cpf_socio",
                "Situação": "des_situacao",
                "Tipo de tomador": "ind_tp_tomador",
                "Entidade": "nam_entidade",
                "Data de contrato": "dat_contrato",
                "Taxa efetiva (a.m.)": "num_taxa_efetiva",
                "Forma de pagamento": "des_forma_pagamento",
                "Saldo Devedor Atual": "num_saldo_devedor_atual",
                "Valor em atraso": "num_valor_atraso",
                "Atraso total (dias)": "num_atraso_total_dias"
            })

        arq_csv_colun_sele['num_cpf_socio'] = arq_csv_colun_sele[
            'num_cpf_socio'].astype(str)
        arq_csv_colun_sele[
            'num_cpf_socio'] = arq_csv_colun_sele.num_cpf_socio.str.pad(
                11, side='left', fillchar='0')

        arq_csv_colun_sele['num_cnpj'] = arq_csv_colun_sele['num_cnpj'].astype(
            str)
        arq_csv_colun_sele['num_cnpj'] = arq_csv_colun_sele.num_cnpj.str.pad(
            14, side='left', fillchar='0')

        arq_csv_colun_sele['num_saldo_devedor_atual'] = arq_csv_colun_sele[
            'num_saldo_devedor_atual'].str.replace('.', '').str.replace(
                ',', '.').str.replace('$', '').str.replace(
                    'R', '').astype('float64').fillna(0)
        arq_csv_colun_sele['num_valor_atraso'] = arq_csv_colun_sele[
            'num_valor_atraso'].str.replace('.', '').str.replace(
                ',', '.').str.replace('$', '').str.replace(
                    'R', '').astype('float64').fillna(0)

        arq_csv_colun_sele['ind_tp_tomador'] = listcases.lista_tp_tomador(
            arq_csv_colun_sele['ind_tp_tomador'])

        arq_csv_colun_sele['dat_contrato'] = arq_csv_colun_sele[
            'dat_contrato'].astype('datetime64')
        arq_csv_colun_sele['dat_contrato'] = arq_csv_colun_sele[
            'dat_contrato'].dt.strftime('%Y-%m-%d')

        arq_csv_colun_sele['num_taxa_efetiva'] = arq_csv_colun_sele[
            'num_taxa_efetiva'].fillna(0) * 100
        arq_csv_colun_sele['num_atraso_total_dias'] = arq_csv_colun_sele[
            'num_atraso_total_dias'].astype('int64').fillna(0)
        arq_csv_colun_sele['ind_divisao'] = listcases.p2p_ind_divisao(
            arq_csv_colun_sele['dat_contrato'],
            arq_csv_colun_sele['des_situacao'])
        arq_csv_colun_sele['anomes'] = arq_csv_colun_sele['dat_contrato'].str[
            0:7]

        #print(arq_csv_colun_sele.head())
        #print(arq_csv_colun_sele.info())

        lista_array = list(
            arq_csv_colun_sele.to_records(index=False, column_dtypes=dict))
        #print(lista_array)
        log.logger.info('0 - credito.p2p_cart_cobr_arq_delayed_rec')
        query_insert = (
            "INSERT /*array */ INTO credito.p2p_cart_cobr_arq_delayed_rec (idt_operacao ,num_contrato ,num_cnpj ,num_cpf_socio ,des_situacao ,ind_tp_tomador ,nam_entidade, dat_contrato, num_taxa_efetiva, des_forma_pagamento, num_saldo_devedor_atual, num_valor_atraso, num_atraso_total_dias,ind_divisao,anomes) values (:1, :2, :3, :4, :5, :6, :7, to_Date(:8,'yyyy-mm-dd'), :9, :10, :11, :12, :13,:14,:15)"
        )
        table_name = ("credito.p2p_cart_cobr_arq_delayed_rec")
        insertdb.insertDataBase(lista_array, query_insert, table_name)

    except Exception as err:
        log.logger.error(err)
        raise err


#print(datetime.date_time_zn().now - startTime)