U
    3ƒ7h¡~  ã                   @   s   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZ d d	lmZmZmZ d d
lm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'Z'd dl(Z(d dl)Z)d dl*Z*d dl+Z+d dl,Z,d dl-Z-d dl.Z.d dl/Z/d dl0Z0d dl1Z1d dl2Z2d dl3Z3d dl4Z4d dl*Z*d dl5Z5d dl6Z6d dl7Z7d dl8Z9d dl:Z:edd„ ƒZ;dd„ Z<dd„ Z=dd„ Z>dd„ Z?dd„ Z@dd„ ZAdd„ ZBdd „ ZCd!d"„ ZDd#d$„ ZEd%d&„ ZFd'd(„ ZGd)d*„ ZHd+d,„ ZId-d.„ ZJd/d0„ ZKd1d2„ ZLd3d4„ ZMd5d6„ ZNd7d8„ ZOdS )9é    )ÚHttpResponseÚHttpResponseRedirectÚJsonResponse)Úlogin_required)Úxframe_options_exempt)ÚrenderÚredirect)Ú	OrganismoÚReparticionÚDependenciaÚ	MunicipioÚ	LocalidadÚPedidoÚSitio)ÚUser)ÚauthenticateÚloginÚlogout)Ú	Paginator)Úcsrf_exemptÚcsrf_protectÚrequires_csrf_token)Úcache)Úsettings)Úrender_to_string)ÚconfigNc                 C   s€   t jrt| dƒS t| j d¡ƒ}t|ƒr0tdƒS | jdkrDt| dƒS | jdkr|| j	 d¡}|d krjtdƒS || jd< tdƒS d S )	Nzmantenimiento.htmlÚusuarioz/formularioÚGETz
login.htmlÚPOSTzcallback[token_pba]ú/)
r   ÚMANTENIMIENTOr   Úget_usuarioÚsessionÚgetÚusuario_validor   Úmethodr   )Úrequestr   Útoken© r(   ú*/var/www/formularioweb/formulario/views.pyÚ	loginUser#   s    




r*   c                 C   s"   z| j d= W n   Y nX tdƒS )Nr   r   )r"   r   ©r&   r(   r(   r)   Ú
logoutUser4   s
    r,   c                 C   sd   | d kr\| dkr\z| d d dkr(W dS W n   Y nX t j  | d ¡t j  ¡ k rVdS dS ndS d S )NÚ ZidpZproveedorIdentidadIdZRENAPERFZfechaExpiracionT)ÚdatetimeÚfromtimestampÚnow)Úuserr(   r(   r)   r$   <   s    
r$   c                 C   sN   z8t  | ¡ d¡}tj|ddid}|d }t |¡}W n   d}Y nX |S )Núutf-8Zverify_signatureF)ÚoptionsÚsubr-   )Úbase64Ú	b64decodeÚdecodeÚjwtÚjsonÚloads)r'   ÚdataZdecoded_datar1   r(   r(   r)   r!   K   s    
r!   c                 C   sü   t jrtdƒS t jr4d}|| jd< t| j d¡ƒ}n t| j d¡ƒ}t|ƒsTtdƒS | jdkrÞ| j d¡}z| jd= W n   Y nX t	| j 
¡ ƒD ]}|dkr’| j|= q’t ¡ }t| d||d |d ftj ¡  d¡|d	œƒS | jd
krøt| ƒ tdƒS d S )Nr   aÜ  ZXlKaGJHY2lPaUpTVXpJMU5pSjkuZXlKemRXSWlPaUo3WENKcFpIQmNJanA3WENKd2NtOTJaV1ZrYjNKSlpHVnVkR2xrWVdSSlpGd2lPbHdpVWtWT1FWQkZVbHdpZlN4Y0ltNXZiV0p5WlZ3aU9sd2lSbkpoYm1OdlhDSXNYQ0psYldGcGJGd2lPbHdpWENJc1hDSm1aV05vWVVWNGNHbHlZV05wYjI1Y0lqb3hOamczT1RnNU9ESTBMRndpWVhCbGJHeHBaRzljSWpwY0lrWkpSMHhKVDB4SlhDSXNYQ0pqZFdsc1hDSTZYQ0l5TURNNE16WXlNREU0TUZ3aUxGd2libWwyWld4Y0lqb3hMRndpYm1sMlpXeEVaWE5qY21sd1hDSTZYQ0pDUVVwUFhDSXNYQ0owYVhCdlJHOWpkVzFsYm5SdlhDSTZYQ0pFVGtsY0lpeGNJbTV5YjBSdlkzVnRaVzUwYjF3aU9sd2lNemd6TmpJd01UaGNJaXhjSW5ScGNHOVFaWEp6YjI1aFhDSTZYQ0pHU1ZOSlEwRmNJaXhjSW5KaGVtOXVVMjlqYVdGc1hDSTZiblZzYkN4Y0ltWmhZMmxoYkZ3aU9tWmhiSE5sTEZ3aWMyVnNabWxsWENJNmJuVnNiQ3hjSW5ObGVHOWNJanBjSWsxY0luMGlMQ0pwYzNNaU9pSkVVRk5KVkNCRWFXZHBkR0ZzSUZOcFoyNWhkSFZ5WlNCUWJHRjBabTl5YlNJc0ltVjRjQ0k2TVRjNE9ETXdORGd5TUgwLllWZzAwOTZvWUdUazBZX1VmaWE3RXVrcnk4c1hnX3NiLVJBU01fbXhqVGlNd3pKbjNlUmFGWGhEblQ0WW9CUWR3SnkzSFA0UXFpRWwweXZQb2x1LTJoR3BRX2JoOTdvYkt0LXU0cm1YczFaUk5aeXhJMG05ZG1faWQ3MFBybm9VSExkNHJFblFOZHlJek80WC1PdGNwY245M204dC15MExHZThSeGt6RVVpYjA1NHZORmpfTENoQkM2cDI3cm1mWlhzbF9oUC1KVGR3THRYQy1pZWh2U0Q1Mkk3M3NVVVRPalNNZWVDOEo0QTJVTUdPbE5aNlNfMWxJMVhsR09ITkNEX1o4SUY0c2g3YmZQUC1mcmtRdnl3WDNDbFJOTWdrbTk3UktGS0JRM0tldHB4dDI5akVkV1hXVnk2aU5HZzI1TkNOeTljYXVRZnAyVmotU0JOWGVQQQ==r   r   Úerrorz
main6.htmlÚnombreÚapellido)r'   r   Z
organismosr<   r   Úconfirmacion)r   r    r   ÚTESTr"   r!   r#   r$   r%   ÚlistÚkeysÚuuidÚuuid4r   r	   ÚobjectsÚallÚorder_byÚ	get_datos)r&   Ztok_realr   r<   ÚkeyZ
token_uuidr(   r(   r)   ÚmainU   s.    


.
rJ   c                 C   sÆ   t jrtdƒS | j d¡dkr&tdƒS | j d¡}|d krBtdƒS | jdkr\t| dd|iƒS | jdkrÂttj 	¡ ƒ 
d¡}|d	  
d
¡}|d d |d  d |d	  | jd< d| jd< t| dƒS d S )Nr   Z
confirmadoÚSIÚdatosr   zconfirmar.htmlr   ú r   ú-é   z / é   Úcreadoz
final.html)r   r    r   r"   r#   r%   r   Ústrr.   r0   Úsplit)r&   rL   Zaux_dater(   r(   r)   r?   p   s    

