
    8gg                         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mZm	Z	m
Z
mZmZ d dlmZ d dlmZ dZi Zi ZdZde dZd	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    N)send_screenshotsend_websocket_messagevalida_escritura_loginvalida_escritura_gnp-seleccionar_opcion_desde_lista_con_validacionuniqid	cerrarTab)datetime)subirArchivoAS3z6/var/www/wsoft.com.mx/carteraplus-automatizador/files/gnp../sessions/gmm_.jsonz.https://portalintermediarios.gnp.com.mx/sesionc           
      R  K   | |vr	|i i d|| <   |||          d         vr	 t           j                            t                    r#|                    t          d           d {V }n|                    d           d {V }|||          d         |<   nB# t
          $ r5}t          | d|dt          |           d           d {V  Y d }~d S d }~ww xY w|||          d	         vrt||          d         |                                          d {V }|||          d	         |<   t          | d
d|dd           d {V  |	                    d           d {V  n||          d	         |         }t          d| |||           d {V }|rt          | ||           d {V  d S d S d S )N)browsercontextspagesr   T)storage_stateaccept_downloads)r   erroru#   Error al cargar la sesión de GNP: )typetab_idr   r   progresoGNPu   Cargando página...r   namer   estadoloadz6https://portalintermediarios.gnp.com.mx/home/dashboard)ospathexistssession_filenew_context	Exceptionr   strnew_pagewait_for_load_statevalidar_inicio_sesionr   )		websocketr   r   clients_contextsaseguradoracontextepagecontinuaOperacions	            M/var/www/wsoft.com.mx/carteraplus-automatizador/python/servicesgmm/gmm_gnp.pyinicializar_gmm_gnpr0      s     &&&.52PR"S"SY #I.z:::		%	% C++,Y]+^^^^^^^^++T+BBBBBBBB8?y!*-f55   "9?s1vv??/ / 	 	 	 	 	 	 	 	 	
 fffff %i0999#I.z:6BKKMMMMMMMMd59y!'*62"9'	/ / 	 	 	 	 	 	 	 	 	 $$V,,,,,,,,,, i(1&9d 44lnwy  BR  T_  `  `  `  `  `  `  `  ` 5 ItV44444444444W ;:H5 5s   A4B 
