def new_order(request, pk): template = 'pos/new_order.html' form = OrderForm(request.POST or None) if request.method == 'POST': if form.is_valid(): table_order = Order.objects.filter(table=pk) latest = table_order.latest('created') if latest.paid == True: order = Order() else: order = latest order.number = Order.objects.count() + 1 order.table = Table.objects.get(number=pk) order.paid = False order.save() orderitem = OrderItem() product = form.cleaned_data.get('product') orderitem.product = Product.objects.get(title=product) orderitem.order = order orderitem.table = Table.objects.get(number=pk) orderitem.quantity = form.cleaned_data.get('quantity') orderitem.total_price = orderitem.quantity * orderitem.product.unit_price orderitem.discount = form.cleaned_data.get('discount') orderitem.notes = form.cleaned_data.get('notes') orderitem.save() return redirect('/table/' + pk) context = {'form': form} return render(request, template, context)
def checkout(request): context = {} print('url = ',request.build_absolute_uri) cart_obj, cart_created = Cart.objects.new_or_get(request) billing_address_id = request.session.get('billing_address_id', None) shipping_address_id = request.session.get('shipping_address_id', None) billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request) order_obj = None if cart_created or cart_obj.cart_items.count() == 0: return redirect('/') login_form = LoginForm() guest_form = GuestForm() if billing_profile : if not shipping_address_id : return redirect('addresses:shipping_address') if not billing_address_id: return redirect('addresses:billing_address') context['shipping_address'] = Address.objects.get(id=shipping_address_id, billing_profile=billing_profile) context['billing_address'] = Address.objects.get(id=billing_address_id, billing_profile=billing_profile) if request.method == "POST": if billing_profile is not None: print('billing exist') order_obj, new_obj = Order.objects.new_or_get(billing_profile, cart_obj) if shipping_address_id: print(shipping_address_id) order_obj.shipping_address = Address.objects.get(id=shipping_address_id) if billing_address_id: print(billing_address_id) order_obj.billing_address = Address.objects.get(id=billing_address_id) if billing_address_id or shipping_address_id: order_obj.save() order_item = OrderItem() for item in cart_obj.cart_items.all(): order_item = OrderItem() order_item.order = order_obj order_item.item = item.item order_item.quantity = item.quantity order_item.total = item.total order_item.save() cart_obj.cart_items.all().delete() del request.session['item_count'] return redirect("success") context['order'] = order_obj context['form'] = login_form context['guest_form'] = guest_form context['cart'] = cart_obj context['billing_profile'] = billing_profile return render(request, 'carts/checkout.html', context)
def new_order(atg_order, tinla_profile, client): # Ensure that there is no profile with this atg login map_entry = None try: map_entry = AtgOrderMigrationMap.objects.select_related('order').get( atg_order=atg_order.order.order) log.info("Already migrated %s, skipping new_order" % atg_order.order.order) return map_entry.order except AtgOrderMigrationMap.DoesNotExist: pass # create new order order = Order() order.user = tinla_profile order.state = get_order_state(atg_order.order.order_state) order.timestamp = atg_order.order.atg_creation_date order.payment_realized_on = atg_order.order.atg_submitted_date order.modified_on = atg_order.order.last_modified_date order.reference_order_id = atg_order.order.order order.client = client order.save() # delivery info shipping = DcsppShipGroup.objects.filter(order_ref=atg_order.order.order) if shipping: shipping = shipping[0] dcspp_addr = DcsppShipAddr.objects.filter( shipping_group=shipping.shipping_group) if dcspp_addr: shipping = dcspp_addr[0] if shipping: addr = Address() addr.profile = tinla_profile addr.account = client.account_set.all()[0] addr.first_name = shipping.first_name addr.last_name = shipping.last_name addr.phone = shipping.phone_number addr.email = shipping.email addr.pincode = shipping.postal_code country, state, city = '', '', '' try: if shipping.county: country = get_country(shipping.county) if shipping.state and country: state = get_state(shipping.state.state_name, country) if shipping.city and state: city = get_city(shipping.city, state) if country: addr.country = country if state: addr.state = state if city: addr.city = city except: pass addr.save() del_info = DeliveryInfo() del_info.address = addr del_info.order = order del_info.save() order_items = atg_order.order.dcspporderitem_set.all() list_price_total, shipping_charges = Decimal(0), Decimal(0) for atg_oi in order_items: oi = OrderItem() ci = atg_oi.commerce_items oi.order = order oi.state = get_order_state(ci.state) try: src = SellerRateChart.objects.get(sku=ci.sku.sku.sku_id, seller__client=client) oi.seller_rate_chart = src except SellerRateChart.DoesNotExist: pass oi.list_price = ci.amount_info.list_price list_price_total += ci.amount_info.list_price oi.sale_price = ci.amount_info.sale_price del_item = FtbShipitemRel.objects.filter( relationship__commerce_item=atg_oi) if del_item: del_item = del_item[0] oi.shipping_charges = del_item.shipping_cost shipping_charges += del_item.shipping_cost "shipping found for ", atg_order.order oi.qty = ci.quantity oi.save() # amount info order_discount_total = Decimal(str(atg_order.ord_misc_field1)) sale_price_total = atg_order.order.price_info.raw_subtotal total_order_shipping = atg_order.order.price_info.shipping + shipping_charges order.shipping_charges = total_order_shipping order.list_price_total = list_price_total order.total = sale_price_total order.payable_amount = sale_price_total + total_order_shipping - order_discount_total order.save() print order.id print order.reference_order_id # map entry map_entry = AtgOrderMigrationMap(order=order, atg_order=atg_order.order.order) map_entry.save()
def new_order(atg_order, tinla_profile, client): # Ensure that there is no profile with this atg login map_entry = None try: map_entry = AtgOrderMigrationMap.objects.select_related('order').get( atg_order = atg_order.order.order) log.info("Already migrated %s, skipping new_order" % atg_order.order.order) return map_entry.order except AtgOrderMigrationMap.DoesNotExist: pass # create new order order = Order() order.user = tinla_profile order.state = get_order_state(atg_order.order.order_state) order.timestamp = atg_order.order.atg_creation_date order.payment_realized_on = atg_order.order.atg_submitted_date order.modified_on = atg_order.order.last_modified_date order.reference_order_id = atg_order.order.order order.client = client order.save() # delivery info shipping = DcsppShipGroup.objects.filter(order_ref = atg_order.order.order) if shipping: shipping = shipping[0] dcspp_addr = DcsppShipAddr.objects.filter(shipping_group=shipping.shipping_group) if dcspp_addr: shipping = dcspp_addr[0] if shipping: addr = Address() addr.profile = tinla_profile addr.account = client.account_set.all()[0] addr.first_name = shipping.first_name addr.last_name = shipping.last_name addr.phone = shipping.phone_number addr.email = shipping.email addr.pincode = shipping.postal_code country, state, city = '', '', '' try: if shipping.county: country = get_country(shipping.county) if shipping.state and country: state = get_state(shipping.state.state_name, country) if shipping.city and state: city = get_city(shipping.city, state) if country: addr.country = country if state: addr.state = state if city: addr.city = city except: pass addr.save() del_info = DeliveryInfo() del_info.address = addr del_info.order = order del_info.save() order_items = atg_order.order.dcspporderitem_set.all() list_price_total, shipping_charges = Decimal(0), Decimal(0) for atg_oi in order_items: oi = OrderItem() ci = atg_oi.commerce_items oi.order = order oi.state = get_order_state(ci.state) try: src = SellerRateChart.objects.get(sku=ci.sku.sku.sku_id, seller__client = client) oi.seller_rate_chart = src except SellerRateChart.DoesNotExist: pass oi.list_price = ci.amount_info.list_price list_price_total += ci.amount_info.list_price oi.sale_price = ci.amount_info.sale_price del_item = FtbShipitemRel.objects.filter(relationship__commerce_item = atg_oi) if del_item: del_item = del_item[0] oi.shipping_charges = del_item.shipping_cost shipping_charges += del_item.shipping_cost "shipping found for ", atg_order.order oi.qty = ci.quantity oi.save() # amount info order_discount_total = Decimal(str(atg_order.ord_misc_field1)) sale_price_total = atg_order.order.price_info.raw_subtotal total_order_shipping = atg_order.order.price_info.shipping + shipping_charges order.shipping_charges = total_order_shipping order.list_price_total = list_price_total order.total = sale_price_total order.payable_amount = sale_price_total + total_order_shipping - order_discount_total order.save() print order.id print order.reference_order_id # map entry map_entry = AtgOrderMigrationMap(order = order, atg_order = atg_order.order.order) map_entry.save()