
    Jiw                         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mZ d dl	m
Z
 d dlmZ  ej        d          Z G d de
          Zdedefd	Zded
edefdZdS )    N)FPDF)settingszpdf-generatorc                       e Zd Zd Zd ZdS )ExecutiveReportPDFc                 \   |                      ddd           |                     dddddd           |                      dd	d           t          j                                                            d
          }|                     ddd| ddd           |                     d           d S )NArialB   r   
   z"Resumen Ejecutivo Felizia - Agrota   CIz%Y-%m-%d %H:%M   zGenerado el: )set_fontcelldatetimenowstrftimeln)selfnow_strs     vc:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\agent\utils\pdf_generator.pyheaderzExecutiveReportPDF.header   s    gsB'''		!R=q!SIIIgsB'''#''))223CDD		!Q1111a===




    c                     |                      d           |                     ddd           |                     ddd|                                  ddd           d S )	Nir   r      r   r   u   Página r   )set_yr   r   page_no)r   s    r   footerzExecutiveReportPDF.footer   sZ    

3gsA&&&		!R4DLLNN44aC@@@@@r   N)__name__
__module____qualname__r   r    r   r   r   r      s7          A A A A Ar   r   metricsreturnc                    t          j        d           g d}|                     di                               dd          |                     di                               dd          |                     di                               dd          g}g d	}t          j        |||
           t          j        d           t          j        d           t          j        ddd           t          j                     t          j	                    }t          j
        |d           t          j                     |                    d           |                                S )uF   Genera un gráfico de barras comparativo simple de los valores brutos.)      )figsize)zUtilidad BrutazCosto PersonalzVal. RecuperadoVENTAS_UTILIDAD_BRUTA_MES	valor_rawr   TALENTO_COSTO_PERSONAL_MESCARTERA_VALOR_RECUPERADO_MES)z#4CAF50z#F44336z#2196F3)coloru)   Comparativa Básica del Mes (Referencial)z	Monto ($)yz--gffffff?)axis	linestylealphapng)format)pltfiguregetbartitleylabelgridtight_layoutioBytesIOsavefigcloseseekread)r$   nombresvalorescoloresbufs        r   crear_grafico_en_memoriarG      sC   Jv FEEG/4488aHH0"5599+qII2B77;;KKKG 0//GGGWG,,,,I9:::J{H#S1111
*,,CKE""""IKKKHHQKKK88::r   text_conclusionc                 	  K   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           |                                 |                    d           	 t          |           }	ddl}
|
                    dd          }|                    |	           |                                 |                    |j        dd !           t#          j        |j                   n4# t&          $ r'}t(                              d"|            Y d}~nd}~ww xY w|                    d           |                    ddd           |                    ddd#d           |                    dd	d$           |                    dd          	                    d          }|                    dd%|           |                    d&'                              d          }t0          j        }d(t5          j                    j        dd          d)}t(                              d*| d+           	 t=          j                    4 d{V }d,||d-fi}|                     ||d./           d{V }|!                                 |"                                }|                    d0          p>|                    d1          p)|                    d2          p|                    d3          }|s4t(                              d4|            d5| cddd          d{V  S |cddd          d{V  S # 1 d{V swxY w Y   dS # t&          $ r'}t(                              d6| d7|            |d}~ww xY w)8um   
    Genera el PDF, inyecta la gráfica, sube el archivo a /upload_document 
    y retorna la URL final.
    r   r	      r   r   zIndicadores Claver   )r             d   r   	IndicadorT)borderfill2   Valorlabelvalor_textozN/Dlatin1replace)rQ   r   NFz.png)deletesuffix      )xwu#   Error generando gráfico para PDF: zConclusiones Generales   r'   S)destResumen_Ejecutivo_z.pdfu   ⏳ Subiendo reporte a: z...filezapplication/pdfg      N@)filestimeouturllinkdownload_urlfile_urlu-   El servidor no retornó url válida en JSON: z$https://[URL_NO_ENCONTRADA_EN_JSON]/u   ❌ Error al subir PDF a z: )#r   add_pager   r   set_fill_colorr   itemsr7   encodedecoderG   tempfileNamedTemporaryFilewriter@   imagenameosunlink	Exceptionloggererror
multi_celloutputr   UPLOAD_DOCUMENT_URLuuiduuid4hexinfohttpxAsyncClientpostraise_for_statusjson)r$   rH   pdfkeydatarU   valclean_label	clean_valgrafico_bytesro   tmpe
clean_text	pdf_bytes
upload_url	file_nameclientrd   responsefile_public_urls                        r   %generate_and_upload_executive_summaryr   9   s     
 

CLLNNN LL#r"""HHQ'AH...LL"b!!!sC%%%HHS![H666HHRGADH111FFHHH ]]__ 
 
	T#&&hh}e,, ll8Y77>>xHHJJx33::8DD	aQ///Q	!,,,FF1III@099))v)FF		-   				#(bC	(((
	#( @ @ @>1>>????????@ FF1IIILL#r"""HHQ,H333LL"b!!! '')<<CCHMMJNN1a$$$ 


$$++H55I -J?TZ\\%5bqb%9???I
KK:::::;;;$&& 	# 	# 	# 	# 	# 	# 	#&i4EFGE#[[5$[OOOOOOOOH%%'''==??D"hhuoou&1A1AuTXXnE]E]uaeaiaijtauauO" JSTSSTTTIiII	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# #	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#    BBBqBBCCCsb   ?B	I	 	
I:I55I:R) *CR/R) RR) 
R  R) #R $R) )
S3"SS)rt   r|   r   loggingr   r=   matplotlib.pyplotpyplotr5   fpdfr   config.settingsr   	getLoggerrw   r   dictbytesrG   strr   r#   r   r   <module>r      s   				     				             $ $ $ $ $ $		?	+	+A A A A A A A A"d u    6S SPS SX[ S S S S S Sr   