C!*CCc                 h  K   ||         d         |         }|                     | d           d {V  |                    d           d {V  t          j        d           d {V  |                    dd                                           d {V }|d	k    r9t          j        d
           d {V  |                    d                                           d {V  t          j        d
           d {V  |                    d                                           d {V  t          j        d
           d {V  |                    d                                           d {V  t          j        d
           d {V  |	                    dd                                           d {V  |                    d           d {V  |
                    d           d {V }d|v rt          |||           d {V S |d         dk    rt          ||||           d {V  dS )Nr   i )timeoutnetworkidle   divzwarningServicio temporalmentehas_textr      closez.perfil-cardu   Cerrar sesiónbuttonr   z() => window.location.hrefsesion
id_paquetegnp_gmm_individualT)gotor&   asynciosleeplocatorcountget_by_labelclickget_by_textget_by_roleevaluateiniciar_sesiongoToGNPTarifaActual)urlr(   r   r)   
form_loginr-   elementCount
url_actuals           r/   r'   r'   J   s     	)	$W	-f	5$		#v	&&&&&&&&&  /////////a||E4S|TTZZ\\\\\\\\,A
-




G
$
$
*
*
,
,,,,,,,,
-


,,~
&
&
,
,
.
........
-




+
,
,
2
2
4
44444444
-




8*:

;
;
A
A
C
CCCCCCCC

"
"=
1
11111111 ]]#?@@@@@@@@*	63CDDDDDDDDD,#777	63CZPPPPPPPPP	    c                   K   ||          d         |         }|rd}t           j                            t                    rt          j        t                     t          | dd|dd           d {V  |                    d           d {V  t          j        d           d {V  t          | ||           d {V  t          | d	|d
gd           d {V  dS d S )Nr   Fr   r   u   Se requiere iniciar sesión...r   r   r4   login_requiredr   )r   r   aseguradoras_requieren_login)
r   r   r    r!   remover   r&   r@   rA   r   )r(   r   r)   r-   sesionIniciadas        r/   rI   rI   m   s_     	)	$W	-f	5$	 N	w~~l## i
 0	- -          
"
"6
*
******** -


)T6
2
22222222 !',g- -          57 rO   c                    K   |          d                  }t           |           d {V  |                    dd                                           d {V  |                    ddd           d {V  t           |           d {V  t	          j        d	           d {V  |                    d
                              dd                                           d {V  t	          j        d	           d {V  t           |           d {V  |                    d
                              dd                                           d {V  t	          j        d	           d {V  t           |           d {V  	 |                    d
                              dd                                           d {V  t	          j        d	           d {V  t           |           d {V  t           dddd           d {V   fd}|                    d|           d S )Nr   headingzCotizador GMM Tarifa Actualr;   u   text=Procesando información...detachedi0u  )stater2   r4   #inlineFrameExampler:   zFuerza Productora RegularmenuitemzPlanes IndividualesTitularr   r   zCotizador disponibler   c                 ~   K   t          d| j        d           d {V  |                                  d {V  d S )Nr   )r   r   message)r   r]   dismiss)dialogr   r(   s    r/   handle_dialogz*goToGNPTarifaActual.<locals>.handle_dialog   s_      
 WvZ`Zh,i,i
j
jjjjjjjj
..

rO   r_   )	r   rG   rE   wait_for_selectorr@   rA   frame_locatorr   on)r(   r   r)   rL   r-   r`   s   ``    r/   rJ   rJ      s      	)	$W	-f	5$ 		4000000000 	)FGGMMOOOOOOOOO@
\abbbbbbbbb	4000000000a011==hMh=iiooqqqqqqqqqa	4000000000011==jOd=eekkmmmmmmmmma	4000000000* 	011==hY=WW]]_________a	4000000000y$	+ + 	 	             ''(M"""""rO   c                   K   t          d | j        D             d           }|                    d           d {V }g }|D ]}|                    d           d {V }t          |          dk    r\|d                                          d {V }|d                                          d {V }|r|r|                    ||d           |S )Nc              3   0   K   | ]}|j         d k    |V  dS inlineFrameExampleNr;   .0fs     r/   	<genexpr>z+extraer_datos_coberturas.<locals>.<genexpr>   /      IIa!&4H*H*H*H*H*H*HIIrO   ztr.MuiTableRow-roottdr8   r   r4   )nombrevalor)nextframesquery_selector_alllen
inner_textappend)r-   framefilas
resultadosfilaceldasrn   ro   s           r/   extraer_datos_coberturasr{      s(     
II4;III4
P
P%(()>??
?
?
?
?
?
?%*  d**400000000F 6{{aAY))++++++++f1I((********e 
 E 
 
 	 	 	
 
rO   c                 ~   K   t          d | j        D             d           }|                    d           d {V }|S )Nc              3   0   K   | ]}|j         d k    |V  dS rf   r;   rh   s     r/   rk   z0obtenerResultadosDeCotizacion.<locals>.<genexpr>   rl   rO   uh  
    () => {
      const resultado = {};

      // Buscar el elemento que contiene "Prima total" y extraer su valor
      const primaTotalLabel = Array.from(document.querySelectorAll("span")).find(el => el.textContent.trim() === "Prima total");
      if (primaTotalLabel) {
        const primaTotalValor = primaTotalLabel.nextElementSibling?.querySelector("span");
        if (primaTotalValor) {
          resultado.primaTotal = primaTotalValor.textContent.trim();
        }
      }

      // Buscar los diferentes tipos de pagos (único, trimestral, semestral, mensual, etc.)
      const pagos = Array.from(document.querySelectorAll("span")).filter(el => el.textContent.match(/\b(pago[s]? .+ de)\b/i)); // Patrón para capturar "pago" seguido de cualquier texto y "de"
      
      resultado.pagos = [];
      pagos.forEach(label => {
        const valorPago = label.nextElementSibling?.querySelector("span");
        if (valorPago) {
          resultado.pagos.push({
            tipo: label.textContent.trim(),
            valor: valorPago.textContent.trim()
          });
        }
      });

      return resultado;
    }
  )rp   rq   rH   )r-   rv   datas      r/   obtenerResultadosDeCotizacionr      sc      
II4;III4
P
P%~~    
 
 
 
 
 
$< 
+rO   c           
        K   |                      d                              |d          j                                         d {V  |                      d                              d                              d           d {V  |                      d                              d                              d           d {V  t          j        d           d {V  t          | |||||d|           d {V  |                      d                              d                              d	           d {V  d S )
NrY   TexactbodyTabSpacer4   FEscape)	rb   rF   firstrE   rB   pressr@   rA   r   )r-   r(   r   	form_datar   
id_seccioncampoindices           r/   precargaValoresPlanesr     sr     011==d$=OOU[[]]]]]]]]]01199&AAGGNNNNNNNNN01199&AAGGPPPPPPPPPa5dIvyZdfkmrtz{{{{{{{{{01199&AAGGQQQQQQQQQQQrO   c           	        K   ||          d         |         }d|v r'|d         }t          |dd|| |d           d {V }|sd S d|v r'|d         }t          |dd|| |d           d {V }|sd S t          | ||           d {V  |                    d	d
          r|                    dd                                           d {V  d
}t          j        d           d {V  t          | ||           d {V  t          j        d           d {V  	 |                    d                              d          	                    d          }	|	
                                 d {V dk    rd}nd
}n# t          $ r}
d
}Y d }
~
nd }
~
ww xY w|du rt          | dd|d           d {V  nt          | dd|dd           d {V  t          | d|dgd           d {V  |j                            d t           d!"           d {V  |d#         d$k    rt!          | |||           d {V  t          | ||           d {V  d S d S )%Nr   
correo_gnplabelu   Correo Electrónicocorreopassword_gnpu   Contraseñau   contraseñasubmit_loginFr:   u   Iniciar sesiónr;         r5   zcloseNo se puede iniciar sesir6   r4   r   Tr   uA   Error desconocido al intentar iniciar sesión. La URL no cambió.r   r]   r   r   r   u   Sesión iniciada con éxitor   login_hiddenr   )r   r   aseguradoras_ocultar_loginr   r   )r   r=   r>   )r   r   getrG   rE   r@   rA   rB   filternthrC   r#   r   r+   r   sessionrJ   )r(   r   r)   rL   r-   r   successpassworderrorSesionrB   r,   s              r/   handle_login_gnpr     s     	)	$W	-f	5$ Z%F*4:OQWYbdjltuuuuuuuuG f z!!.)H*4-S\^dfsttttttttG f 		4000000000^^NE** -3


8*;

<
<
B
B
D
DDDDDDDDK
-


)T6
2
22222222
-

U##**4S*TTXXYZ[[g}}							"	"   kkkkkk d"9V/ / 	 	 	 	 	 	 	 	 	 	 #9/	/ / 	 	 	 	 	 	 	 	 	 #9',g/ / 	 	 	 	 	 	 	 	 	 L&&,Mw,M,M,M&NNNNNNNNN	L	!%9	9	9!)V5EzRRRRRRRRR )T6
2
2222222222[-3 -3s   AE8 8
FF		Fc                   K   ||          d         |         }|                     d          }|d         D ]c}|d         dk    r nS|d         |k    rDt          d |j        D             d           }|dk    r#t          |dd	|d         | |d
           d {V  n|dk    r#t          |dd|d         | |d           d {V  n|dk    r#t          |dd|d         | |d           d {V  n|dk    r=t          |dd|d         | |d           d {V  t	          j        d           d {V  ne|dk    r|                    d                              d          }|                                 d {V }	|	r2|	d         }
|	d         }|	                    d| d|
 d           d {V  |                    d                              d          
                                 d {V  |                    d                              d                              d           d {V  |                    d                              d                              d           d {V  |d                                         d k    rD|                    d                              d!d"#          
                                 d {V  n|d                                         d$k    rD|                    d                              d!d%#          
                                 d {V  nbt          | d&d'| d(|d)           d {V  nB|d*k    r	 t!          j        |d         d+          }t!          j                    }|j        |j        z
  }|j        |j        f|j        |j        fk     r|d,z  }t          |dd-t-          |          | |d.           d {V  n# t.          $ r8}t          | d&d'| d/t-          |           |d)           d {V  Y d }~ntd }~ww xY w|d0k    re|                    d                              d1d23          
                                 d {V  |                    d                              d                              d           d {V  |                    d                              d                              d           d {V  t1          | ||           d {V  |                    d                              d!d4#          
                                 d {V  t	          j        d,           d {V  |                    d                              d5d63          
                                 d {V  t	          j        d,           d {V  d7|d8<   d9|d:<   d;|d<   d;|d<   d<|d<   d<|d<   t3          || ||d<d=|d,           d {V  d>|d<   d>|d<   t3          || ||d>d?|d@           d {V  dA|d<   dA|d<   t3          || ||dAdB|dC           d {V  dD|d<   dD|d<   t3          || ||dDdE|d           d {V  dF|d<   dF|d<   t3          || ||dFdG|dH           d {V   ne|dI         D ]}|d         |k    rt          dJ |j        D             d           }d|dK<   dL|                                v rn|dMk    r|                    d                              dN          
                                 d {V  t	          j        d@           d {V  |                    d                              dOdP#          
                                 d {V  t	          j        d,           d {V  |                    d                              dOdQ#          
                                 d {V  n|dRk    r!t7          dS           |                    d                              dOdT#          
                                 d {V  t	          j        dC           d {V  |	                    dU           d {V  t	          j        d,           d {V  t          dV |j        D             d           }|	                    dU           d {V  t	          j        d,           d {V  t9          |           d {V }t;          |           d {V }t	          j        d,           d {V  |                    d                              dWd63          
                                 d {V  |                                4 d {V }|	                    dX           d {V  t	          j        d,           d {V  t          dY |j        D             d           }|	                    dX           d {V  t	          j        d,           d {V  |                    d                              dZ          
                                 d {V  d d d           d {V  n# 1 d {V swxY w Y   |j         d {V }d[tA                       d\}tB           | }|"                    |           d {V  tG          | |d2d]           d {V }d^| }t          | d_|||||d`         da           d {V  tI          | ||           d {V   d S |dbk    r#tK          |||d                    d {V  |                    d                              |d         d23          j&        
                                 d {V  |                    d                              d                              d           d {V  |                    d                              d                              d           d {V  t	          j        d,           d {V  tO          || ||d=|d2           d {V  nR|dck    r#tK          |||d                    d {V  |                    d                              |d         d23          j&        
                                 d {V  |                    d                              d                              d           d {V  |                    d                              d                              d           d {V  t	          j        d,           d {V  tO          || ||d?|d2           d {V  n(|ddk    r!|                    d                              |d         d23          j&        
                                 d {V  |                    d                              d                              d           d {V  |                    d                              d                              d           d {V  t	          j        d,           d {V  tK          |||d                    d {V  tO          || ||dB|d2           d {V  	  nde|v r@|dRk    r:|de                                         tP          k    rt1          | ||           d {V  d S )fNr   campoModificadodatosro    rn   c              3   0   K   | ]}|j         d k    |V  dS rf   r;   rh   s     r/   rk   z+handle_datos_basicos_gnp.<locals>.<genexpr>m  /      MM!af8L.L.LA.L.L.L.LMMrO   r   zNombre(s) (Opcional)NombreapellidoPaternozPrimer apellido (Opcional)zApellido PaternoapellidoMaternozSegundo apellido (Opcional)zApellido MaternocodigoPostalu   Código Postal *u   Código Postal   generorY   u   GéneroxyzK
                (element) => {
                    window.scrollTo({ top: z, left: z# });
                }
            r   r   r   femeninooptionFemeninor;   	masculino	Masculinor   (u>   ) - Género no reconocido, solo se acepta Femenino o Masculinor   fechaNacimientoz%Y-%m-%dr4   zEdad *zEdad:z.) - Error al procesar la fecha de nacimiento: mostrarCamposAdicionalesPLANTr   PlatinozPlan - Fr>   r=   r   r*   circulomedicozSuma Aseguradaz#menu-id_sumaasegurada	Deduciblez#menu-id_deducibler8   	Coaseguroz#menu-id_coaseguror   zTipo de Suma Aseguradaz#menu-id_tipo_sumaaseguradau   Nivel de Tabulador Médicoz#menu-id_circulomedico   camposAdicionalesc              3   0   K   | ]}|j         d k    |V  dS rf   r;   rh   s     r/   rk   z+handle_datos_basicos_gnp.<locals>.<genexpr>  r   rO   opciones	separadorcontinuarCotizacion2r9   r:   zBorrar datosBorrarcotizarGMMGnpzw

==========================================INICIANDO COTIZACION CON GNP!!!==========================================

CotizarzV
          (element) => {
            window.scrollTo({ top: 0 })
          }
        c              3   0   K   | ]}|j         d k    |V  dS rf   r;   rh   s     r/   rk   z+handle_datos_basicos_gnp.<locals>.<genexpr>  s/      OOA:N0N0Na0N0N0N0NOOrO   u   Formato de Cotizaciónz^
            (element) => {
              window.scrollTo({ top: 0 })
            }
          c              3   0   K   | ]}|j         d k    |V  dS rf   r;   rh   s     r/   rk   z+handle_datos_basicos_gnp.<locals>.<genexpr>  s/      QQa!&<P2P2P2P2P2P2PQQrO   downloadcotizacion_gnp_z.pdfgmmz*https://wsoft1.s3.us-east-1.amazonaws.com/extraer_prima_texto
primaTotal)r   r   tablaarrCoberturasurlPDFprima_textocobBasicaSumaAseguradacobBasicaDeduciblecobBasicaCoaseguro
tab_active))r   rp   rq   r   r@   rA   rb   rF   bounding_boxrH   rE   rB   r   lowerrG   r   r
   strptimenowyearmonthdayr$   
ValueErrorr   r   rD   printr   r{   expect_downloadvaluer   RUTA_FOLDERsave_asr   r	   acomodarAxisr   r   r   )r(   r   r)   r   r-   campo_modificador   rv   elementr   r   r   fecha_nacimientofecha_actualedadr,   resultado_cotizacionr   download_infor   nombreArchivorutaArchivoruta_archivo_s3r   s                           r/   handle_datos_basicos_gnpr   d  s3     	)	$W	-f	5$]]#455! _ _eW~eX***MMt{MMMtTTe	X	%	%"42H%PW.Zcekmuvvvvvvvvvv000"42NPUV]P^`ikq  tF  G  G  	G  	G  	G  	G  	G  	G  	G  	G000"42OQVW^Q_ajlr  uG  H  H  	H  	H  	H  	H  	H  	H  	H  	H~--"42DeGnV_agiyzzzzzzzzzmAx''$$%:;;GG	RR$1133333333 		S!AS!A .. "-." "89" " "            !677CCINNTTVVVVVVVVV  !677??GGMMeTTTTTTTTT  !677??GGMMgVVVVVVVVV>!!Z//""#899EEhU_E``ffhh
h
h
h
h
h
h
h
h7^!!##{22""#899EEhU`Eaaggii
i
i
i
i
i
i
i
i&ya6aaa3 3          
 000	%.uW~zJJ
!,"%5%::$ ,"237G7MO_Oc6dddAID$T7Hc$iiTZ\cdd
d
d
d
d
d
d
d
d 	 	 	&yY6YYQTUVQWQWYY3 3              	 999  !677CCFRVCWW]]_________  !677??GGMMeTTTTTTTTT  !677??GGMMgVVVVVVVVViv666666666  !677CCHS\C]]cceeeeeeeee mA  !677CCIUZC[[aacccccccccmA"6	,#(	- )h(g)g*h#D)VYHXZrty{|}}}}}}}}}$g%h#D)VYUikprsttttttttt$g%h#D)VYUikprsttttttttt1g2h#D)VYH`b  BG  IJ  K  K  	K  	K  	K  	K  	K  	K  	K5g6h#D)VYHdf~  AF  HI  J  J  	J  	J  	J  	J  	J  	J  	Jew +z ,- s seX***MMt{MMMtTTeeJ 
(..00	0	0555  !677DDWMMSSUUUUUUUUUmA  !677CCHSaCbbhhjjjjjjjjjmA  !677CCHS[C\\bbdddddddddd..  L  	M  	M  	M  !677CCHS\C]]cceeeeeeeeemA mm    	 	 	 	 	 	 	
 mAOOOOOQUVVnn    	 	 	 	 	 	 	
 mA%B4%H%HHHHHHH6t<<<<<<<<mA   !677CCD\diCjjpprrrrrrrrr'')) 	[ 	[ 	[ 	[ 	[ 	[ 	[]          
 a  
 
 
 
 
 
 
 QQ4;QQQSWXX%           
 a  
 
 
 
 
 
 
 ""#899FFzRRXXZZ
Z
Z
Z
Z
Z
Z
Z	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[  ',,,,,,,8&((888$5m55{+++++++++ /;0@-QUW\ ] ]]]]]]]OoOO$Y''(-l;1
 1
   	 	 	 	 	 	 	 	6+;<<<<<<<<<7774g777777777  !677CCE'NZ^C__ekkmmmmmmmmm  !677??GGMMeTTTTTTTTT  !677??GGMMgVVVVVVVVVmA;D)VU^`xz  BF  G  G  	G  	G  	G  	G  	G  	G  	G  	G3334g777777777  !677CCE'NZ^C__ekkmmmmmmmmm  !677??GGMMeTTTTTTTTT  !677??GGMMgVVVVVVVVVmA;D)VU^`tv{  ~B  C  C  	C  	C  	C  	C  	C  	C  	C  	C333  !677CCE'NZ^C__ekkmmmmmmmmm  !677??GGMMeTTTTTTTTT  !677??GGMMgVVVVVVVVVmA4g777777777;D)VU^`tv{  ~B  C  C  	C  	C  	C  	C  	C  	C  	C

 ee +n Y#3#F#F$$&&'11ItV444444444&s,   BO$$
P&.-P!!P&C
i$$
i.	1i.	c                    K   d}|                      d           d {V  t          j        d           d {V  |                     d           d {V  t          j        d           d {V  |                      d| d           d {V  d S )Ni  zA
    (element) => {
      window.scrollTo({ top: 1025 })
    }
  r4   zA
    (element) => {
      window.scrollTo({ top: 2000 })
    }
  z1
    (element) => {
      window.scrollTo({ top: z })
    }
  )rH   r@   rA   )r-   rv   r   tops       r/   r   r   F  s     #  	 	       
 	a  	 	       
 	a "   	 	        rO   ) 
websocketsjsonr@   r   reservicesgmm.gmm_utilsr   r   r   r   r   r   r	   r
   utilsr   r   last_input_timescreenshot_tasksr   r!   urlLoginr0   r'   rI   rJ   r{   r   r   r   r   r    rO   r/   <module>r      s   ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z       ! ! ! ! ! !F 
0'000=05 05 05l  F  H@# @# @#D  4     DR R RA3 A3 A3P`	 `	 `	D2 2 2 2 2rO   