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, |
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, |
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, |
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', |
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 |
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') |
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 |
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 |
|
|
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 |
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() |