Esempio n. 1
0
def decreaseStockFromOrder(registry, order):
    if not hasattr(order, 'stock_decreased'):
        order.stock_decreased = PersistentDict()
    uid_catalog = getToolByName(registry.context, 'uid_catalog')
    for product in order.products:
        stock = IStock(uid_catalog(UID=product[0])[0].getObject())
        if len(product[5]): # we have variations
            variations = [v[0] for v in product[5]]
            stock.setVariationStock(stock.variationStock(variations)-int(product[3])+order.stock_decreased.get(product[0], 0), variations)
        else:
            stock.setStock(stock.stock()-int(product[3])+order.stock_decreased.get(product[0], 0))
        order.stock_decreased[product[0]] = int(product[3])
Esempio n. 2
0
 def store(self):
     provider = IStock(self.context)
     stockable = self.stockable()
     for item in stockable:
         try:
             value = int(self.request.form.get(item['key'], 0))
             if not item.has_key('objs'):
                 provider.setStock(value)
             else:
                 provider.setVariationStock(value, item['objs'])
         except:
             self.errors[item['key']] = _(u'There was an error when saving this stock entry')
     return len(self.errors) == 0