ó
ð¬jWc           @   s  d  d l  m Z m Z m Z d  d l m Z m Z m Z d  d l m	 Z	 m
 Z
 d  d l m Z m Z m Z d  d l m Z d  d l m Z m Z m Z d  d l Td  d l Td  d l Td  d l Td  d l Z d  d l Z d  d l Z d  d l Td  d l Td  d l Td  d l Td  d l Z 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* e
 d
 ƒ d „  ƒ Z+ e
 d
 ƒ d „  ƒ Z, e
 d
 ƒ d „  ƒ Z- e
 d
 ƒ d „  ƒ Z. e
 d
 ƒ d „  ƒ Z/ e
 d
 ƒ d „  ƒ Z0 e
 d
 ƒ d „  ƒ Z1 e
 d
 ƒ d „  ƒ Z2 d S(   iÿÿÿÿ(   t   rendert   render_to_responset   get_object_or_404(   t   RequestContextt   loadert   Context(   t   login_requiredt   permission_required(   t   HttpResponseRedirectt   Http404t   HttpResponse(   t   reverse(   t   datetimet   datet   time(   t   *Nc         C   s  g  } x| D]ü} | j  r | j  } | j d k r	| j } | j | j } | j t d d ƒ } | j d k rŒ | j t d d 
ƒ } n@ | j d k rµ | j t d d 
ƒ } n | j t d d	 
ƒ } d
 | j | j	 d ƒ f }	 d | j
 ƒ  | j | j f }
 t d | d | d |	 d | j d | j d | d |
 d d d | d | d t j ƒ  ƒ } | j ƒ  | | _ | j ƒ  d
 t j | j	 d ƒ f } t d | d | d | j d | d d d | ƒ } | j ƒ  y³ t j d d ƒ } | j d  d  d! d  ƒ | j d" t j ƒ  j	 d# ƒ ƒ t t j j t j d$ | j ƒ d% ƒ } t j  d& i | d' 6d( t! |  ƒ ƒ} | j" | | ƒ | j# ƒ  Wn n Xd$ | j | _$ | j ƒ  t% d | d | j d) | j ƒ } | j ƒ  y t j d d ƒ } | j d  d  d! d  ƒ t t j j t j d* | j ƒ d% ƒ } t  d+ i | d, 6d( t! |  ƒ ƒ} | j" | | ƒ | j# ƒ  Wn n Xd* | j | _$ | j ƒ  t& j' d- d  d. |  d | d | d/ d d' | d, | d0 t) ƒ t* d | d1 d2 d3 d4 d5 d6 t+ d7 ƒ ƒ } | j ƒ  | j, | ƒ q	q q W| S(8   Nt   currentt   daysi   s   3-monthst   monthsi   s   6-monthsi   i   s   %s Membership Subscription (%s)s   %B %Ys   %s %s %st   membert   member_typet   subscriptiont   amountt   discountt   totalt
   invoice_tot   statust   pendingt
   start_datet   expiry_datet   invoice_createdt   namet   amount_paidt   payment_types   Direct Debitt   member_subscriptiont   calmdigitalt    dc33e7c4525620565185d0a00d90b8f0t   50t   0su   <p style="font-size:12px; text-align:center;">The Society for Vascular Technology of Great Britain and Ireland %s</p>s   %d/%m/%Ys*   members/receipts/membership_renewal_%s.pdft   wbs&   members/receipts/view-receipt-pdf.htmlt   receiptt   context_instancet   end_dates2   members/certificates/membership_certificate_%s.pdfs'   members/certificates/view-cert-pdf.htmlt   certificatet   sendert   requestt   methodt   notify_admint   types   account-notificationt   titles   Membership Renewedt   textsy   Your membership has been successfully renewed for 12 months.<br/>Visit <a href="%s">My Receipts</a> to view your receipt.t   my_receipts(-   R   t   member_statusR   t   renewal_feet   dd_discountR   t   relativedeltat   subscription_lengthR   t   strftimet   get_title_displayt
   given_namet   surnamet   MemberSubscriptionR   t   todayt   savet   settingst   WEBSITE_NAMEt   ReceiptR   t   pdfcrowdt   Clientt   setPageMarginst   setFooterHtmlt   opent   ost   patht   joint
   MEDIA_ROOTt   idR   t   render_to_stringR   t   convertHtmlt   closet   filet   Certificatet   renewal_confirmationt   sendt   Nonet   Falset   UserActivityR   t   append(   R-   t   direct_debitst   members_renewedt   direct_debitR   R   R   R   R*   t   subscription_namet   invoice_to_nameR"   t   receipt_nameR(   t   clientt   output_filet   htmlR+   t   notification(    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   renew_direct_debits   s~    					
	
0
 (%
!
("
:+
s   admin_users.can_access_membersc         C   s]   t  j j d d ƒ j d ƒ } t  j j d d ƒ j d d ƒ } t |  d i | d 6| d 6ƒ S(	   NR   R   s   -createdR   t   member__surnames.   admin/members/direct_debits/direct-debits.htmlt   pending_direct_debitst   current_direct_debits(   t   MemberDirectDebitt   objectst   filtert   order_byR    (   R-   Rd   Re   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyRX   u   s    !c         C   s5   t  j j d d ƒ j d ƒ } t |  d i | d 6ƒ S(   NR   t   archivedRc   s7   admin/members/direct_debits/archived-direct-debits.htmlt   archived_direct_debits(   Rf   Rg   Rh   Ri   R    (   R-   Rk   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyRk   ~   s    c      	   C   s   t  j j d d ƒ j d d ƒ } t d d ƒ } d | d <t j | d	 t j ƒ} xÇ | D]¿ } | j j	 r˜ | j j	 j
 | j j	 j } d
 | d } n d } | j rÅ t | j j ƒ j d ƒ } n d } | j g  | j | j | j | | | j f D] } t | ƒ j d ƒ ^ qö ƒ qY W| S(   NR   R   Rc   s   -createdt   content_typeR2   s&   attachment; filename=direct_debits.txts   Content-Dispositiont   quotings   %.0fid   i    i   t   000000s   utf-8(   Rf   Rg   Rh   Ri   R
   t   csvt   writert	   QUOTE_ALLR   R   R5   R6   t   strt   membership_numbert   zfillt   writerowt   ac_namet   ac_not	   sort_codet
   submissiont   unicodet   encode(   R-   Re   t   responseRp   RZ   R   Rs   t   s(    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   download_direct_debits†   s    !
	Qc   	   	   C   s,  t  j ƒ  } t j j d d ƒ j d d ƒ } t d d ƒ } d | d <t j | d	 t j	 ƒ} xÇ | D]¿ } | j
 j r¤ | j
 j j | j
 j j } d
 | d } n d } | j
 rÑ t | j
 j ƒ j d ƒ } n d } | j g  | j | j | j | | | j f D] } t | ƒ j d ƒ ^ qƒ qe W| S(   NR   R   Rc   s   -createdRl   R2   s.   attachment; filename=pending_direct_debits.txts   Content-DispositionRm   s   %.0fid   i    i   Rn   s   utf-8(   R   R>   Rf   Rg   Rh   Ri   R
   Ro   Rp   Rq   R   R   R5   R6   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   Rz   R{   (	   R-   R>   Re   R|   Rp   RZ   R   Rs   R}   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   download_pending_direct_debits£   s    !
	Qc         C   s;   t  j j d d ƒ } t |  | ƒ } t |  d i | d 6ƒ S(   NR   R   s0   admin/members/direct_debits/members_renewed.htmlRY   (   Rf   Rg   Rh   Rb   R    (   R-   RX   RY   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   process_direct_debits¿   s    c         C   sU   t  j ƒ  } | t d d 
ƒ } t j j d | ƒ j d ƒ } t |  d i | d 6ƒ S(   NR   i   t   member__expiry_date__ltet   member__expiry_dates7   admin/members/direct_debits/expiring-direct-debits.htmlt   expiring_direct_debits(   R   R>   R7   Rf   Rg   Rh   Ri   R    (   R-   R>   t
   two_monthsRƒ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyRƒ   È   s    c   
   	   C   s=  t  j ƒ  } | t d d 
ƒ } t j j d | ƒ j d ƒ } t d d ƒ } d | d <t j	 | d	 t j
 ƒ} xÇ | D]¿ } | j j rµ | j j j | j j j } d
 | d } n d } | j râ t | j j ƒ j d ƒ } n d } | j g  | j | j | j | | | j f D] }	 t |	 ƒ j d ƒ ^ qƒ qv W| S(   NR   i   R   R‚   Rl   R2   s/   attachment; filename=expiring_direct_debits.txts   Content-DispositionRm   s   %.0fid   i    i   Rn   s   utf-8(   R   R>   R7   Rf   Rg   Rh   Ri   R
   Ro   Rp   Rq   R   R   R5   R6   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   Rz   R{   (
   R-   R>   R„   Rƒ   R|   Rp   RZ   R   Rs   R}   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   download_expiring_direct_debitsÓ   s     
	Qc         C   s[   t  j ƒ  } | t d d 
ƒ } t j j d | ƒ } t |  | ƒ } t |  d i | d 6ƒ S(   NR   i   R   s0   admin/members/direct_debits/members_renewed.htmlRY   (   R   R>   R7   Rf   Rg   Rh   Rb   R    (   R-   R>   R„   Rƒ   RY   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   process_expiring_direct_debitsð   s
    c         C   sÛ   t  ƒ  } |  j rÄ t  |  j ƒ } | j ƒ  rÄ yw | j d t ƒ } t j j d | j d d ƒ } | ry t	 j
 |  d ƒ n* | j ƒ  t	 j |  d ƒ t t d ƒ ƒ SWqÁ t	 j
 |  d ƒ qÁ XqÄ n  t |  d	 i | d
 6ƒ S(   Nt   commitR   R   R   s4   Sorry, A Direct Debit alrrady exists for this members   Direct Debit has been savedt   admin_members_direct_debitss   Could not save direct debits1   admin/members/direct_debits/add-direct-debit.htmlt   direct_debit_form(   t   AdminAddDirectDebitFormt   POSTt   is_validR?   RU   Rf   Rg   Rh   R   t   messagest   errort   successR   R   R    (   R-   R‰   RZ   t   existing_direct_debits(    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   add_direct_debitü   s    		
c         C   s)   t  t d | ƒ} t |  d i | d 6ƒ S(   NRL   s2   admin/members/direct_debits/view-direct-debit.htmlRZ   (   R   Rf   R    (   R-   RL   RZ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   view_direct_debit  s    c         C   s   t  t d | ƒ} y9 d | _ d | _ d | _ | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt	 t
 d d | j g ƒƒ S(   NRL   t    s)   Details Marked as Current and old removeds!   Could not mark details as currentt   admin_members_view_direct_debitt   args(   R   Rf   t   old_sort_codet   old_ac_namet	   old_ac_noR?   R   R   RŽ   R   R   RL   (   R-   RL   RZ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   remove_old_direct_debit  s    			
c         C   s¹   t  t d | ƒ} t d | ƒ } |  j r› t |  j d | ƒ} | j ƒ  r› y0 | j ƒ  } t j |  d ƒ t t	 d ƒ ƒ SWq˜ t j
 |  d ƒ q˜ Xq› n  t |  d i | d 6| d 6ƒ S(	   NRL   t   instances   Direct Debit has been savedRˆ   s   Could not save direct debits2   admin/members/direct_debits/edit-direct-debit.htmlRZ   R‰   (   R   Rf   t   AdminEditDirectDebitFormR‹   RŒ   R?   R   R   R   R   RŽ   R    (   R-   RL   RZ   R‰   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   edit_direct_debit2  s    	c         C   sZ   t  t d | ƒ} y | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t d ƒ ƒ S(   NRL   s   Direct Debit Deleteds   Could not delete Direct Debitt$   admin_members_archived_direct_debits(   R   Rf   t   deleteR   R   RŽ   R   R   (   R-   RL   RZ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   delete_direct_debitI  s    
c         C   s‰   t  t d | ƒ} yI d | _ | j ƒ  t j |  d t d d | j j g ƒ| j f ƒ Wn t j	 |  d t ƒ n Xt
 t d ƒ ƒ S(   NRL   R   s1   Direct debit is activated for <a href="%s">%s</a>t   view_memberR•   s,   Could not mark Direct Debit activated for %sR   (   R   Rf   R   R?   R   R   R   R   RL   RŽ   R   (   R-   RL   RZ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   activate_direct_debitX  s    	
6c         C   s•   t  t d | ƒ} yI d | _ | j ƒ  t j |  d t d d | j j g ƒ| j f ƒ Wn t j	 |  d t ƒ n Xt
 t d d | j g ƒƒ S(   NRL   R   s1   Direct debit is confirmed for <a href="%s">%s</a>R    R•   s,   Could not mark Direct Debit confirmed for %sR”   (   R   Rf   R   R?   R   R   R   R   RL   RŽ   R   (   R-   RL   RZ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   confirm_direct_debith  s    	
6c         C   sŒ   t  t d | ƒ} yI d | _ | j ƒ  t j |  d t d d | j j g ƒ| j f ƒ Wn t j	 |  d | j ƒ n Xt
 t d ƒ ƒ S(   NRL   Rj   s0   Direct debit is archived for <a href="%s">%s</a>R    R•   s+   Could not mark Direct Debit archived for %sRˆ   (   R   Rf   R   R?   R   R   R   R   RL   RŽ   R   (   R-   RL   RZ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   archive_direct_debity  s    	
6c         C   sŒ   t  t d | ƒ} yI d | _ | j ƒ  t j |  d t d d | j j g ƒ| j f ƒ Wn t j	 |  d | j ƒ n Xt
 t d ƒ ƒ S(   NRL   t   17s@   Direct debit has been marked as Existing for <a href="%s">%s</a>R    R•   s.   Could not mark Direct Debit as Existing for %sRˆ   (   R   Rf   Ry   R?   R   R   R   R   RL   RŽ   R   (   R-   RL   RZ   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   mark_existing_direct_debitŠ  s    	
6c         C   s†   t  t d | ƒ} t |  | g ƒ } | rf | d } t j |  d | t d d | j j g ƒf ƒ n t j |  d ƒ t	 t d ƒ ƒ S(   NRL   i    s<   Member %s Renewed Successfully <a href="%s">View Profile</a>R    R•   s   Could not Renew Membert$   admin_members_expiring_direct_debits(
   R   Rf   Rb   R   R   R   R   RL   RŽ   R   (   R-   RL   RZ   RY   R   (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   process_direct_debit›  s    
2(3   t   django.shortcutsR    R   R   t   django.templateR   R   R   t   django.contrib.auth.decoratorsR   R   t   django.httpR   R	   R
   t   django.core.urlresolversR   R   R   R   t   dateutil.relativedeltat   modules.members.adminformst   modules.members.modelst   modules.payments.modelst   randomRo   t   stringt   modules.core.decoratorst   modules.core.functionst   modules.members.signalst   modules.members.functionsRC   Rb   RX   Rk   R~   R   R€   Rƒ   R…   R†   R‘   R’   R™   Rœ   RŸ   R¡   R¢   R£   R¥   R§   (    (    (    sF   /var/www/svtgbi.org/svtgbi/modules/members/direct_debits/adminviews.pyt   <module>   sD   



$



	Y		