
    nʞj                     J    d Z ddlZddlmZ ddlZddlZd Zd Zd Zd Z	d Z
y)	u
  
Arma y envía los reportes internos (sección 7 del documento .docx):
- Alerta diaria: a cada encargado de sucursal (solo lo suyo) + a Osvaldo (todo).
- Resumen semanal: a Osvaldo, línea gerencial y encargados, con la foto completa.

Implementado por email (SMTP) porque es lo más simple de tener funcionando ya
en cualquier empresa. Si Track Mar prefiere que las alertas internas también
lleguen por WhatsApp, se puede reusar whatsapp.enviar_plantilla() acá mismo
con una plantilla interna (no dirigida a clientes).
    N)MIMETextc                 >    d| d    d| j                  d| d          S )Nu     - Cotización #cotizacion_id    — cliente cliente_nombre
cliente_idgetitems    XC:\Users\OVA\Downloads\Agente_Seguimiento_TrackMar_codigo\agente_seguimiento\reportes.py_texto_item_cotizacionr      s/    tO45]488L\^bco^pCqBrss    c                 >    d| d    d| j                  d| d          S )Nu     - Contacto en frío #contacto_idr   r   r   r	   r   s    r   _texto_item_contactor      s/    $T-%8$9txxP`bfgsbtGuFvwwr   c           	         d|  ddg}|r\|j                  dt        j                   dt        |       d       ||D cg c]  }t	        |       c}z  }|j                  d       |r\|j                  dt        j
                   dt        |       d       ||D cg c]  }t        |       c}z  }|j                  d       |rN|j                  d	t        |       d       ||D cg c]  }d
|d    d|d     c}z  }|j                  d       |s|s|s|j                  d       dj                  |      S c c}w c c}w c c}w )Nu   Alerta diaria — u0    — Agente de Seguimiento Comercial (Track Mar) u*   Cotizaciones sin seguimiento hace más de u    días (z):u0   Contactos en frío sin cotización hace más de z horas (zVisitas sin resultado cargado (z  - Visita #	visita_idz del fechau>   Sin novedades: los 3 ejes están al día en esta sucursal. ✔
)appendconfig$UMBRAL_DIAS_COTIZACION_SIN_ACTIVIDADlenr   )UMBRAL_HORAS_CONTACTO_FRIO_SIN_COTIZACIONr   join)sucursal_nombrecotizaciones_caidascontactos_caidosvisitas_sin_resultadolineasis         r   armar_alerta_diariar$      s   "?"33cdfhiFB6CnCnBoowx{  }P  yQ  xR  RT  U  	V6IJ6I)!,6IJJbHIyIyHz  {C  DG  HX  DY  CZ  Z\  ]  	^4DE4Dq'*4DEEb7<Q8R7SSUVWMbcMb\!K.!1qzlCMbccb#37LVW99V K F ds   D=E*Ec                     ddg}| D ]7  }|j                  |d    d|d    d|d    d|d	    d
|d    d|d    d       9 dj                  |      S )zresumen_por_sucursal: lista de dicts con
    {sucursal, semaforo_eje1, semaforo_eje2, semaforo_eje3, contactos_mes, objetivo_mes}uU   Resumen semanal — Agente de Seguimiento Comercial (Track Mar / División Repuestos)r   sucursalz: Eje1=semaforo_eje1u	    · Eje2=semaforo_eje2u	    · Eje3=semaforo_eje3z (contactos_mes/objetivo_mesu    contactos en frío este mes)r   )r   r   )resumen_por_sucursalr"   ss      r   armar_resumen_semanalr/   ,   s     fgijF!}oWQ%7$8	!OBTAU Vo&'r!O*<)=Qq?P>QQnp	
 "
 99Vr   c           
         t         j                  rt        d|  d| d| dd        y t        j                  j                  d      }t        t        j                  j                  dd            }t        j                  j                  d      }t        j                  j                  d	      }t        j                  j                  d
|      }t        |d      }||d<   ||d<   | |d<   t        j                  ||      5 }	|	j                          |	j                  ||       |	j                  || g|j                                d d d        y # 1 sw Y   y xY w)Nz[DRY-RUN] Email a u    — r   z<------------------------------------------------------------	SMTP_HOST	SMTP_PORT587	SMTP_USERSMTP_PASSWORDSMTP_REMITENTEzutf-8)_charsetSubjectFromTo)r   DRY_RUNprintosenvironr
   intr   smtplibSMTPstarttlsloginsendmail	as_string)
destinatario_emailasuntocuerpo	smtp_host	smtp_port	smtp_usersmtp_password	remitentemsgservers
             r   enviar_emailrP   8   s
   ~~"#5"6eF82fXRPVxXY

{+IBJJNN;67I

{+IJJNN?3M

/;I
6G
,CC	NCK"CI	i	+vY.	$6#7I 
,	+	+s   AEE)__doc__r@   email.mime.textr   r=   r   r   r   r$   r/   rP    r   r   <module>rT      s4   	  $ 	 tx&	Jr   