
    qh                     0    d dl m Z  d dlmZ  G d d      Zy)    )datetime)RegionModelc                   2    e Zd Zd ZddZd Zd Zd Zd Zy)	RegionClassc                     || _         y N)db)selfr	   s     ^C:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\classes\region_class.py__init__zRegionClass.__init__   s	        Nc           
      ,   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                        }|rP|j                         r@|j                  t        j                  j                  d|j                          d            }|j                  t        j                        }|j                         }|D cg c]v  }|j                  |j                  |j
                  |j                  r|j                  j                  d      nd |j                  r|j                  j                  d      nd dx }}|S c c}w # t        $ r}t        |      }d|dcY d }~S d }~ww xY w)N%%Y-%m-%d %H:%M:%Sidregionregion_remuneration_code
added_dateupdated_dateerrorstatusmessage)r	   queryr   r   r   r   r   r   stripfilterlikeorder_byallstrftime	Exceptionstr)r
   region_namer   datar   serialized_dataeerror_messages           r   get_allzRegionClass.get_all   sT   	AGGMM""44&&((E {002[%7%7%<%<qARARAT@UUV=W%XYNN;>>2E99;D !"  ii --,2,K,KQWQbQbf//889LMhlU[UhUh 3 3 < <=P Qnr  "O " #""  	AFM%-@@	As1   C*E0 ,A;E+'E0 +E0 0	F9FFFc                 r   	 | j                   j                  t        j                  t        j                  t        j
                  t        j                  t        j                        j                  t        j                  |k(        j                         }|rx|j                  |j                  |j
                  |j                  r|j                  j                  d      nd |j                  r|j                  j                  d      nd d}d|iS ddiS # t        $ r}t        |      }d|dcY d }~S d }~ww xY w)Nr   r   region_datar   z4No se encontraron datos para la region especificada.r   )r	   r   r   r   r   r   r   r   r   firstr!   r"   r#   )r
   r   
data_queryr+   r'   r(   s         r   getzRegionClass.get'   s	   	A""44&&(( f[^^r)*557  $--(//0:0S0SYcYnYn*"7"7"@"@AT"Utx]g]t]tJ$;$;$D$DEX$Yz~ &{33  !WXX 	AFM%-@@	As$   DD D 	D6D1+D61D6c                    	 t        |d   |d   t        j                         t        j                               }| j                  j	                  |       | j                  j                          | j                  j                  |       dd|j                  dS # t        $ r2}| j                  j                          dt        |      dcY d }~S d }~ww xY w)	Nr   r   )r   r   r   r   successzRegion created successfully)r   r   	region_idr   r   )r   r   nowr	   addcommitrefreshr   r"   rollbackr#   )r
   region_inputs
new_regionr'   s       r   storezRegionClass.storeC   s    	:$$X.)67Q)R#<<>%\\^	J GGKK
#GGNNGGOOJ' $8']]   	:GG%#a&99	:s   BB 	C$'CCCc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|r:| j                   j                  |       | j                   j                          dddS dddS # t        $ r4}| j                   j                          t        |      }d|dcY d }~S d }~ww xY w)Nr0   zRegion deleted successfullyr   r   No data found)r	   r   r   r   r   r,   deleter4   r"   r6   r#   )r
   r   r%   r'   r(   s        r   r<   zRegionClass.deleteZ   s    	A77==-44[^^r5IJPPRDt$ "+8UVV")oFF 	AGGFM%-@@	As$   BB B 	C)CCCc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS |j                         D ]  \  }}t        |||        t        j                         |_
        | j                   j                          | j                   j                  |       dddS # t        $ r2}| j                   j                          dt        |      dcY d }~S d }~ww xY w)Nr   r;   r   r0   zRegion updated successfully)r	   r   r   r   r   one_or_noneitemssetattrr   r2   r   r4   r5   r"   r6   r#   )r
   r   r7   existing_regionkeyvaluer'   s          r   updatezRegionClass.updatei   s    	:"ggmmK8??RT@TUaacO"")oFF+113 5
Ue45 ,4<<>O(GGNNGGOOO,'4QRR 	:GG%#a&99	:s%   AC A7C 	D	'D>D	D	r   )	__name__
__module____qualname__r   r)   r.   r9   r<   rD    r   r   r   r      s#    A>A8:.A:r   r   N)r   app.backend.db.modelsr   r   rH   r   r   <module>rJ      s     -x: x:r   