/[gnue]/gnue-pos/src/Handler.py
ViewVC logotype

Diff of /gnue-pos/src/Handler.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by jcater, Thu Jul 3 04:30:33 2003 UTC revision 1.5 by jcater, Fri Jul 4 05:37:40 2003 UTC
# Line 26  Line 26 
26  # NOTES:  # NOTES:
27  #  #
28    
29  import os, sys  import os, sys, types
30    
31  from gnue.common.apps import GDebug  from gnue.common.apps import GDebug
32  from gnue.common.apps import GConfig  from gnue.common.apps import GConfig
# Line 47  class Handler(events.EventAware): Line 47  class Handler(events.EventAware):
47      self.__loggedin = 0      self.__loggedin = 0
48      self.__quantityRequestedFlag = 0      self.__quantityRequestedFlag = 0
49      self.__ticket = 0      self.__ticket = 0
50        self.__quantity = 1
     self.__taxTotal = 0  
     self.__subTotal = 0  
     self.__payments = 0  
     self.__taxExempt = 0  
     self.__layaway = 0  
51    
52      self.registerEventListeners( {      self.registerEventListeners( {
53              'BeginTicket': self._BeginTicket,              'BeginTicket': self._BeginTicket,
# Line 67  class Handler(events.EventAware): Line 62  class Handler(events.EventAware):
62              'PasswordEntered': self._PasswordEntered,              'PasswordEntered': self._PasswordEntered,
63              'SKUEntered': self._SKUEntered,              'SKUEntered': self._SKUEntered,
64              'QuantityEntered': self._QuantityEntered,              'QuantityEntered': self._QuantityEntered,
65                'CancelItemEntered': self._CancelItemEntered,
66    
67              'RequestLogin': self._RequestLogin,              'RequestLogin': self._RequestLogin,
68              'RequestPassword': self._RequestPassword,              'RequestPassword': self._RequestPassword,
# Line 79  class Handler(events.EventAware): Line 75  class Handler(events.EventAware):
75              'RequestPriceLookup': self._RequestPriceLookup,              'RequestPriceLookup': self._RequestPriceLookup,
76              'RequestTender': self._RequestTender,              'RequestTender': self._RequestTender,
77              'RequestRemoveItem': self._RequestRemoveItem,              'RequestRemoveItem': self._RequestRemoveItem,
78              'RequestCancelLastItem': self._RequestCancelLastItem,              'RequestCancelItem': self._RequestCancelItem,
79              'RequestDuplicateLastItem': self._RequestDuplicateLastItem,              'RequestDuplicateLastItem': self._RequestDuplicateLastItem,
80              'RequestDiscount': self._RequestDiscount,              'RequestDiscount': self._RequestDiscount,
81              'RequestLogOut': self._RequestLogOut,              'RequestLogOut': self._RequestLogOut,
# Line 112  class Handler(events.EventAware): Line 108  class Handler(events.EventAware):
108                         response="PasswordEntered")                         response="PasswordEntered")
109    
110    def _PasswordEntered(self, event):    def _PasswordEntered(self, event):
111        rs = self.dispatchEvent('VerifyLogin', login=self.__login, password=event.value)
112        if rs:
113          self.dispatchEvent('RequestLogin')
114          return
115      self.__loggedin = 1      self.__loggedin = 1
116      self.dispatchEvent('RequestSKU')      self.dispatchEvent('RequestSKU')
117    
   def _SKUEntered(self, event):  
     self.__quantityRequestedFlag = 0  
118    
119      def _SKUEntered(self, event):
120      if not hasattr(event,'next'):      if not hasattr(event,'next'):
121        event.next = 'RequestSKU'        event.next = 'RequestSKU'
122    
123      print event.next      if event.next == 'RequestQuantity':
124          rs = 0
125          if not self.__ticket:
126            self.dispatchEvent('RequestBeginTicket')
127          self.dispatchEvent('RequestQuantity')
128    
129      if event.value:      elif event.value:
130        if not self.__ticket:        if not self.__ticket:
131          self.dispatchEvent('RequestBeginTicket')          self.dispatchEvent('RequestBeginTicket')
132        rs = self.dispatchEvent('ProcessSKU', sku=event.value, origEvent=event)        rs = self.dispatchEvent('ProcessSKU', sku=event.value, origEvent=event, quantity=self.__quantity)
133      else:      else:
134        if not self.__ticket and event.next in ('RequestTaxExemption',):        if not self.__ticket and event.next in ('RequestTaxExemption',):
135          self.dispatchEvent('RequestBeginTicket')          self.dispatchEvent('RequestBeginTicket')
# Line 138  class Handler(events.EventAware): Line 141  class Handler(events.EventAware):
141    
142    
143    def _QuantityEntered(self, event):    def _QuantityEntered(self, event):
144      self.__loggedin = 1      if not event.value:
145      self.__quantityRequestedFlag = 1        self.dispatchEvent('RequestSKU')
     self.dispatchEvent('UpdateQuantity', quantity=float(event.value))  
146      try:      try:
147        self.__quantity = float(event.value)        self.__quantity = float(event.value)
148          self.dispatchEvent('RequestSKU')
149      except ValueError:      except ValueError:
150        self.dispatchEvent('RequestQuantity')        self.dispatchEvent('RequestQuantity')
151    
152      def _CancelItemEntered(self, event):
153        if not event.value:
154          self.dispatchEvent('RequestSKU')
155          return
156        v = int(event.value) - 1
157        if v >= len(self.__items):
158          self.dispatchEvent('RequestCancelItem')
159        elif not hasattr(self.__items[v],'CANCELED'):
160          attrs = {}
161          for attr, value in event.__dict__.items():
162            if attr[0] != '_' and type(value) != types.MethodType:
163              attrs[attr] = value
164          attrs['origlineitem'] = v + 1
165          attrs['lineitem'] = len(self.__items)
166          attrs['extended'] *= -1
167          attrs['each'] *= -1
168          self.__items[v].CANCELED = 1
169        self.dispatchEvent('CancelItem', **attrs)
170    
171    
172    def _BeginManualItem(self, event):    def _BeginManualItem(self, event):
173      self.__manualSKU = event.sku      self.__manualSKU = event.sku
174      if self.__ManualItemSKUisDepartment:      if self.__ManualItemSKUisDepartment:
# Line 196  class Handler(events.EventAware): Line 219  class Handler(events.EventAware):
219    
220    
221    def _RequestSKU(self, event):    def _RequestSKU(self, event):
222      self.dispatchEvent('Prompt', label='Enter %s:' % gConfig('SKULabel'), response='SKUEntered',      endingEvents = [ 'RequestQuantity',
223           endingEvents=('RequestQuantity',                       'RequestPriceLookup',
224                         'RequestSuspendTicket',                       'RequestResumeTicket',
225                         'RequestResumeTicket',                       'RequestTaxExemption',
226                         'RequestLogOut',
227                         'RequestExit' ]
228    
229        if self.__ticket:
230          endingEvents += ['RequestSuspendTicket',
231                         'RequestCancelTicket',                         'RequestCancelTicket',
                        'RequestPriceLookup',  
232                         'RequestTender',                         'RequestTender',
233                         'RequestRemoveItem',                         'RequestRemoveItem',
234                         'RequestCancelLastItem',                         'RequestCancelItem',
235                         'RequestDuplicateLastItem',                         'RequestDuplicateLastItem',
236                         'RequestDiscount',                         'RequestDiscount']
237                         'RequestTaxExemption',  
238                         'RequestLogOut',      self.dispatchEvent('Prompt', label='Enter %s:' % gConfig('SKULabel'), response='SKUEntered',
239                         'RequestExit'))           endingEvents=endingEvents)
240    
241    def _RequestQuantity(self, event):    def _RequestQuantity(self, event):
242      self.dispatchEvent('Prompt', response='QuantityEntered', label='Enter Quantity:')      self.dispatchEvent('Prompt', response='QuantityEntered', label='Enter Quantity:')
# Line 232  class Handler(events.EventAware): Line 259  class Handler(events.EventAware):
259    def _RequestRemoveItem(self, event):    def _RequestRemoveItem(self, event):
260      pass      pass
261    
262    def _RequestCancelLastItem(self, event):    def _RequestCancelItem(self, event):
263      pass      self.dispatchEvent('Prompt', response='CancelItemEntered', label='Enter Line # to Cancel:', default=len(self.__items))
264    
265    def _RequestDuplicateLastItem(self, event):    def _RequestDuplicateLastItem(self, event):
266      pass      pass
# Line 261  class Handler(events.EventAware): Line 288  class Handler(events.EventAware):
288      self.dispatchEvent('Prompt', label='Enter Base Price:', response='ManualBasePriceEntered')      self.dispatchEvent('Prompt', label='Enter Base Price:', response='ManualBasePriceEntered')
289    
290    def _RequestManualPrice(self, event):    def _RequestManualPrice(self, event):
291      self.dispatchEvent('Prompt', label='Enter Sales Price:', response='ManualPriceEntered')      if hasattr(event,'default'):
292          self.dispatchEvent('Prompt', label='Enter Sales Price:', response='ManualPriceEntered', default=event.default)
293        else:
294          self.dispatchEvent('Prompt', label='Enter Sales Price:', response='ManualPriceEntered')
295    
296    
297    def _RequestEndManualItem(self, event):    def _RequestEndManualItem(self, event):
298      self.dispatchEvent('EndManualItem', sku=self.__manualSKU,      self.dispatchEvent('EndManualItem', sku=self.__manualSKU,
299                         description=self.__manualDescription,                         description=self.__manualDescription,
300                         department=self.__manualDepartment,                         department=self.__manualDepartment,
301                         baseprice=self.__manualBasePrice,                         baseprice=self.__manualBasePrice,
302                           quantity=self.__quantity,
303                         price=self.__manualPrice,                         price=self.__manualPrice,
304                         taxable=1)                         taxable=1)
305    
306      self.dispatchEvent('AddTicketItem', department=self.__manualDepartment,      self.dispatchEvent('AddTicketItem', department=self.__manualDepartment,
307                             sku=self.__manualSKU,                             sku=self.__manualSKU,
308                             quantity=1,                             quantity=self.__quantity,
309                             description=self.__manualDescription,                             description=self.__manualDescription,
310                             base=self.__manualBasePrice,                             base=self.__manualBasePrice,
311                             each=self.__manualPrice,                             each=self.__manualPrice,
312                             extended=self.__manualPrice,                             extended=round(self.__manualPrice * self.__quantity,2),
313                             taxable=1)                             taxable=1,
314                               lineitem=len(self.__items)+1)
315        self.__quantity = 1
316      self.dispatchEvent('RequestSKU')      self.dispatchEvent('RequestSKU')
317    
318    def _BeginTicket(self, event):    def _BeginTicket(self, event):
# Line 288  class Handler(events.EventAware): Line 322  class Handler(events.EventAware):
322      self.__payments = 0      self.__payments = 0
323      self.__taxExempt = 0      self.__taxExempt = 0
324      self.__layaway = 0      self.__layaway = 0
325        self.__items = []
326      self.dispatchEvent('UpdateTotal', field="subtotal", amount=0.0)      self.dispatchEvent('UpdateTotal', field="subtotal", amount=0.0)
327      self.dispatchEvent('UpdateTotal', field="tax", amount=0.0)      self.dispatchEvent('UpdateTotal', field="tax", amount=0.0)
328      self.dispatchEvent('UpdateTotal', field="total", amount=0.0)      self.dispatchEvent('UpdateTotal', field="total", amount=0.0)
# Line 304  class Handler(events.EventAware): Line 339  class Handler(events.EventAware):
339      self.__subTotal += event.extended      self.__subTotal += event.extended
340      if event.taxable:      if event.taxable:
341        self.__taxTotal += event.extended        self.__taxTotal += event.extended
342        self.__items.append(event)
343      self._updateTotals()      self._updateTotals()
344    
345    def _CancelTicketItem(self, event):    def _CancelTicketItem(self, event):

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26