commit-gnue
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]