def confirm_item_shipped_in_thailand(request, order_id):
    if request.session["is_shipper"] != True:
        error(request, 'You do not have permissions to access this page.')
        return redirect('friendship:index')
    order = Order.objects.filter(id=order_id).filter(shipper=request.user)
    if not order:
        error(request, 'no orders found')
        return redirect('friendship:index')
    order = order[0]

    if request.method == 'POST':
        form = UploadTrackingNumberForm(request.POST, request.FILES)
        if form.is_valid():
            data_dict = {x: v for x, v in form.cleaned_data.items()}
            TrackingNumber.objects.create(
                order=order,
                provider=data_dict["provider"],
                tracking_number=data_dict["tracking_number"],
                shipping_stage=TrackingNumber.ShippingStage.
                DOMESTIC_TO_RECEIVER,
            )
            create_action_for_order(
                order, OrderAction.Action.ITEM_SHIPPED_DOMESTICALLY_BY_SHIPPER)
            return redirect('friendship:user_open_bids')
    else:
        form = UploadTrackingNumberForm()

    return render(request, 'friendship/confirm_item_shipped_in_thailand.html',
                  {
                      'order': order,
                      'form': form
                  })
def confirm_item_purchased_receipt(request, order_id):
    if request.session["is_shipper"] != True:
        error(request, 'You do not have permissions to access this page.')
        return redirect('friendship:index')
    order = Order.objects.filter(id=order_id).filter(shipper=request.user)
    if not order:
        error(request, 'no orders found')
        return redirect('friendship:index')
    order = order[0]

    if request.method == 'POST':
        form = UploadItemPurchasedReceiptForm(request.POST, request.FILES)
        if form.is_valid():
            data_dict = {x: v for x, v in form.cleaned_data.items()}
            order.item_receipt_image = data_dict["picture"]
            order.save()
            create_action_for_order(
                order, OrderAction.Action.ITEM_ORDERED_BY_FRIENDSHIPS)
            return redirect('friendship:user_open_bids')
    else:
        form = UploadItemPurchasedReceiptForm()

    return render(request, 'friendship/confirm_item_purchased_receipt.html', {
        'order': order,
        'form': form
    })
def confirm_banknote(request, order_id):
    if request.session["is_shipper"] != True:
        error(request, 'You do not have permissions to access this page.')
        return redirect('friendship:index')
    order = Order.objects.filter(id=order_id).filter(shipper=request.user)
    if not order:
        error(request, 'no orders found')
        return redirect('friendship:index')
    order = order[0]

    if request.method == 'POST':
        form = ConfirmBanknoteForm(request.POST)
        if form.is_valid():
            data_dict = {x: v for x, v in form.cleaned_data.items()}
            if data_dict["is_ok"] == "True":
                create_action_for_order(order,
                                        OrderAction.Action.PAYMENT_RECEIVED)
            else:
                create_action_for_order(order,
                                        OrderAction.Action.ORDER_DECLINED)
            return redirect('friendship:user_open_bids')
    else:
        thb_total = math.ceil(
            order.final_bid.get_total(currency=Money.Currency.THB))
        new_val = "\u0E3F{}".format(
            math.ceil(thb_total -
                      thb_total * settings.MANUAL_BANK_TRANSFER_DISCOUNT))
        form = ConfirmBanknoteForm()

    return render(request, 'friendship/confirm_banknote.html', {
        'order': order,
        'form': form,
        'val': new_val
    })
def confirm_item_arrived_in_thailand(request, order_id):
    if request.session["is_shipper"] != True:
        error(request, 'You do not have permissions to access this page.')
        return redirect('friendship:index')
    order = Order.objects.filter(id=order_id).filter(shipper=request.user)
    if not order:
        error(request, 'no orders found')
        return redirect('friendship:index')
    order = order[0]
    create_action_for_order(order, OrderAction.Action.ITEM_ARRIVED_IN_THAILAND)
    return redirect('friendship:user_open_bids')
def upload_picture_process(request, order_id):
    if request.method == "POST":
        form = UploadPictureForm(request.POST, request.FILES)
        order = Order.objects.get(pk=order_id)

        if form.is_valid():
            imagef = form.cleaned_data["picture"]
            create_action_for_order(order, OrderAction.Action.BANKNOTE_UPLOADED)
            return redirect('friendship:order_details', pk=order_id)
        else:
            messages.error(request, 'Bad image')
            return redirect('friendship:upload_picture_view', order_id=order_id)
    else:
        messages.debug(request, 'Must be a post request')
        return redirect('friendship:order_details', pk=order_id)
Exemple #6
0
def order_bid_clean():
    """
    This function declines all the unfulfilled items (unpaid).
    """
    end_time = datetime.datetime.utcnow().replace(tzinfo=pytz.utc) - datetime.timedelta(days=1)
    orders = Order.objects.filter(
        bid_end_datetime__lte=end_time
    ).filter(
        latest_action__action__lt=OrderAction.Action.BANKNOTE_UPLOADED
    ).filter(
        latest_action__action__gt=OrderAction.Action.MATCH_NOT_FOUND
    )

    for order in orders:
        create_action_for_order(order, OrderAction.Action.ORDER_DECLINED)