Beispiel #1
0
class Discount:
	def __init__(self,request,code):
		self.request = request
		self.code = code 
		self.type = None
		self.discount  = None
		self.session_fundraiser = SessionVariable(request,'current_fundraiser').session_fundraiser()

	def check_if_generic_code(self):
		try:
			generic_code = GenericDiscount.objects.get(special_code=self.code)
			if generic_code.active == False:
				generic_code = False
			else:

				self.type = 'generic'
				self.discount = generic_code
		except:
			generic_code = False	

		return generic_code

	def check_if_single_code(self):
		try:
			single_code = SingleDiscount.objects.get(special_code=self.code)
			if single_code.active == False:
				single_code = False
			else:
				self.type = 'single'
				self.discount = single_code
		except:
			single_code = False	

		return single_code

	def is_valid(self):
		if self.check_if_generic_code():
			return self.check_if_generic_code()
		elif self.check_if_single_code():
			return self.check_if_single_code()
		else:
			return False
		

	def set_discount(self):
		if self.discount.percent and self.discount.dollars:
			discount = (self.session_fundraiser.total_cost() * self.discount.to_percent())
			discount += self.discount.dollars
			self.session_fundraiser.discount = discount 
			self.session_fundraiser.save()
		elif self.discount.percent:
			discount = (self.session_fundraiser.total_cost() * self.discount.to_percent())
			self.session_fundraiser.discount = discount
			self.session_fundraiser.save()
		elif self.discount.dollars:
			self.session_fundraiser.discount = self.discount.dollars
			self.session_fundraiser.save()
		else:
			return False

	def use_discount(self):

		if self.type:
			if self.discount.active == False:
				return False
			else:
				if self.type == 'single':
					self.discount.fundraiser = self.session_fundraiser
				
				self.discount.used += 1
				
				self.set_discount()

				if self.discount.expired():
					self.discount.active = False

				self.discount.save()

				return True