ó
    BdÂj¶Y  ã                   óâ   • S SK r S SKJrJr  S SKrS SKrS SKrS SKJr  S SK	J
r
Jr  S SKJr  S SKrS\4S jrS\S\4S	 jrS
\S\S\S\S\4
S jr SS
\S\S\S\S\S\4S jjrSS\4S jjrS rg)é    N)ÚdateÚ	timedelta)ÚSessionLocal)Úcompute_vizsgalati_esedekessegÚ!get_vizsgalati_datum_kotelezo_mod)Úberelt_gep_idk_a_ceghezÚreturnc                 óN   • [         R                  " U c  SSS9$ [        U 5      SS9$ )uù  HTML-escape a levÃ©l TÃ–RZSÃ‰BE kerÃ¼lÅ‘, felhasznÃ¡lÃ³tÃ³l/adminisztrÃ¡tortÃ³l szÃ¡rmazÃ³ szÃ¶vegekhez
(gÃ©pnÃ©v, gyÃ¡ri szÃ¡m, felhasznÃ¡lÃ³nÃ©v, hibaleÃ­rÃ¡s, cÃ©gnÃ©v stb.). KorÃ¡bban ezek szÅ±rÃ©s nÃ©lkÃ¼l
kerÃ¼ltek a HTML-be, Ã­gy pl. egy gÃ©pnÃ©vbe Ã­rt <a href=...> a rendszeradminnak/Ã¼gyintÃ©zÅ‘nek kÃ¼ldÃ¶tt
levÃ©lben megjelent volna (tartalom-injekciÃ³ / adathalÃ¡sz-link). A fejlÃ©cekbe kerÃ¼lÅ‘ Ã©rtÃ©kekhez
tovÃ¡bbra is a _fejresor_biztonsagos() kell (CR/LF ellen) - a kettÅ‘ mÃ¡s vÃ©delem.Ú T)Úquote)ÚhtmlÚescapeÚstr©Úerteks    Ú/var/www/website/email_utils.pyÚ_er      s'   € ô �;Š;˜U™]�rÀ$ÑGÐG´°E³
À$ÑGÐGó    r   c                 óX   • [        U 5      R                  SS5      R                  SS5      $ )uÀ  CRLF-injekciÃ³ elleni vÃ©delem (2026-10-03-i biztonsÃ¡gi audit, 4. fÃ¡zis): egy e-mail
FEJLÃ‰C-mezÅ‘be (Subject/From/To) kerÃ¼lÅ‘ Ã©rtÃ©k nem tartalmazhat CR/LF karaktert - ha
tartalmazna, tovÃ¡bbi fejlÃ©c-sorokat (pl. egy Ã¡lcÃ¡zott Bcc:) lehetne becsempÃ©szni. A
gÃ©pnÃ©v, cÃ©gnÃ©v Ã©s e-mail cÃ­m mezÅ‘k felhasznÃ¡lÃ³i/admin adatbevitelbÅ‘l szÃ¡rmaznak, ezÃ©rt
minden fejlÃ©cbe (nem a levÃ©l TÃ–RZSÃ‰BE) kerÃ¼lÅ‘ Ã©rtÃ©ket ezen Ã¡t kell engedni.Úr   Ú
)r   Úreplacer   s    r   Ú_fejresor_biztonsagosr      s(   € ô ˆu‹:×Ñ˜d BÓ'×/Ñ/°°bÓ9Ð9r   ÚcimekÚ
gep_adatokÚhiba_leirasÚis_criticalÚ	bejelentoc                 óL  • [         R                  " U 5      n U (       d  gU(       a  S[        US   5       3nSnSnOS[        US   5       3nSnSnS	U S
U(       a  SOS S[        US   5       S[        US   5       S[        US   5       S[        U5       SU SU SU S[        U5       S3nUR	                  S5      n	UR	                  S5      n
U	b  U	O%SUR	                  S5       SUR	                  S5       3n[         R
                  " X³U5      n[        5       n [         R                  " U5      n[         R                  " XÜX®R                  [        R                  " 5       5      (       d@  UR                  5         [        SUR                   SUS    35         UR                  5         g[         R                  " XUSU(       a  [         R                   O[         R"                  X­US9nUS :X  a"  UR                  5          UR                  5         gUR%                  5         [        S!U S"35        UR                  5         g! [&         a>  nUR                  5         [        S#[)        U5      R*                   S$U 35         SnANTSnAff = f! UR                  5         f = f)%uˆ  GÃ©p-riasztÃ¡s levÃ©l Ã¶sszeÃ¡llÃ­tÃ¡sa Ã©s SORBA Ã¡llÃ­tÃ¡sa (a tÃ©nyleges kÃ¼ldÃ©st az email_sor vÃ©gzi).

gep_adatok: nev, gyari_szam, tipus - Ã©s (2026-10-04-tÅ‘l) a hÃ­vÃ³k Ã¡ltal megadott `gep_id` Ã©s
`company_id`, amelyekkel az ismÃ©tlÅ‘dÅ‘ hibÃ¡k szÅ±rÃ©se azonosÃ­tja a gÃ©pet. Ha hiÃ¡nyoznak, a
szÅ±rÃ©s a gÃ©p nevÃ©re/gyÃ¡ri szÃ¡mÃ¡ra esik vissza.

ISMÃ‰TLÅ�DÅ� HIBÃ�K: ugyanarrÃ³l a hibÃ¡rÃ³l (azonos gÃ©p + sÃºlyossÃ¡g + hibaszÃ¶veg) csak az elsÅ‘
alkalommal megy levÃ©l, Ã©s csak `email_ismetles_nap` (alapbÃ³l 7) nap utÃ¡n emlÃ©keztetÃ¼nk Ãºjra.
A hibajegy lezÃ¡rÃ¡sa nullÃ¡zza a szÃ¡mlÃ¡lÃ³t (l. email_sor.riasztas_allapot_torlese).Nu)   ðŸš¨ KRITIKUS RIASZTÃ�S: GÃ©p letiltva - Únevz#dc3545u6   A GÃ‰P HASZNÃ�LATÃ�T AZONNALI HATÃ�LLYAL BETILTOTTÃ�K!u*   âš ï¸� FIGYELMEZTETÃ‰S: Hibajegy nyitva - z#ffc107u8   A gÃ©p Ã¼zemel, de karbantartÃ³i beavatkozÃ¡st igÃ©nyel.a?  
    <html>
        <body style="font-family: Arial, sans-serif; background-color: #f4f4f4; padding: 20px;">
            <div style="max-width: 600px; margin: 0 auto; background-color: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,0.1);">
                <div style="background-color: z	; color: z#ffffffz#000000u}  ; padding: 20px; text-align: center;">
                    <h2 style="margin: 0;">EmeLOG Ipar 4.0 - Automatikus RiasztÃ¡s</h2>
                </div>
                <div style="padding: 20px;">
                    <h3 style="color: #333333; border-bottom: 2px solid #eeeeee; padding-bottom: 10px;">Ã‰rintett EmelÅ‘gÃ©p / EszkÃ¶z</h3>
                    <p><strong>NÃ©v:</strong> u;   </p>
                    <p><strong>GyÃ¡ri szÃ¡m:</strong> Ú
gyari_szamu5   </p>
                    <p><strong>TÃ­pus:</strong> ÚtipusuÉ   </p>

                    <h3 style="color: #333333; border-bottom: 2px solid #eeeeee; padding-bottom: 10px; margin-top: 30px;">Hiba rÃ©szletei</h3>
                    <p><strong>BejelentÅ‘:</strong> z*</p>
                    <p style="color: z; font-weight: bold;">zf</p>
                    <div style="background-color: #f8f9fa; padding: 15px; border-left: 4px solid zs; margin-top: 10px;">
                        <pre style="margin: 0; white-space: pre-wrap; font-family: inherit;">ul  </pre>
                    </div>
                </div>
                <div style="background-color: #eeeeee; text-align: center; padding: 15px; font-size: 12px; color: #666666;">
                    Ezt a levelet az EmeLOG szoftver generÃ¡lta automatikusan. KÃ©rjÃ¼k, ne vÃ¡laszolj rÃ¡!
                </div>
            </div>
        </body>
    </html>
    Úgep_idÚ
company_idzn:Ú|u4   â„¹ï¸� IsmÃ©tlÅ‘dÅ‘ riasztÃ¡s - nem kÃ¼ldjÃ¼k Ãºjra u    napon belÃ¼l: Úriasztas)Ú	kategoriaÚ	prioritasr$   ÚdbÚdedup_kulcsr   u    ðŸ“¬ RiasztÃ¡s sorba Ã¡llÃ­tva: u
    cÃ­mzett.u+   â�Œ Hiba a riasztÃ¡s sorba Ã¡llÃ­tÃ¡sakor: ú: )Ú	email_sorÚcimek_tisztitasar   r   ÚgetÚriasztas_kulcsr   Úkorlatok_betoltÚkikuldheto_e_es_rogzitÚismetles_napr   ÚtodayÚrollbackÚprintÚcloseÚsorba_allitÚPRIORITAS_SURGOSÚPRIORITAS_NORMALÚcommitÚ	ExceptionÚtypeÚ__name__)r   r   r   r   r   ÚtargyÚszinÚstausz_szovegÚhtml_tartalomr#   r$   Ú	azonositoÚkulcsr)   ÚkorlatÚdb_sorÚes                    r   Úsend_alert_email_taskrG   (   s¼  € ô ×&Ò& uÓ-€EÞØö Ø;Ô<QÐR\Ð]bÑRcÓ<dÐ;eÐfˆØˆØP‰à<Ô=RÐS]Ð^cÑSdÓ=eÐ<fÐgˆØˆØRˆð/ð 04¨f°IÎ;¹iÐ\eÐ=fð g/ô
 02°*¸UÑ2CÓ/DÐ.Eð F7Ü79¸*À\Ñ:RÓ7SÐ6Tð U1Ü13°J¸wÑ4GÓ1HÐ0Ið J5ô 68¸	³]°Oð D&Ø&* VÐ+AÀ-Àð QbØbfÐagð h^Ü^`ÐalÓ^mÐ]nð 	oð#€Mð8 �^‰^˜HÓ%€FØ—‘ Ó-€JØ Ñ,‘°B°z·~±~ÀeÓ7LÐ6MÈQÈzÏ~É~Ð^jÓOkÐNlÐ2m€IÜ×$Ò$ Y¸[ÓI€Eä	‹€BðÜ×*Ò*¨2Ó.ˆÜ×/Ò/°¸:×GZÑGZÔ\`×\fÒ\fÓ\h×iÑiØ�K‰KŒMÜÐHÈ×I\ÑI\ÐH]Ð]lÐmwÐx}Ñm~Ðlð  Aô  BØð 	�‰�
ô ×&Ò&Ø˜-°:Þ4?”i×0Ò0ÄY×E_ÑE_Ø!°eñ
ˆð
 �Q‹;Ø�K‰KŒMØð 	�‰�
ð 	�	‰	ŒÜÐ0°°¸
ÐCÔDð
 	�‰�
øô	 ó UØ
�‰ŒÜÐ;¼DÀ»G×<LÑ<LÐ;MÈRÐPQÈsÐS×TÑTûðUûð 	�‰�
ús8   Ä A>I Æ0AI ÈI É
JÉ4J	ÊJ Ê	JÊJ ÊJ#Úceg_nevÚlejartÚ	hamarosanÚ	elnyomottr2   c                 ó   • U (       d  gS[        U5       3n[        R                  " U5      n	Sn
U(       a  Sn
U H  nU
SU S3-  n
M     U
S-  n
SnU(       a  SnU H  nUSU S3-  nM     US-  nU(       d  U(       d	  U(       d  S	n
SnU(       a  S
[        U5       S[        U5       S3nS[	        U5       SU
 SU SU S[	        U	R
                  5       S3n[        R                  " XUS[        R                  XgS9$ )u  A reggeli Ã¶sszesÃ­tÅ‘ riport (HTML e-mail) Ã¶sszeÃ¡llÃ­tÃ¡sa Ã©s SORBA Ã¡llÃ­tÃ¡sa.

lejart / hamarosan: kÃ©sz HTML-tÃ©telek (a vÃ¡ltozÃ³ rÃ©szek mÃ¡r escape-eltek).
elnyomott: hÃ¡ny, korÃ¡bban mÃ¡r jelzett Ã©s mÃ©g fennÃ¡llÃ³ tÃ©telt hagytunk ki ebbÅ‘l a levÃ©lbÅ‘l
(a levÃ©l lÃ¡blÃ©cÃ©ben jelezzÃ¼k, hogy ne tÅ±njÃ¶n Ãºgy, mintha megoldÃ³dtak volna).
db: ha megadva, a sorba Ã¡llÃ­tÃ¡s ebben a session-ben tÃ¶rtÃ©nik Ã©s NEM commitolunk (a hÃ­vÃ³
commitol, az ismÃ©tlÃ©s-szÅ±rÃ©s Ã¡llapotÃ¡val egyÃ¼tt egy tranzakciÃ³ban).r   u   ðŸ“… Napi EmeLOG Riport - r   uq   <h3 style='color:#dc3545; border-bottom:2px solid #dc3545;'>ðŸš¨ LejÃ¡rt hatÃ¡ridÅ‘k (Azonnali teendÅ‘!)</h3><ul>z<li style='margin-bottom:8px;'>z</li>z</ul>ut   <h3 style='color:#ffc107; border-bottom:2px solid #ffc107;'>âš ï¸� KÃ¶zeledÅ‘ hatÃ¡ridÅ‘k (30 napon belÃ¼l)</h3><ul>uŠ   <h3 style='color:#198754;'><br>âœ… Minden rendben! Jelenleg nincs lejÃ¡rt vagy 30 napon belÃ¼l lejÃ¡rÃ³ vizsgÃ¡lat Ã©s HR dokumentum.</h3>uN   <p style='color:#666666; font-size:13px; margin-top:20px;'>â„¹ï¸� TovÃ¡bbi <b>u\   </b> korÃ¡bban mÃ¡r jelzett, mÃ©g fennÃ¡llÃ³ tÃ©tel nem szerepel ebben a levÃ©lben - ezeket u5    naponta ismÃ©teljÃ¼k meg, amÃ­g a hiba fennÃ¡ll.</p>a  
    <html>
        <body style="font-family: Arial, sans-serif; background-color: #f8f9fa; padding: 20px;">
            <div style="max-width: 650px; margin: 0 auto; background-color: #ffffff; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); overflow: hidden;">
                <div style="background-color: #0dcaf0; color: #000000; padding: 20px; text-align: center;">
                    <h2 style="margin: 0;">EmeLOG Ipar 4.0 - EHS Riport</h2>
                    <p style="margin: 5px 0 0 0; font-weight: bold;">u  </p>
                </div>
                <div style="padding: 20px 30px;">
                    <p>Kedves EHS VezetÅ‘ / Admin!</p>
                    <p>Ã�me a legfrissebb gÃ©pÃ©szeti Ã©s szemÃ©lyi (HR) Ã©rvÃ©nyessÃ©gi Ã¶sszesÃ­tÅ‘ a rendszerbÅ‘l:</p>

                    z
                    zi

                    <p style="margin-top: 30px; text-align: center;">
                        <a href="u  " style="background-color: #0dcaf0; color: #000; padding: 10px 20px; text-decoration: none; border-radius: 5px; font-weight: bold;">BelÃ©pÃ©s a VezÃ©rlÅ‘pultra</a>
                    </p>
                </div>
                <div style="background-color: #eeeeee; text-align: center; padding: 15px; font-size: 12px; color: #666666;">
                    Ezt a levelet az EmeLOG szoftver generÃ¡lta automatikusan. KÃ©rjÃ¼k, ne vÃ¡laszolj rÃ¡!
                </div>
            </div>
        </body>
    </html>
    Únapi_riport)r'   r(   r$   r)   )	r   Úemail_beallitasokÚbetoltÚintr   Úalkalmazas_url_vagy_alapr,   r7   ÚPRIORITAS_ALACSONY)r   rH   rI   rJ   rK   r2   r$   r)   r>   ÚbeallÚlejart_htmlÚitemÚhamarosan_htmlÚelnyomott_htmlrA   s                  r   Úsend_summary_email_taskrX   {   sn  € ö Øà(Ô)>¸wÓ)GÐ(HÐI€Eô ×$Ò$ RÓ(€Eð €KÞð JˆÛˆDØÐ<¸T¸FÀ%ÐHÑHŠKñ à�wÑˆà€NÞð PˆÛˆDØÐ ?À¸vÀUÐKÑKŠNñ à˜'Ñ!ˆö ž)®Ið cˆà€NÞà\Ô]`ÐajÓ]kÐ\lð mNÜNQÐR^ÓN_ÐM`ð a)ð*ð 	ðFô GIÈÃkÀ]ð Sð !�Mð "Ø#Ð$ð %Ø#Ð$ð %"ô #% U×%CÑ%CÓ"DÐ!Eð 	Fð#€Mô8 × Ò Ø�m¨}Ü×.Ñ.¸:ñð r   Útesztc                 ó>  ^^^• [        5       m [        R                  " 5       nU[        SS9-   nUR	                  5       S:H  n[
        R                  " T5      nSSSS.n0 m0 mUU4S jnUU4S	 jnTR                  [        R                  5      R                  [        R                  R                  S
:H  5      R                  5       nU H  n	 [        TX‘X#X@XVU5
        M     TR+                  5         g! [         aL  n
TR                  5         [!        SU	R"                   S[%        U
5      R&                   SU
 35         Sn
A
Mz  Sn
A
ff = f! [         a1  n
TR                  5         [!        S[)        U
5       35         Sn
A
N Sn
A
ff = f! TR+                  5         f = f)uˆ  Ez a fÃ¼ggvÃ©ny fut le minden reggel, Ã©s Ã¡tnÃ©zi a teljes adatbÃ¡zist.

ISMÃ‰TLÅ�DÅ� HIBÃ�K (2026-10-04): egy tÃ©tel (pl. egy gÃ©p lejÃ¡rt vizsgÃ¡lata) csak az elsÅ‘ alkalommal
kerÃ¼l a riportba, utÃ¡na `email_ismetles_nap` (alapbÃ³l 7) napig kimarad, majd emlÃ©keztetÅ‘kÃ©nt
Ãºjra megjelenik, ha mÃ©g fennÃ¡ll. Ha egy cÃ©gnÃ©l csak ismÃ©tlÅ‘dÅ‘ tÃ©tel van, nem megy levÃ©l; ha
egyÃ¡ltalÃ¡n nincs tÃ©tel, a megszokott "Minden rendben" levÃ©l megy.

teszt=True (a /teszt-riport kÃ©zi indÃ­tÃ¡snÃ¡l): MINDEN tÃ©tel bekerÃ¼l, Ã©s az ismÃ©tlÃ©s-szÅ±rÃ©s
Ã¡llapotÃ¡t nem olvassuk Ã©s nem mÃ³dosÃ­tjuk - a teszt ne zavarja Ã¶ssze a valÃ³di mÅ±kÃ¶dÃ©st.é   )Údaysr   zSzerkezeti vizsgõ   FÅ‘vizsgÃ¡latu   BiztonsÃ¡gi felÃ¼lvizsg)u   Szerkezeti vizsgÃ¡latr]   u.   IdÅ‘szakos biztonsÃ¡gi felÃ¼lvizsgÃ¡lat (EBSZ)c                 ó  >• X4nUT;  av  TR                  [        R                  5      R                  [        R                  R                  U :H  [        R                  R
                  U:H  5      R                  5       TU'   TU   $ ©N)ÚqueryÚmodelsÚMachineTypeConfigÚfilterr$   ÚgeptipusÚfirst)r$   rd   ÚkeyÚconfig_cacher)   s      €€r   Ú
get_configÚ4napi_riport_lekerdezes_es_kuldes.<locals>.get_configã   sx   ø€ ØÐ(ˆCØ˜,Ó&Ø$&§H¡H¬V×-EÑ-EÓ$F×$MÑ$MÜ×,Ñ,×7Ñ7¸:ÑEÜ×,Ñ,×5Ñ5¸ÑAó%÷ ‘%“'ð ˜SÑ!ð   Ñ$Ð$r   c                 ó8   >• U T;  a  [        U T5      TU '   TU    $ r_   )r   )r$   r)   Úkotelezo_mod_caches    €€r   Úget_kotelezo_modÚ:napi_riport_lekerdezes_es_kuldes.<locals>.get_kotelezo_modì   s+   ø€ ØÐ!3Ó3Ü1RÐS]Ð_aÓ1bÐ" :Ñ.Ø% jÑ1Ð1r   Tu3   â�Œ Hiba a napi riport generÃ¡lÃ¡sa kÃ¶zben (cÃ©g #z): r+   Nu-   â�Œ Hiba a napi riport generÃ¡lÃ¡sa kÃ¶zben: )r   r   r3   r   Úweekdayr,   r0   r`   ra   ÚCompanyrc   ÚaktivÚallÚ_ceg_riportr;   r4   r5   Úidr<   r=   r   r6   )rY   Úmai_napÚfigyelmezteto_hatarÚ	is_mondayrD   Útipus_cimkerh   rl   ÚcegekÚcegrF   rg   r)   rk   s              @@@r   Ú napi_riport_lekerdezes_es_kuldesrz   Ê   sq  ú€ ô 
‹€Bð*Ü—*’*“,ˆØ%¬	°rÑ(:Ñ:ÐØ—_‘_Ó&¨!Ñ+ˆ	Ü×*Ò*¨2Ó.ˆð &8Ø,Ø>Wñ
ˆð
 ˆØÐö	%ö	2ð
 —‘œŸ™Ó(×/Ñ/´·±×0DÑ0DÈÑ0LÓM×QÑQÓSˆÛˆCðpÜ˜B Ð.AÈfØ'Ð5EöGñ ð 	�‰�
øô ó pà—‘”ÜÐKÈCÏFÉFÈ8ÐSVÔW[Ð\]ÓW^×WgÑWgÐVhÐhjÐklÐjmÐn×oÒoûðpûô
 ó HØ
�‰ŒÜÐ=¼cÀ!»f¸XÐF×GÑGûðHûð 	�‰�
úsU   �B>E ÃC3ÃE Ã3
E	Ã=AEÄ>E ÅE	Å	E Å
FÅ'FÅ=F
 ÆFÆF
 Æ
Fc
                 ó^  ^2• U R                  [        R                  5      R                  [        R                  R                  UR
                  :H  [        R                  R                  S:H  5      R                  5       n
U
(       a  U
R                  OSnUS:X  a  gUS:X  a  U(       d  g/ n/ n[        UR
                  U 5      nU R                  [        R                  5      R                  [        R                  R                  S:H  5      nU(       aa  UR                  [        R                  R                  UR
                  :H  [        R                  R
                  R                  U5      -  5      nO6UR                  [        R                  R                  UR
                  :H  5      nUR                  5       nU GHû  nS[        UR                  5       S[        UR                   5       S3nUR"                  (       a¬  UR$                  (       a›  UR$                  U:  a>  UR'                  S	UR
                   S
UR$                   3SU SUR$                   345        OMUR$                  U::  a=  UR'                  S	UR
                   SUR$                   3SU SUR$                   345        U" UR                  UR(                  5      nU	" UR                  5      n[+        UUUU5       HÊ  n[        UR-                  US   US   5      5      nS	UR
                   SUS    SUS    SUR-                  S5       3nUS   S:X  a  UR'                  USU SU S345        Mv  US   S:X  a!  UR'                  USU SU SUS    345        M   US   S:X  d  M«  UR'                  USU SU SUS    345        MÌ     GMþ     U R                  [        R.                  5      R                  [        R.                  R                  UR
                  :H  [        R.                  R0                  R                  SS/5      5      R                  5       nU GH{  nS[        UR2                  5       3nUR4                  (       a›  UR4                  U:  a>  UR'                  SUR
                   S UR4                   3SU S!UR4                   345        OMUR4                  U::  a=  UR'                  SUR
                   S"UR4                   3SU S#UR4                   345        UR6                  (       d  MÛ  UR6                  U:  a@  UR'                  SUR
                   S$UR6                   3SU S%UR6                   345        GM+  UR6                  U::  d  GM>  UR'                  SUR
                   S&UR6                   3SU S'UR6                   345        GM~     [8        R:                  " XR
                  S(5      n[<        R>                  " U Vs/ s H/  nUR0                  [8        R@                  ;   d  M#  URB                  PM1     sn5      n[<        R>                  " U Vs/ s H/  nUR0                  [8        R@                  ;  d  M#  URB                  PM1     sn5       Vs/ s H  nUU;  d  M  UPM     nnU(       d  U(       d  gS)[D        S*[F        4S+ jm2U(       aF  U V V!s/ s H  u  n n!S,U!T2" U 5      4PM     sn!n U V V!s/ s H  u  n n!S-U!T2" U 5      4PM     sn!n -   n"S.n#OwU V V!s/ s H  u  n n!U S,U!T2" U 5      44PM     sn!n U V V!s/ s H  u  n n!U S-U!T2" U 5      44PM     sn!n -   n$[<        RH                  " XR
                  U$URJ                  U5      u  n"n#U(       + =(       a    U(       + n%[M        U5      [M        U5      -   n&[O        U24S/ jXÍ-    5       5      n'US0U&4US1U'44 GH
  u  n(n)n*U((       d  M  U" V+V!V,s/ s H  u  n+n!n,U)(       d	  U,(       a  M  U+U!4PM     n-n!n+n,U- V+V!s/ s H  u  n+n!U+S,:X  d  M  U!PM     n.n+n!U- V+V!s/ s H  u  n+n!U+S-:X  d  M  U!PM     n/n+n!U)(       a  U#O U(       d  [Q        S.U*[M        U-5      -
  5      OS.n0U.(       + =(       a    U/(       + =(       a    U*S.:„  n1U%(       d  U*S.:X  d  U1(       a  MÜ  [S        U(URT                  U.U/U0URJ                  UR
                  U S29  GM     U RW                  5         gs  snf s  snf s  snf s  sn!n f s  sn!n f s  sn!n f s  sn!n f s  sn,n!n+f s  sn!n+f s  sn!n+f )3ui   Egy cÃ©g napi riportja: tÃ©telek gyÅ±jtÃ©se -> ismÃ©tlÃ©s-szÅ±rÃ©s -> sorba Ã¡llÃ­tÃ¡s (egy tranzakciÃ³).ÚEmailRiportGyakorisagÚKikapcsolvaNÚHetiu   AktÃ­vu   GÃ‰P: z (Ú)zgep:z:kozuti:lejart:z<b>u    </b> - LejÃ¡rt MÅ±szaki vizsga: z:kozuti:hamarosan:u!   </b> - LejÃ¡rÃ³ MÅ±szaki vizsga: r"   Ú:ÚallapotÚutolsoÚhianyziku.   </b> - <span style='color:#dc3545;'>HiÃ¡nyzÃ³ u    dÃ¡tum!</span>rI   u   </b> - LejÃ¡rt r+   ÚesedekesrJ   u   </b> - LejÃ¡rÃ³ u   FelhasznÃ¡lÃ³u   EmelÅ‘gÃ©p Ã¼gyintÃ©zÅ‘u
   DOLGOZÃ“: údolgozo:z:orvosi:lejart:u%   </b> - LejÃ¡rt Orvosi alkalmassÃ¡gi: z:orvosi:hamarosan:u&   </b> - LejÃ¡rÃ³ Orvosi alkalmassÃ¡gi: z:jogositvany:lejart:u'   </b> - LejÃ¡rt Targonca jogosÃ­tvÃ¡ny: z:jogositvany:hamarosan:u(   </b> - LejÃ¡rÃ³ Targonca jogosÃ­tvÃ¡ny: Úlejarati_riportrC   r	   c                 ó$   • U R                  S5      $ )Nr…   )Ú
startswith)rC   s    r   Úhr_eÚ_ceg_riport.<locals>.hr_ek  s   € Ø×Ñ 
Ó+Ð+r   ÚlÚhr   c              3   óJ   >#   • U  H  u  pT" U5      (       a  M  S v •  M     g7f)é   N© )Ú.0ÚkÚ_r‰   s      €r   Ú	<genexpr>Ú_ceg_riport.<locals>.<genexpr>y  s   øé € ÐTÒ&D™d˜aÉDÐQRÏGŸ™Ò&Dùs   ƒ#š	#TF)rK   r2   r$   r)   ),r`   ra   Ú
Dictionaryrc   r$   rs   r'   re   r   r   ÚMachineÚstatuszÚin_rq   r   Ú
megnevezesr!   Úkozuti_forgalomÚkozuti_vizsga_datumÚappendrd   r   r.   ÚUserÚroleÚusernameÚorvosi_alkalmassag_ervenyessegÚjogositvany_ervenyessegÚemail_feliratkozasÚcimzett_felhasznalokr,   r-   ÚALAP_CIMZETT_SZEREPKOROKÚemailr   ÚboolÚriport_tetelek_szureser2   ÚlenÚsumÚmaxrX   r    r:   )3r)   ry   rt   ru   rv   rD   rY   rw   rh   rl   Ú	beallitasÚgyakÚlejart_listaÚhamarosan_listaÚberelt_gep_idkÚgepek_queryÚgepekÚgepÚgep_nevÚconfigÚdatum_kotelezo_modrF   ÚcimkerC   ÚdolgozokÚdÚdolgozo_nevÚ	cimzettekÚuÚcimek_teljesÚcÚcimek_korlatozottr‘   rŒ   ÚkuldendorK   ÚosszesÚures_riportÚosszes_tetelÚnem_hr_osszesÚcimzettek_csoportÚhr_isÚvaltozat_osszesÚcsÚhrÚreszÚkuldendo_lejartÚkuldendo_hamarosanÚelnyomott_valtozatÚcsak_ismetlodor‰   s3                                                     @r   rr   rr     s¢  ø€ ð —‘œ×*Ñ*Ó+×2Ñ2Ü×Ñ×$Ñ$¨¯©Ñ.Ü×Ñ×#Ñ#Ð'>Ñ>ó÷ �eƒgð ö (ˆ9�?Š?¨]€Dð ˆ}ÓØØˆvƒ~žiØð
 €LØ€Oô -¨S¯V©V°RÓ8€NØ—(‘(œ6Ÿ>™>Ó*×1Ñ1´&·.±.×2HÑ2HÈHÑ2TÓU€KÞØ!×(Ñ(Ü�^‰^×&Ñ&¨#¯&©&Ñ0´V·^±^×5FÑ5F×5JÑ5JÈ>Ó5ZÑ[ó
‰ð "×(Ñ(¬¯©×)BÑ)BÀcÇfÁfÑ)LÓMˆØ�O‰OÓ€EäˆØœ2˜cŸn™nÓ-Ð.¨b´°C·N±NÓ1CÐ0DÀAÐFˆð ×× 3×#:×#:Ø×&Ñ&¨Ó0Ø×#Ñ# t¨C¯F©F¨8°?À3×CZÑCZÐB[Ð%\Ø'*¨7¨)Ð3SÐTW×TkÑTkÐSlÐ%mð%oõ pà×(Ñ(Ð,?Ó?Ø×&Ñ&¨$¨s¯v©v¨hÐ6HÈ×I`ÑI`ÐHaÐ(bØ*-¨g¨YÐ6WÐX[×XoÑXoÐWpÐ(qð(sô tñ ˜CŸN™N¨C¯L©LÓ9ˆÙ-¨c¯n©nÓ=ÐÜ/°°W¸fÐFXÖYˆAÜ�{—‘ q¨¡z°1°W±:Ó>Ó?ˆEð
 ˜3Ÿ6™6˜( ! A g¡J <¨q°°9±°¸aÀÇÁÀhÃÐ?PÐQˆEØ�‰|˜zÓ)Ø×#Ñ# U¨c°'°Ð:hÐinÐhoÐo~Ð,ð  %Aö  BØ�9‘ Ó)Ø×#Ñ# U¨c°'°¸/È%ÈÐPRÐSTÐU_ÑS`ÐRaÐ,bÐ$cÖdØ�9‘ Õ,Ø×&Ñ&¨°°W°IÐ=MÈeÈWÐTVÐWXÐYcÑWdÐVeÐ/fÐ'gÖhô Zñ# ð@ �x‰xœŸ™Ó$×+Ñ+Ü�‰×Ñ #§&¡&Ñ(Ü�‰×Ñ×Ñ˜oÐ/HÐIÓJó÷ 
�cƒeð ô
 ˆØ"¤2 a§j¡j£>Ð"2Ð3ˆà×+×+Ø×/Ñ/°'Ó9Ø×#Ñ# x°·±¨v°_ÀQ×EeÑEeÐDfÐ%gØ'*¨;¨-Ð7\Ð]^×]}Ñ]}Ð\~Ð%ð%Aõ Bà×1Ñ1Ð5HÓHØ×&Ñ&¨(°1·4±4°&Ð8JÈ1×KkÑKkÐJlÐ(mØ*-¨k¨]Ð:`Ðab÷  bBñ  bBð  aCð  )Dð(Eô Fð ×$×$Ñ$Ø×(Ñ(¨7Ó2Ø×#Ñ# x°·±¨vÐ5IÈ!×JcÑJcÐIdÐ%eØ'*¨;¨-Ð7^Ð_`×_xÑ_xÐ^yÐ%zð%|÷ }à×*Ñ*Ð.AÖAØ×&Ñ&¨(°1·4±4°&Ð8OÐPQ×PiÑPiÐOjÐ(kØ*-¨k¨]Ð:bÐcd×c|Ñc|Ðb}Ð(~ð(@÷ Añ! ô, #×7Ò7¸¿F¹FÐDUÓV€Iô ×-Ò-Ù#Ó]š)�Q q§v¡vÔ1C×1\Ñ1\Ñ'\‹ˆ�Œ™)Ñ]ó_€Lä$-×$>Ò$>Ù#Óaš)�Q q§v¡vÔ5G×5`Ñ5`Ñ'`‹ˆ�Œ™)Ñaô%có "ò %c˜qà�LÑ ÷ ñ %cÐð "ö
 Ö 1Øð,”Cð ,œDô ,ö Ù2>Ô?²,©$¨!¨Q�S˜!™T !›WÓ%±,Ò?ÑapÔBqÒapÑY]ÐYZÐ\]ÀCÈÉDÐQRËGÓCTÑapÒBqÑqˆØ‰	ñ 7CÔC²l©d¨a°�A˜˜Q¡ Q£Ð(Ó)±lÒCÙ8GÔHº±°°1�a˜#˜q¡$ q£'Ð*Ó+¹ÒHñIˆä'×>Ò>¸rÇ6Á6È6ÐSY×SfÑSfÐhoÓpÑˆ�)à"Ô"×:¨?Ô':€KÜ�|Ó$¤s¨?Ó';Ñ;€LÜÔT lÒ&DÓTÓT€Mð 8DÀTÈ<Ð6XØ8IÈ5ÐR_Ð7`ô6bÑ1Ð˜5 /æ ÙÙ)1ÕEª™I˜B  2¶UÄ"“��Q“©ˆÒEÙ*.Ô<ª$¡  Q°"¸±)Ÿ1©$ˆÑ<Ù-1Ô?ªT¡E B¨°R¸3±YŸa©TÐÑ?Þ*/™YÖaf´c¸!¸_ÌsÐSWËyÑ=XÔ6YÐlmÐð -Ô,×_Ð5GÔ1G×_ÈOÐ^_ÑL_ˆÞ °1Ó 4¾ÙÜØ˜sŸw™w¨Ð9KØ(°v×7JÑ7JÐWZ×W]ÑW]Ðbdõ	
ñ6bð$ ‡I�I…KùòY 	^ùâaùò"ùó @ùÓBqùó DùÛHùô FùÛ<ùÛ?s`   ×>"c5Ø$c5Ù"c:Ù5c:Ú
c?Úc?ÛdÛ0d
ÜdÜ8dß,d
àd
àd#à(d#à6d)ád))r   é   NN)F)r   Údatetimer   r   ra   r,   r¢   Údatabaser   Úmsz_constantsr   r   Úberles_utilsr   rN   r   r   r   ÚlistÚdictr¦   rG   rP   rX   rz   rr   r�   r   r   Ú<module>rÕ      sÈ   ðÛ ß $ã ó Û Ý !ß [Ý 0Û ðH�ô Hð: ð :¨ô :ðP ð P°4ð PÀcð PÐX\ð PÐilô Pðh \`ñL 4ð L°#ð L¸tð LÐPTð LØ'*ðLØ>AõLñ^5¨Dõ 5ópLr   