''' Created on Mar 6, 2020 @author: Levi ''' import xlsxwriter as xl from datetime import date from argparse import ArgumentParser from atlas import atlasInvoice as Inv if __name__ == '__main__': parser = ArgumentParser() parser.add_argument('-f', '--filename', type=str) parser.add_argument('-s', '--supplier', type=str, default='atlas') args = parser.parse_args() # if not args.filename: # args.filename = 'MOZAIK_CONSULTING_INV0001145.PDF' # if not args.supplier: # args.supplier = 'atlas' args.supplier = 'atlas' args.filename = 'sample/'+input('filename?') # if args.supplier == 'atlas': # elif args.supplier == 'brother': # from brother import brotherInvoice as Inv inv = Inv(args.filename) def invoice_imp(nr_doc, data, size, sup_code, item_list, txi='D'): InfoPachet = '[InfoPachet]' AnLucru = date.today().year LunaLucru = date.today().month TipDocument = 'INVOICE' TotalFacturi = 1 tf = f'[Factura_{TotalFacturi}]' struct = \ f'{InfoPachet}\nAnLucru={AnLucru}\nLunaLucru={LunaLucru}\nTipDocument={TipDocument}\n\ TotalFacturi={TotalFacturi}\n{tf}\nNrDoc={nr_doc}\nData={data}\nLohn=N\n\ CodFurnizor={sup_code}\nMoneda=EUR\nScadenta={date.today().day}.{date.today().month}.{date.today().year}\n\ TotalArticole={size}\nTaxareInversa={txi}\n[DVI_1]\nNrDoc=1\nData=\ {date.today().day}.{date.today().month}.{date.today().year}\nCurs=4.7885\n' transp = \ '[Transport_1]\nNrdoc=\nCodTransportator=\nMoneda=\nCurs=\nValoare=\nScadenta=\nMajorari=\n\ [Asigurare_1]\nNrDoc=\nCodAsigurator=\nMoneda=\nCurs=\nValoare=\nScadenta=\nMajorari=\n' items = '[Items_1]\n' for i in range(1, size+1): items += f'item_{i}={item_list["items_details"]["codes"][i-1]};BUC;{item_list["items_details"]["qnt"][i-1]};\ {item_list["items_details"]["net_val"][i-1]};MPD;{item_list["items_details"]["disc"][i-1]};;;;\n' return struct, transp, items def wr_docline(name, inv): wb = xl.Workbook(name) ws = wb.add_worksheet() row = 0 col = 0 for c, q, v in zip(inv.items_details.codes, inv.items_details.qnt, inv.items_details.net_val): # print(i) ws.write(row, col, c) ws.write(row, col+1, q) ws.write(row, col+2, v) row += 1 wb.close() if __name__ == '__main__': wr_docline('inv_import_CLI.xlsx', inv) with open(f'{args.supplier}.txt', 'w') as txt: for text_block in range(3): txt.write(invoice_imp(inv['inv_nr'], inv['data'], inv['size'], inv['vat_num'], inv)[text_block])