&
r?   c           "   
   C   s¾  g }| j  d¡}| ddd| dd¡ dd¡ ¡ fgf¡ t| j d¡ƒ}d	d
|d fdd|d fdd|d fg}| d|f¡ g }g }g }|dkrl| j  d¡}z6tjj|d}	t	|	ƒ}
dd|
d j
fdd|	j
fg}W n*   d}d}	g }
dddd| fg}Y nX | j  d¡}| j  d¡}| j  d ¡}| j  d!¡}| j  d"¡}d#d$|fd%d&|fd'd(|fd)d*|fd+d,|fg}|dksŠ|d-ksŠ|dkrd| j  d.| ¡}| j  d/| ¡}| j  d0| ¡}	d1d2|fdd|fdd|	fg}| j  d3| ¡}| j  d4| ¡}| j  d5| ¡}| j  d6| ¡}d#d$|fd%d&|fd'd(|fd7d+d,|fg}| d8| ¡  d9t| j  d:| ¡ƒf¡ |dkrp| j  d;¡}| j  d<¡}| j  d=¡}| j  d>¡}t| jƒ d?d@„ | j ¡ D ƒdA }g }|D ]t}tj tjdB¡}dCtt dD¡ƒ dE }tj ||¡}t|dFƒ }| ¡ D ]} | | ¡ qW 5 Q R X | |¡ qÈ|| jdG< |dHdI|fdJdK|fdLdM|fdNdO|fg }|dks„|dkr„| dPdQt| j  dR| ¡ƒf¡ | dSdTt| j  dU| ¡ƒf¡ | dVdWt| j  dX| ¡ƒf¡ | dYdZt| j  d[| ¡ƒf¡ | d\d]t| j  d^| ¡ƒ d_d`¡f¡ | dadbt| j  dc| ¡ƒ d_d`¡f¡ | dddet| j  df| ¡ƒ d_d`¡f¡ | dgdht| j  di| ¡ƒ d_d`¡f¡ | djdkt| j  dl| ¡ƒ d_d`¡f¡ | dmdnt| j  do| ¡ƒ d_d`¡f¡ | dpdqt| j  dr| ¡ƒ d_d`¡f¡ | dsdtt| j  du| ¡ƒ d_d`¡f¡ | dvdwt| j  dx| ¡ƒ d_d`¡f¡ | dydzt| j  d{| ¡ƒ d_d`¡f¡ | d|d}t| j  d~| ¡ƒ d_d`¡f¡ | dd€t| j  d| ¡ƒ d_d`¡f¡ | d‚dƒt| j  d„| ¡ƒ d_d`¡f¡ | d…d†t| j  d‡| ¡ƒ d_d`¡f¡ | dˆd‰t| j  dŠ| ¡ƒ d_d`¡f¡ | d‹dŒt| j  d| ¡ƒ d_d`¡f¡ | dŽ|f¡ | d|f¡ | d|f¡ g }!|! d‘d
| j  d’| ¡f¡ |! d“d| j  d”| ¡f¡ |! d•d–| j  d—| ¡f¡ |! d˜d™| j  dš| ¡f¡ |! d›dœ| j  d| ¡f¡ | j  dž¡d krz| j  dŸ¡d krn|! d ¡ n
|! d¡¡ n(| j  dŸ¡d kr˜|! d¢¡ n
|! d£¡ | d¤|!f¡ || jd¥< d S )¦Nztipo-reqzTIPO DE REQUERIMIENTOÚTIPO_REQÚmodu   modificaciÃ³nZmudÚmudanzar   Ú	NOM_SOLICZNombrer=   Ú	APE_SOLICZApellidor>   Ú	DNI_SOLICZDNIZnroDocumentoZSOLICITANTEÚaltaÚdependencia©ÚidÚ	ORGANISMOr	   r   ZDEPENDENCIAr   r-   )r^   r	   r-   ÚIDzdireccion-altazcalle-desc-altazmunicipio-altazlocalidad-altazcoordenadas-altaÚ	MUNICIPIOr   Ú	LOCALIDADr   Z	DIRECCIONu
   DirecciÃ³nÚ
