z230
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
"""
|
||||
Přihlášení na portál RBP pomocí certifikátu (bez NMSigneru).
|
||||
|
||||
JAK TO FUNGUJE:
|
||||
Portál používá challenge-response autentizaci (stejná platforma jako VoZP):
|
||||
1. Skript načte přihlašovací stránku → dostane session cookie (PHPSESSID)
|
||||
2. Požádá server o zprávu k podpisu (challenge s časovým razítkem)
|
||||
3. Podepíše ji certifikátem jako PKCS7/CMS detached signature (RSA + SHA-256)
|
||||
4. Odešle podpis na server → server ověří a vrátí přihlášení
|
||||
5. Výsledné cookies uloží do rbp_cookies.json pro další skripty
|
||||
|
||||
POUŽITÍ:
|
||||
pip install requests cryptography
|
||||
python 01_prihlaseni.py
|
||||
|
||||
CERTIFIKÁT:
|
||||
Exportuj z Windows: certmgr.msc → Osobní → pravý klik → Exportovat
|
||||
Formát: PKCS #12 (.PFX), bez CA řetězu
|
||||
Uložit do: ../../Certificates/MBQualifiedCert.pfx
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
import requests
|
||||
from cryptography.hazmat.primitives import hashes, serialization
|
||||
from cryptography.hazmat.primitives.serialization import pkcs7, pkcs12
|
||||
|
||||
PFX_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../Certificates/MBQualifiedCert.pfx"))
|
||||
PFX_PASSWORD = b"Vlado7309208104++"
|
||||
COOKIES_FILE = os.path.abspath(os.path.join(os.path.dirname(__file__), "rbp_cookies.json"))
|
||||
|
||||
BASE_URL = "https://portal.rbp-zp.cz"
|
||||
CHALLENGE_URL = f"{BASE_URL}/json-api/prihlaseni/prihlasovaci-zprava"
|
||||
CERTLOGIN_URL = f"{BASE_URL}/json-api/prihlaseni/prihlaseni-certifikatem"
|
||||
|
||||
|
||||
def main() -> None:
|
||||
session = requests.Session()
|
||||
session.headers.update({
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"Origin": BASE_URL,
|
||||
"Referer": BASE_URL + "/",
|
||||
})
|
||||
|
||||
# 1. Načti login stránku → session cookie
|
||||
r = session.get(f"{BASE_URL}/app/prihlaseni")
|
||||
r.raise_for_status()
|
||||
session.cookies.set("pzp_sign", "CERT", domain="portal.rbp-zp.cz", path="/")
|
||||
|
||||
# 2. Získej challenge
|
||||
r = session.post(CHALLENGE_URL, json={"login_sign": "CERT"},
|
||||
headers={"Content-Type": "application/json; charset=UTF-8"})
|
||||
r.raise_for_status()
|
||||
zprava = r.json()["data"]["zprava"]
|
||||
|
||||
# 3. Podepis (PKCS7 detached, RSA + SHA-256, bez CA řetězu)
|
||||
with open(PFX_PATH, "rb") as f:
|
||||
private_key, cert, _ = pkcs12.load_key_and_certificates(f.read(), PFX_PASSWORD)
|
||||
|
||||
podpis = (
|
||||
pkcs7.PKCS7SignatureBuilder()
|
||||
.set_data(zprava.encode("utf-8"))
|
||||
.add_signer(cert, private_key, hashes.SHA256())
|
||||
.sign(serialization.Encoding.PEM, [pkcs7.PKCS7Options.DetachedSignature])
|
||||
.decode("ascii").strip()
|
||||
)
|
||||
|
||||
# 4. Přihlas se
|
||||
r = session.post(CERTLOGIN_URL, json={"zprava": zprava, "podpis": podpis},
|
||||
headers={"Content-Type": "application/json; charset=UTF-8"})
|
||||
r.raise_for_status()
|
||||
data = r.json()["data"]
|
||||
|
||||
if not data.get("prihlasen"):
|
||||
print(f"Prihlaseni selhalo: {r.json().get('errMsg', '')}")
|
||||
return
|
||||
|
||||
print(f"Prihlaseni uspesne - {data.get('url', '')}")
|
||||
|
||||
# 5. Ulož cookies
|
||||
cookies = [
|
||||
{
|
||||
"name": c.name,
|
||||
"value": c.value,
|
||||
"domain": c.domain if c.domain.startswith(".") else "." + c.domain,
|
||||
"path": c.path or "/",
|
||||
"expires": int(c.expires) if c.expires else -1,
|
||||
"secure": bool(c.secure),
|
||||
"httpOnly": False,
|
||||
"sameSite": "Lax",
|
||||
}
|
||||
for c in session.cookies
|
||||
]
|
||||
with open(COOKIES_FILE, "w", encoding="utf-8") as f:
|
||||
json.dump(cookies, f, indent=2, ensure_ascii=False)
|
||||
print(f"Ulozeno {len(cookies)} cookies -> {COOKIES_FILE}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,256 @@
|
||||
"""
|
||||
Stahování zpráv ze všech schránek RBP portálu.
|
||||
|
||||
Použij po 01_prihlaseni.py (ten uloží rbp_cookies.json).
|
||||
|
||||
POUŽITÍ:
|
||||
python 02_stahuj_vse.py
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
BASE_URL = "https://portal.rbp-zp.cz"
|
||||
INBOX_URL = f"{BASE_URL}/app/prehled-zprav-ve-schrankach"
|
||||
DOWNLOAD_URL = f"{BASE_URL}/html/prehled-zprav-ve-schrankach/zobrazit-prilohu"
|
||||
PROTOKOL_URL = f"{BASE_URL}/html/prehled-zprav-ve-schrankach/zobrazit-protokol"
|
||||
|
||||
COOKIES_FILE = os.path.abspath(os.path.join(os.path.dirname(__file__), "rbp_cookies.json"))
|
||||
DOWNLOAD_DIR = os.path.join(os.path.dirname(__file__), "Staženo")
|
||||
|
||||
SCHRANKY = {
|
||||
"31-schranka-vyuctovani": "Schránka vyúčtování",
|
||||
"22-schranka-pzs": "Schránka PZS",
|
||||
"24-schranka-klienta": "Schránka klienta",
|
||||
"135-prohlizeni-klientely-odbornosti-001": "Prohlížení klientely",
|
||||
"136-prohlizeni-plateb": "Prohlížení plateb",
|
||||
"138-zadanka-o-schvaleni": "Žádanka o schválení",
|
||||
"170-schranka-poskytovatele-zdravotnich-sluzeb": "Schránka poskytovatele ZS",
|
||||
"182-schranka-klientu-portalu": "Schránka klientů portálu",
|
||||
"203-vypis-pojistencu-registrovanych-u-pzs": "Výpis pojištěnců reg. u PZS",
|
||||
"241-smluvni-dokumenty-pro-pzs": "Smluvní dokumenty pro PZS",
|
||||
}
|
||||
|
||||
|
||||
def make_session():
|
||||
try:
|
||||
import requests
|
||||
except ImportError:
|
||||
print("Chybi requests: pip install requests")
|
||||
sys.exit(1)
|
||||
import requests as req
|
||||
|
||||
if not os.path.exists(COOKIES_FILE):
|
||||
print(f"Soubor {COOKIES_FILE} nenalezen - spust 01_prihlaseni.py")
|
||||
sys.exit(1)
|
||||
|
||||
with open(COOKIES_FILE, encoding="utf-8") as f:
|
||||
cookies = json.load(f)
|
||||
|
||||
s = req.Session()
|
||||
s.headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
|
||||
for c in cookies:
|
||||
s.cookies.set(c["name"], c["value"], domain=c["domain"].lstrip("."))
|
||||
|
||||
r = s.get(INBOX_URL, timeout=15)
|
||||
if "prihlaseni" in r.url or "login" in r.url.lower():
|
||||
print("Cookies expirovala - spust 01_prihlaseni.py")
|
||||
sys.exit(1)
|
||||
print(f"Prihlaseni OK ({r.url})")
|
||||
return s
|
||||
|
||||
|
||||
def parse_date(date_str: str) -> str:
|
||||
try:
|
||||
return datetime.strptime(date_str.strip()[:19], "%d.%m.%Y %H:%M:%S").strftime("%Y-%m-%d")
|
||||
except Exception:
|
||||
try:
|
||||
return datetime.strptime(date_str.strip()[:10], "%d.%m.%Y").strftime("%Y-%m-%d")
|
||||
except Exception:
|
||||
return "0000-00-00"
|
||||
|
||||
|
||||
def safe_filename(name: str) -> str:
|
||||
return re.sub(r'[\\/:*?"<>|]', "_", name).strip()
|
||||
|
||||
|
||||
def parse_row(cells: list) -> dict:
|
||||
date_raw = cells[1].strip() if len(cells) > 1 else ""
|
||||
desc_raw = cells[2].strip() if len(cells) > 2 else ""
|
||||
fname_raw = cells[3].strip() if len(cells) > 3 else ""
|
||||
|
||||
desc_lines = [l.strip() for l in desc_raw.split("\n") if l.strip()]
|
||||
if len(desc_lines) >= 3:
|
||||
description = desc_lines[2]
|
||||
elif len(desc_lines) >= 2:
|
||||
description = desc_lines[1]
|
||||
else:
|
||||
description = desc_lines[0] if desc_lines else ""
|
||||
description = description[:80]
|
||||
|
||||
fname_match = re.match(r'^(.+?)\s*\(\d{2}\.\d{2}\.\d{4}\)\s*$', fname_raw)
|
||||
original = fname_match.group(1).strip() if fname_match else fname_raw.split("(")[0].strip()
|
||||
orig_path = Path(original)
|
||||
stem = orig_path.stem or "zprava"
|
||||
ext = orig_path.suffix or ""
|
||||
|
||||
date_iso = parse_date(date_raw)
|
||||
name = f"{date_iso} {safe_filename(description)} ({safe_filename(stem)}){ext}"
|
||||
if len(name) > 240:
|
||||
name = f"{date_iso} ({safe_filename(stem)}){ext}"
|
||||
|
||||
return {"date": date_iso, "desc": description, "original": original, "filename": name}
|
||||
|
||||
|
||||
def process_schránka(page, context, segment: str, name: str, already: set) -> tuple:
|
||||
downloaded = 0
|
||||
skipped = 0
|
||||
page_num = 1
|
||||
seen_ids: set = set()
|
||||
|
||||
while True:
|
||||
url = f"{INBOX_URL}/{segment}/stranka-{page_num}"
|
||||
print(f" Stranka {page_num}: {url}")
|
||||
try:
|
||||
page.goto(url, wait_until="domcontentloaded", timeout=30_000)
|
||||
except Exception as e:
|
||||
print(f" Navigace selhala: {e}")
|
||||
break
|
||||
|
||||
page.wait_for_load_state("networkidle", timeout=15_000)
|
||||
|
||||
data = page.evaluate("""() => {
|
||||
const rows = [];
|
||||
for (const tr of document.querySelectorAll('table tr')) {
|
||||
const cells = Array.from(tr.querySelectorAll('td')).map(td => td.innerText.trim());
|
||||
if (cells.length < 4) continue;
|
||||
const dlLink = tr.querySelector('a[onclick*="SchrPolOpenFile"]');
|
||||
if (!dlLink) continue;
|
||||
const mFile = dlLink.getAttribute('onclick').match(/\\d+/);
|
||||
const protLink = tr.querySelector('a[onclick*="SchrPolDBProtokol"]');
|
||||
const mProt = protLink ? protLink.getAttribute('onclick').match(/\\d+/) : null;
|
||||
rows.push({
|
||||
cells,
|
||||
fileId: mFile ? mFile[0] : null,
|
||||
protokolId: mProt ? mProt[0] : null,
|
||||
});
|
||||
}
|
||||
return rows;
|
||||
}""")
|
||||
rows = [r for r in data if r["fileId"]]
|
||||
|
||||
if not rows:
|
||||
print(f" Stranka {page_num} - zadne radky, koncim schranku.")
|
||||
break
|
||||
|
||||
current_ids = {r["fileId"] for r in rows}
|
||||
if current_ids & seen_ids:
|
||||
print(f" Stranka {page_num} - opakujici se obsah, koncim schranku.")
|
||||
break
|
||||
seen_ids.update(current_ids)
|
||||
|
||||
print(f" Nalezeno {len(rows)} zprav.")
|
||||
|
||||
for row in rows:
|
||||
info = parse_row(row["cells"])
|
||||
target = os.path.join(DOWNLOAD_DIR, info["filename"])
|
||||
|
||||
# Stáhni přílohu (pokud ještě neexistuje)
|
||||
if info["filename"] in already or os.path.exists(target):
|
||||
skipped += 1
|
||||
else:
|
||||
dl_url = f"{DOWNLOAD_URL}?zprava_id={row['fileId']}"
|
||||
try:
|
||||
r = context.request.get(dl_url, headers={"Referer": INBOX_URL}, timeout=30_000)
|
||||
if not r.ok:
|
||||
print(f" HTTP {r.status} priloha (id={row['fileId']})")
|
||||
else:
|
||||
with open(target, "wb") as f:
|
||||
f.write(r.body())
|
||||
print(f" OK: {info['filename']}")
|
||||
already.add(info["filename"])
|
||||
downloaded += 1
|
||||
except Exception as e:
|
||||
print(f" Chyba priloha (id={row['fileId']}): {e}")
|
||||
time.sleep(1.0)
|
||||
|
||||
# Stáhni protokol (podání) — vždy nezávisle na příloze
|
||||
if row.get("protokolId"):
|
||||
prot_name = safe_filename(f"{info['date']} {info['desc']} (protokol-{row['protokolId']}).html")
|
||||
prot_target = os.path.join(DOWNLOAD_DIR, prot_name)
|
||||
if prot_name not in already and not os.path.exists(prot_target):
|
||||
prot_url = f"{PROTOKOL_URL}?id={row['protokolId']}"
|
||||
try:
|
||||
r2 = context.request.get(prot_url, headers={"Referer": INBOX_URL}, timeout=30_000)
|
||||
if r2.ok:
|
||||
with open(prot_target, "wb") as f:
|
||||
f.write(r2.body())
|
||||
print(f" OK: {prot_name}")
|
||||
already.add(prot_name)
|
||||
downloaded += 1
|
||||
else:
|
||||
print(f" HTTP {r2.status} protokol (id={row['protokolId']})")
|
||||
except Exception as e:
|
||||
print(f" Chyba protokol (id={row['protokolId']}): {e}")
|
||||
time.sleep(1.0)
|
||||
|
||||
page_num += 1
|
||||
|
||||
return downloaded, skipped
|
||||
|
||||
|
||||
def main() -> None:
|
||||
try:
|
||||
from playwright.sync_api import sync_playwright
|
||||
except ImportError:
|
||||
print("Chybi playwright: pip install playwright && playwright install chrome")
|
||||
sys.exit(1)
|
||||
|
||||
os.makedirs(DOWNLOAD_DIR, exist_ok=True)
|
||||
|
||||
with open(COOKIES_FILE, encoding="utf-8") as f:
|
||||
cookies = json.load(f)
|
||||
|
||||
with sync_playwright() as p:
|
||||
context = p.chromium.launch_persistent_context(
|
||||
user_data_dir=os.path.join(os.path.dirname(__file__), "chrome_profile"),
|
||||
channel="chrome",
|
||||
headless=False,
|
||||
slow_mo=100,
|
||||
ignore_https_errors=True,
|
||||
)
|
||||
try:
|
||||
context.add_cookies(cookies)
|
||||
page = context.new_page()
|
||||
page.goto(INBOX_URL, wait_until="domcontentloaded", timeout=30_000)
|
||||
|
||||
if "prihlaseni" in page.url or "login" in page.url.lower():
|
||||
print("Cookies expirovala - spust 01_prihlaseni.py")
|
||||
return
|
||||
print(f"Prihlaseni OK\n")
|
||||
|
||||
already = set(os.listdir(DOWNLOAD_DIR))
|
||||
print(f"V archivu: {len(already)} souboru.\n")
|
||||
|
||||
total_dl = total_skip = 0
|
||||
for segment, name in SCHRANKY.items():
|
||||
print(f"\n=== {name} ===")
|
||||
dl, sk = process_schránka(page, context, segment, name, already)
|
||||
print(f" {name}: stazeno {dl}, preskoceno {sk}")
|
||||
total_dl += dl
|
||||
total_skip += sk
|
||||
|
||||
print(f"\nHotovo. Celkem stazeno: {total_dl}, preskoceno: {total_skip}")
|
||||
|
||||
finally:
|
||||
context.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Neevidujeme seznam uznaných a odmítnutých pojištěnců k 1/2025, pod ičz 9305000.
|
||||
Petrášová H., RBP ZP, Ostrava
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="cs">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
|
||||
<meta name="viewport" content="initial-scale=1.0, width=device-width">
|
||||
<base href="https://portal.rbp-zp.cz/json-api/formular-schranky">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<title>Portál - Výpis pojištěnců v kapitaci</title>
|
||||
<link rel="stylesheet" type="text/css" href="/v2/js/lib/bootstrap-3.4.1/css/bfonts.css?v=3.4.1" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/sablony/rbp/bootstrap.css?sbv=20230617.1&v=3.4.1" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/sablony/rbp/colorbox.css?sbv=20230617.1&v=1.6.3" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/js/lib/awesome/css/font-awesome.min.css?v=4.7.0" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/js/global.css?v=20231016.1" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/sablony/rbp/style.css?v=20230617.1" media="all">
|
||||
|
||||
|
||||
<style></style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a name="HDRTop" id="HDRTop"></a>
|
||||
<div id="hlavniobsah">
|
||||
<div class="container">
|
||||
<!--BEGIN SIGN DATA-->
|
||||
<div id="app-content" class="app-schranky-vypis-pojistencu-v-kapitaci"><table class="table table-bordered"><tbody>
|
||||
<tr><td class="col-xs-2">04.02.2025</td><td class="col-xs-8 text-center">RBP, zdravotní pojišťovna</td><td class="col-xs-2 text-right">16:36:36</td></tr>
|
||||
<tr><td colspan="3" class="col-xs-12 text-center">Protokol o předání požadavku</td></tr>
|
||||
</tbody></table>
|
||||
<p class="text-center my-5">Data formuláře "Výpis pojištěnců reg. u PZS" byla úspěšně založena pod ref. číslem <strong>156846248</strong></p><p><div class="row mb-4"><div class="col-xs-6"><strong>Název schránky:</strong> Výpis pojištěnců registrovaných u PZS</div><div class="col-xs-6"><strong>Název formuláře:</strong> Výpis pojištěnců reg. u PZS</div></div></p><table class="table table-bordered mb-4"><colgroup><col style="width: 25%"><col></colgroup><thead><tr><th>Položka</th><th>Hodnota</th></tr></thead><tbody>
|
||||
<tr><td>IČZ</td><td>IČZ: 09305000, IČO: 68366370, Buzalková Michaela,MUDr.</td></tr>
|
||||
<tr><td>Ke dni</td><td>31.01.2025</td></tr>
|
||||
<tr><td>Třídit dle</td><td>příjmení a jména</td></tr>
|
||||
<tr><td>Typ</td><td>Sestava - FORMÁT PDF</td></tr>
|
||||
</tbody></table>
|
||||
</div><p class="text-center my-5">Uživatel: Michaela Buzalková</p><!--END SIGN DATA-->
|
||||
<!--P4ZP SIGNATURE OPTIONAL-->
|
||||
<!--PRINT BUTTONS-->
|
||||
<!--PROTOCOL METADATA PE1ldGFkYXRhPjxjX2V6YXNhaD4xNTY4NDYyNDg8L2NfZXphc2FoPjxmaWxlbmFtZT48L2ZpbGVuYW1lPjwvTWV0YWRhdGE+-->
|
||||
|
||||
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<form name="frmUniqueWindow" id="frmUniqueWindow" style="visibility:hidden;margin:0;padding:0;height:0;"><label>.<input type="text" name="UWAppID" id="UWAppID" value="" style="visibility:hidden;"></label></form>
|
||||
<div style="height:1px; overflow: hidden;"><i class="fa fa-ellipsis-h"></i></div>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Neevidujeme seznam uznaných a odmítnutých pojištěnců k 1/2025, pod ičz 9305000.
|
||||
Petrášová H., RBP ZP, Ostrava
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="cs">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EDGE">
|
||||
<meta name="viewport" content="initial-scale=1.0, width=device-width">
|
||||
<base href="https://portal.rbp-zp.cz/json-api/formular-schranky">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<title>Portál - Výpis pojištěnců v kapitaci</title>
|
||||
<link rel="stylesheet" type="text/css" href="/v2/js/lib/bootstrap-3.4.1/css/bfonts.css?v=3.4.1" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/sablony/rbp/bootstrap.css?sbv=20230617.1&v=3.4.1" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/sablony/rbp/colorbox.css?sbv=20230617.1&v=1.6.3" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/js/lib/awesome/css/font-awesome.min.css?v=4.7.0" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/js/global.css?v=20231016.1" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="/v2/sablony/rbp/style.css?v=20230617.1" media="all">
|
||||
|
||||
|
||||
<style></style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a name="HDRTop" id="HDRTop"></a>
|
||||
<div id="hlavniobsah">
|
||||
<div class="container">
|
||||
<!--BEGIN SIGN DATA-->
|
||||
<div id="app-content" class="app-schranky-vypis-pojistencu-v-kapitaci"><table class="table table-bordered"><tbody>
|
||||
<tr><td class="col-xs-2">05.02.2025</td><td class="col-xs-8 text-center">RBP, zdravotní pojišťovna</td><td class="col-xs-2 text-right">17:06:15</td></tr>
|
||||
<tr><td colspan="3" class="col-xs-12 text-center">Protokol o předání požadavku</td></tr>
|
||||
</tbody></table>
|
||||
<p class="text-center my-5">Data formuláře "Výpis pojištěnců reg. u PZS" byla úspěšně založena pod ref. číslem <strong>156912735</strong></p><p><div class="row mb-4"><div class="col-xs-6"><strong>Název schránky:</strong> Výpis pojištěnců registrovaných u PZS</div><div class="col-xs-6"><strong>Název formuláře:</strong> Výpis pojištěnců reg. u PZS</div></div></p><table class="table table-bordered mb-4"><colgroup><col style="width: 25%"><col></colgroup><thead><tr><th>Položka</th><th>Hodnota</th></tr></thead><tbody>
|
||||
<tr><td>IČZ</td><td>IČZ: 09305000, IČO: 68366370, Buzalková Michaela,MUDr.</td></tr>
|
||||
<tr><td>Ke dni</td><td>31.01.2025</td></tr>
|
||||
<tr><td>Třídit dle</td><td>příjmení a jména</td></tr>
|
||||
<tr><td>Typ</td><td>Sestava - FORMÁT PDF</td></tr>
|
||||
</tbody></table>
|
||||
</div><p class="text-center my-5">Uživatel: Michaela Buzalková</p><!--END SIGN DATA-->
|
||||
<!--P4ZP SIGNATURE OPTIONAL-->
|
||||
<!--PRINT BUTTONS-->
|
||||
<!--PROTOCOL METADATA PE1ldGFkYXRhPjxjX2V6YXNhaD4xNTY5MTI3MzU8L2NfZXphc2FoPjxmaWxlbmFtZT48L2ZpbGVuYW1lPjwvTWV0YWRhdGE+-->
|
||||
|
||||
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<form name="frmUniqueWindow" id="frmUniqueWindow" style="visibility:hidden;margin:0;padding:0;height:0;"><label>.<input type="text" name="UWAppID" id="UWAppID" value="" style="visibility:hidden;"></label></form>
|
||||
<div style="height:1px; overflow: hidden;"><i class="fa fa-ellipsis-h"></i></div>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
[
|
||||
{
|
||||
"name": "SID",
|
||||
"value": "361dbfba7820026abe74bee7d934616e",
|
||||
"domain": ".portal.rbp-zp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"secure": true,
|
||||
"httpOnly": false,
|
||||
"sameSite": "Lax"
|
||||
},
|
||||
{
|
||||
"name": "pzp_sign",
|
||||
"value": "CERT",
|
||||
"domain": ".portal.rbp-zp.cz",
|
||||
"path": "/",
|
||||
"expires": 1808227293,
|
||||
"secure": true,
|
||||
"httpOnly": false,
|
||||
"sameSite": "Lax"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user