62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
from hserver.api import WebObject,Persistence,WebFolder,WebCallable
|
|
import hserver
|
|
|
|
import Templates
|
|
import uuid
|
|
|
|
import qrcode
|
|
import datetime
|
|
|
|
class Verkauf(WebObject,Persistence):
|
|
|
|
def __init__(self):
|
|
WebObject.__init__(self)
|
|
self.setDefault("verkauf")
|
|
self.artikel = {}
|
|
self.bezahlt = False
|
|
|
|
|
|
def _verkauf(self,request,o=None):
|
|
if not self.bezahlt:
|
|
if ("artikelid" in request.getForm()) and not (request.getForm()["artikelid"].value()==""):
|
|
try:
|
|
a = getattr( self._aq_parent._aq_parent.artikel, request.getForm()["artikelid"].value())._aq_object
|
|
if a is not None:
|
|
if a in self.artikel:
|
|
request.message = "Artikel bereits gescannt!"
|
|
else:
|
|
if a.verkauft:
|
|
request.message = "Artikel wurde bereits verkauft!"
|
|
else:
|
|
self.artikel[ a ] = a.preis;
|
|
|
|
except Exception as e:
|
|
request.message = "Artikel nicht gefunden!"
|
|
print(e)
|
|
|
|
for a in self.artikel:
|
|
ea = "erloes_%s" % (a.id,)
|
|
if ea in request.getForm():
|
|
self.artikel[a] = float(request.getForm()[ea].value())
|
|
|
|
if ("action" in request.getForm()):
|
|
ac = request.getForm()["action"].value()
|
|
if ac=="BEZAHLT":
|
|
for a in self.artikel:
|
|
a.verkauft = True
|
|
a.erloes = self.artikel[a]
|
|
a.quittung = self._aq_name
|
|
self.bezahlt = True
|
|
self.zeit = str(datetime.datetime.now())
|
|
if self.bezahlt:
|
|
Templates.quittung_html(request,o)
|
|
else:
|
|
Templates.verkauf_html(request,o)
|
|
|
|
verkauf = WebCallable(method=_verkauf)
|
|
|
|
|
|
|
|
|
|
|