Files
medicus/Kontakty01.py
2025-10-26 18:47:00 +01:00

78 lines
2.0 KiB
Python

import firebirdsql,re
def get_connection():
return firebirdsql.connect(
host="192.168.1.4",
port=3050,
database=r"z:\medicus 3\data\medicus.fdb", # path must be valid on the server
user="SYSDBA",
password="masterkey",
charset="WIN1250",
)
def get_registrovani(cur): #vrati list rodnych cisel registrovanych pacientu "registrovani"
cur.execute("""
select rodcis from registr join kar
on registr.idpac=kar.idpac where
kar.vyrazen!='A' and
kar.rodcis is not null and
idicp!=0 and
datum_zruseni is null
""")
registrovani=[]
for radek in cur.fetchall():
registrovani.append(radek[0])
return registrovani
def je_registrovany(con,rodcis):
cur=conn.cursor()
cur.execute("""
select 1 from registr join kar
on registr.idpac=kar.idpac where
kar.vyrazen!='A' and
kar.rodcis is not null and
idicp!=0 and
datum_zruseni is null
and rodcis=%s
limit 1
""")
cur.execute(sql, (rodcis,))
return cur.fetchone() is not None
def strip_cz_prefix(num: str) -> str:
# remove spaces and non-digits first
n = re.sub(r"\D", "", num)
# strip +420, 00420 or 420 at start
if n.startswith("00420"):
return n[5:]
elif n.startswith("420"):
return n[3:]
else:
return n
def is_cz_mobile(num: str) -> bool:
nmbr=strip_cz_prefix(num)
MOBILE_PREFIXES = ("60", "72", "73", "77", "79")
# now check length and prefix
return len(nmbr) == 9 and nmbr[:2] in MOBILE_PREFIXES
def get_mobile(rodcis,conn):
sql = f"""
SELECT kar.prijmeni, kar.rodcis,
karkontakt.poradi, karkontakt.kontakt
FROM karkontakt join kar on kar.idpac=karkontakt.idpac
where kar.rodcis={rodcis}
"""
cur=conn.cursor()
mobil={}
conn = get_connection()
cur = conn.cursor()
# print(get_mobile("340415112",conn))
print(is_cz_mobile("283893084"))