o
    iv!                     @   s   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
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlZd dlmZ G dd dejZdS )    )viewsetsstatus)action)Response)IsAuthenticated)OportunidadDeVenta)Empresa)swagger_auto_schema)openapi)datetime)HttpResponseN)BytesIOc                
   @   s   e Zd ZegZedejdejdej	dejdejdej	dejdejdej	dgd	d
ide
ddgdddd Zedejdejdej	dejdejdej	dejdejdej	dgd	dide
ddgdddd ZdS )ReportsViewSetz,Obtiene el informe de Oportunidades de Venta
start_datezFecha inicio (YYYY-MM-DD))descriptiontypeend_datezFecha fin (YYYY-MM-DD)exportu/   Formato de exportación (opcional, ej: 'excel')   z-Lista de oportunidades con datos relacionados)operation_descriptionmanual_parameters	responsesFgetsales)detailmethodsurl_pathc                 C   s6  t j ddddjdd}|jd}|jd}|jd	}|r)|j|d
}|r1|j|d}|dkrtdd}dt	 
d d|d< t }|j}d|_g d}	||	 |D ]M}
||
j|
j|
jrk|
jjnd |
jr|
jj dt|
jdd  nd |
jr|
jjnd |
j|
jr|
j
dnd |
jr|
jjnd |
jr|
j
dnd g	 q\t }|| |d t| dd}dt	 
d d|d< |S g }|D ]D}
||
j|
j|
jr|
jjnd |
jr|
jj dt|
jdd  nd |
jr|
jjnd |
j|
jt|
dd |
jr|
jjnd |
jd
 qt |S )Nempresausuario_responsableestado_oportunidadcolumn_workflowTdeleted_at__isnullr   r   r   fecha_creacion__gtefecha_creacion__lteexcelAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetcontent_typez+attachment; filename=informe_oportunidades_%Y%m%d.xlsxContent-DispositionOportunidades)	IDNombrer   ResponsableEstadozValor EstimadozFecha CierreEtapa   Fecha Creación 	last_name %Y-%m-%dr   probabilidad)
idnombrer   r   estadovalorfecha_cierrer9   etapafecha_creacion)!r   objectsallselect_relatedfilterquery_paramsr   r   r   nowstrftimeopenpyxlWorkbookactivetitleappendr:   r;   r   r   getattrstripr   nombre_estadovalor_estimadofecha_estimada_cierrer    r@   r   saveseekreadr   )selfrequestquerysetr   r   export_formatresponsewbwsheadersopoutputdata r`   */var/www/html/crm_dreinet/reports/views.pysales_opportunity_report   sj   


(

(

z'ReportsViewSet.sales_opportunity_reportz)Obtiene el informe de Clientes (Empresas)z8Lista de clientes con datos relacionados o archivo Excelclientsc                 C   sv  t j ddddjdd}|jd}|jd}|jd	}td
|j  td|  |r8|j|d}|r@|j|d}|dkrtd tdd}dt	
 d d|d< t }|j}d|_g d}	||	 |D ]Q}
||
j|
j|
j|
jr|
jjnd t|
jdr|
jjnt|
jt|
jdr|
jjnt|
j|
jr|
jj dt|
jdd  nd |
jr|
jdnd |
jg	 qot }| | |!d t|" dd}dt	
 d d|d< |S g }|D ]M}
||
j|
j|
j|
jr|
jjnd t|
jdr|
jjnt|
jt|
jdr|
jjnt|
j|
jr-|
jj dt|
jdd  nd |
j|
jd	 qt#|S )N	provincia	localidadestado_empresar   Tr!   r   r   r   z$DEBUG CLIENTS REPORT: Query Params: z%DEBUG CLIENTS REPORT: Export Format: r#   r%   r'   z#DEBUG: Generating Excel for Clientsr(   r)   z&attachment; filename=informe_clientes_r+   r,   r-   Clientes)	r/   r0   CUITr2   	Provincia	Localidadr1   r4   u
   Direcciónr;   r5   r6   r7   r8   r   )	r:   r;   cuitr<   rd   re   r   r@   	direccion)$r   rA   rB   rC   rD   rE   r   printr   r   rF   rG   rH   rI   rJ   rK   rL   r:   r;   rk   rf   rO   hasattrrd   strre   r   rM   rN   r@   rl   r   rR   rS   rT   r   )rU   rV   rW   r   r   rX   rY   rZ   r[   r\   empr^   r_   r`   r`   ra   clients_report[   sn   


(

*
zReportsViewSet.clients_reportN)__name__
__module____qualname__r   permission_classesr	   r
   	ParameterIN_QUERYTYPE_STRINGr   rb   rq   r`   r`   r`   ra   r      s,    	@	r   )rest_frameworkr   r   rest_framework.decoratorsr   rest_framework.responser   rest_framework.permissionsr   !Models.oportunidad_de_venta_modelr   Models.Empresar   drf_yasg.utilsr	   drf_yasgr
   r   django.httpr   rH   ior   ViewSetr   r`   r`   r`   ra   <module>   s    