Files
janssen/KPC/_process_telco_v1.py
2026-06-18 11:53:53 +02:00

55 lines
2.4 KiB
Python

"""_process_telco_v1.py — OPRAVA: doplněn specifický symbol (Fio ABO spec).
Položka: <účet> <částka> <VS> <směr+KS> <SS|mezera> AV:<text>. Přepíše soubor v Dropboxu.
"""
import sys
from datetime import date
from pathlib import Path
sys.stdout.reconfigure(encoding="utf-8")
sys.path.insert(0, r"U:\ordinaceprojekt")
import dropbox
from Knihovny.telegram_notify import posli_telegram
today = date.today(); ddmmyy = today.strftime("%d%m%y"); fdate = today.strftime("%Y-%m-%d")
DEBIT = "2100046291" # osobní
# (účet, haléře, VS, směr.kód, KS, SS, AV) — SS="" => prázdné (nahradí se mezerou)
items = [
("117292", 384200, "1029503118", "0300", "0000", "38630302", "Faktura Vodafone"),
("19-2235210247", 47920, "9953395180", "0100", "0000", "", "faktura T-Mobile"),
]
total = sum(h for _, h, *_ in items)
def polozka(acc, hal, vs, bank, ks, ss, av):
ssfield = ss if ss else " " # prázdný SS = jedna mezera (dle Fio spec)
return f"{acc} {str(hal).zfill(12)} {vs} {bank}{ks} {ssfield} AV:{av}"
CRLF = "\r\n"
lines = ["UHL1" + ddmmyy + " " * 20 + "0" * 28, "1 1501 000000 2010",
f"2 000000-{DEBIT} {str(total).zfill(14)} {ddmmyy}"]
lines += [polozka(*it) for it in items]
lines += ["3 +", "5 +"]
content = CRLF.join(lines) + CRLF
data = content.encode("ascii")
fname = f"{fdate} KPC k platbě [Vodafone + T-Mobile].kpc"
print("=== OPRAVENÝ KPC (se SS) ==="); print(content.replace("\r\n", "\\r\\n\n"), end="")
print(f"=== {fname} ({len(data)} B) ===\n")
out_dir = Path(__file__).parent / "output"; out_dir.mkdir(exist_ok=True)
(out_dir / fname).write_bytes(data)
env = {}
for line in Path(r"U:\PythonProject\Janssen\EmailsImport\.env").read_text(encoding="utf-8").splitlines():
line = line.strip()
if "=" in line and not line.startswith("#"):
k, v = line.split("=", 1); env[k.strip()] = v.strip()
dbx = dropbox.Dropbox(app_key=env["DROPBOX_APP_KEY"], app_secret=env["DROPBOX_APP_SECRET"],
oauth2_refresh_token=env["DROPBOX_APP_REFRESH_TOKEN"])
res = dbx.files_upload(data, f"/!!!Days/Downloads Z230/{fname}",
mode=dropbox.files.WriteMode.overwrite) # PŘEPÍŠE původní (bez SS)
print("PŘEPSÁNO v Dropboxu →", res.path_display)
posli_telegram("✏️ Opraveno: telco KPC nyní obsahuje specifický symbol Vodafonu (38630302). "
"Soubor v Dropboxu přepsán — prosím znovu naimportuj.")
print(">> HOTOVO.")