예제 #1
0
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())
예제 #2
0
파일: views.py 프로젝트: vnitikesh/paytm
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)
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
 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)
예제 #6
0
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")
예제 #7
0
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")
예제 #8
0
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
    })
예제 #9
0
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})