CALLE_DESCu   DescripciÃ³n de direcciÃ³nÚCOORDENADASZCoordenadasÚbajazid-enlace-obt-z
organismo-zdependencia-Z	ID_ENLACEz	ID enlacez
municipio-z
localidad-z
direccion-zcoordenadas-)rb   u   DescripciÃ³n direcciÃ³nr-   ZRAZON_u   RazÃ³n del pedidozrazon-z	calle-mudz
altura-mudzdescripcion-calle-mudzcoordenadas-propc                 S   s   i | ]\}}|t |ƒ“qS r(   )rA   )Ú.0rI   Úvaluer(   r(   r)   Ú
<dictcomp>½   s      zget_datos.<locals>.<dictcomp>zcarga-imagenesútmp/img/zIMAGEN-é@B z.jpegzwb+ÚimagenesZDIRECCION_PROPu   DirecciÃ³n destinoZALTURA_PROPzAltura destinoZDESCRIPCION_PROPu   DescripciÃ³n direcciÃ³n destinoZCOORDENADAS_PROPzCoordenadas destinoZ	CANT_DISPzCantidad de dispositivoszcant-dispositivos-ZUSU_CONCu   Usuarios simultÃ¡neoszusuarios-concurrentes-ZTEL_IPu   TelÃ©fonos IPztelefonos-ip-ZUSU_CONC_VCz)Usuarios concurrentes en videoconferenciazusuarios-concurrentes-vc-ZINTRANETZIntranetz	intranet-Ú1õ   SÃZINTERNETZInternetz	internet-Z	VIDEOLLAMZVideollamadazvideollamada-Z	VIDEOCONFZVideoconferenciaz
videoconf-ZVO_IPzVoice IPzvoip-ZMSJ_INSTu   MensajerÃ­a instantÃ¡neazinstmsj-ZEMAILÚEmailzemail-Z	AUDIO_STRzAudio streamingz	audiostr-Z	VIDEO_STRzVideo Streamingz	videostr-ZAPPSZAplicacioneszapps-ZAPPS_VPNzAplicaciones con cliente VPNz	apps-vpn-ZSERV_RECzServidor de recursos y appsz	serv-rec-Z
SUBIDA_DOCu%   Subida de documentaciÃ³n digitalizadazdoc-dig-Z	OTRO_SERVzOtro serviciozotro-servicio-ZOTRO_SERV_NOMzNombre del serviciozservicio-nombre-ZOTRO_SERV_DESCu   DescripciÃ³n del serviciozservicio-descripcion-u   JURISDICCIÃ“Nu
   UBICACIÃ“NZSERVICIOZNOM_CONTznombre-contacto-ZAPE_CONTzapellido-contacto-ZTEL_CONTu   TelÃ©fono fijoztfijo-contacto-ZCEL_CONTZCelularztcel-contacto-Z
