def create_order(request): customer = request.data['customer'] data = request.data['list'] cost = 0 customer = CustomerProfile.objects.filter( Q(customer_id=customer['customer_id']))[0] total_count = 0 order = Order(customer_id=customer.pk) order.save() for p in data: for m in data[p]: price = SchemaSeries.objects.filter(name=p)[0].price cost += int(data[p][m]) * int(price) total_count += int(data[p][m]) new_melody = ShopItem(melody_name=m, order=order, series=p, price=int(price), ordered_count=int(data[p][m]), order_admin_verified_count=int(data[p][m]), sell_admin_verified_count=int(data[p][m])) new_melody.save(force_insert=True) order.status = Order.ORDER_ADMIN order.cost = cost order.last_change_date = timezone.now() order.order_id = get_new_order_id() order.save() return Response()
def checkout(request): user = request.user data = request.data['list'] cost = 0 customer = CustomerProfile.objects.get(user=user) order = Order.objects.filter(customer=customer).all().last() total_count = 0 if not order or order.is_checked_out: order = Order(customer_id=customer.pk) order.save() else: ShopItem.objects.filter(order=order).all().delete() for p in data: for m in data[p]: price = Series.objects.filter(name=p)[0].price cost += int(data[p][m]) * int(price) melody = ShopItem.objects.filter(melody_name=m, order=order, series=p).all().first() total_count += int(data[p][m]) if melody: melody.ordered_count = int(data[p][m]) melody.order_admin_verified_count = int(data[p][m]) melody.save(force_update=True) else: new_melody = ShopItem(melody_name=m, order=order, series=p, price=int(price), ordered_count=int(data[p][m]), order_admin_verified_count=int(data[p][m]) ) new_melody.save(force_insert=True) order.cost = cost order.order_id = get_new_order_id() order.save() discount_percent = apply_promotions(order, total_count) order.discount = discount_percent order.save() return Response(status=status.HTTP_200_OK)