Example #1
0
def convert_pictet_operations_guardian(pictet_file, guardian_file, accounts_file, export_file):
    export_header = ['progr','rif','simulazione','spuntato','storicizzato','storno','annullato','data_ins','data_ope','ora_ope','data_val',
                     'cod_ope','cod_rap','cod_tit','cod_div_tit','cod_isin','cod_bloomberg','cod_esterno','qta','prezzo','rateo','cambiom',
                     'cambiod','cod_ctp','cod_dep_tit','cod_dep_liq','cod_dep_liq2','cod_div_reg','ctv_tit_dn','ctv_rat_dn','comp_dep_dn',
                     'coma_dep_dn','comp_alt_dn','coma_alt_dn','spese_dn','imposte_dn','ctv_tot_dn','margini_dn','ctv_tit_dr','ctv_rat_dr',
                     'omp_dep_dr','coma_dep_dr','comp_alt_dr','coma_alt_dr','spese_dr','imposte_dr','ctv_tot_dr','des_mov','rif_est',
                     'coordinate1','coordinate2','data_sto','progr_sto','prezzo_car','cod_div_ds','cambiom_ds','cambiod_ds','ctv_tot_ds',
                     'cod_mer','tipo_prezzo','tipo_tempo','cash']

    data = load_pictet_operations(pictet_file)
    guardian = xls_loader.load_xlsx("Guardian",guardian_file,[u'PICTET 1',u'PICTET 2'])
    accounts = xls_loader.load_xlsx("GUARDIAN_ACCOUNTS", accounts_file, [u'pictet_code',u'account_currency'])
    full_content = [export_header]
    line_index = 1
    account_code = None
    
    for order in data.keys():
        LOGGER.info("Working on row " + str(line_index) + " with operation code " + str(order))
        code_operation = data[order][0][u'Code op\xe9ration']
        type_operation = data[order][0][u'Type op\xe9ration']
        try:
            account_code = accounts[data[order][0][u'No du compte']][data[order][0][u'Monnaie de r\xe9f\xe9rence']][0][u'portfolio_code']
            pictet_code = data[order][0][u'No du compte']
        except:
            continue
        if len(data[order])==1:
            # Simple case
            guardian_operation = guardian[type_operation][code_operation][0][u'GUARDIAN']
            LOGGER.info("Pictet=" + type_operation + "/" + code_operation)
            LOGGER.info("Guard.=" + str(guardian_operation))
            if guardian_operation!=None and guardian_operation!='':
                if guardian_operation=='GIROCONTO' and type_operation!='Fiduciary deposit':
                    guardian_operation = 'PRELEVAMENTO'
                guardian_cash = 'S' if guardian[type_operation][code_operation][0][u'CASH']==1 else ''
                if guardian_operation!=None and guardian_operation!='' and guardian_operation!='GIROCONTO':
                    row = default_operation(data[order][0], account_code, pictet_code, accounts, code_operation, type_operation, guardian_cash, guardian_operation)
                    full_content.append(row)
                    LOGGER.info("Size:" + str(len(full_content)))
                elif guardian_operation=='GIROCONTO':
                    row = fiduciary_transfer(data[order][0], account_code, pictet_code, accounts, code_operation, type_operation, guardian_cash, guardian_operation) 
                    full_content.append(row)
                    LOGGER.info("Size:" + str(len(full_content)))
                else:
                    LOGGER.warn('\tSkipping')
            elif guardian[type_operation][code_operation][0][u'ADVANCED']=='STOCKDIVIDEND':
                row = switch_operation(data[order][0], account_code, pictet_code, accounts, '', 'CARICO')
                full_content.append(row)
                LOGGER.info("Size:" + str(len(full_content)))
            line_index += 1
        else:
            # Complex: Cancellation, transfer
            rows = get_guardian_operation(data[order], account_code, pictet_code, guardian, accounts)
            if rows!=None:
                [full_content.append(row) for row in rows]
                LOGGER.info("Size:" + str(len(full_content)))
            else:
                LOGGER.warn('\tSkipping')
            line_index += 1
    simple_xlsx_dump(full_content, export_file)
Example #2
0
def load_pictet_operations(file_path):
    return xls_loader.load_xlsx("Pictet",file_path,[u'No ordre'])