EMAIL_CONTzEmail de contactozemail-contacto-zcontacto-primerazcontacto-segunda)Ú	HORA_CONTÚHorariozDe 08:00 a 16:00)rn   ro   zDe 08:00 a 12:00)rn   ro   zDe 12:00 a 16:00)rn   ro   r-   ZCONTACTOrL   )r   r#   ÚappendÚreplaceÚupperr!   r"   r   rE   Úget_organismor=   rR   ÚprintÚFILESÚlistsÚosÚpathÚjoinr   ÚBASE_DIRÚsecretsÚ	randbelowÚopenÚchunksÚwrite)"r&   rL   Útipo_reqr   ZsolicitanteZjurisdiccionZ	ubicacionZservicioZid_depÚdepÚrepsÚorgÚ	direccionZ
calle_descÚ	municipioÚ	localidadÚcoordenadasÚ	id_enlaceZmuniÚlocÚdirZcoordZdir_propÚaltura_propZ	desc_propZ
coord_proprj   Znombres_imagenesZimagenrx   Únombre_archivoÚdestinationÚchunkZcontactor(   r(   r)   rH   ‰   s¾    *(
 ,&(


(    ((((((((((((((((

rH   c                 C   s6   |D ],\}}|D ]\}}}|| kr|    S qqdS )Nr-   r(   )ZdatorL   ÚgrupoÚlistaÚvarr=   Zvalorr(   r(   r)   Úget_datoù   s
    r’   c                 C   s&   | j dkstddiddS t| ƒ}|S )Nr   r<   õ   ENDPOINT INVÃLIDOéô  ©Ústatus)r%   r   Úgenerar_pdf)r&   Ú	respuestar(   r(   r)   Údescargar_formulario   s    
r™   c                 C   s:  | j dkstddiddS | j d¡}| j d¡}|dkrLtd	td
ƒdœƒS tjtjtj	tj
d}tjd|dœg}tj}|jd||d}| ¡  t|ƒdkr®td	td
ƒdœƒS |d tj }|d tj }|d tj }	|d tj }
|d tj }|d tj }|d tj }tdtd|||	|
||||dœ| ddœƒS )Nr   r<   r“   r”   r•   rˆ   r€   r-   Fzerror-busqueda.html)Z	resultadoÚhtml©ÚurlZapptokenÚauthÚis)ÚfieldZ
searchtyperf   Znetworkequipment)ÚcriteriaÚforcedisplayr   Tztabla-busqueda-id.html)r=   Ú	organismor[   r…   r†   r„   r‡   r€   r+   )r%   r   r   r#   r   Úglpi_apiÚGLPIr   ÚURL_APIÚ	APP_TOKENÚ
USER_TOKENZ	NOMBRE_IDZDISPLAYÚsearchÚkill_sessionÚlenZORG_IDZDEP_IDZMUN_IDZLOC_IDZDIR_IDZCOORD_ID)r&   rˆ   r€   Úglpir    r¡   Úrespr=   r¢   r[   r…   r†   r„   r‡   r(   r(   r)   Ú	buscar_id  s0    
þr­   c                 C   sF   | j  d¡}tjj|d}g }|D ]}| |j|jf¡ q"td|iƒS )Nr¢   )Znombre__containsÚdependencias)	r   r#   r   rE   Úfilterrp   r]   r=   r   )r&   rƒ   r   ÚdepsÚdr(   r(   r)   Ú
buscar_org$  s    r²   c                 C   sv   | j  d¡}g }zHtjj|d}t|ƒ}|D ]}| |j|jf¡ q,| |j|jf¡ W n   g }Y nX td|iƒS )Nr[   r\   r®   )	r   r#   r   rE   rs   rp   r]   r=   r   )r&   r]   r®   r   r°   r±   r(   r(   r)   Úget_dep,  s    
r³   c                 C   s¾  | j dkstddiddS | j d¡}d}d}|D ]Ü\}}|D ]Ì\}}}|dkr®d	| d
 }	|dkrrtj}
