brother_import_order.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. '''
  2. Created on Mar 6, 2020 @author: Levi
  3. '''
  4. import xlsxwriter as xl
  5. from datetime import date
  6. from argparse import ArgumentParser
  7. if __name__ == '__main__':
  8. parser = ArgumentParser()
  9. parser.add_argument('-f', '--filename', type=str)
  10. parser.add_argument('-s', '--supplier', type=str, default='atlas')
  11. args = parser.parse_args()
  12. if not args.filename:
  13. args.filename = 'MOZAIK_CONSULTING_INV0001145.PDF'
  14. if not args.supplier:
  15. args.supplier = 'atlas'
  16. args.supplier = 'brother'
  17. args.filename = 'pdf/'+input('filename?')
  18. if args.supplier == 'atlas':
  19. from atlas import atlasInvoice as Inv
  20. elif args.supplier == 'brother':
  21. from brother import brotherOrder as Inv
  22. inv = Inv(args.filename)
  23. def invoice_imp(nr_doc, data, size, sup_code, item_list, txi='D'):
  24. InfoPachet = '[InfoPachet]'
  25. AnLucru=date.today().year
  26. LunaLucru=date.today().month
  27. TipDocument='INVOICE'
  28. TotalFacturi=1
  29. tf = f'[Factura_{TotalFacturi}]'
  30. struct = \
  31. f'{InfoPachet}\nAnLucru={AnLucru}\nLunaLucru={LunaLucru}\nTipDocument={TipDocument}\n\
  32. TotalFacturi={TotalFacturi}\n{tf}\nNrDoc={nr_doc}\nData={data}\nLohn=N\n\
  33. CodFurnizor={sup_code}\nMoneda=EUR\nScadenta={date.today().day}.{date.today().month}.{date.today().year}\n\
  34. TotalArticole={size}\nTaxareInversa={txi}\n[DVI_1]\nNrDoc=1\nData=\
  35. {date.today().day}.{date.today().month}.{date.today().year}\nCurs=4.7885\n'
  36. transp = \
  37. '[Transport_1]\nNrdoc=\nCodTransportator=\nMoneda=\nCurs=\nValoare=\nScadenta=\nMajorari=\n\
  38. [Asigurare_1]\nNrDoc=\nCodAsigurator=\nMoneda=\nCurs=\nValoare=\nScadenta=\nMajorari=\n'
  39. items = '[Items_1]\n'
  40. for i in range(1, size+1):
  41. items += f'item_{i}={item_list["items_details"]["codes"][i-1]};BUC;{item_list["items_details"]["qnt"][i-1]};\
  42. {item_list["items_details"]["net_val"][i-1]};MPD;{item_list["items_details"]["disc"][i-1]};;;;\n'
  43. return struct, transp, items
  44. def wr_docline(name, inv):
  45. wb = xl.Workbook(name)
  46. ws = wb.add_worksheet()
  47. row=0
  48. col=0
  49. for c, q, v in zip(inv.items_details.codes, inv.items_details.qnt, inv.items_details.net_val):
  50. # print(i)
  51. ws.write(row, col, c)
  52. ws.write(row, col+1, q)
  53. ws.write(row, col+2, v)
  54. row += 1
  55. wb.close()
  56. if __name__ == '__main__':
  57. wr_docline('inv_import_CLI.xlsx', inv)
  58. # with open(f'{args.supplier}.txt', 'w') as txt:
  59. # for text_block in range(3):
  60. # txt.write(invoice_imp(inv['inv_nr'], inv['data'], inv['size'], inv['vat_num'], inv)[text_block])