"""funkce_ext.py – zápis PDF souborů přímo do měsíční externí Firebird DB místo do hlavní medicus.fdb – spouštět na Windows Náhrada za funkce.zapis_file() v s03soubory.py. Binární data souboru se uloží do MEDICUS_FILES_YYYYMM.fdb (DATA tabulka), do hlavní FILES.BODY se vloží 48bajtová reference. Formát FILES.BODY reference (48 B): magic 4 B = b'\\xee\\xbb\\xaa\\x0b' uid 32 B = UUID4 hex (ASCII, 32 znaků) dblen 4 B = délka DBNAME jako little-endian uint32 dbname N B = DBNAME ASCII (např. 'DB202603', 8 B) """ import os import struct import uuid import fdb # Magic bajty identifikující referenci na externí DB MAGIC = b'\xee\xbb\xaa\x0b' # ─── Pomocné funkce ────────────────────────────────────────────────────────── def make_body_ref(uid: str, dbname: str) -> bytes: """Sestaví 48bajtovou binární referenci pro FILES.BODY.""" uid_bytes = uid.encode('ascii') # 32 B dbname_bytes = dbname.encode('ascii') # typicky 8 B ('DB202603') return MAGIC + uid_bytes + struct.pack('