def save_model(self, request, offer_item, form, change): super(OfferItemClosedAdmin, self).save_model( request, offer_item, form, change) if offer_item.product_id is not None: offer_item.product.stock = offer_item.stock offer_item.product.save(update_fields=['stock']) update_offer_item(product_id=offer_item.product_id)
def import_producer_stock(worksheet, producers=None): error = False error_msg = None header = get_header(worksheet) if header: row_num = 1 row = get_row(worksheet, header, row_num) while row and not error: try: # with transaction.atomic(): product_id = None if row[_('Id')] is None else Decimal(row[_('Id')]) if product_id is not None: stock = DECIMAL_ZERO if row[_('Current stock')] is None else Decimal( row[_('Current stock')]).quantize( THREE_DECIMALS) stock = stock if stock >= DECIMAL_ZERO else DECIMAL_ZERO Product.objects.filter( id=product_id, producer__in=producers ).update(stock=stock) update_offer_item(product_id=product_id) row_num += 1 row = get_row(worksheet, header, row_num) except KeyError, e: # Missing field error = True error_msg = _("Row %(row_num)d : A required column is missing.") % {'row_num': row_num + 1} except Exception, e: error = True error_msg = _("Row %(row_num)d : %(error_msg)s.") % {'row_num': row_num + 1, 'error_msg': str(e)}
def import_producer_stock(worksheet): error = False error_msg = None header = get_header(worksheet) if header: row_num = 1 row = get_row(worksheet, header, row_num) while row and not error: try: # with transaction.atomic(): product_id = None if row[_("Id")] is None else Decimal( row[_("Id")]) if product_id is not None: stock = (DECIMAL_ZERO if row[_("Inventory")] is None else Decimal( row[_("Inventory")]).quantize(THREE_DECIMALS)) stock = stock if stock >= DECIMAL_ZERO else DECIMAL_ZERO Product.objects.filter(id=product_id).update(stock=stock) update_offer_item(product_id=product_id) row_num += 1 row = get_row(worksheet, header, row_num) except KeyError as e: # Missing field error = True error_msg = _( "Row %(row_num)d : A required column is missing.") % { "row_num": row_num + 1 } except Exception as e: error = True error_msg = _("Row %(row_num)d : %(error_msg)s.") % { "row_num": row_num + 1, "error_msg": str(e), } return error, error_msg
def save(self, *args, **kwargs): instance = super(ProducerDataForm, self).save(*args, **kwargs) if instance.id is not None: instance.permanence_set = ( Permanence.objects.filter(producers=instance.pk).exclude(status=PERMANENCE_PLANNED).order_by("?") ) instance.permanence_set.add(*self.cleaned_data["permanences"]) # The previous save is called with "commit=False" or we need to update the producer # to recalculate the products prices. So a call to self.instance.save() is required self.instance.save() for product in Product.objects.filter(producer_id=instance.id).order_by("?"): product.save() update_offer_item(producer_id=instance.id) return instance
def save_model(self, request, box, form, change): if box.is_into_offer and box.stock <= 0: box.stock = DECIMAL_MAX_STOCK super(BoxAdmin, self).save_model(request, box, form, change) update_offer_item(box)
def save_model(self, request, product, form, change): super(ProductAdmin, self).save_model( request, product, form, change) update_offer_item(product_id=product.id)
def producer_post_save(sender, **kwargs): producer = kwargs["instance"] for a_product in Product.objects.filter( producer_id=producer.id).order_by('?'): a_product.save() update_offer_item(producer_id=producer.id)
def save_model(self, request, product, form, change): super(ProductAdmin, self).save_model(request, product, form, change) update_offer_item(product_id=product.id)
def save_model(self, request, box, form, change): super(BoxAdmin, self).save_model(request, box, form, change) update_offer_item(box)
def producer_post_save(sender, **kwargs): producer = kwargs["instance"] for a_product in Product.objects.filter(producer_id=producer.id).order_by('?'): a_product.save() update_offer_item(producer_id=producer.id)