Beispiel #1
0
	def create_policy_dialog(self):

		table_data = declarations.define_tables()

		result = gadfly_utils.execute_sql_statement(db=self.db,
			sqlStatement=gadfly_utils.build_select_all_table_columns_statement(table_data,'store_info','1'),
			commit_after=1,
			leave_cursor_open=1,
			create_cursor_also=0)

		if result['status'] != 'success':
			print 'DB Error: Could not retrieve store info'
			return result

		self.policy_dialog = Pmw.Dialog(self._hull, buttons=('Ok',), defaultbutton='Ok', title='Order Policies')

		self.policy_data = Pmw.ScrolledText(
			self.policy_dialog.interior(),
			borderframe=1,
			text_padx=10,
			text_pady=10,
			text_wrap='word')

		order_policies = string.replace(result['result'][0][15],'<CR>','\n')

		self.policy_data.settext(order_policies)
		self.policy_data._textbox.configure(state='disabled')
		self.policy_data.pack(expand=1,fill=BOTH)
		self.policy_dialog.withdraw()
Beispiel #2
0
	def view_cart(self,display_customer_data=0):

		if self.cart == {}:
			self.info_dialog.configure(message_text='You have no items in your shopping cart!')
			self.info_dialog.activate()
			return

		else:

			table_data = declarations.define_tables()

			if display_customer_data:
				product_data_lines = 'First Name: ' + self.firstnametextvar.get() + '\n'
				product_data_lines = product_data_lines + 'Middle Initial: ' + self.initialtextvar.get() + '\n'
				product_data_lines = product_data_lines + 'Last Name: ' + self.initialtextvar.get() + '\n'
				product_data_lines = product_data_lines + 'Street Line 1: ' + self.streetline1textvar.get() + '\n'
				product_data_lines = product_data_lines + 'Street Line 2: ' + self.streetline2textvar.get() + '\n'
				product_data_lines = product_data_lines + 'City: ' + self.citytextvar.get() + '\n'
				product_data_lines = product_data_lines + 'State: ' + self.statetextvar.get() + '\n'
				product_data_lines = product_data_lines + 'Zip: ' + self.ziptextvar.get() + '\n'

				product_data_lines = product_data_lines + 'Card Number: ' + self.cardnotextvar.get() + '\n'
				product_data_lines = product_data_lines + 'Expiration Date: ' + self.expdatetextvar.get() + '\n'
				product_data_lines = product_data_lines + 'Payment Method: ' + self.payment_methodvar.get() + '\n\nItems Ordered:\n\n'

			else:
				product_data_lines = ''

			product_data_lines = product_data_lines + string.center('Id',10) + '  ' + string.center('Name',40) + '  ' +  string.center('Weight',6) + '  ' + string.center('Qty',3) + '  ' + string.center('Price',11) + '  ' + string.center('Total',11) + '\n'

			line_total = 0.0

			for product_id in self.cart.keys():
				result = gadfly_utils.execute_sql_statement(db=self.db,
					sqlStatement=gadfly_utils.build_select_all_table_columns_statement(table_data,'products',product_id),
					commit_after=1,
					leave_cursor_open=1,
					create_cursor_also=0)

				if result['status'] != 'success':
					print 'DB Error: Could not retrieve product info'
					return result

				product_data_lines = product_data_lines + '\n' + \
					string.center(result['result'][0][0],10) + '  ' + \
					string.center(result['result'][0][5],40) + '  ' + \
					string.center('%s lbs.' % (result['result'][0][8]),6) + '  ' + \
					string.center(`self.cart[product_id]`,3) + '  ' + \
					string.center('$%9.2f' % (result['result'][0][7]),11) + '  ' + \
					string.center('$%9.2f' % (self.cart[product_id] * float(result['result'][0][7])),11) + '\n'
				line_total = line_total + (self.cart[product_id] * float(result['result'][0][7]))

			product_data_lines = product_data_lines + '\n\nOrder Total: $'
			product_data_lines = product_data_lines + ('%9.2f' % (line_total))

		self.view_cart_data.settext(product_data_lines)
		self.view_cart_dialog.activate()