n6|dkr‚tj}
n&|dkr’tj}
n|dkr¢tj}
ntj	}
|dkr@t
td|ƒƒ\}}|d kr@d}zÐtj ¡ }|D ]8}ttj ||f|j|jf¡jƒ}||d k rÞ||f}qÞ|d d krœd|d j d |d j d |d j d |d j d |d j d |d j d |d j d t|d ƒ d }W q@   Y q@X q@|dkrºq@|dkrÒ|d | }q@|dkrê|d  | }q@|d!kr@|dkr@|d" | d# | }q@q2|| }tjtj tj!tj"d$}| #d%tj$tj%|tj&|
tj'|	tj(d&œ¡}t|d d' ƒ}|
tjkrš| j d(¡}zì| #d)|d*d+œ¡}|D ]Ð}t)j* +t,j-d,¡}t)j* +||¡}| .d%|d-¡}|D ]P}|d. d/krÌ|d0 tj%krÌ| /d-d'|d' i¡ | 0d%|tj%tj&d1œ¡ qÌ| 1d2|¡}zt) 2|¡ W n   Y nX | #d3d)|d d' |d' d4œ¡}q˜W n, t3k
r˜ } zt4|ƒ W 5 d }~X Y nX t|ƒ| jd5< | 5¡  td6|d7œƒS )8Nr   r<   r“   r”   r•   rL   r-   rT   z
Pedido de z de serviciosÚMUDANZAÚALTAÚBAJAõ   MODIFICACIÃ“Nrc   )ri   Nr   rP   u   

-Sitio mÃ¡s cercano:
  *ID: z
  *Organismo: z
  *Dependencia: u   
  *TecnologÃ­a: z
  *Proveedor: z
  *BW Down: z
  *BW Up: z
  *Distancia: z metrosrY   rW   ú-Solicitante: rX   rM   ÚNonez
-z: r›   ÚTicket©Z_users_id_requesterÚ_groups_id_assignÚcontentr–   Zitilcategories_idZrequesttypes_idÚnameÚtyper]   rj   Z
TicketTasku
   ImÃ¡genes:)Z
