
    Hg*                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlZej                  j                  d       d dlmZ d Zd Zy)	    N)datetime)HTML)BytesIOz)/var/www/cobra/DESARROLLO/valormas/config)get_connectionc                 <   t               }|dddS 	 d}|j                  d      }|j                  || f       |j                         }|j	                          |rt        | |      }dd||d	S dd
|  dS # t        $ r}ddt        |       dcY d }~S d }~ww xY w)Nr   u   Error de conexión)successmessagea}  
            SELECT p.*, ps.status as nomstatus, CONCAT(c.nombres, ' ', c.apellidos) AS nombre_ciudadano, 
                c.num_doc_ident AS documento_ciudadano, pc.categoria, pt.tipo_pqrsf, 
                CONCAT(e.nombres, ' ', e.apellidos) AS encargado 
            FROM pqrsf p
            LEFT JOIN pqrsf_status ps ON p.status = ps.id 
            LEFT JOIN ciudadanos c ON p.id_ciudadano = c.id 
            LEFT JOIN pqrsf_categoria pc ON p.id_categoria_pqrs = pc.id 
            LEFT JOIN pqrsf_tipos pt ON p.id_tipo_pqrs = pt.id 
            LEFT JOIN empleados e ON p.id_encargado = e.id 
            WHERE p.id = %s
        T
dictionary   zPQRSF encontrada)r   r	   datapdf_datau#   No se encontró la PQRSF con el id z0Error al obtener los datos de la base de datos: )r   cursorexecutefetchoneclosegenerate_pdf	Exceptionstr)id_pqrsf
conexionBDqueryr   resultr   es          2/var/www/cobra/DESARROLLO/valormas/pdf/radicado.pyconsultar_pqrsfr      s    !J)=>> f ""d"3uxk*"#Hf6H-$	   !/RS[R\-]^^ f+[\_`a\b[c)deefs$   AA7 /A7 7	B BBBc                 t   t        d       t               }d}|r	 d}|j                  d      }|j                  || f       |j	                         }|j                          |sd}n%|D ]   }|d|d	    d
|d    d
|d    d
|d    d	z  }" d}	|	 d}
	 t        j                  |
      }|j                          t        j                  |j                        j                  d      }d| }|}|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d   }|d    }t#        j$                         j'                  d!      }dj)                  g d"| d#| d$| d%| d&| d'| d(| d)| d*| d+| d,| d-| d.| d/| d0| d1      }t+        |2      }|j-                         }|d   }d3| d4}|S # t        $ r$}d}t        dt        |              Y d}~kd}~ww xY w# t        j                  j                   $ r}t        d|        d}Y d}~Fd}~ww xY w)5zL
    Genera un PDF con los detalles de una PQRSF utilizando WeasyPrint.
    zGenerando PDF... Nz
                SELECT pl.*, CONCAT(e.nombres, ' ', e.apellidos) AS usuario 
                FROM pqrsf_logs pl 
                INNER JOIN empleados e ON pl.id_usuario = e.id 
                WHERE pl.id_pqrsf = %s
            Tr
   z\<tr><td colspan="4" style="text-align:center;font-size:15px;">No hay logs de PQRSF</td></tr>z6
                    <tr>
                        <td>eventoz"</td>
                        <td>descripcionusuario
fecha_horaz4</td>
                    </tr>
                    zl<tr><td colspan="4" style="text-align:center;font-size:15px; color:red;">Error al obtener los logs</td></tr>zError al obtener los logs: z$https://dev.crm.ayudacatastro.co/crmu*   /assets/img/logo/Logo_gobernación_men.pngzutf-8zdata:image/png;base64,zError al descargar la imagen: num_radicadofecha_radicadonombre_ciudadanodocumento_ciudadano	categoria
tipo_pqrsf	encargado	nomstatuscontenido_solicidrespuesta_encargadofecha_respuestaz%d/%m/%Y %H:%M:%Sa/  
    <html>
