[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue-pos doc/technotes/00001.txt src/Handler.py...
From: |
Jason Cater |
Subject: |
gnue-pos doc/technotes/00001.txt src/Handler.py... |
Date: |
Thu, 03 Jul 2003 00:30:33 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue-pos
Branch:
Changes by: Jason Cater <address@hidden> 03/07/03 00:30:33
Modified files:
doc/technotes : 00001.txt
src : Handler.py
src/frontends/wx: Driver.py
Log message:
* Added color-coded entry fields to cue the user what to enter
* Added support for Tax-Exempt purchases
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-pos/doc/technotes/00001.txt.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-pos/src/Handler.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-pos/src/frontends/wx/Driver.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
Patches:
Index: gnue-pos/doc/technotes/00001.txt
diff -c gnue-pos/doc/technotes/00001.txt:1.2
gnue-pos/doc/technotes/00001.txt:1.3
*** gnue-pos/doc/technotes/00001.txt:1.2 Mon Jun 30 19:59:02 2003
--- gnue-pos/doc/technotes/00001.txt Thu Jul 3 00:30:32 2003
***************
*** 19,24 ****
--- 19,25 ----
RequestExit
RequestLogOut
RequestQuantity
+ RequestTaxExempt
Data-Related Events
Index: gnue-pos/src/Handler.py
diff -c gnue-pos/src/Handler.py:1.3 gnue-pos/src/Handler.py:1.4
*** gnue-pos/src/Handler.py:1.3 Wed Jul 2 21:56:35 2003
--- gnue-pos/src/Handler.py Thu Jul 3 00:30:33 2003
***************
*** 51,56 ****
--- 51,58 ----
self.__taxTotal = 0
self.__subTotal = 0
self.__payments = 0
+ self.__taxExempt = 0
+ self.__layaway = 0
self.registerEventListeners( {
'BeginTicket': self._BeginTicket,
***************
*** 93,98 ****
--- 95,103 ----
'RequestManualDescription': self._RequestManualDescription,
'RequestManualBasePrice': self._RequestManualBasePrice,
'RequestManualPrice': self._RequestManualPrice,
+
+ 'RequestTaxExemption': self._RequestTaxExemption,
+ 'TaxExemptionEntered': self._TaxExemptionEntered,
})
***************
*** 116,125 ****
--- 121,137 ----
if not hasattr(event,'next'):
event.next = 'RequestSKU'
+ print event.next
+
if event.value:
if not self.__ticket:
self.dispatchEvent('RequestBeginTicket')
rs = self.dispatchEvent('ProcessSKU', sku=event.value, origEvent=event)
+ else:
+ if not self.__ticket and event.next in ('RequestTaxExemption',):
+ self.dispatchEvent('RequestBeginTicket')
+
+ rs = 1
if rs:
event.dispatchAfter(event.next)
***************
*** 162,168 ****
def _ManualBasePriceEntered(self, event):
self.__manualBasePrice = float(event.value)
! self.dispatchEvent(self.__manualEvents.pop(0))
def _ManualPriceEntered(self, event):
self.__manualPrice = float(event.value)
--- 174,184 ----
def _ManualBasePriceEntered(self, event):
self.__manualBasePrice = float(event.value)
! v = self.__manualEvents.pop(0)
! if v == 'RequestManualPrice':
! self.dispatchEvent(v, default=self.__manualBasePrice)
! else:
! self.dispatchEvent(v)
def _ManualPriceEntered(self, event):
self.__manualPrice = float(event.value)
***************
*** 191,196 ****
--- 207,213 ----
'RequestCancelLastItem',
'RequestDuplicateLastItem',
'RequestDiscount',
+ 'RequestTaxExemption',
'RequestLogOut',
'RequestExit'))
***************
*** 230,235 ****
--- 247,256 ----
def _RequestExit(self, event):
pass
+ def _RequestTaxExemption(self, event):
+ self.dispatchEvent('Prompt', label='Enter Tax Exemption Number:',
response='TaxExemptionEntered')
+
+
def _RequestManualDepartment(self, event):
self.dispatchEvent('Prompt', label='Enter Department:',
response='ManualDepartmentEntered')
***************
*** 265,270 ****
--- 286,293 ----
self.__taxTotal = 0
self.__subTotal = 0
self.__payments = 0
+ self.__taxExempt = 0
+ self.__layaway = 0
self.dispatchEvent('UpdateTotal', field="subtotal", amount=0.0)
self.dispatchEvent('UpdateTotal', field="tax", amount=0.0)
self.dispatchEvent('UpdateTotal', field="total", amount=0.0)
***************
*** 281,292 ****
self.__subTotal += event.extended
if event.taxable:
self.__taxTotal += event.extended
!
! tax = round(self.__taxTotal* self.__TaxRate,2)
! self.dispatchEvent('UpdateTotal', field="subtotal",
amount=self.__subTotal)
! self.dispatchEvent('UpdateTotal', field="tax", amount=tax)
! self.dispatchEvent('UpdateTotal', field="total", amount=self.__subTotal +
tax)
! self.dispatchEvent('UpdateTotal', field="balance", amount=self.__subTotal
+ tax - self.__payments)
def _CancelTicketItem(self, event):
pass
--- 304,310 ----
self.__subTotal += event.extended
if event.taxable:
self.__taxTotal += event.extended
! self._updateTotals()
def _CancelTicketItem(self, event):
pass
***************
*** 294,299 ****
--- 312,332 ----
def _UpdateQuantity(self, event):
pass
+ def _TaxExemptionEntered(self, event):
+ if event.value:
+ self.__taxExempt = 1
+ else:
+ self.__taxExempt = 0
+ self._updateTotals()
+ self.dispatchEvent('RequestSKU')
+
+ def _updateTotals(self):
+ tax = round(self.__taxTotal* self.__TaxRate,2) * (self.__taxExempt == 0)
+ self.dispatchEvent('UpdateTotal', field="subtotal",
amount=self.__subTotal)
+ self.dispatchEvent('UpdateTotal', field="tax", amount=tax)
+ self.dispatchEvent('UpdateTotal', field="total", amount=self.__subTotal +
tax)
+ self.dispatchEvent('UpdateTotal', field="balance", amount=self.__subTotal
+ tax - self.__payments)
+ tax = round(self.__taxTotal* self.__TaxRate,2)
Index: gnue-pos/src/frontends/wx/Driver.py
diff -c gnue-pos/src/frontends/wx/Driver.py:1.8
gnue-pos/src/frontends/wx/Driver.py:1.9
*** gnue-pos/src/frontends/wx/Driver.py:1.8 Wed Jul 2 21:56:35 2003
--- gnue-pos/src/frontends/wx/Driver.py Thu Jul 3 00:30:33 2003
***************
*** 34,47 ****
from gnue.forms.uidrivers.wx import UIdriver as FormsDriver
from gnue.forms.uidrivers.wx.GFwxApp import getWxApp
dollarFormat = '$%.02f'
STATUS_USER = 2
STATUS_TICKET = 1
! from wxPython.wx import *
! from wxPython.gizmos import *
! from NumberDisplay import NumberDisplay, bigFont
class Driver(BaseDriver):
def init(self):
--- 34,50 ----
from gnue.forms.uidrivers.wx import UIdriver as FormsDriver
from gnue.forms.uidrivers.wx.GFwxApp import getWxApp
+ from wxPython.wx import *
+ from wxPython.gizmos import *
+ from NumberDisplay import NumberDisplay, bigFont
+
dollarFormat = '$%.02f'
STATUS_USER = 2
STATUS_TICKET = 1
! LOGIN_COLOR = wxColour(255,200,200)
! BASE_COLOR = wxNamedColour("ivory")
class Driver(BaseDriver):
def init(self):
***************
*** 86,96 ****
--- 89,112 ----
except AttributeError:
pass
+ if event.response in ('LoginEntered','PasswordEntered'):
+ self.inputField.SetBackgroundColour(LOGIN_COLOR)
+ else:
+ self.inputField.SetBackgroundColour(BASE_COLOR)
+
+ try:
+ default = event.default
+ except:
+ default = ""
+
try:
self.__endingEvents = event.endingEvents
except AttributeError:
self.__endingEvents = ()
+ self.inputField.SetValue(default)
+ self.inputField.SetSelection(0, len(default))
+
def _BeginTicket(self, event):
print "Beginning ticket # %s" % event.serial
self.statusbar.SetStatusText("Ticket # %s" % event.serial, STATUS_TICKET)
***************
*** 181,187 ****
entrySizer.Add(self.inputLabel, 0, wxEXPAND|wxALIGN_LEFT)
entrySizer.Add(self.inputField, 0, wxEXPAND|wxALIGN_LEFT)
-
entryPanel.Fit()
totalPanel.Fit()
totalSizer2.Add(totalPanel, 1, wxALL|wxEXPAND, 10)
--- 197,202 ----
***************
*** 224,242 ****
def __keypress(self, event):
key = event.GetKeyCode()
if key in (WXK_RETURN,WXK_NUMPAD_ENTER):
self.dispatchEvent(self.__event, value=self.inputField.GetValue())
elif key == WXK_ESCAPE:
self.inputField.Clear()
! elif _specialKeys.has_key(key) and _specialKeys[key] in
self.__endingEvents:
self.dispatchEvent(self.__event, value=self.inputField.GetValue(),
next=_specialKeys[key])
else:
event.Skip()
_specialKeys = {
! '*': 'RequestQuantity',
! '=': 'RequestTender',
! '-': 'RequestCancelLastItem',
! '+': 'RequestDuplicateLastItem',
}
--- 239,263 ----
def __keypress(self, event):
key = event.GetKeyCode()
+ ## print _specialKeys, key, self.__endingEvents
+ ## print key
+
if key in (WXK_RETURN,WXK_NUMPAD_ENTER):
self.dispatchEvent(self.__event, value=self.inputField.GetValue())
elif key == WXK_ESCAPE:
self.inputField.Clear()
! elif _specialKeys.has_key(key): # and _specialKeys[key] in
self.__endingEvents:
self.dispatchEvent(self.__event, value=self.inputField.GetValue(),
next=_specialKeys[key])
else:
event.Skip()
_specialKeys = {
! WXK_MULTIPLY: 'RequestQuantity',
! WXK_DIVIDE: 'RequestTender',
! WXK_SUBTRACT: 'RequestCancelLastItem',
! WXK_ADD: 'RequestDuplicateLastItem',
! WXK_F12: 'RequestTaxExemption',
}
+
+ print _specialKeys
\ No newline at end of file
- gnue-pos doc/technotes/00001.txt src/Handler.py...,
Jason Cater <=