
    Xh	                     d    d dl mZmZmZmZ d dlmZ d dlZd dlmZm	Z	 d dl
mZmZ  G d d      Zy)    )
AlertModelAlertTypeModelAlertUserModel	UserModel)
EmailClassN)datetimedate)castDatec                   >    e Zd Zd Zd
dZd Zd Zd Zd Zd Z	d	 Z
y)
AlertClassc                     || _         y )N)db)selfr   s     K/var/www/intrajisbackend.com/public_html/app/backend/classes/alert_class.py__init__zAlertClass.__init__   s	        Nc                 l   	 |dk7  r<| j                   j                  t        j                  t        j                  t
        j                        j                  t
        t
        j                  t        j                  k(        j                  t        j                  |k(        j                  t        j                  dk(        j                  t        j                        }|j                         }||z   dz
  |z  }|dk  s||kD  ry|j                  |dz
  |z        j                  |      j!                         }|sy|||||dS | j                   j                  t              j                  t        j                        j!                         }|S # t"        $ r}t%        |      }	d|	 cY d }~S d }~ww xY w)Nr      zInvalid page numberNo data found)total_itemstotal_pagescurrent_pageitems_per_pagedataError: )r   queryr   id
added_dater   
alert_type	outerjoinalert_type_idfilterrut	status_idorder_bycountoffsetlimitall	Exceptionstr)
r   r$   pager   
data_queryr   r   r   eerror_messages
             r   get_allzAlertClass.get_all   sf   "	-qy!WW]]:==*:O:OQ_QjQjkInn.?.?:C[C[.[\F:>>S01F://145HZ^^,	  )..0*^;a?NR!8tk10!(($(n)DEKKN[__a* $/#.$(&4   "WW]]:6??
OSSU
!! 	-FM]O,,	-s1   DF 6F <F AF 	F3F.(F3.F3c                 >   	 | j                   j                  t              j                  t	        t        |      |k(        j                         }|r'|j                         }t        j                  |      }|S y# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nz3No se encontraron datos para el campo especificado.r   )r   r   r   r#   getattrfirstas_dictjsondumpsr+   r,   )r   fieldvaluer   
alert_dataserialized_datar/   r0   s           r   getzAlertClass.get0   s    	-77==,33GJ4NRW4WX^^`D!\\^
"&**Z"8&& M 	-FM]O,,	-s   A5A9 9	BBBBc                    t               }d|_        d|_        t        j                         |_        | j                  j                  |       	 | j                  j                          y# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr   r   )r   r%   r"   r   nowr   r   addcommitr+   r,   )r   alertr/   r0   s       r   storezAlertClass.storeA   sr    #<<>E	-GGNN 	-FM]O,,	-s   A) )	B2BBBc                 \   	 | j                   j                  t              j                  t        j                  |k(        j                         }|r6| j                   j                  |       | j                   j                          yy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr   r   r   )
r   r   r   r#   r   r4   deleter@   r+   r,   )r   r   r   r/   r0   s        r   rD   zAlertClass.deleteQ   s    
	-77==,33JMMR4GHNNPDt$ & 	-FM]O,,	-s   BB 	B+B& B+&B+c                 b   | j                   j                  t              j                  t        j                  |k(        j                         }|r|D ]  }| j                   j                  t              j                  t        j                  |j                  k(        j                         }d|v r|d   
|d   |_        t        j                         |_         	 | j                   j                          t        |      S y# t        $ r$}| j                   j                          Y d }~yd }~ww xY w)Nr%   r   )r   r   r   r#   r$   r*   r   r4   r%   r   r>   updated_dater@   lenr+   rollback)r   r   alert_inputsalertsrA   alert_detailr/   s          r   updatezAlertClass.update^   s    ''--
+22:>>R3GHLLN ; $j 9 @ @RWRZRZAZ [ a a c,.<3L3X-9+-FL*,4LLN); 6{"
 	    "s   $D 	D.
D))D.c                 ~   	 t        j                         }| j                  j                  t              j                  t        j                  |k(  t        j                  |k(  t        t        j                  t              |k(        j                         }|ryy# t        $ r}t        |      }d| cY d }~S d }~ww xY w)Nr   r   r   )r	   todayr   r   r   r#   alert_user_idr"   r
   r   r   r4   r+   r,   )r   rO   r"   rN   r   r/   r0   s          r   validate_existence_alertz#AlertClass.validate_existence_alerts   s    	-JJLE77==,33((M9((M9Z**D1U: eg	   	-FM]O,,	-s   BB 	B<"B71B<7B<c                    d}|dz  }|d| dz  }|dz  }t        dd      }| j                  j                  t              j	                  t        j
                  |k(        j                         }|D ]*  }| j                  |j                  |      }|dk(  s&| j                  j                  t              j	                  t        j                  |j                  k(        j                         }	 t               }	|j                  |	_        ||	_        d	|	_        t        j                          |	_        t        j                          |	_        | j                  j'                  |	       | j                  j)                          |j+                  |j,                  d
|       - y # t.        $ r3}
| j                  j1                          t3        d|
        Y d }
~
fd }
~
ww xY w)Nz<h2>Informe de CAF</h2>z<ul>z<li>El segmento <strong>zW</strong>  NO tiene folios disponibles. Por favor cargar nuevos en Simple Factura.</li>z</ul>zinformacion@jisparking.comzpksh nfit pcwj dfter   r   zInforme de CAFzError al guardar o enviar: )r   r   r   r   r#   r"   r*   rP   user_idr   r   r4   r   rO   r%   r	   rN   r   rF   r?   r@   
send_emailemailr+   rH   print)r   r"   folio_segment_idemail_contentemail_clientalert_users
alert_userresponseuserrA   r/   s              r   rS   zAlertClass.send_email   s   134D3E  F]  ^  	^  "">@UV ggmmN3::>;W;W[h;himmo% 	=J44Z5G5GWH1}ww}}Y/66y||zGYGY7YZ``b=&LE*.''E'*7E'&'EO'+zz|E$)-E&GGKK&GGNN$ !++DJJ8H-X%	=( ! =GG$$&7s;<<=s   /B-F  	G)(GG)Nr   
   )__name__
__module____qualname__r   r1   r<   rB   rD   rL   rP   rS    r   r   r   r      s+    #-J-"- -*-&"=r   r   )app.backend.db.modelsr   r   r   r   app.backend.classes.email_classr   r6   r   r	   
sqlalchemyr
   r   r   ra   r   r   <module>re      s#    W W 6  # !a= a=r   