tickets_idr½   rh   ZGroup_Ticketr¿   rO   Z	groups_id)r]   r¼   r–   zImagen mudanzaÚDocument_Item©ZitemtypeZitems_idZdocuments_idÚcodigoÚOK)r˜   rÂ   )6r%   r   r"   r#   r   ZCATEGORIA_ID_MUDANZAÚCATEGORIA_ID_ABM_ALTASZCATEGORIA_ID_ABM_BAJASZCATEGORIA_ID_ABM_MODIFICACIONESZCATEGORIA_ID_ABMÚget_coordenadasr’   r   rE   rF   ÚintÚgeopyZdistanceZgeodesicÚcoord_xÚcoord_yÚmrˆ   r¢   r[   Ú
tecnologiaÚ	proveedorÚbw_dwÚbw_uprR   r£   r¤   r¥   r¦   r§   ÚaddÚUSER_IDÚ
GRUPO_CIAUÚESTADOÚREQUEST_TYPEÚTYPErw   rx   ry   r   rz   Zget_sub_itemsÚdeleteÚupdateÚupload_documentÚremoveÚ	Exceptionrt   r©   )r&   rL   Ú	contenidoÚextrar=   r   r‘   ZnomÚvalÚtituloZ	CATEGORIArÈ   rÉ   ZCERCANOZsitiosÚsZDISTr«   r¬   rÂ   ZarchivosZtk_tskrŒ   rx   ÚresÚaÚ
res_uploadÚer(   r(   r)   Úenvio_formulario9  s¦    


 
z


þø
(rã   c                 C   sŽ   g }z^t jj| jd}| |¡ |jdkrHt jj|jd}| d|¡ q | dtjj|jd¡ W n&   tjj| jd}| |¡ Y nX |S )Nr\   r   )	r
   rE   r#   Úreparticionrp   ÚdependeÚinsertr	   r¢   )ZDEPr‚   Úrepr(   r(   r)   rs   —  s    

rs   c                 C   sì   g }| j  d¡}| j  d¡}tt|ƒd ƒ}tjj|d d¡}tjj|d d¡}tjj|d d¡}|D ]}| 	|j
|jf¡ ql|D ]}| 	|j
|jf¡ qˆ|D ]}	| 	|	j
|	jf¡ q¤t|ƒdkrÎd	}
nd
}
t|
td||dœƒdœƒS )Nrˆ   ÚnivelrP   )r¢   r=   )rå   ©rä   r   ÚtrueÚfalsezmodulo-reparticion.html)rè   r‚   )r   Úinfo)r   r#   rR   rÆ   r
   rE   r¯   rG   r   rp   r]   r=   rª   r   r   )r&   Zreparticionesr]   rè   r‚   Zsub_repsr°   ÚrrÞ   r±   r   r(   r(   r)   Úget_reparticiones¥  s"    rî   c                 C   sL   g }| j  d¡}tjj|d d¡}|D ]}| |j|jf¡ q(t	d|iƒS )Nrä   ré   r=   r®   )
r   r#   r   rE   r¯   rG   rp   r]   r=   r   )r&   r®   rç   r°   r±   r(   r(   r)   Úget_dependencias¼  s    rï   c              
   C   s.  t  ¡  ¡ dkr2tj tjd¡}tj tjd¡}n tj tjd¡}tj tjd¡}ttjƒ 	dd¡}|d }| j
 d	¡}td
|ƒ}d}d}d}d}	d}
d}|dkr®d}d}d}|dkr¾d}	d}|dkrÒd}d}d}|dkrÞd}
d}t|ddd}| j
 d¡}|d kr
d}|D ]Ô}| 	d|¡}| 	d|¡}| 	d|¡}| 	d|¡}| 	d|¡}| 	d|	¡}| 	d|
¡}| 	d|¡}| 	d|¡}| 	d| j
 d ¡¡}|D ]@\}}|D ]0\}}}| 	d!| d" | 	d#d$¡ 	d%d¡¡}q¢q–|| }qtj|d&d'd(d'd)œd*}t|d+d,}|dkrd-| }d.| d/ |d0< |S )1NZwindowsz!formulario\templates\template.txtzformulario\staticz!formulario/templates/template.txtzformulario/staticú\r   z/formulario/staticrL   rT   zdisplay: none;zdisplay:none;rµ   r-   r¶   r·   r´   rí   r2   )ÚencodingrÂ   z
<TCK_GLPI>z<static>z<static_css>z
<ALTA_MOD>z<ALTA>z<BAJA>z	<MUDANZA>z<MODIFICACION>z<ABM>z<FECHA_SOLICITUD>rQ   ú<ú>rl   Úcheckedr¹   FTzUTF-8)rñ   zenable-local-file-access)Úverboser3   zapplication/pdf©Úcontent_typez - Tckz attachment; filename="Formularioz.pdf"úContent-Disposition)ÚplatformÚsystemÚlowerrw   rx   ry   r   rz   rR   rq   r"   r#   r’   r}   ÚpdfkitÚfrom_stringr   )r&   Ú	file_pathZstatic_pathZpath_cssrL   r€   rZ   ZmodificacionZalta_modrd   rV   ZabmrÚ   ÚfnrÂ   Úliner   r   r‘   r=   rÜ   ÚpdfÚresponser(   r(   r)   r—   Ä  sl    

,
r—   c              
   C   st   t j tjd¡}t j |¡rdt|dƒ6}t|dd}dt j |¡› d|d< |W  5 Q R £ S Q R X ntdd	d
S d S )NzPLANTILLA-ESCUELAS.xlsxÚrbzapplication/octet-streamrö   zattachment; filename="ú"rø   zFile not foundi”  r•   )	rw   rx   ry   r   Ú
MEDIA_ROOTÚexistsr}   r   Úbasename)r&   rþ   Úfiler  r(   r(   r)   Údescargar_plantilla	  s    r	  c           "      C   sÚ  | j dkrÖ| jd }|j d¡s<|j d¡s<tdddœƒS ztj|j| ¡ d}W n   tdd	d d
œƒ Y S X | d¡}|j	}|dkrštddd d
œƒS |dkr²tddd d
œƒS |j
}d}d}d}d}	d}
d}d}d}d}d}d}d}d}g }t|ƒD ]À}|dkrÈt|ƒD ]¢}dt| ||¡ƒ ¡ kr4|}t| ||¡ƒ ¡ dks‚t| ||¡ƒ ¡ dks‚t| ||¡ƒ ¡ dkr†|}dt| ||¡ƒ ¡ kr¤|}dt| ||¡ƒ ¡ krÂ|}dt| ||¡ƒ ¡ krà|}	dt| ||¡ƒ ¡ krþ|}
dt| ||¡ƒ ¡ kr|}dt| ||¡ƒ ¡ kr:|}dt| ||¡ƒ ¡ krX|}dt| ||¡ƒ ¡ krv|}dt| ||¡ƒ ¡ kr”|}dt| ||¡ƒ ¡ kr|}q|dkrÄd}|dkrÖ|d }|dkrè|d  }|	dkrú|d! }|
dkr|d" }|dkr|d# }|dkr0|d$ }|dkrB|d% }|dkrT|d& }|dkrf|d' }|dkrx|d( }|dkrŠ|d) }|dkrø| d*¡rª|d+d … }d,| }td|d d
œƒ  S qøt| ||¡ƒ}t| ||¡ƒ}t| ||¡ƒ}t| ||	¡ƒ}t| ||
¡ƒ}t| ||¡ƒ}t| ||¡ƒ}t| ||¡ƒ}t| ||¡ƒ}t| ||¡ƒ d-¡d }t| ||¡ƒ} t| ||¡ƒ}!| t|ƒ||||||||||| |!f¡ qø|| jd.< td/d0|d
œƒS d S )1Nr   ZarchivoEscuelasú.xlsxz.xlsrK   z2No es un tipo de archivo compatible (.xlsx o .xls))r<   Úmensaje)Zfile_contentszNo se pudo leer archivo)r<   r  rß   r   u   Archivo sin informaciÃ³niè  u*   Cantidad mÃ¡xima de puntos excedida (1000)éÿÿÿÿr-   ÚPREDIOr_   úID/CUEZCUEÚESTABLECIMIENTOÚ	DOMICILIOr`   ra   ÚLATITUDÚLONGITUDz	MBITO GEOZMATRz	PISO TECNZ	PRINCIPALz, ID/CUEz, ESTABLECIMIENTOz, MUNICIPIOz, LOCALIDADz, DOMICILIOu   , ÃMBITO GEOGRÃFICOz	, LATITUDz
, LONGITUDu   , MATRÃCULAu   , PISO TECNOLÃ“GICOu   , VÃNCULO PRINCIPALz, rO   zaNo se encontraton los siguientes campos en la planilla cargada: <br style='margin-bottom: 20px;'>Ú.ÚescuelasÚNOrÃ   )r%   ru   r¾   Úendswithr   ÚxlrdZopen_workbookÚreadZsheet_by_indexZnrowsZncolsÚrangerR   Z
cell_valuerr   Ú
startswithrS   rp   r"   )"r&   r;   ÚdocZhojaZfilasÚcolZPREDIO_iZID_iZESTABLECIMIENTO_iZMUNICIPIO_iZLOCALIDAD_iZDOMICILIO_iZAMBITO_iZ	LATITUD_iZ
LONGITUD_iZ
PISO_TEC_iZMATRICULA_iZVINC_PRIN_iZMENSAJE_ERRORZRESÚiÚjr  r_   r  r`   ra   r  r  r  ZAMBITOZ	MATRICULAZPISO_TECZ	VINC_PRINr(   r(   r)   Úsubir_plantilla  sÊ    


N











*
r  c                 C   sŽ  z0t | j d¡ƒ}d|d  d |d  d }W n   d}Y nX d}ztjtjtjtjd	}W n   t	d
dddœƒ Y S X z>| 
dtjtj|tjtjtj|tjdœ¡}t|d d ƒ}W n   t	d
dddœƒ Y S X tj tjd¡}tj |dtt d¡ƒ d ¡}t |¡}| d¡}	|	 ddd¡ |	 ddd¡ |	 ddd¡ |	 ddd¡ |	 ddd ¡ |	 dd!d"¡ |	 dd#d$¡ |	 dd%d&¡ |	 dd'd(¡ |	 dd)d*¡ |	 dd+d,¡ |	 dd-d.¡ |	 dd/d0¡ | j d1¡}
tt|
ƒƒD ]8}tt|
| ƒƒD ] }|	 |d ||
| | ¡ q qì| ¡  |  d|¡}zt !|¡ W n   Y nX | 
d2d||d d3œ¡}| "¡  t	d4d5d6t|ƒ dœƒS )7Nr   r¸   r=   rM   r>   Ú
r-   zPedido de ALTA de ESCUELASr›   rK   ÚERRORz#No se pudo conectar con el servidor)r<   rÝ   r  rº   r»   r   r]   zNo se pudo crear ticketÚtmpzARCHIVO_ESCUELAS-ri   r
  ZESCUELASú#rP   ZPrediorO   r  é   ZEstablecimientoé   r   é   r   é   Z	Domicilioé   u   Ãmbito GEOé   ZLatitudé	   ZLongitudé
   u
   MatrÃ­culaé   u   Piso tecnolÃ³gicoé   u   VÃ­nculo principalr  rÀ   rÁ   r  zSOLICITUD ENVIADAzCodigo de seguimiento: )#r!   r"   r#   r£   r¤   r   r¥   r¦   r§   r   rÏ   rÐ   rÑ   rÒ   rÄ   rÓ   rÔ   rR   rw   rx   ry   r   rz   r{   r|   Ú
xlsxwriterZWorkbookZadd_worksheetr   r  rª   Úcloser×   rØ   r©   )r&   r   rÚ   rÝ   r«   r¬   Z	id_ticketrx   ÚwbÚwsZDATOSr  r  rá   Zres_linkr(   r(   r)   Úenviar_plantilla  sr     
þ
ø	 

"r2  c                 C   s~   d| kr|   dd¡ d¡}n|   dd¡ d¡}t|ƒdkr>dS t|d ƒdk rRdS d|d ksjd|d	 krndS |d |d	 fS )
Nú,rM   r-   rO   )NNr   r%  rN   rP   )rq   rS   rª   )r‡   Zauxr(   r(   r)   rÅ   ½  s    rÅ   )PÚdjango.httpr   r   r   Zdjango.contrib.auth.decoratorsr   Z$django.views.decorators.clickjackingr   Zdjango.shortcutsr   r   Zformulario.modelsr	   r
   r   r   r   r   r   Údjango.contrib.auth.modelsr   Údjango.contrib.authr   r   r   Údjango.core.paginatorr   Údjango.views.decorators.csrfr   r   r   Údjango.core.cacher   Údjango.confr   Údjango.template.loaderr   Ú
formularior   r£   r  r.  Úrandomr{   Útempfilerù   Úiorw   rü   r9   r8   ÚrequestsÚstringr.   Útimer5   Zgeopy.distancerÇ   rC   r*   r,   r$   r!   rJ   r?   rH   r’   r™   r­   r²   r³   rã   rs   rî   rï   r—   r	  r  r2  rÅ   r(   r(   r(   r)   Ú<module>   sl   $

p^E
l>