def changeOrderItemStatus(request): data = request.POST pk = data['pk']; instock = int(data['instock']); orderitem = OrderItem.objects.get(pk = pk); order = orderitem.order orderitem.status = 'I' if instock < orderitem.quantity: new_order_item = OrderItem() new_order_item.quantity = orderitem.quantity - instock new_order_item.category = orderitem.category new_order_item.description = orderitem.description new_order_item.status = 'P' new_order_item.order = orderitem.order new_order_item.save() inform_purchase_agent(subject='سفارش نیازمند خرید است',message=render_to_string('mail/buy_orderitem.html',{'orderitem' : new_order_item})) if instock == 0: orderitem.delete() else: orderitem.quantity = instock orderitem.save() inner_q = Good.objects.filter(category=orderitem.category,user=None)[:instock] Good.objects.filter(pk__in = inner_q).update(user=order.user) inform_user(user=order.user, message=render_to_string('mail/orderitem_available.html', {'orderitem': orderitem}), subject='سفارش شما در انبار موجود است') #check and change the status of the order if OrderItem.objects.filter(order= order,status='N').count() == 0: return HttpResponse('order_changed') return HttpResponse("success")