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)
def load_pictet_operations(file_path): return xls_loader.load_xlsx("Pictet",file_path,[u'No ordre'])