diff --git a/MedicusWithClaudeFaktury/faktury_report.py b/MedicusWithClaudeFaktury/faktury_report.py index 0c22a18..982f98a 100644 --- a/MedicusWithClaudeFaktury/faktury_report.py +++ b/MedicusWithClaudeFaktury/faktury_report.py @@ -19,6 +19,13 @@ now = datetime.now() filename = now.strftime('%Y-%m-%d_%H-%M-%S') + '_faktury.xlsx' output_path = os.path.join(output_dir, filename) +# --- Složka pro soubory (KDAVKA, REQUEST atd.) --- +files_dir = os.path.join(output_dir, 'SOUBORY_PRO_FAKTURY_REPORT') +import shutil +if os.path.exists(files_dir): + shutil.rmtree(files_dir) +os.makedirs(files_dir) + # --- Smazání předchozích verzí --- for f in os.listdir(output_dir): if f.endswith('_faktury.xlsx'): @@ -33,6 +40,7 @@ wb = openpyxl.Workbook() HEADER_FILL = PatternFill('solid', fgColor='2F5496') HEADER_FONT = Font(bold=True, color='FFFFFF') LINK_FONT = Font(color='0563C1', underline='single') +PLAIN_FONT = Font(color='000000') # normální font bez modrého podtržení ZEBRA_FILL = PatternFill('solid', fgColor='DCE6F1') def style_header(ws): @@ -432,6 +440,37 @@ for i, row in enumerate(ed_data_rows, start=2): serverresp_txt = decode_latin_blob(serverresp, 'iso-8859-2') protocol_txt = decode_latin_blob(protocol, 'iso-8859-2') + # Ulož soubory pro klikací hyperlinky + rel_prefix = 'SOUBORY_PRO_FAKTURY_REPORT' + kdavka_link = '' + request_link = '' + serverresp_link = '' + protocol_link = '' + + if kdavka_txt: + fname = f'KDAVKA_{eid}.txt' + with open(os.path.join(files_dir, fname), 'w', encoding='utf-8') as f: + f.write(kdavka_txt) + kdavka_link = f'{rel_prefix}/{fname}' + + if request_txt: + fname = f'REQUEST_{eid}.xml' + with open(os.path.join(files_dir, fname), 'w', encoding='utf-8') as f: + f.write(request_txt) + request_link = f'{rel_prefix}/{fname}' + + if serverresp_txt: + fname = f'SERVERRESPONSE_{eid}.xml' + with open(os.path.join(files_dir, fname), 'w', encoding='utf-8') as f: + f.write(serverresp_txt) + serverresp_link = f'{rel_prefix}/{fname}' + + if protocol_txt: + fname = f'PROTOCOL_{eid}.html' + with open(os.path.join(files_dir, fname), 'w', encoding='utf-8') as f: + f.write(protocol_txt) + protocol_link = f'{rel_prefix}/{fname}' + out = [ eid, f"{hiccode} {HICCODE_MAP.get(str(hiccode), '')}" if hiccode else '', @@ -451,6 +490,14 @@ for i, row in enumerate(ed_data_rows, start=2): cell.alignment = WRAP ws6.row_dimensions[i].height = 80 + # Hyperlinky na soubory – F=KDAVKA, G=REQUEST, H=SERVERRESPONSE, I=PROTOCOL + for col_idx, link in [(6, kdavka_link), (7, request_link), + (8, serverresp_link), (9, protocol_link)]: + if link: + cell = ws6.cell(row=i, column=col_idx) + cell.hyperlink = link + cell.font = PLAIN_FONT # bez modrého podtržení + style_header(ws6) ws6.freeze_panes = 'A2'