Skip to content

Instantly share code, notes, and snippets.

@mdornseif
Created February 15, 2016 09:51
Show Gist options
  • Save mdornseif/7615bbd47780a6cb424f to your computer and use it in GitHub Desktop.
Save mdornseif/7615bbd47780a6cb424f to your computer and use it in GitHub Desktop.
diff --git i/modules/market/mk_controllers.py w/modules/market/mk_controllers.py
index 6334a83..90903ce 100644
--- i/modules/market/mk_controllers.py
+++ w/modules/market/mk_controllers.py
@@ -16,6 +16,7 @@ from google.appengine.ext import ndb
from huTools import postmark
import config
+
from modules import bot
from modules.audit import audit_log
from modules.market import mk_models
@@ -122,6 +123,7 @@ def erzeuge_auftrag(kundennr, positionen, empfaenger):
ndb.put_multi(writelist)
# Die Bestellungen an die Lieferanten erzeugen:
+ bestandsaenderungen = []
lieferungen = []
auftragskopf.lieferungen = []
for index, source_id in enumerate(posbysource):
@@ -170,6 +172,7 @@ def erzeuge_auftrag(kundennr, positionen, empfaenger):
writelist.append(lpos)
lkopf.wert += lpos.wert
lkopf.sperrgut = lkopf.sperrgut or pos.sperrgut
+ bestandsaenderungen.append(dict(sku=pos.sku, menge=-pos.menge, text=lieferungsnr))
# Frachtkostenberechnung für die Lieferung:
lkopf.frachtkosten = 0
@@ -190,8 +193,23 @@ def erzeuge_auftrag(kundennr, positionen, empfaenger):
return auftragskopf, lieferungen
auftragskopf, lieferungen = ndb.transaction(txn)
+ for aenderung in bestandsaenderungen:
+ deferred.defer(bestand_updaten, aenderung)
+
return auftragskopf, lieferungen
+@ndb.transactional
+def bestand_updaten(aenderung):
+ """Artikelbestnand runterzählen."""
+ product = mk_models.mk_Product.get_by_id(aenderung['sku'])
+ if product:
+ aenderung = mk_models.mk_Bestandsaenderung(
+ parent=product.key,
+ id=aenderung['sku'],
+ **aenderung)
+ product.menge_verfuegbar = product.menge_verfuegbar - aenderung['menge']
+ ndb.put_multi([product, aenderung])
+
def zugangsdaten_erstellen(source_id):
"""Erzeuge Credential-Objekt für Kunden"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment