ó
Ô¬ÄVc           @   sÛ  d  d l  m Z m Z d  d l m Z m Z d  d l m Z d  d l m	 Z	 m
 Z
 m Z d  d l m Z d  d l m Z d  d l m Z m Z m Z d  d l Z d  d	 l Td  d	 l Td  d	 l Td  d	 l Td  d	 l Td  d	 l Td  d	 l Td  d	 l Te d
 ƒ d „  ƒ Z e d
 ƒ d „  ƒ Z e d
 ƒ d „  ƒ Z e d
 ƒ d „  ƒ Z e d
 ƒ d „  ƒ Z  e d
 ƒ d „  ƒ Z! e d
 ƒ d „  ƒ Z" e d
 ƒ d „  ƒ Z# e d
 ƒ d „  ƒ Z$ e d
 ƒ d „  ƒ Z% e d
 ƒ d „  ƒ Z& d S(   iÿÿÿÿ(   t   render_to_responset   get_object_or_404(   t   login_requiredt   permission_required(   t   settings(   t   HttpResponseRedirectt   Http404t   HttpResponse(   t   reverse(   t   messages(   t   datetimet   datet   timeN(   t   *s&   admin_users.can_access_meeting_bookingc         C   s†   t  t d | ƒ} t j j d | ƒ } t j j d | ƒ } t j j d | ƒ j d ƒ } t |  d i | d 6| d 6| d 6| d 6ƒ S(   Nt   idt   meetingt   names*   admin/meeting_booking/reports/reports.htmlt   sessionst   booking_typest   social_events(	   R   t   Meetingt   MeetingSessiont   objectst   filtert   MeetingBookingTypet   MeetingSocialEventt   order_byt   render(   t   requestt
   meeting_idR   R   R   R   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   meeting_reports   s
    c         C   sì   t  t d | ƒ} t j j d t d d d | ƒ j d ƒ } t d d ƒ } d	 | d
 <t j	 | ƒ } | j
 d d d d g ƒ xh | D]` } | j
 g  | j d | j | j | j f | j | j f D] } t | ƒ j d ƒ ^ qÂ ƒ q„ W| S(   NR   t   completet   statust   approvedR   s   -timet   content_types   text/csvs*   attachment; filename=meeting_delegates.csvs   Content-Dispositiont   Surnamet   Names	   Job Titles   Place of Works   %s %s %ss   utf-8(   R   R   t   MeetingBookingR   R   t   TrueR   R   t   csvt   writert   writerowt   surnamet   titlet
   given_namet	   job_titlet   hospitalt   unicodet   encode(   R   R   R   t   meeting_bookingst   responseR(   t   meeting_bookingt   s(    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_delegates$   s    *
^c      $   C   s¯  t  t d | ƒ} t j j d t d | ƒ j d d ƒ j d d ƒ j d ƒ } t d d	 ƒ } d
 | d <t	 j
 | ƒ } | j 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, g! ƒ xÂ| D]º} | j ƒ  } | j ƒ  } | j ƒ  }	 d- }
 x@ | D]8 } | j rId. |
 | j f }
 q$d/ |
 | j f }
 q$Wd- } x' | D] } d0 | | j | j f } qmWd- } x- |	 D]% } d1 | | j | j | j f } qW| j ƒ  } | j räd2 } n d3 } | rë| j g  | j | j | j | j | j j d4 ƒ | j | j | j | j  | j! | j" | j# | j$ | j% | j& | j' | j( | j) ƒ  |
 | | | j* ƒ  | | j+ | j! | j" | j, | j# | j% | j& | j- | j | j' f! D] } t. | ƒ j/ d5 ƒ ^ qÆƒ qí | j g  | j | j | j | j | j j d4 ƒ | j | j | j | j  | j! | j" | j# | j$ | j% | j& | j' | j( | j) ƒ  |
 | | | j* ƒ  | f D] } t. | ƒ j/ d5 ƒ ^ q…ƒ qí W| S(6   NR   R   R   R    t   rejectedt	   cancelleds   -timeR"   s   text/csvs)   attachment; filename=meeting_bookings.csvs   Content-Dispositiont   Titles
   Given NameR#   s   Email Addresst   Createdt   Institutions	   Job Titlet   Trustt   Hospitals	   Address 1s	   Address 2t   Townt   Countyt   Countryt   Postcodet	   Telephonet   Typet   Statust   Sessionst   Dayss   Social Eventss   Total Pricet   Paids   Invoice Organisations   Invoice Address 1s   Invoice Address 2s   Invoice Address 3s   Invoice Towns   Invoice Countrys   Invoice Postcodes   Invoice PO Numbers   Invoice Emails   Invoice Phonet    s   %s%s (Waiting List),s   %s%s,s	   %s %s %s,s   %s %sx %s %s,t   Yest   Nos   %H:%M %d/%m/%Ys   utf-8(0   R   R   R%   R   R   R&   t   excludeR   R   R'   R(   R)   t   get_session_bookingst   get_meeting_day_bookingst   get_social_eventst   waiting_listt   session_namet   meeting_day_namet
   price_paidt   quantityt   social_event_namet   get_invoicet   paidR+   R,   R*   t   email_addressR   t   strftimet   institutionR-   t   trustR.   t	   address_1t	   address_2t   townt   countyt   countryt   postcodet	   telephonet	   type_namet   get_status_displayt	   get_totalt   organisation_namet	   address_3t	   po_numberR/   R0   (   R   R   R   R1   R2   R(   R3   R   t   daysR   t   session_textt   sessiont   day_textt   dayt   events_textt   eventt   invoiceRU   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_bookings9   s:    <
p	#		ûÀc         C   sy  t  t d | ƒ} t j j d t d | ƒ j d d ƒ j d d ƒ j d ƒ } t d d	 ƒ } d
 | d <t	 j
 | ƒ } | j d d d d d d d d d d g
 ƒ xÑ | D]É } d | j | j | j f } | j ƒ  } d }	 x' | D] }
 d |	 |
 j |
 j f }	 qã W| j g  | j | j | | j | j | j | j ƒ  | j |	 | j ƒ  f
 D] } t | ƒ j d ƒ ^ qOƒ q¨ W| S(   NR   R   R   R    R6   R7   s   -timeR"   s   text/csvs/   attachment; filename=meeting_booking_badges.csvs   Content-Dispositions
   First NameR#   R$   R:   s   Hospital/OrganisationR=   s   Registrant Types   Booking Types   Days BookedRC   s   %s %s %sRG   s	   %s %s %s,s   utf-8(   R   R   R%   R   R   R&   RJ   R   R   R'   R(   R)   R+   R,   R*   RL   RP   RQ   RX   R.   R\   t   get_registrant_type_displayRa   Rb   R/   R0   (   R   R   R   R1   R2   R(   R3   R   Rg   Rj   Rk   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_badgesk   s    <
+oc         C   sj  t  t d | ƒ} t j j d t d | ƒ j d d ƒ j d d ƒ j d ƒ } t d d	 ƒ } d
 | d <t	 j
 | ƒ } | j d d d d d d d d g ƒ xÈ | D]À } | j rº d } n d } | j ƒ  } d }	 x! | D] }
 d |	 |
 j f }	 qÙ W| j g  | j ƒ  d | j | j f | j | j ƒ  | | j | j |	 f D] } t | ƒ j d ƒ ^ q@ƒ q¢ W| S(   NR   R   R   R    R6   R7   s   -timeR"   s   text/csvs=   attachment; filename=meeting_booking_dietary_requirements.csvs   Content-Dispositions   Membership NumberR$   t   EmailRC   RF   s   Dietary RequirementsRB   s   Days RH   RI   RG   s   %s %s,s   %s %ss   utf-8(   R   R   R%   R   R   R&   RJ   R   R   R'   R(   R)   RU   RL   RP   t   get_membership_numberR,   R*   RV   Rb   t   requirementsRa   R/   R0   (   R   R   R   R1   R2   R(   R3   RU   Rg   Rj   Rk   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_dietary_requirements‡   s     <
%		pc         C   s7  t  t d | ƒ} t j j d t d t d | ƒ j d d ƒ j d d ƒ j d ƒ } t	 d	 d
 ƒ } d | d <t
 j | ƒ } | j d d d d d d d d d g	 ƒ xŒ | D]„ } | j g  | j d | j | j | j f | j ƒ  | j | j | j | j | j | j ƒ  f	 D] } t | ƒ j d ƒ ^ qƒ q« W| S(   NR   R   RU   R   R    R6   R7   s   -timeR"   s   text/csvs,   attachment; filename=meeting_still_owing.csvs   Content-DispositionR#   R$   s   Membership Numbers   Registrant Typet	   Instutions	   Job Titles   Hospital/OrganisationR=   s   Amount Owings   %s %s %ss   utf-8(   R   R   R%   R   R   R&   t   FalseRJ   R   R   R'   R(   R)   R*   R+   R,   Rs   t   registrant_typeRX   R-   R.   R\   t   get_amount_outstandingR/   R0   (   R   R   R   R1   R2   R(   R3   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   still_owing¥   s    B
(‚c   
      C   s  t  t d | ƒ} t j j d t d | ƒ j d d ƒ j d d ƒ j d ƒ } t d d	 ƒ } d
 | d <t	 j
 | ƒ } | j d d d d d d d d d d d d d d g ƒ xË | D]Ã } | j } | j rÕ d } n d } | r´ | j g  d | j | j f | j ƒ  | j ƒ  | | j | j | j | j | j | j | j | j | j | j f D] }	 t |	 ƒ j d ƒ ^ qRƒ q´ q´ W| S(   NR   t   meeting_booking__completet   meeting_booking__meetingt   meeting_booking__statusR6   R7   s   -meeting_booking__timeR"   s   text/csvs)   attachment; filename=meeting_invoices.csvs   Content-DispositionR$   s   Membership Numbers   Amount OwingRF   s   Invoice Organisations   Invoice Address 1s   Invoice Address 2s   Invoice Address 3s   Invoice Towns   Invoice Countrys   Invoice Postcodes   Invoice PO Numbers   Invoice Emails   Invoice PhoneRH   RI   s   %s %ss   utf-8(   R   R   t   MeetingBookingInvoiceR   R   R&   RJ   R   R   R'   R(   R)   R3   RU   R,   R*   Rs   Ry   Rd   RZ   R[   Re   R\   R^   R_   Rf   RV   R`   R/   R0   (
   R   R   R   t   invoicesR2   R(   Rn   R3   RU   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyR   »   s    <
7			šc         C   sì   t  t d | ƒ} t  t d | ƒ} t j j d | d d ƒ } t d d ƒ } d | d <t j | ƒ } | j	 d	 d
 d g ƒ xh | D]` } | j
 }	 | j	 g  |	 j ƒ  d |	 j |	 j f |	 j f D] }
 t |
 ƒ j d ƒ ^ qÂ ƒ q„ W| S(   NR   Ri   R}   R!   R"   s   text/csvs2   attachment; filename=meeting_session_delegates.csvs   Content-Dispositions   Membership NumberR$   Rr   s   %s %ss   utf-8(   R   R   R   t   MeetingSessionBookingR   R   R   R'   R(   R)   R3   Rs   R,   R*   RV   R/   R0   (   R   R   t
   session_idR   Ri   t   session_bookingsR2   R(   t   delegateR3   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_session×   s    
	Uc   
      C   sã   t  t d | ƒ} t  t d | ƒ} t j j d | d d ƒ } t d d ƒ } d | d <t j | ƒ } | j	 d	 d
 d g ƒ x_ | D]W } | j	 g  | j
 ƒ  d | j | j f | j f D] }	 t |	 ƒ j d ƒ ^ q¹ ƒ q„ W| S(   NR   t   typeR    R!   R"   s   text/csvs/   attachment; filename=meeting_type_delegates.csvs   Content-Dispositions   Membership NumberR$   Rr   s   %s %ss   utf-8(   R   R   R   R%   R   R   R   R'   R(   R)   Rs   R,   R*   RV   R/   R0   (
   R   R   t   type_idR   R…   R1   R2   R(   R3   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_booking_typeí   s    
Uc         C   sì   t  t d | ƒ} t  t d | ƒ} t j j d | d d ƒ } t d d ƒ } d | d <t j | ƒ } | j	 d	 d
 d g ƒ xh | D]` } | j
 }	 | j	 g  |	 j ƒ  d |	 j |	 j f |	 j f D] }
 t |
 ƒ j d ƒ ^ qÂ ƒ q„ W| S(   NR   t   social_eventR}   R!   R"   s   text/csvs7   attachment; filename=meeting_social_event_delegates.csvs   Content-Dispositions   Membership NumberR$   Rr   s   %s %ss   utf-8(   R   R   R   t   MeetingSocialEventBookingR   R   R   R'   R(   R)   R3   Rs   R,   R*   RV   R/   R0   (   R   R   t   social_event_idR   Rˆ   t   social_event_bookingsR2   R(   t   social_event_bookingR3   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_social_event  s    
	Uc   	      C   sÑ   t  t d | ƒ} t j j d | d d ƒ } t d d ƒ } d | d <t j | ƒ } | j d	 d
 d g ƒ x_ | D]W } | j g  | j	 ƒ  d | j
 | j f | j f D] } t | ƒ j d ƒ ^ q§ ƒ qr W| S(   NR   Rx   R    R!   R"   s   text/csvs,   attachment; filename=meeting_member_type.csvs   Content-Dispositions   Membership NumberR$   Rr   s   %s %ss   utf-8(   R   R   R%   R   R   R   R'   R(   R)   Rs   R,   R*   RV   R/   R0   (	   R   R   t	   type_slugR   R1   R2   R(   R3   R4   (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   download_member_type  s    
U('   t   django.shortcutsR    R   t   django.contrib.auth.decoratorsR   R   t   django.confR   t   django.httpR   R   R   t   django.core.urlresolversR   t   django.contribR	   R
   R   R   R'   t   modules.core.decoratorst   modules.core.functionst   modules.meeting_booking.formst   modules.members.formst   modules.meeting_booking.modelst   modules.members.modelst   modules.payments.modelst   modules.meeting_booking.signalsR   R5   Ro   Rq   Ru   Rz   R   R„   R‡   R   R   (    (    (    sH   /var/www/svtgbi.org/svtgbi/modules/meeting_booking/reports/adminviews.pyt   <module>   s4   







2