Beispiel #3
0
	def getProductTypes(self):
		result = gadfly_utils.execute_sql_statement(db=self.db,
			sqlStatement='SELECT DISTINCT category FROM products',
			commit_after=1,
			leave_cursor_open=1,
			create_cursor_also=0)

		if result['status'] != 'success':
			print 'DB Error: Could not retrieve product categories'
			return result

		product_types = []

		for i in xrange(0,len(result['result'])):
			product_types.append(result['result'][i][0])

		return {'status' : 'success', 'message' : "", 'result' : product_types}
Beispiel #4
0
	def getProductsOfType(self, product_type):

		result = gadfly_utils.execute_sql_statement(db=self.db,
			sqlStatement="SELECT id, description FROM products WHERE category = '%s'" % (product_type),
			commit_after=1,
			leave_cursor_open=1,
			create_cursor_also=0)

		if result['status'] != 'success':
			print 'DB Error: Could not retrieve products of type: %s' % (product_type)
			return result

		products = []

		for i in xrange(0,len(result['result'])):
			products.append({'db_key' : result['result'][i][0], 'name' : result['result'][i][1]})

		return {'status' : 'success', 'message' : "Retrieved products for types specified", 'result' : products}
Beispiel #5
0
	def display_product_info(self, name, db_key):

		table_data = declarations.define_tables()

		result = gadfly_utils.execute_sql_statement(db=self.db,
			sqlStatement=gadfly_utils.build_select_all_table_columns_statement(table_data,'products',db_key),
			commit_after=1,
			leave_cursor_open=1,
			create_cursor_also=0)
		if result['status'] != 'success':
			print 'DB Error: Could not retrieve product info'
			return result

		self.productidlabel.configure(text='Product Id:')
		self.productid.configure(image='',text=result['result'][0][0],font=default_font)
		self.productid.pack(side=LEFT)
		self.productdescription.configure(text=result['result'][0][5],font=default_font)
		if self.productimagedata:
			del self.productimagedata
		self.productimagedata = ImageTk.PhotoImage(Image.open('%s%s' % (imgs,result['result'][0][9])))
		self.productimage['image'] = self.productimagedata
		self.productlongdescription.configure(text=result['result'][0][6],
			font=default_font,
			wraplength=300)
		self.productlongdescription.pack(side=TOP)
		self.shippingweightlabel.configure(text='Shipping Weight:',font=default_font)
		self.shippingweightlabel.pack(side=LEFT,expand=NO)
		self.shippingweight.configure(text='%s lbs' % (result['result'][0][8]),font=default_font)
		self.shippingweight.pack(side=LEFT,expand=NO)
		self.productpricelabel.configure(text='Price:',font=default_font)
		self.productprice.configure(text="$ %9.2f" % (result['result'][0][7]),font=default_font)
		self.quantitylabel.pack(side=LEFT,expand=NO)

		# initialize quantity to 0
		self.quantitytextvar.set('0')

		self.quantitytext.pack(side=LEFT,expand=NO)
