def _create_discount(self, discount, tickets): def select_tickets(discount): while True: print "For which tickets do you want to give %s(%s) %s discount codes?" % (discount['name']['data'], discount['email']['data'], discount['codes']['data']) for i, ticket in enumerate(tickets): print '\t' + str(i+1) + '.', ticket['name'] selected_tickets = [int(ticket.strip()) for ticket in raw_input("Please enter comma-separated numbers of the tickets: ").split(',')] try: for i, ticket in enumerate(selected_tickets): selected_tickets[i] = tickets[ticket - 1] return selected_tickets except IndexError: print "Invalid input..." codes = [] discount['percentage'] = {'data': 'true' if discount['type']['data'] == 'percentage' else 'false'} discount['start_date'] = {'data': date.today().strftime('%d-%b-%Y')} discount['max_limit'] = {'data': '1'} selected_tickets = select_tickets(discount) discount['tickets'] = {'data': selected_tickets} try: discount['codes']['data'] = int(discount['codes']['data']) except ValueError: discount['codes']['data'] = 1 for i in range(discount['codes']['data']): code = random_discount_code() discount['discount_name'] = { 'data': '.'.join(self.discount_files[self.discount_index].split('.')[:-1]) + ' %s %s' % (discount['email']['data'], i + 1)} codes.append(code) discount['code'] = {'data': code} self.doattend.create_discount(discount) return codes
def _discount_code(self, qty, name="Discount", percentage=True, value=100, ending=None): print "Generating discount code for %s people..." % qty code = random_discount_code() self.doattend.create_discount( dict( percentage=dict(data="true" if percentage else "false"), amt=dict(data=str(value)), start_date=dict(data=date.today().strftime("%m-%d-%Y")), end_date=dict(data=ending.strftime("%m-%d-%Y") if ending else date.today().strftime("%m-%d-%Y")), max_limit=dict(data=str(qty)), tickets=dict(data=self.selected_tickets), discount_name=dict(data=name), code=dict(data=code), ) ) print "Discount code generated..." return code