Subversion Repositories SmartDukaan

Rev

Rev 2121 | Rev 3376 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on: May 24, 2011
@author: Varun Gupta
'''

from shop2020.model.v1.user.impl.PromotionDataAccessors import initialize, create_promotion,\
    generate_coupons_for_promotion, apply_coupon, track_coupon_usage
from shop2020.model.v1.user.impl.PromotionRuleDataUtilities import get_coupon_usage_count_by_user
from shop2020.model.v1.user.impl import PromotionDataAccessors

class PromotionServiceHandler:
    
    def __init__(self, dbname='user', db_hostname='localhost'):
        initialize(dbname, db_hostname)
    
    def createPromotion(self, name, ruleExecutionSrc, startOn, endOn):
        '''
        Parameters:
        - name
        - ruleExecutionSrc
        - startOn
        - endOn
        '''
        try:
            create_promotion(name, ruleExecutionSrc, startOn, endOn)
        finally:
            PromotionDataAccessors.close_session()
    
    def getAllPromotions(self):
        try:
            pass
        finally:
            PromotionDataAccessors.close_session()
    
    def getPromotionById(self, promotionId):
        '''
        Parameters:
        - promotionId
        '''
        try:
            pass
        finally:
            PromotionDataAccessors.close_session()
    
    def generateCouponsForPromotion(self, promotionId, couponCode):
        '''
        Parameters:
        - promotionId
        - couponCode
        '''
        try:
            generate_coupons_for_promotion(promotionId, couponCode)
        finally:
            PromotionDataAccessors.close_session()
    
    def applyCoupon(self, couponCode, cartId):
        '''
        Parameters:
        - couponCode
        - cartId
        '''
        try:
            print 'Calling apply_coupon'
            return apply_coupon(couponCode, cartId)
        finally:
            PromotionDataAccessors.close_session()

    def trackCouponUsage(self, couponCode, transactionId, userId):
        '''
        Parameters:
        - couponCode
        - transactionId
        - userId
        '''
        try:
            track_coupon_usage(couponCode, transactionId, userId)
        finally:
            PromotionDataAccessors.close_session()
    
    def getCouponUsageCountByUser(self, couponCode, userId):
        '''
        Parameters:
        - couponCode
        - userId
        '''
        try:
            return get_coupon_usage_count_by_user(couponCode, userId)
        finally:
            PromotionDataAccessors.close_session()