/[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.7 by jcater, Thu Jul 17 05:16:43 2003 UTC revision 1.8 by jcater, Tue Jul 22 17:26:25 2003 UTC
# Line 51  class Handler(events.EventAware): Line 51  class Handler(events.EventAware):
51              'BeginTicket': self._BeginTicket,              'BeginTicket': self._BeginTicket,
52              'EndTicket': self._EndTicket,              'EndTicket': self._EndTicket,
53              'CancelTicket': self._CancelTicket,              'CancelTicket': self._CancelTicket,
54                'ClearTicket': self._ClearTicket,
55    
56              'BeginLayaway': self._BeginLayaway,              'BeginLayaway': self._BeginLayaway,
57              'EndLayaway': self._EndLayaway,              'EndLayaway': self._EndLayaway,
# Line 77  class Handler(events.EventAware): Line 78  class Handler(events.EventAware):
78              'RequestResumeTicket': self._RequestResumeTicket,              'RequestResumeTicket': self._RequestResumeTicket,
79              'RequestCancelTicket': self._RequestCancelTicket,              'RequestCancelTicket': self._RequestCancelTicket,
80              'RequestPriceLookup': self._RequestPriceLookup,              'RequestPriceLookup': self._RequestPriceLookup,
             'RequestTender': self._RequestTender,  
81              'RequestRemoveItem': self._RequestRemoveItem,              'RequestRemoveItem': self._RequestRemoveItem,
82              'RequestCancelItem': self._RequestCancelItem,              'RequestCancelItem': self._RequestCancelItem,
83              'RequestDuplicateLastItem': self._RequestDuplicateLastItem,              'RequestDuplicateLastItem': self._RequestDuplicateLastItem,
# Line 85  class Handler(events.EventAware): Line 85  class Handler(events.EventAware):
85              'RequestLogOut': self._RequestLogOut,              'RequestLogOut': self._RequestLogOut,
86              'RequestExit': self._RequestExit,              'RequestExit': self._RequestExit,
87    
88                'RequestTender:Cash': self._RequestTenderCash,
89                'RequestTender:Check': self._RequestTenderCheck,
90                'RequestTender:CreditCard': self._RequestTenderCreditCard,
91                'RequestTender:Gift': self._RequestTenderGift,
92                'TenderEntered': self._TenderEntered,
93                'TenderExtraEntered': self._TenderExtraEntered,
94    
95              'BeginManualItem': self._BeginManualItem,              'BeginManualItem': self._BeginManualItem,
96              'RequestEndManualItem': self._RequestEndManualItem,              'RequestEndManualItem': self._RequestEndManualItem,
97              'ManualDepartmentEntered': self._ManualDepartmentEntered,              'ManualDepartmentEntered': self._ManualDepartmentEntered,
# Line 272  class Handler(events.EventAware): Line 279  class Handler(events.EventAware):
279      if self._ticket:      if self._ticket:
280        endingEvents += ['RequestSuspendTicket',        endingEvents += ['RequestSuspendTicket',
281                         'RequestCancelTicket',                         'RequestCancelTicket',
282                         'RequestTender',                         'RequestTender:Cash',
283                           'RequestTender:Check',
284                           'RequestTender:CreditCard',
285                           'RequestTender:Gift',
286                         'RequestRemoveItem',                         'RequestRemoveItem',
287                         'RequestCancelItem',                         'RequestCancelItem',
288                         'RequestDuplicateLastItem',                         'RequestDuplicateLastItem',
# Line 291  class Handler(events.EventAware): Line 301  class Handler(events.EventAware):
301      pass      pass
302    
303    def _RequestCancelTicket(self, event):    def _RequestCancelTicket(self, event):
304      pass      self.dispatchEvent('CancelTicket', serial=self._ticket)
305    
306    def _RequestPriceLookup(self, event):    def _RequestPriceLookup(self, event):
307      pass      pass
308    
309    def _RequestTender(self, event):    ##
310      pass    ##
311      ##
312    
313      def _RequestTenderCash(self, event):
314        self.__tender = 'CASH'
315        self.dispatchEvent('Prompt', label='Enter Cash Amount', response='TenderEntered')
316    
317      def _RequestTenderCreditCard(self, event):
318        self.__tender = 'CREDIT'
319        self.dispatchEvent('Prompt', label='Enter Credit Card Amount', response='TenderEntered')
320    
321      def _RequestTenderCheck(self, event):
322        self.__tender = 'CHECK'
323        self.dispatchEvent('Prompt', label='Enter Check Amount', response='TenderEntered')
324    
325      def _RequestTenderGift(self, event):
326        self.__tender = 'GIFT'
327        self.dispatchEvent('Prompt', label='Enter Gift Certificate Amount', response='TenderEntered')
328    
329      def _TenderEntered(self, event):
330        try:
331          self.__tenderamount = float(event.value)
332          if self.__tenderamount < 0:
333            raise ValueError
334        except ValueError:
335          self.dispatchEvent('Warning',message='Tender amount must be entered')
336          self.dispatchEvent('RequestTender' % {'CASH':'Cash','CREDIT':'CreditCard','CHECK':'Check','GIFT':'Gift'}[self.__tender])
337          return
338    
339        if self.__tender == 'GIFT':
340          self.dispatchEvent('Prompt', label='Enter Gift Certificate Number', response='TenderExtraEntered')
341        elif self.__tender == 'CHECK':
342          self.dispatchEvent('Prompt', label='Enter Check Number', response='TenderExtraEntered')
343        elif self.__tender == 'CREDIT':
344          self.dispatchEvent('Prompt', label='Enter Approval Response Code', response='TenderExtraEntered')
345        else:
346          self.__endTender()
347    
348      def _TenderExtraEntered(self, event):
349        self.__endTender(event.value)
350    
351      def __endTender(self, extra=None):
352        self.dispatchEvent('AddTender', type=self.__tender, amount=self.__tenderamount, extra=extra)
353    
354      ##
355      ##
356      ##
357    
358    def _RequestRemoveItem(self, event):    def _RequestRemoveItem(self, event):
359      pass      pass
# Line 312  class Handler(events.EventAware): Line 368  class Handler(events.EventAware):
368      pass      pass
369    
370    def _RequestLogOut(self, event):    def _RequestLogOut(self, event):
371      pass      if self._ticket:
372          self.dispatchEvent('Warning',message='Cannot log out until ticket is canceled or completed')
373        else:
374          self._login = None
375          self.dispatchEvent('RequestLogin')
376    
377    def _RequestExit(self, event):    def _RequestExit(self, event):
378      pass      if self._ticket:
379          self.dispatchEvent('Warning',message='Cannot exit until ticket is canceled or completed')
380        else:
381          sys.exit()
382    
383    def _RequestTaxExemption(self, event):    def _RequestTaxExemption(self, event):
384      self.dispatchEvent('Prompt', label='Enter Tax Exemption Number:', response='TaxExemptionEntered')      self.dispatchEvent('Prompt', label='Enter Tax Exemption Number:', response='TaxExemptionEntered')
385    
386      ##
387      ##
388      ##
389    
390    def _RequestManualDepartment(self, event):    def _RequestManualDepartment(self, event):
391      self.dispatchEvent('Prompt', label='Enter Department:', response='ManualDepartmentEntered')      self.dispatchEvent('Prompt', label='Enter Department:', response='ManualDepartmentEntered')
# Line 359  class Handler(events.EventAware): Line 425  class Handler(events.EventAware):
425      self._quantity = 1      self._quantity = 1
426      self.dispatchEvent('RequestSKU')      self.dispatchEvent('RequestSKU')
427    
428      ##
429      ##
430      ##
431    
432    def _BeginTicket(self, event):    def _BeginTicket(self, event):
433      self._ticket = event.serial      self._ticket = event.serial
434      self._taxTotal = 0      self._taxTotal = 0
# Line 373  class Handler(events.EventAware): Line 443  class Handler(events.EventAware):
443      self.dispatchEvent('UpdateTotal', field="balance", amount=0.0)      self.dispatchEvent('UpdateTotal', field="balance", amount=0.0)
444    
445    def _EndTicket(self, event):    def _EndTicket(self, event):
446      event.dispatchAfter('RequestSKU')      event.dispatchAfter('ClearTicket')
447    
448    def _CancelTicket(self, event):    def _CancelTicket(self, event):
449        event.dispatchAfter('ClearTicket')
450    
451      def _ClearTicket(self, event):
452      self._ticket = 0      self._ticket = 0
453      event.dispatchAfter('RequestSKU')      event.dispatchAfter('RequestSKU')
454    
# Line 392  class Handler(events.EventAware): Line 465  class Handler(events.EventAware):
465    
466    def _EndLayaway(self, event):    def _EndLayaway(self, event):
467      self._layaway = 0      self._layaway = 0
468      self.dispatchEvent('EndTicket')      self.dispatchEvent('EndTicket', serial=self._ticket)
469    
470    def _AddTender(self, event):    def _AddTender(self, event):
471      pass      self._payments += event.amount
472        if self._payments > self.total():
473          print self._payments-self.total()
474          event.dispatchAfter('AddTender', type='CHANGE',
475                              amount=self._payments-self.total())
476    
477        elif self._payments == self._subTotal + self.taxes():
478          event.dispatchAfter('EndTicket', serial=self._ticket)
479        else:
480          event.dispatchAfter('RequestSKU')
481    
482        self._updateTotals()
483    
484    
485    def _AddDiscount(self, event):    def _AddDiscount(self, event):
486      pass      pass
# Line 416  class Handler(events.EventAware): Line 501  class Handler(events.EventAware):
501    
502    
503    def _updateTotals(self):    def _updateTotals(self):
504      tax = round(self._taxTotal* self._TaxRate,2) * (self._taxExempt == 0)      tax = self.taxes()
505      self.dispatchEvent('UpdateTotal', field="subtotal", amount=self._subTotal)      self.dispatchEvent('UpdateTotal', field="subtotal", amount=self._subTotal)
506      self.dispatchEvent('UpdateTotal', field="tax", amount=tax)      self.dispatchEvent('UpdateTotal', field="tax", amount=tax)
507      self.dispatchEvent('UpdateTotal', field="total", amount=self._subTotal + tax)      self.dispatchEvent('UpdateTotal', field="total", amount=self.total())
508      self.dispatchEvent('UpdateTotal', field="balance", amount=self._subTotal + tax - self._payments)      self.dispatchEvent('UpdateTotal', field="balance", amount=self.total() - self._payments)
509      tax = round(self._taxTotal* self._TaxRate,2)      tax = round(self._taxTotal* self._TaxRate,2)
510    
511    
512      def taxes(self):
513        return round(self._taxTotal* self._TaxRate,2) * (self._taxExempt == 0)
514    
515      def total(self):
516        return self._subTotal + self.taxes()

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

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