Beispiel #6
0
	def createProductDisplay(self):

		global default_font

		self.cart = {}
		table_data = declarations.define_tables()

		result = gadfly_utils.execute_sql_statement(db=self.db,
			sqlStatement=gadfly_utils.build_select_all_table_columns_statement(table_data,'store_info','1'),
			commit_after=1,
			leave_cursor_open=1,
			create_cursor_also=0)

		if result['status'] != 'success':
			print 'DB Error: Could not retrieve product categories'
			return result

		self.line1frame = self.createcomponent('line1frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line1frame.pack(side=TOP,fill=Y,expand=YES)

		self.productidlabel = self.createcomponent('productidlabel', (), None,
			Label,
			(self.line1frame,),
			background='white',
			foreground='black',
			font=default_font)

		self.productidlabel.pack(side=LEFT,fill=BOTH,expand=YES)

		self.productid = self.createcomponent('productid', (), None,
			Label,
			(self.line1frame,),
			background='white',
			font=default_font,
			foreground='black')

		self.productid.pack(side=LEFT,fill=BOTH,expand=YES)

		self.browser.productimagedata = ImageTk.PhotoImage(Image.open('%s%s' % (imgs,'store_logo.gif')))

		self.productimagedata = self.browser.productimagedata

		self.productid['image'] = self.browser.productimagedata

		self.line2frame = self.createcomponent('line2frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line2frame.pack(side=TOP,fill=Y,expand=YES)

		self.productdescription = self.createcomponent('productdescription', (), None,
			Label,
			(self.line2frame,),
			text='To Order by Phone Call: %s' % (result['result'][0][10]),
			font=default_font,
			background='white',
			foreground='black')

		self.productdescription.pack(side=TOP,expand=YES,fill=Y)

		self.line3frame = self.createcomponent('line3frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line3frame.pack(side=TOP,fill=Y,expand=YES)

		self.productimage = self.createcomponent('productimage', (), None,
			Label,
			(self.line3frame,),
			text=result['result'][0][2],
			font=default_font,
			background='white',
			foreground='black')

		self.productimage.pack(expand=YES,fill=Y)

		self.line4frame = self.createcomponent('line4frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line4frame.pack(side=TOP,fill=Y,expand=YES)

		self.productlongdescription = self.createcomponent('productlongdescription', (), None,
			Label,
			(self.line4frame,),
			font=default_font,
			background='white',
			foreground='black')



		self.line5frame = self.createcomponent('line5frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line5frame.pack(side=TOP,fill=Y,expand=YES)

		self.shippingweightlabel = self.createcomponent('shippingweightlabel', (), None,
			Label,
			(self.line5frame,),
			font=default_font,
			background='white',
			foreground='black')

		#self.shippingweightlabel.pack(side=LEFT,expand=YES,fill=Y)

		self.shippingweight = self.createcomponent('shippingweight', (), None,
			Label,
			(self.line5frame,),
			text='%s' % (result['result'][0][14]),
			font=default_font,
			background='white')

		#self.shippingweight.pack(side=LEFT,expand=YES,fill=Y)

		self.line6frame = self.createcomponent('line6frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line6frame.pack(side=TOP,fill=Y,expand=YES)

		self.productpricelabel = self.createcomponent('productpricelabel', (), None,
			Label,
			(self.line6frame,),
			font=default_font,
			background='white',
			foreground='black')

		self.productpricelabel.pack(side=LEFT,expand=YES,fill=Y)

		self.productprice = self.createcomponent('productprice', (), None,
			Label,
			(self.line6frame,),
			text='%s' % (result['result'][0][14]),
			wraplength=350,
			font=default_font,
			background='white')

		self.productprice.pack(side=LEFT,expand=YES,fill=Y)

		self.line7frame = self.createcomponent('line7frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line7frame.pack(side=TOP,fill=Y,expand=YES)

		self.quantitylabel = self.createcomponent('quantitylabel', (), None,
			Label,
			(self.line7frame,),
			text='Quantity:',
			font=default_font,
			background='white',
			foreground='black')

		#self.quantitylabel.pack(side=LEFT,fill=Y,expand=YES)

		self.quantitytextvar = StringVar()

		self.quantitytextvar.set('0')

		self.quantitytext = self.createcomponent('quantitytext', (), None,
			Pmw.EntryField,
			(self.line7frame,),
			value='0',
			validate= {"validator" : "numeric", "min" : 0, "max" : 999},
			entry_textvariable=self.quantitytextvar)
		self.quantitytext._entryFieldEntry.configure(width=3)

		self.line8frame = self.createcomponent('line8frame', (), None,
			Frame,
			(self.datasite,),
			background='white')

		self.line8frame.pack(side=TOP,fill=Y,expand=YES)

		self.copyrightimage = self.createcomponent('copyrightimage', (), None,
			Label,
			(self.line8frame,),
			background='white')


		self.browser.copyrightimagedata = ImageTk.PhotoImage(Image.open('%s%s' % (imgs,'linuxdenlogo.jpg')))

		self.copyrightimage['image'] = self.browser.copyrightimagedata

		self.copyrightimage.pack(side=RIGHT,padx=5)

		self.browser.quantitytext = self.quantitytext

		self.copyrightlabel = self.createcomponent('copyrightlabel', (), None,
			Label,
			(self.line8frame,),text='Copyright (c) 2000\nwww.linuXden.com\nAll Rights Reserved.',font=copyright_font,background='white',foreground='blue')

		self.copyrightlabel.pack(side=RIGHT)

		self.browser.copyrightlabel = self.copyrightlabel
		self.browser.copyrightimage = self.copyrightimage
		self.browser.productid = self.productid
		self.browser.productimage = self.productimage
		self.browser.productdescription = self.productdescription
		self.browser.productprice = self.productprice
		self.browser.quantitylabel = self.quantitylabel
Beispiel #7
0
	def create_customer_data_dialog(self):
		table_data = declarations.define_tables()

		result = gadfly_utils.execute_sql_statement(db=self.db,
			sqlStatement=gadfly_utils.build_select_all_table_columns_statement(table_data,'store_info','1'),
			commit_after=1,
			leave_cursor_open=1,
			create_cursor_also=0)

		if result['status'] != 'success':
			print 'DB Error: Could not retrieve store info'
			return result

		self.customer_data_dialog = Pmw.Dialog(self._hull, buttons=('Ok',), defaultbutton='Ok', title='Customer Data Entry')

		self.customer_data = Pmw.ScrolledFrame(
			self.customer_data_dialog.interior(),
			borderframe=1,
			usehullsize=1,
			hull_width = 400,
			hull_height = 220)

		self.customer_data.pack(expand=1,fill=BOTH)

		self.firstnametextvar = StringVar()
		self.initialtextvar = StringVar()
		self.lastnametextvar = StringVar()
		self.streetline1textvar = StringVar()
		self.streetline2textvar = StringVar()
		self.citytextvar = StringVar()
		self.statetextvar = StringVar()
		self.ziptextvar = StringVar()
		self.cardnotextvar = StringVar()
		self.expdatetextvar = StringVar()

		self.first_name = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'First Name:',
			value = '',
			validate = {'max' : 40},
			entry_textvariable=self.firstnametextvar)

		#self.first_name._entryFieldEntry.configure(width=40)

		self.initial = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Middle Initial:',
			validate = {'max' : 1},
			entry_textvariable=self.initialtextvar)

		self.last_name = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Last Name:',
			validate = {'max' : 40},
			entry_textvariable=self.lastnametextvar)

		self.street_line1 = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Street Line 1:',
			validate = {'max' : 40},
			entry_textvariable=self.streetline1textvar)

		self.street_line2 = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Street Line 2:',
			validate = {'max' : 40},
			entry_textvariable=self.streetline2textvar)

		self.city = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'City:',
			validate = {'max' : 40},
			entry_textvariable=self.citytextvar)

		self.state = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'State:',
			validate = {'max' : 2},
			entry_textvariable=self.statetextvar)

		self.zip = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Zip Code:',
			validate = {'max' : 5},
			entry_textvariable=self.ziptextvar)


		result = gadfly_utils.execute_sql_statement(db=self.db,
			sqlStatement='SELECT payment_type FROM payment_methods',
			commit_after=1,
			leave_cursor_open=1,
			create_cursor_also=0)

		if result['status'] != 'success':
			print 'DB Error: Could not retrieve product categories'
			return result

		self.payment_methodvar = StringVar()
		self.payment_methodvar.set(result['result'][0][0])

		payment_options = []

		for i in xrange(0,len(result['result'])):
			payment_options.append(result['result'][i][0])

		self.payment_method = Pmw.OptionMenu(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Payment method:',
			menubutton_textvariable = self.payment_methodvar,
			items = payment_options,
			menubutton_width = 15,
			)


		self.card_number = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Credit Card Number:',
			validate = {'max' : 20},
			entry_textvariable=self.cardnotextvar)


		self.expdate = Pmw.EntryField(self.customer_data.interior(),
			labelpos = 'w',
			label_text = 'Expiration Date:',
			value = '1-1-2000',
			validate = {'validator' : 'date', 'separator' : '-',
			'min' : '1-1-2000',
			'minstrict' : 0, 'maxstrict' : 0,
			'format' : 'mdy'},
			entry_textvariable=self.expdatetextvar)
		# payment methods

		# shipping method

		entries = (self.first_name, self.initial, self.last_name,
			self.street_line1,self.street_line2,self.city,
			self.state,self.zip, self.payment_method,self.card_number,self.expdate)

		for entry in entries:
			entry.pack(fill='x', expand=1, padx=10, pady=5)

		Pmw.alignlabels(entries)

		self.customer_data_dialog.withdraw()