<head>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        .container {
            text-align: center;
            margin-bottom: 20px;
        }
        h1 {
            color: #124734;
        }
        .logo {
            width: 170px;
            height: auto;
        }
        .data-section {
            display: inline-block;
            width: calc(33.3% - 10px);
            vertical-align: top;
            margin-bottom: 15px;
            background-color: #a9f5da;
            padding: 10px;
            border-radius: 10px;
            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
            margin-left: 5px;
            margin-right: 5px;
        }
        .data-title {
            font-weight: bold;
            color: #124734;
            margin-bottom: 8px;
            font-size: 12px;
        }
        .data-value {
            color: #000000;
            font-size: 11px;
            line-height: 18px;
            margin-bottom: 8px;
        }
        .details-table {
            width: 100%;
            border-collapse: collapse;
            margin-bottom: 20px;
        }
        .details-table td {
            padding: 6px; /* Reducido */
            font-size: 12px;
            line-height: 16px; /* Reducido */
        }
        .details-table .header {
            font-weight: bold;
            text-align: left;
            background-color: #b4d6ca;
            color: #124734;
        }
        .data-table {
            width: 100%;
            margin-top: 20px;
            border-collapse: collapse;
        }
        .data-table th, .data-table td {
            border: 1px solid #ddd;
            text-align: left;
            padding: 8px;
        }
        .data-table th {
            background-color: #1D8649;
            color: white;
            font-size: 12px;
        }
        .data-table tr:nth-child(even) {
            background-color: #f9f9f9;
        }
        .data-table tr:hover {
            background-color: #f1f1f1;
        }
        .custom-table {
            width: 100%;
            border-collapse: separate;
            border-spacing: 0;
            border-radius: 10px;
            overflow: hidden;
            margin: 20px 0;
        }
        .custom-table th, .custom-table td {
            padding: 10px 15px;
            font-size: 10px;
        }
        .custom-table th {
            background-color: #1D8649;
            color: white;
            font-size: 12px;
            padding: 10px 15px;
        }
        .custom-table tr {
            border-bottom: 1px solid #dddddd;
        }
        .custom-table tr:nth-child(even) {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
    <table style="width: 100%; margin-bottom: 20px">
        <tbody>
            <tr>
                <td colspan="2" style="padding: 0;">
                    <div class="info">
                        <h2>Detalles del radicado</h2>
                    </div>
                </td>
                <td style="text-align: right; width: 50%;">
                    <img src="a  " class="logo" alt="Logo">
                </td>   
            </tr>
        </tbody>
    </table>

     <table class="details-table">
        <tr>
            <td class="header">Datos del Usuario</td>
            <td class="header">Datos del Agente</td>
        </tr>
        <tr>
            <td style="padding: 8px; font-size: 14px; line-height: 18px;">
                <div class="data-value"><strong>Nombre del ciudadano:</strong> zY</div>
                <div class="data-value"><strong>Documento del ciudadano:</strong> zT</div>
                <div class="data-value"><strong>Fecha del radicado:</strong> z</div>
            </td>
            <td style="padding: 8px; font-size: 14px; line-height: 18px;">
                <div class="data-value"><strong>Agente asignado:</strong> zW</div>
                <div class="data-value"><strong>Fecha de la respuesta:</strong> u   </div>
            </td>
        </tr>
    </table>

    <table class="details-table">
        <tr>
            <td><strong>Radicado Número</strong></td>
            <td>zi</td>
        </tr>
        <tr>
            <td><strong>Fecha de Radicado</strong></td>
            <td>uc   </td>
        </tr>
         <tr>
            <td><strong>Categoría</strong></td>
            <td>ze</td>
        </tr>
        <tr>
            <td><strong>Tipo de PQRSF</strong></td>
            <td>zn</td>
        </tr>
        <tr>
            <td><strong>Estado de la solicitud</strong></td>
            <td>ut   </td>
        </tr>
        <tr>
            <td><strong>Descripción de la solicitud</strong></td>
            <td>zq</td>
        </tr>
        <tr>
            <td><strong>Respuesta de la solicitud</strong></td>
            <td>u{  </td>
        </tr>
    </table>


        <h3>Eventos y Registros</h3>
        <table class="custom-table">
            <thead>
                <tr>
                    <th>Evento</th>
                    <th>Descripción</th>
                    <th>Usuario</th>
                    <th>Fecha</th>
                </tr>
            </thead>
            <tbody>
                u   
            </tbody>
        </table>

        <div style="text-align: left; margin-top: 20px;">
            <h5><span style="color: #1d8649; font-size: 12px;">Fecha de creación del reporte:</span> z1</h5>
        </div>
    </body>
    </html>
    )stringPQRSF_z.pdf)printr   r   r   fetchallr   r   r   requestsgetraise_for_statusbase64	b64encodecontentdecode
exceptionsRequestExceptionr   nowstrftimejoinr   	write_pdf)r   r   r   	logs_html
query_logsr   logs_resultrowr   app_url	image_urlresponse
image_data
src_base64
pqrsf_datar#   r$   r%   r&   r'   r(   r)   r*   radicador,   r-   
fechaYHorahtml_contenthtmlpdffilenames                                  r   r   r   5   s>    

  !JI	:J  &&$&7FNN:{3 //+KLLNz	& C & ]O , /0 1 ^, - ./ 0" I 5G)EFI<<	*!!#%%h&6&67>>wG
-j\:
 Jn-L 01N!"45$%:;;'IL)J;'I;'I-.H$%:; !23O(()<=J  s f  *lgf+Pg@ QaOaA@bSAB TgRgCBhNCD O]M]ED^KEJ LU+KJVQKL RaPaMLbM\ ]\]d   ed!el mlmt utu| }|}D 
EDEL %%ML&Ml mlgmv hrfrwvswLD |$D
..
C.)L~T*H JU  	: GI/Ax899	: // .qc23
s1   A1G AG? 	G<G77G<?H7H22H7)ossysr5   r   
weasyprintr   ior   r2   pathappendcnxpdor   r   r        r   <module>rX      s;    	 
      ; < !%fPMrW   