def order_create(request): cart = Cart(request) data_dict = {} if request.method == 'POST': data_dict = {} for key in request.POST: data_dict[key] = request.POST[key] OrderFormSet = formset_factory(OrderCreateForm, extra=data_dict['form-TOTAL_FORMS']) formset = OrderFormSet(request.POST) # form = OrderCreateForm(request.POST) if formset.is_valid(): # order=Order.objects.create(customer=request.user, hostel=data_dict['hostel'], wing=data_dict['wing'], room_no=data_dict['room_no'], phone_no=data_dict['phone_no'], delivery_time=data_dict['delivery_time']) # orders = formset.save(commit=False) orders_id = [] for order in formset: order_ID = Checksum.__id_generator__() order.instance.order_id = order_ID order.instance.customer = request.user order.instance.save() # order.customer=request.user # order.save() for item in cart: OrderItem.objects.create(order=order.instance, product=item['product'], price=item['price'], quantity=item['quantity']) orders_id.append(order.instance.id) cart.clear() order = Order.objects.get(order_id=order_ID) bill_amount = order.get_total_cost() return payment(request, order_ID, bill_amount) # return render(request, 'orders/order/created.html', {'orders': orders_id}) else: OrderFormSet = formset_factory(OrderCreateForm, extra=1) formset = OrderFormSet() return render(request, 'orders/order/create.html', {'formset': formset}) # def create(request): # AddressInlineFormSet = inlineformset_factory(Address, Store, form=AddressForm) # if request.method == 'POST': # storeForm = StoreForm(request.POST) # if storeForm.is_valid(): # new_store = storeForm.save() # addressInlineFormSet = AddressInlineFormSet(request.POST, request.FILES, instance=new_store) # if addressInlineFormSet.is_valid(): # addressInlineFormSet.save() # return HttpResponseRedirect(reverse('some_happy_customer_url')) # else: # classificationformset = ClassificationInlineFormSet(request.POST, request.FILES, instance=new_store) # else: # addressInlineFormSet = AddressInlineFormSet() # storeForm = StoreForm() # return render(request, 'create.html', locals())
def payment(request): # Generating unique order id order_id = Checksum.__id_generator__() bill_amount = "100" data_dict = { 'ORDER_ID': order_id, 'TXN_AMOUNT': bill_amount, } return PaytmPaymentPage(data_dict)
def payment(request): # provide your unique order id # if you don't have your unique order id then order_id = Checksum.__id_generator__() bill_amount = "100" cust_id = "*****@*****.**" data_dict = { 'ORDER_ID': order_id, 'TXN_AMOUNT': bill_amount, 'CUST_ID': cust_id } return PaytmPaymentPage(data_dict)
def payment(request): payment_holder = PaymentHolder.objects.get(payment_id=24) order_id = Checksum.__id_generator__() payment_holder.paytm_order_id = order_id payment_holder.save() bill_amount = str(payment_holder.amount_owed) cust_id = payment_holder.user.contact data_dict = { 'ORDER_ID': order_id, 'TXN_AMOUNT': bill_amount, 'CUST_ID': cust_id, } return PaytmPaymentPage(data_dict)
def perform_create(self, serializer): order_id = Checksum.__id_generator__() bill_amount = serializer["payment_amount"] cust = Customer.objects.get(pk=1) cust_id = cust.customer_id data_dict = { 'ORDER_ID': order_id, 'TXN_AMOUNT': bill_amount, 'CUST_ID': cust_id } print(data_dict) print(PaytmPaymentPage(data_dict)) return PaytmPaymentPage(data_dict)
def payment(request): MERCHANT_KEY = settings.PAYTM_MERCHANT_KEY MERCHANT_ID = settings.PAYTM_MERCHANT_ID CALLBACK_URL = settings.HOST_URL+ settings.PAYTM_CALLBACK_URL # Generating unique temporary ids order_id = Checksum.__id_generator__() bill_amount = 10 if bill_amount: data_dict = { 'MID':MERCHANT_ID, 'ORDER_ID':str(order_id), 'TXN_AMOUNT': str(bill_amount), 'CUST_ID':'*****@*****.**', 'INDUSTRY_TYPE_ID':'Retail', 'WEBSITE': 'WEBSTAGING', 'CHANNEL_ID':'WEB', 'CALLBACK_URL': CALLBACK_URL, } param_dict = data_dict param_dict['CHECKSUMHASH'] = Checksum.generate_checksum(data_dict, MERCHANT_KEY) return render(request,"payment.html",{'paytmdict':param_dict}) return HttpResponse("Bill Amount Could not find. ?bill_amount=10")
def payment(request): MERCHANT_KEY = settings.PAYTM_MERCHANT_KEY MERCHANT_ID = settings.PAYTM_MERCHANT_ID get_lang = "/" + get_language() if get_language() else '' CALLBACK_URL = settings.HOST_URL + get_lang + settings.PAYTM_CALLBACK_URL # Generating unique temporary ids order_id = Checksum.__id_generator__() bill_amount = 100 if bill_amount: data_dict = { 'MID':MERCHANT_ID, 'ORDER_ID':str('1'), 'TXN_AMOUNT': str(bill_amount), 'CUST_ID':'*****@*****.**', 'INDUSTRY_TYPE_ID':'Retail', 'WEBSITE': settings.PAYTM_WEBSITE, 'CHANNEL_ID':'WEB', #'CALLBACK_URL':CALLBACK_URL, } param_dict = data_dict param_dict['CHECKSUMHASH'] = Checksum.generate_checksum(data_dict, MERCHANT_KEY) return render(request,"payment.html",{'paytmdict':param_dict}) return HttpResponse("Bill Amount Could not find. ?bill_amount=10")
def order_create(request): cart = Cart(request) if request.method == 'POST': print(request.POST) MERCHANT_KEY = settings.PAYTM_MERCHANT_KEY MERCHANT_ID = settings.PAYTM_MERCHANT_ID get_lang = "/" + get_language() if get_language() else '' CALLBACK_URL = settings.HOST_URL + settings.PAYTM_CALLBACK_URL order_id = Checksum.__id_generator__() bill_amount = 0 form = OrderCreate(request.POST) if form.is_valid(): name = form.cleaned_data['name'] address = form.cleaned_data['address'] email = form.cleaned_data['email'] mobno = form.cleaned_data['mobno'] order = Order(username=request.user, name=name, address=address, email=email, mobno=mobno, order_id=order_id) order.save() for item in cart: OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) bill_amount = cart.get_total_price() cart.clear() if bill_amount: data_dict = { 'MID': MERCHANT_ID, 'ORDER_ID': order_id, 'TXN_AMOUNT': bill_amount, 'CUST_ID': email, 'MOBILE_NO': mobno, 'INDUSTRY_TYPE_ID': 'Retail', 'WEBSITE': settings.PAYTM_WEBSITE, 'CHANNEL_ID': 'WEB', 'CALLBACK_URL': CALLBACK_URL, #"http://127.0.0.1:8000/paytm/response" } param_dict = data_dict param_dict['CHECKSUMHASH'] = Checksum.generate_checksum( data_dict, MERCHANT_KEY) print(param_dict) return render(request, "paytm/payment.html", {'paytmdict': param_dict}) else: return HttpResponse("Bill Amount Could not find. ?bill_amount=10") else: form = OrderCreate() return render(request, 'orders/order/create.html', { 'form': form, 'username': request.user })
def all_available_spaces(request, id): ''' booking spaces by user and calculating bills ''' print("email----", request.user.email) all_data = SpaceDetails.objects.get(id=id) booked_data = BookedSeats.objects.filter(space__id=id) time_in_hrs = int((all_data.time)[:-3]) price_per_hour = all_data.price / time_in_hrs if request.method == "POST": book_space = BookedSeats(space=all_data, user=request.user, start_date=request.POST.get("start_date"), end_date=request.POST.get("end_date"), start_time=request.POST.get("start_time"), end_time=request.POST.get("end_time")) start_date = request.POST.get("start_date") end_date = request.POST.get("end_date") start_time = request.POST.get("start_time") end_time = request.POST.get("end_time") val = check_spaces(booked_data, start_date, end_date, start_time, end_time) ''' calculating price ''' days = 1 if datetime.strptime(end_date, '%Y-%m-%d').date() != datetime.strptime( start_date, '%Y-%m-%d').date(): diff_date = datetime.strptime( end_date, '%Y-%m-%d').date() - datetime.strptime( start_date, '%Y-%m-%d').date() print(diff_date) print(str(diff_date).split(" ")) days = int(str(diff_date).split(" ")[0]) # calculating time start_time = datetime.strptime(start_time, "%H:%M") end_time = datetime.strptime(end_time, "%H:%M") diff_time = end_time - start_time diff = str(diff_time).split(":") diff_time_hrs = int(diff[0]) diff_time_min = int(diff[1]) total_price = (price_per_hour + diff_time_min / 60) * price_per_hour * days print(total_price) if val == False: book_space.save() total_cost = total_price order_id = Checksum.__id_generator__() print(order_id) param_dict = { 'MID': Test_Merchant_ID, 'ORDER_ID': order_id, 'TXN_AMOUNT': str(total_cost), 'CUST_ID': '*****@*****.**', 'INDUSTRY_TYPE_ID': 'Retail', 'WEBSITE': 'WEBSTAGING', 'CHANNEL_ID': 'WEB', 'CALLBACK_URL': 'http://127.0.0.1:8000/handlerequest' } param_dict['CHECKSUMHASH'] = Checksum.generate_checksum( param_dict, Test_Merchant_Key) return render(request, 'lookspace_app/paytm.html', {'param_dict': param_dict}) else: print("space is not available") messages.error(request, 'Space is not available.') return render(request, 'lookspace_app/book_space.html', {'all_data': all_data})