o
    0@i                     @   sd   d dl mZ d dlmZ d dlmZmZ d dlmZ e ZG dd dej	Z
G dd deej	Zd	S )
    )
SQLAlchemy)datetime)generate_password_hashcheck_password_hash)	UserMixinc                   @   s  e Zd ZdZejejdddZejedddZ	ejedddZ
ejedddZejejdddZejejddZejejejd	Zejejejejd
ZeedZeedZejedddZejedddZejedddZejedddZejejddZejejddZejedddZdd Zdd Zdd Z e!dddZ"dd Z#ej$ddddfZ%dS ) ClienteClientesTprimary_keyautoincrement   Fnullable   r   defaultr   )r   onupdated   i        2   c                 C   s   i d| j d| jd| jd| jd| jd| jrdndd	| jr'| jd
nd d| jr3| jdnd d| jr?| jdnd d| j	d| j
d| jd| jd| jd| jd| jd| j| j|  |  dS )N	ClienteIDNITRazonSocialNombreComercialEstadoActivoEstadoACTIVO	BLOQUEADOFechaVencimientoCertificadoz%Y-%m-%dFechaCreacion%Y-%m-%d %H:%M:%SFechaModificacionUsuarioModificacionObservaciones	TokenUserTokenPassword
ResolucionPrefijoCantidadLicenciasCantidadRemotos)TipoLicenciaDiasParaVencimientoEstadoCertificado)r   r   r   r   r   r    strftimer!   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   _calcular_dias_vencimiento_estado_certificadoself r4   */var/www/html/ActivarClientesMIG/models.pyto_dict    sN   	
zCliente.to_dictc                 C   s.   | j sd S ddlm} | }| j | j}|S )Nr   )date)r    r   r7   todaydays)r3   r7   hoy
diferenciar4   r4   r5   r0   :   s   z"Cliente._calcular_dias_vencimientoc                 C   s0   |   }|d u r
dS |dk rdS |dkrdS dS )N	SIN_FECHAr   VENCIDO   
POR_VENCERVIGENTE)r0   )r3   diasr4   r4   r5   r1   B   s   zCliente._estado_certificadoNc                 C   s^   | j }|r|| j|k}|r|| jd| d}|r+|| jd| d}| S )N%)queryfilterr   r   liker   all)clsnitrazon_socialnombre_comercialrC   r4   r4   r5   buscar_por_datosM   s   zCliente.buscar_por_datosc                 C      d| j  d| j dS )Nz	<Cliente : >)r   r   r2   r4   r4   r5   __repr__X      zCliente.__repr__r   r   uq_nit_nombre_comercial)name)NNN)&__name__
__module____qualname____tablename__dbColumnIntegerr   Stringr   r   r   Booleanr   Dater    DateTimer   utcnowr!   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r6   r0   r1   classmethodrK   rO   UniqueConstraint__table_args__r4   r4   r4   r5   r   	   s6    
r   c                   @   s   e Zd ZdZejejdddZejeddddZ	ejedddZ
ejed	ddZeed
ZejejdddZejejejdZeejZejedd dZdd Zdd Zdd Zdd Zdd ZdS )UsuarioUsuariosTr	   r   F)r   unique   r   r   r   r   r   c                 C   s   t || _d S N)r   Passwordr3   passwordr4   r4   r5   set_passwordl   s   zUsuario.set_passwordc                 C   s   t | j|S rf   )r   rg   rh   r4   r4   r5   check_passwordo   s   zUsuario.check_passwordc                 C   s
   t | jS rf   )str	UsuarioIDr2   r4   r4   r5   get_idr   s   
zUsuario.get_idc              	   C   sF   | j | j| j| j| j| jr| jdnd | jr| jdnd | jdS )Nr"   )rm   UsernameNombreCompletoEmailActivor!   UltimoAccesoRol)	rm   ro   rp   rq   rr   r!   r/   rs   rt   r2   r4   r4   r5   r6   u   s   zUsuario.to_dictc                 C   rL   )Nz	<Usuario rM   rN   )ro   rp   r2   r4   r4   r5   rO      rP   zUsuario.__repr__N)rS   rT   rU   rV   rW   rX   rY   rm   rZ   ro   rg   rp   rq   r[   rr   r]   r   r^   r!   rs   rt   rj   rk   rn   r6   rO   r4   r4   r4   r5   rb   _   s     rb   N)flask_sqlalchemyr   r   werkzeug.securityr   r   flask_loginr   rW   Modelr   rb   r4   r4   r4   r5   <module>   s   V