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)
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)