3

\                 @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ ej	 Z
d dlmZ d dlmZ edd	ZG d
d deZG dd deZdS )    N)reverse)	mark_safe)global_preferences_registry)
unit_price)	get_model)Subscriptionoffer	Conditionc               @   s6   e Zd ZdZG dd dZdd Zdd Zdd	 Zd
S )FirstSubscriptionConditionz,Free V60 starter kit with first subscriptionc               @   s   e Zd ZdZdS )zFirstSubscriptionCondition.MetaTN)__name__
__module____qualname__proxy r   r   ?/var/www/html/oscar2019/offers/conditions/first_subscription.pyMeta   s   r   c             C   sT   t jj|jdj }d}x0|jj D ]"}|jjr$|jj	 j
dkr$d}P q$W | oR|S )N)userFz
coffee-bagT)r   objectsfilterownerexistslinesallproductsubscriptionget_product_classslug)selfr   baskethas_subscriptionhas_subscription_productliner   r   r   is_satisfied   s    z'FirstSubscriptionCondition.is_satisfiedc       	      C   s   t jj|jdj  }d}d}|jj }td }x*|D ]"}|jj	r6|jj
 jdkr6d}P q6W x|D ]}|jj|krbd}P qbW |o|o| S )N)r   F offers__hario_dripper_product_idz
coffee-bagT)r   r   r   r   r   r   r   global_preferencesr   r   r   r   pk)	r   r   r   Zno_subscriptionr    Zhas_hario_in_cartr   hario_pkr!   r   r   r   is_partially_satisfied    s    


z1FirstSubscriptionCondition.is_partially_satisfiedc             C   s"   t d }d}|d7 }t|j|S )Nr#   z'<h3>We got a welcome gift for you!</h3>z<p>Get a free V60 starter kit worth $10 with your first order! Click <a data-product-id={} id='add-hario' href='#'><strong>Here</strong></a> to the free kit to your shopping cart.</p>)r$   r   format)r   r   r   r&   messager   r   r   get_upsell_message0   s    z-FirstSubscriptionCondition.get_upsell_messageN)r   r   r   namer   r"   r'   r*   r   r   r   r   r
      s
   
r
   c               @   s.   e Zd ZdZG dd dZdd Zdd ZdS )	FirstSubscriptionDiscountz/Has First Subscription Product & No Starter Kitc               @   s   e Zd ZdZdS )zFirstSubscriptionDiscount.MetaTN)r   r   r   r   r   r   r   r   r   :   s   r   c             C   sd   t jj|jdj }d}d}x6|jj D ](}|jj }|j	dkrDd}|jj
r(d}q(W | ob|ob| S )z
        Checks
        1. Any prior subscriptions
        2. Subscription product in cart
        3. Starter kit in cart
        :param offer:
        :param basket:
        :return:
        )r   Fzstarter-kitsT)r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r    Zhas_stater_kitr!   product_classr   r   r   r"   =   s    


z&FirstSubscriptionDiscount.is_satisfiedc             C   s   dS )N r   )r   r   r   r   r   r   r*   R   s    z,FirstSubscriptionDiscount.get_upsell_messageN)r   r   r   r+   r   r"   r*   r   r   r   r   r,   7   s   r,   )operatordjango.urlsr   django.utils.safestringr   Zdynamic_preferences.registriesr   Zoscar.apps.offer.conditionsr   managerr$   Zoscar.core.loadingr   Zsubscription.modelsr   r	   r
   r,   r   r   r   r   <module>   s   
'