Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. import logging
  2. import configparser
  3. import pyodbc
  4.  
  5. config = configparser.ConfigParser()
  6. try:
  7. config.read('D:\\data_loading\\ini.txt')
  8. except Exception as e:
  9. logging.info(e)
  10.  
  11. server = config['Default']['server']
  12. database = config['Default']['database']
  13. username = config['Default']['username']
  14. password = config['Default']['password']
  15.  
  16. conn_str = ('DRIVER={SQL Server}' +
  17. ';SERVER=' + server +
  18. ';DATABASE=' + database +
  19. ';UID=' + username +
  20. ';PWD=' + password)
  21.  
  22. cnxn = pyodbc.connect(conn_str)
  23. cursor = cnxn.cursor()
  24.  
  25. clients_file = 'D:\\data_loading\\27062019_clients_blank.csv'
  26. orders_file = 'D:\\data_loading\\27062019_orders_blank.csv'
  27.  
  28. if __name__ == '__main__':
  29. with open(orders_file, encoding='utf-8', newline='') as reader_1:
  30. orders = [line.split(',"') for line in reader_1.readlines()]
  31. orders[0][0] = orders[0][0].replace('\ufeff', '')
  32. for i in orders:
  33. i[-1] = i[-1].strip()
  34. orders = [[c.strip('"') for c in i] for i in orders]
  35. #print(orders)
  36.  
  37. with open(clients_file, encoding='utf-8', newline='') as reader_2:
  38. clients = [line.split('","') for line in reader_2.readlines()]
  39. clients[0][0] = clients[0][0].replace('\ufeff', '')
  40. for i in clients:
  41. i[-1] = i[-1].strip()
  42. clients = [[c.strip('"') for c in i] for i in clients]
  43. #print(clients)
  44.  
  45.  
  46.  
  47. r = cursor.execute("SELECT SAASCLIENTID FROM CLIENTS WHERE ENABLED = 1").fetchall()
  48. cl = [] #преобразование из кортежа в список id
  49. for c in r:
  50. cl += [l for l in c]
  51. #print(cl)
  52.  
  53. for client in clients:
  54. client_id = client[0]
  55. saas_clientid = client[20]
  56. #print(saas_clientid)
  57.  
  58. if client_id == 0: # поиск айди клиента из файла в базе
  59. #print(client_id)
  60. cursor.execute("INSERT INTO CLIENTS(FULLNAME,NAME,NAME1,NAME2,BIRTHDATE,DOCS,DOCNUM,DOCBEGINDATE,DOCCONTENT,ADDRESS_REG,ADDRESS_FACT,PHONE,MOBILEPHONE,BIRTHPLACE,DOCCODE,ENABLED,OLDNAME,CREATIONDATETIME,USERID,SAASCLIENTID)"
  61. "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", client[1:])
  62. #print(client[1:])
  63. new_id = cursor.execute("SELECT TOP 1 ID FROM CLIENTS ORDER BY ID DESC").fetchone()
  64. #print(new_id)
  65.  
  66. deals = [o for o in orders if o[17] == saas_clientid]
  67. #print(deals)
  68.  
  69. if cl.count(client_id) == 0: # клиент есть в базе
  70. for deal in deals:
  71. deal[8] = new_id # обновляем значение clientid для договора
  72. print(deal)
  73.  
  74. # записываем договоры в базу
  75. try:
  76. cursor.executemany('''INSERT INTO ORDERS(DAYSQUANT,LOANCOSTALL,ENABLED,WORKNAME,WORKADDRESS,WORKPROF,NUMBER,CREATIONDATETIME,CLIENTID,USERID,ORDERSTATUS,PUTDATETIME,PERCENTCOSTALL,
  77. LOANRESTCOSTALL,INFO,MAINPERCENT,FULLNAME)
  78. VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''', deals)
  79. logging.info('Orders by client {0} had been loaded! Downloaded {1} orders!'.format(client_id,len(deals)))
  80. except pyodbc.ProgrammingError as e: # Если нет договоров у клиента в файле
  81. logging.info('Client id:{} has not orders!'.format(client_id))
  82. logging.info('Logging completed successfully.')
  83. logging.info('Downloaded {} orders!'.format(len(deals)))
  84. logging.info('Downloaded {} clients!'.format(len(new_id)))
  85. cnxn.commit()
  86. cursor.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement