3
JGg-                  @   s   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
mZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZ dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!dd Z"dS )     )secure_filename)app)licenzeN)redirecturl_for)Message)canvas)letter)datedatetime)MIMEBase)encodersc             C   sz   t jjd t|}t jjd d}g }x6|D ].}t jjd tt|}|jt| || q.W t| }t	|dd| d S )NzSono in insert_pinz Ho salvato tutti i file su disco   zSono nel FOR )
r   loggerinfouploadconverti_licenzaread_pdfappend
scrivi_pdfcreate_subject
send_email)clientefilesZfiles_namesindiceZpdf_filefiledatisubject r    /data/www/html/LML/app/insert.py
insert_pin   s    
r!   c             C   s   t jjd g }x| D ]}t jjd| tjjt jd t|}y`tj	|dd}t jjd |d }|j
| t jjd| tj| t jjd	| |j| W q   t jjd
 d S qW t jjd |S )NzSono in uploadzSto aprendo il file: %sUPLOAD_FOLDERZFSPA7691)passwordzHo aperto il file con la pwdz_dec.pdfz%Ho scritto il nuovo file su disco: %szHo cancellato il file: %szFile non validoz*Ho lavorato tutti i file ed esco da upload)r   r   r   ospathjoinconfigr   pikepdfopensaveremover   )r   Zfiles_filenamesr   Zfile_filenameZpdfZfile_decr   r   r    r      s&    


r   c             C   s0   t jt | d }tjjd| | d |j|jgS )Nr   zHo ricavato la licenza: %sr   )r   search_desMr   r   r   codFitredesFitre)r   licenzar   r   r    r   1   s    r   c              C   s0  t j| }tj|  tjjd|  g }y|jd }W n( tk
r\ } zt	  W Y d d }~X nX |j
 }tjd}y,|jtj||d  tjjd|d  W n( tk
r } zt	  W Y d d }~X nX |jd }|j
 }tjd|}	|	j }
tjd|}|j }|j|||
 jdd	 tjjd
|d  |S )NzHo cancellato il file: %sr   z#[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}r   zDati[0]  : %sz\d{2}/\d{2}/\d{4}zSARVAM 
 zDati[1]  : %s)PyPDF2	PdfReaderr$   r+   r   r   r   pages
IndexErrorexitZextract_textrecompiler   findallsearchstartendreplace)r   ZPdfr   Zpage1errorZtesto1pZpage0Ztesto0ZmatchfZfineZmatchiZinizior   r   r    r   6   s0    



r   c             C   s  t j }tj|td}|jdd |jdd|d  |jdd|d  |jd	d|d
  |jdd| d  |jdd| d jd |jdd| d  |jddtj	 jd |jdd |jdd| d  |jdd| d  |j
  |jd
 tj|}tjjd tjttjd tjd  d }tjjd! |jd
 }|j|jd
  tj }|j| tjd" d# |d  d$ | d  d$ t| d% }	tjjd&|	 t|	d'}
|j|
 |
j  tjjd( |	S ))N)ZpagesizezCourier-Bold   K   i  r         i  r      i  oci  docz%d/%m/%Y   ib  nsx   i  
   ic  i  rsiO  i  emzHo creato il testo del pdfBASE_FOLDER
MODULO_PINrbzHo letto il modello r"   z/PIN__z.pdfz Ho generato il nome del file %s wbz%Ho scritto e salvato il file su disco)ioBytesIOr   ZCanvasr	   ZsetFontZ
drawStringstrftimer
   todayr*   seekr2   r3   r   r   r   r)   r'   r4   Z
merge_pageZ	PdfWriterZadd_pagestrwriteclose)r   r   r   packetZcanZPDF_varZmodulopageoutputnomefileZoutputStreamr   r   r    r   U   s<    

 

2

r   c             C   s*   d| d  d | d  }t jjd| |S )Nz+Invio PIN licenza ML - Nostro riferimento: rH   z - Cliente: rK   zCreo il subject %s)r   r   r   )r   r   r   r   r    r   v   s    r   c             C   sR   g }xH| D ]@}t |j}tjjd| |jtjjtj	d | |j
| q
W |S )NzSto salvando %sr"   )r   filenamer   r   r   r*   r$   r%   r&   r'   r   )Z
form_filesr   r   r^   r   r   r    salva_files|   s    

r_   c             C   s|   t | tjd tjd d}||_||_x*|D ]"}t|}||_|j||j  q,W t	 }||_|j||j  t
j| d S )NMAIL_SENDER	MAIL_DEST)sender
recipients)r   r   r'   bodyhtmlcrea_filepinattachmentsattachget_content_typecrea_istruzionimailsend)r   Z	text_bodyZ	html_bodyr   msgr   ZallegatoZ
istruzionir   r   r    r      s    
r   c              C   sh   t dd} tjd tjd  }t|d6}| j|j  tj|  | jdd|j	dd	d
 | S Q R X d S )Napplicationzoctet-streamrM   	ISTR_OPERrO   zContent-Disposition
attachment_tempr1   )r^   )
r   r   r'   r)   set_payloadreadr   encode_base64
add_headerr=   )partr^   r   r   r   r    rj      s    

rj   c             C   sZ   t dd}t| d<}|j|j  tj| |jdd| jtj	d dd W d Q R X |S )	Nrn   zoctet-streamrO   zContent-Dispositionrp   rM   r1   )r^   )
r   r)   rr   rs   r   rt   ru   r=   r   r'   )r]   rv   r   r   r   r    rf      s    

(rf   )#Zwerkzeug.utilsr   r   
app.modelsr   r$   r2   r(   r7   rR   flaskr   r   
flask_mailr   Zreportlab.pdfgenr   Zreportlab.lib.pagesizesr	   r   r
   email.mime.baser   emailr   r!   r   r   r   r   r   r_   r   rj   rf   r   r   r   r    <module>   s(   (!		