def checkout(request, step=0): if (request.method == 'POST'): if request.user.is_authenticated(): now = datetime.datetime.utcnow().replace(tzinfo=utc) current_user = request.user current_order = Order(date_time=now, user=current_user) current_order.save() for i in range(1, 6): print(request.POST) try: item_quantity = int(request.POST['item_quantity_' + str(i)]) except: item_quantity = None if not item_quantity is None: item_id = request.POST['item_options_' + str(i)].split(' ')[1] print(item_id) current_sticker = Sticker.objects.get(pk=int(item_id)) print(current_sticker) order_item = OrderItem(order=current_order, sticker=current_sticker, quantity=item_quantity) order_item.save() return redirect('/order/' + str(current_order.id) + '/1')
def create_order(request, transaction_id): order = Order() checkout_form = CheckoutForm(request.POST, instance = order) order = checkout_form.save(commit = False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() # if the order save succeeded if order.pk: cart_items = shoppingcart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price oi.product = ci.product oi.save() # all set, empty card shoppingcart.empty_cart(request) # save profile info for future orders if request.user.is_authenticated(): from accounts import profile profile.set(request) # return the new order object return order
def create_order(request): """ function that takes a POST request and adds a product instance to the current customer's shopping cart """ print('create_order!!!!') post_data = request.POST.copy() cart_items = cart.get_cart_items(request) order = Order() username = request.session['username'] custom_user = Customer.objects.get( user = User.objects.get( username = request.session['username'])) order.user = custom_user order.email = post_data.get('email',1) order.phone = post_data.get('phone',1) order.ip_address = request.META.get('REMOTE_ADDR') order.save() for cart_item in cart_items: product = OrderItem() product.order = order product.product = cart_item.product product.quantity = cart_item.quantity product.save() cart.empty_cart(request) print_order(order.id) return order
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")
def create_order(request ,transaction_id): order = Order() checkout_form = CheckoutForm(request.POST , instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() # if the order saved succeeded if order.pk: cart_items =cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price() # now using @property oi.product = ci.product oi.save() # all set empty cart cart.deduct_quantity(request) # save the profile for future orders if request.user.is_authenticated(): from accounts import profile profile.set(request) # return the new order object return order
def checkout(request, step=0): if (request.method == 'POST'): if request.user.is_authenticated(): now = datetime.datetime.utcnow().replace(tzinfo=utc) current_user = request.user current_order = Order(date_time=now, user=current_user) current_order.save() for i in range(1, 6): print(request.POST) try: item_quantity = int( request.POST['item_quantity_' + str(i)]) except: item_quantity = None if not item_quantity is None: item_id = request.POST['item_options_' + str(i)].split(' ')[1] print(item_id) current_sticker = Sticker.objects.get(pk=int(item_id)) print(current_sticker) order_item = OrderItem( order=current_order, sticker=current_sticker, quantity=item_quantity) order_item.save() return redirect('/order/' + str(current_order.id) + '/1')
def create_order(request,transaction_id): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.status = Order.SUBMITTED order.user = None if request.user.is_authenticated(): order.user = request.user order.save() # if the order save succeeded if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price() # now using @property oi.product = ci.product oi.save() # all set, empty cart cart.empty_cart(request) # save profile info for future orders if request.user.is_authenticated(): from accounts import profile profile.set(request) # return the new order object return order
def create_order(request,transaction_id): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price oi.product = ci.product oi.save() cart.empty_cart(request) if request.user.is_authenticated(): from accounts import profile profile.set(request) return order
def create_order(request, order_total, transaction_id): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.status = Order.SUBMITTED order.user = None # order.order_total = order_total order_total.purchased = True if request.user.is_authenticated(): order.user = request.user from accounts import profile user_profile = profile.get_profile(request) # verificar si campos requeridos estan vacios, si lo estan crear un user_profile para este usuario desde # aqui, asi no tendria q escribirlo en el form UserProfileForm if not user_profile.email or not user_profile.shipping_name or user_profile.shipping_city == 0: profile.set_profile(request) order.save() order_total.order = order order_total.save() # if the order save succeeded if order.pk: # verificar si el usuario tuvo la promo4, para eliminarla try: promo4_id = request.session['promo4_id'] del request.session['promo4_id'] promo4 = Promo4.objects.get(id=promo4_id) promo4.active = False promo4.save() except KeyError: pass try: # eliminar el codigo de promoion para el usuario promo_id = request.session['promo3_id'] del request.session['promo3_id'] Promo3.objects.get(id=promo_id).delete() except KeyError: pass cart_items = cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price() # now using @property oi.product = ci.product # disminuir del almacen la cant disponible para este prod ci.product.quantity -= ci.quantity ci.product.save() oi.save() # all set, empty cart cart.empty_cart(request) # utils.send_email("Leoshop", "Gracias por preferirnos", user_profile.email) # return the new order object return order
def addOrder(request): c = request.POST tableData = json.loads( c['tableData']); today = jDateField(); today = today.to_python(datetime.datetime.now()) order = Order(submitDate=today) status = OrderItem.ORDER_ITEM_STATUS_CHOICES[0][0] order.user = request.user isforall = 'isforall' in request.POST and request.POST['isforall'] if request.user.is_superuser: order.status = 'A' if isforall: status = 'P' order.user = None order.save() #print tableData for order_item in tableData: #print order_item[2] if order_item[3] == '': category = None else: category = Category.objects.filter(pk=order_item[3])[0] orderitem=OrderItem(order=order, category=category, quantity=int(order_item[1]), description = order_item[4], status= status #if it's admin and the order belongs to the public ..., if it's admin the order is accepted ) orderitem.save() if request.user.is_superuser and isforall: inform_purchase_agent(subject='سفارش نیازمند خرید است',message=render_to_string('mail/buy_orderitem.html',{'orderitem' : orderitem})) c = {'rlink' : '../../myorders/' , 'success' : "سفارش شما با موفقیت ثبت شد تا لحظاتی دیگر به فهرست سفارشاتتان خواهید رفت"} if request.user.is_superuser: if not isforall : inform_warehouse_manager( message=render_to_string('mail/order_warehouse_manager.html', {'order': order}), subject='سفارش نیازمند بررسی است') else: inform_admin('سفارش جدید', render_to_string('mail/order_added.html', {'order': order})) return render_to_response("success.html",c);
def post(self, request, *args, **kwargs): try: restaurant = Restaurant.objects.get(pk=kwargs['pk']) # cookie = COOKIES.get('dishes') except ObjectDoesNotExist: return render(request,'Customer/restaurant_detail.html') # return HttpResponse('NO restaurant found.', status=status.HTTP_404_NOT_FOUND) dishNameList = request.POST.getlist("dishName") dishPriceList = request.POST.getlist("dishPrice") dishQuantityList = request.POST.getlist("dishQ") tempOrderList = [] totalPrice = 0 for i in range(0, len(dishNameList)): if(int(str(dishQuantityList[i])) > 0): oneDish = {} oneDish['dishName'] = str(dishNameList[i]) oneDish['dishPrice'] = float(str(dishPriceList[i])[1:]) oneDish['dishQuantity'] = int(str(dishQuantityList[i])) totalPrice = totalPrice + float(str(dishPriceList[i])[1:]) * int(str(dishQuantityList[i])) tempOrderList.append(oneDish) location = request.POST.get("location") deli_type = 1 if(location == ""): deli_type = 0 order = Order(restaurant = Restaurant.objects.get(pk=kwargs['pk']), buyer = request.user, time = datetime.datetime.now(), location = location, delivery_type = deli_type, total_price = totalPrice, discount = 0, paid = False) order.save() for item in tempOrderList: orderItem = OrderItem(Order = order, Dish = Dish.objects.get(name = item['dishName']), restaurant = Restaurant.objects.get(pk=kwargs['pk']), number = item['dishQuantity']) orderItem.save() response = HttpResponseRedirect('/%d/complete' %restaurant.pk) response.delete_cookie('dishes') return response
def add_order(request): #TODO: do a create order if request.method == 'POST': if 'payment_type' in request.POST: if request.POST['payment_type'] == 'card': summ = request.POST['total'] template = loader.get_template("add_order.html") context = RequestContext(request, {'summary': summ}) return HttpResponse(template.render(context)) elif 'order' in request.POST: baskets = Basket.objects.filter( basket_id=request.session.session_key) order = Orders() if request.user.is_authenticated(): order.owner = request.user order.order_id = baskets[0].order_number order.total_cost = float(request.POST['total']) order.address = request.POST['address'] order.comments = request.POST['comments'] order.billing_card = request.POST['billing_card'] order.billing_number = request.POST['billing_number'] order.billing_name = request.POST['billing_name'] order.billing_date_mm = request.POST['billing_date_mm'] order.billing_date_yy = request.POST['billing_date_yy'] order.billing_cvv = request.POST['billing_cvv'] order.save() for basket in baskets: orderitems = OrderItem() orderitems.order_id_id = order.order_id orderitems.order_sess = basket.basket_id orderitems.goods = basket.item orderitems.quantity = basket.quantity orderitems.total_price_per_goods = basket.sum_total orderitems.partnumber = basket.partnumber order.orderitem_set.add(orderitems) orderitems.save() order.save() template = loader.get_template("order_success.html") context = RequestContext(request, {'order_id': order.pk}) return HttpResponse(template.render(context))
def add_order(request): #TODO: do a create order if request.method == 'POST': if 'payment_type' in request.POST: if request.POST['payment_type'] == 'card': summ = request.POST['total'] template = loader.get_template("add_order.html") context = RequestContext(request, {'summary': summ}) return HttpResponse(template.render(context)) elif 'order' in request.POST: baskets = Basket.objects.filter(basket_id=request.session.session_key) order = Orders() if request.user.is_authenticated(): order.owner = request.user order.order_id = baskets[0].order_number order.total_cost = float(request.POST['total']) order.address = request.POST['address'] order.comments = request.POST['comments'] order.billing_card = request.POST['billing_card'] order.billing_number = request.POST['billing_number'] order.billing_name = request.POST['billing_name'] order.billing_date_mm = request.POST['billing_date_mm'] order.billing_date_yy = request.POST['billing_date_yy'] order.billing_cvv = request.POST['billing_cvv'] order.save() for basket in baskets: orderitems = OrderItem() orderitems.order_id_id = order.order_id orderitems.order_sess = basket.basket_id orderitems.goods = basket.item orderitems.quantity = basket.quantity orderitems.total_price_per_goods = basket.sum_total orderitems.partnumber = basket.partnumber order.orderitem_set.add(orderitems) orderitems.save() order.save() template = loader.get_template("order_success.html") context = RequestContext(request, {'order_id': order.pk}) return HttpResponse(template.render(context))
def create_order(request, postdata): order = Order() # order.user = None # if request.user.is_authenticated(): # order.user = request.user # данные с формы data = { u"Имя": postdata["first-name"], u"Фамилия": postdata["last-name"], u"Email": postdata["email"], u"Телефон": postdata["phone"], u"Время звонка": postdata["call-time"], u"Область": postdata["region"], u"Город": postdata["city"], u"Улица": postdata["street"], u"Дом": postdata["building"], u"Квартира": postdata["flat"], u"Способ доставки": postdata["ship-method"], u"Номер склада (адрес офиса)": postdata["warehouse"], u"Комментарий к заказу": postdata["comment"], u"Дополнительная информация": postdata["additional_info"], } # добавление данных в модель заказа order.first_name = data[u"Имя"] order.last_name = data[u"Фамилия"] order.email = data[u"Email"] order.phone = data[u"Телефон"] order.call_time = data[u"Время звонка"] order.region = data[u"Область"] order.city = data[u"Город"] order.street = data[u"Улица"] order.building = data[u"Дом"] order.flat = data[u"Квартира"] order.ship_method = data[u"Способ доставки"] order.office = data[u"Номер склада (адрес офиса)"] order.additional_info = data[u"Дополнительная информация"] order.comment = data[u"Комментарий к заказу"] order.ip_address = request.META.get("REMOTE_ADDR") order = Order(**data) order.status = order.SUBMITTED order.save() # отправка почты менеджеру send_mail_manager(data, order) # отправка почты заказчкику if data[u"Email"] != "": send_mail_customer(data, order) # if the order save succeeded if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price # now using @property oi.product = ci.product oi.save() # all set, empty cart cart.empty_cart(request)
def test_order_item(self): orderItem = OrderItem(sticker=self.sticker, order=self.order) orderItem.save() self.assertEqual(orderItem, OrderItem.objects.get(order=self.order.id))
def checkout(): form = OrderForm(request.form) if request.method == 'POST' and form.validate(): tran = Transaction() form.populate_obj(tran) tran.type = 'order' tran.total_amount = session['all_total_price'] tran.payment_status = 'unpaid' tran.save() tran.generate_txn_number() if 'discount_id' in session: tran.discount_id = session['discount_id'] tran.discounted_amount = session['discounted_price'] tran.save() # save order items for key, product in session['cart_item'].items(): # check if there is an existing order order = Order.query.filter_by( transaction_id=tran.id, registry_id=product['registry_id'], registry_type=product['registry_type']).first() if not order: order = Order() order.registry_id = product['registry_id'] order.registry_type = product['registry_type'] order.transaction_id = tran.id order.status = 'pending' order.save() order.generate_order_number() order.save() item = OrderItem(order_id=order.id, reg_product_id=key, quantity=product['quantity'], unit_price=product['unit_price'], total_price=product['total_price']) item.save() # initialize payments paystack = PaystackPay() amount = tran.discounted_amount if tran.discounted_amount else tran.total_amount response = paystack.fetch_authorization_url(email=tran.email, amount=amount) if response.status_code == 200: json_response = response.json() tran.update(payment_txn_number=json_response['data']['reference']) return redirect(json_response['data']['authorization_url']) else: flash('Something went wrong. Please try again', 'error') return redirect(url_for('.checkout')) products = session['cart_item'] return render_template('frontend/checkout.html', form=form, products=products)