
    Xh                     `    d dl Z d dlmZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
  G d d      Zy)	    N)	UserModelEmployeeModel)generate_bcrypt_hash)datetime)HelperClass)generate_password_hashc                   D    e Zd Zd ZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zy)	UserClassc                     || _         y )N)db)selfr   s     J/var/www/intrajisbackend.com/public_html/app/backend/classes/user_class.py__init__zUserClass.__init__	   s	        Nc                    	 g }|"|j                  t        j                  |k(          | j                  j	                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                        j                  | j                  t        j                        }|dkD  r|j                         }||z   dz
  }|dk  s||kD  rdddS |j                  |dz
  |z        j                  |      j!                         }|sdddS |D 	cg c]R  }	|	j
                  |	j                  |	j                  |	j                  |	j                  |	j                  |	j                  dT }
}	|||||
dS |j!                         }|D 	cg c]R  }	|	j
                  |	j                  |	j                  |	j                  |	j                  |	j                  |	j                  dT }
}	|
S c c}	w c c}	w # t"        $ r}t%        |      }d|dcY d }~S d }~ww xY w)	Nr      errorzInvalid page number)statusmessageNo data found)idrut	full_namerol_idemailphone
added_date)total_itemstotal_pagescurrent_pageitems_per_pagedata)appendr   r   r   queryr   r   r   r   r   r   filterorder_bycountoffsetlimitall	Exceptionstr)r   r   pager!   filtersr$   r   r   r"   userserialized_dataeerror_messages                r   get_allzUserClass.get_all   s   B	AGy}}34DGGMM##  $$ f
 h  ax#kkm*^;a?!8tk1&-:OPP||TAX$?@FF~VZZ\&-/JJ ##$  ''88!%"kk!ZZ!ZZ"&//$ #$ #$ $/#.$(&4+  yy{ ##$  ''88!%"kk!ZZ!ZZ"&//$ #$ #$ '&?#$*#$  	AFM%-@@	AsP   C>H :H <H  AH	H !H 5AHH 
H 	H=#H82H=8H=c           	         	 | j                   j                  t              j                  t	        t        |      |k(        j                         }|rv|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  d}d|i}t        j                  |      }|S y# t         $ r}t#        |      }d| cY d }~S d }~ww xY w)N)r   r   r   r   r   r   hashed_passwordr   	user_dataz3No se encontraron datos para el campo especificado.Error: )r   r$   r   r%   getattrfirstr   r   r   r   r   r   r5   r   jsondumpsr+   r,   )	r   fieldvalue
data_queryr6   resultserialized_resultr1   r2   s	            r   getzUserClass.getQ   s    	-y188E9RV[9[\bbdJ$--%>>!+!5!5(//'--'--'1'A'A","7"7		   %)JJv$6!(( M 	-FM]O,,	-s   CC 	C+C& C+&C+c                 (   	 | j                   j                  t              j                  t        j                        j                  t        j                  dk(        j                         }|S # t        $ r}t        |      }d| cY d }~S d }~ww xY w)N   r7   )
r   r$   r   r&   nicknamer%   r   r*   r+   r,   )r   r"   r1   r2   s       r   get_supervisorszUserClass.get_supervisorsp   sv    	-77==+44Y5G5GHOOPYP`P`dePefjjlDK 	-FM]O,,	-s   A+A. .	B7BBBc                    t               }|d   |_        |d   |_        |d   |_        |d   |_        t        |d         |_        |d   |_        |d   |_        t        j                         |_        t        j                         |_        | j                  j                  |       	 | j                  j                          y# t         $ r
}Y d }~y	d }~ww xY w)
Nr   r   branch_office_idr   passwordr   r   r   r   )r   r   r   rG   r   r   r5   r   r   r   nowr   updated_dater   addcommitr+   )r   user_inputsr/   r1   s       r   storezUserClass.storex   s    {u%!(+ +,> ?$[13K
4KL )
 )
",,.$LLND	GGNN 		s   (C 	CC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)Nsuccessr   r7   )
r   r$   r   r%   r   r9   deleterL   r+   r,   )r   r   r"   r1   r2   s        r   rQ   zUserClass.delete   s    
	-77==+229<<23EFLLNDt$  & 	-FM]O,,	-s   BB 	B+B& B+&B+c                    | j                   j                  t              j                  t        j                  |k(        j                         }d|_        d|_        d|_        t        j                         |_        | j                   j                  |       	 | j                   j                          y# t        $ r
}Y d }~yd }~ww xY w)Nzfpbkdf2:sha256:260000$9199IIO4oyzykgL2$721b8c61330f838acd950f8104f364efc05d513efec2c829fcd773ef4402f10er   r   )r   r$   r   r%   r   r9   rH   r5   	status_idr   rI   rJ   rK   rL   r+   )r   r   r/   r1   s       r   refresh_passwordzUserClass.refresh_password   s    ww}}Y'..y}}/CDJJL A  H$LLND	GGNN 		s   B3 3	CCc                    | j                   j                  t              j                  t        j                  |k(        j                         }|d   |_        |d   |_        |d   |_        |d   |_	        |d   |_
        t        j                         |_        | j                   j                  |       	 | j                   j                          y# t         $ r
}Y d }~yd }~ww xY w)Nr   r   r   r   r   r   r   )r   r$   r   r%   r   r9   r   r   r   r   r   r   rI   rJ   rK   rL   r+   )r   r   	form_datar/   r1   s        r   updatezUserClass.update   s    ww}}Y'..y||r/ABHHJ)U#";/w'
w'
$LLND	GGNN 		s   5C 	C#C#c                 l   t        |j                         | j                  j                  t              j                  t        j                  |j                  k(        j                         }| j                  j                  t              j                  t        j                  |j                  k(        j                         }t        |       t        |       |r|sy|j                  |_        d|_	        t        j                         |_        t        j                         |_        | j                  j                  |       | j                  j                  |       	 | j                  j                          y# t        $ r/}| j                  j!                          t        |       Y d }~yd }~ww xY w)Nr   r   )print
visual_rutr   r$   r   r%   r9   r   personal_emailrS   r   rI   rJ   rK   rL   r+   rollback)r   rM   r/   employeer1   s        r   confirm_emailzUserClass.confirm_email   s&   k$$%ww}}Y'..y/C/C{G]G]/]^ddf77==/66}7O7OS^SiSi7ijpprdh8"-"<"<$LLN (DH	GGNN 	GG!H	s    E; ;	F3%F..F3)Nr   
   )__name__
__module____qualname__r   r3   rA   rE   rN   rQ   rT   rW   r^    r   r   r
   r
      s2    CAJ->-(-(r   r
   )r:   app.backend.db.modelsr   r   app.backend.auth.auth_userr   r    app.backend.classes.helper_classr   werkzeug.securityr   r
   rc   r   r   <module>rh      s#     : ;  8 4M Mr   