3

\S	                 @   s   d dl Z d dlmZ d dlmZ d dlmZm	Z	 eddZ
eddZeddZe	d	d
Ze	ddZG dd deZG dd deZG dd de
ZdS )    N)Decimal)gettext_lazy)	get_class	get_modelzdashboard.reports.reportsReportGeneratorReportCSVFormatterReportHTMLFormatterofferConditionalOfferorderOrderDiscountc               @   s   e Zd ZdZdd ZdS )OfferReportCSVFormatterz!conditional-offer-performance.csvc             C   sL   | j |}tdtdg}|j| x"|D ]}||d g}|j| q*W d S )NOfferzTotal discounttotal_discount)get_csv_writer_writerow)selfresponseofferswriter
header_rowr	   row r   3/var/www/html/oscar2019/oscar/apps/offer/reports.pygenerate_csv   s    



z$OfferReportCSVFormatter.generate_csvN)__name__
__module____qualname__filename_templater   r   r   r   r   r      s   r   c               @   s   e Zd ZdZdS )OfferReportHTMLFormatterz,dashboard/reports/partials/offer_report.htmlN)r   r   r   r   r   r   r   r   r        s   r    c               @   s*   e Zd ZdZedZeedZdd Z	dS )OfferReportGeneratorzconditional-offerszOffer performance)CSV_formatterHTML_formatterc             C   s   t jj }| jr|j| jd}| jr>|j| jtjdd d}i }xt|D ]l}|j|kryt	j}|j
|jd}W n t	jk
r   wHY nX |tdd||j< ||j d  |j7  < qHW | jjt|j S )	N)Zorder__date_placed__gte   )days)Zorder__date_placed__lt)idz0.00)r	   r   r   )r   _default_managerall
start_datefilterend_datedatetime	timedeltaoffer_idr
   getDoesNotExistDamount	formattergenerate_responselistvalues)r   qsoffer_discountsdiscountZ
all_offersr	   r   r   r   generate-   s$    


zOfferReportGenerator.generateN)
r   r   r   coder   descriptionr   r    
formattersr:   r   r   r   r   r!   $   s
   r!   )r,   decimalr   r1   django.utils.translationr   r   oscar.core.loadingr   r   r   r   r   r
   r   r   r    r!   r   r   r   r   <module>   s   


