-
-
Save mdornseif/7615bbd47780a6cb424f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
[email protected] | |
+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