示例#1
0
def cancel_order(request):
    ClinicManager.objects.get(user=request.user)
    if request.method == 'POST':
        req_obj = json.loads(request.body.decode('utf-8'))
        order_id = req_obj['order_id']
        order_object = Order.objects.get(id=order_id)

        # Delete only if the order is queued for processing
        if order_object.order_status == "Queued for Processing":
            try:
                if ProcessQueue.objects.get(order_id=order_id):
                    # Delete if in process queue
                    process_queue_object = ProcessQueue.objects.get(
                        order_id=order_id)
                    process_queue_object.delete()
                    current_process_queue = sorted(ProcessQueue.objects.all(),
                                                   key=lambda x: x.queue_no)
                    i = 1
                    for contents in current_process_queue:
                        contents.queue_no = i
                        contents.save()
                        i += 1

            except ProcessQueue.DoesNotExist:
                pass

            order_object.delete()

    update_process_queue()
    update_dispatch_queue()
    return HttpResponse("")
示例#2
0
def notify_delivery(request):
    ClinicManager.objects.get(user=request.user)
    if request.method == 'POST':
        req_obj = json.loads(request.body.decode('utf-8'))
        order_id = req_obj['order_id']
        order_object = Order.objects.get(id=order_id)
        order_object.time_delivered = timezone.now()
        order_object.order_status = "Delivered"
        order_object.save()

    update_process_queue()
    update_dispatch_queue()
    return HttpResponse("")
示例#3
0
def place_order(request):
    ClinicManager.objects.get(user=request.user)
    if request.method == 'POST':
        req = json.loads(request.body.decode('utf-8'))
        print(req)
        if len(request.session['cart']) > 0:
            if place_order_for_user(request.session['cart'],
                                    request.session['clinic'],
                                    req['priority']):

                request.session['cart'] = []
                request.session['total_weight'] = 0
                request.session.modified = True
                update_process_queue()
                update_dispatch_queue()
                return HttpResponse(json.dumps({'status': 'success'}))
            else:
                request.session['cart'] = []
                request.session['total_weight'] = 0
                update_process_queue()
                update_dispatch_queue()
                return HttpResponse(json.dumps({'status': 'overweight'}))
        else:
            update_process_queue()
            update_dispatch_queue()
            return HttpResponse(json.dumps({'status': 'emptycart'}))
    else:
        update_process_queue()
        update_dispatch_queue()
        return HttpResponse()
示例#4
0
def index(request):
    Dispatcher.objects.get(user=request.user)
    """
    Render the Dispatcher home page.
    :param request:
    :return: Render template
    """
    update_process_queue()
    update_dispatch_queue()

    dispatch_queue = DispatchQueue.objects.all().order_by('queue_number')

    if len(dispatch_queue) < 1:
        return render(request, 'dispatcher/index.html')

    if 'dispatch' not in request.session:
        request.session['dispatch'] = []

    orders = []
    weight = 0.0
    for order in dispatch_queue:
        order_details = Order.objects.get(id=order.order_id)
        order_details.total_weight = round(order_details.total_weight, 2)
        weight += order_details.total_weight

        if weight > 23.8:
            break

        order_details.content_details = []

        order_contents = json.loads(order_details.contents)['contents']
        for cont in order_contents:
            item = Item.objects.get(id=cont['product_id'])
            item.qty = cont['qty']
            order_details.content_details.append(item)

        orders.append(order_details)

    route_plan(orders)
    context = {
        'orders': orders
    }
    return render(request, 'dispatcher/index.html', context=context)
示例#5
0
文件: views.py 项目: utkarsh867/ASP
def index(request):
    WarehousePersonnel.objects.get(user=request.user)
    update_process_queue()
    update_dispatch_queue()
    process_queue_top = ProcessQueue.objects.filter(queue_no=0)

    order_details = None
    if (len(process_queue_top) >= 1):
        if 'process' not in request.session:
            request.session['process'] = []

        order_details = Order.objects.get(id=process_queue_top[0].order_id)
        order_details.total_weight = round(order_details.total_weight, 2)
        order_details.content_details = []

        order_contents = json.loads(order_details.contents)['contents']
        for cont in order_contents:
            item = Item.objects.get(id=cont['product_id'])
            item.qty = cont['qty']
            order_details.content_details.append(item)

    order_in_process = Order.objects.filter(
        order_status='Processing by Warehouse')
    print(order_in_process)
    order_warehouse = None

    if (len(order_in_process) > 0):
        for order in order_in_process:
            order.content_details = []
            order_contents = json.loads(order.contents)['contents']
            for cont in order_contents:
                item = Item.objects.get(id=cont['product_id'])
                item.qty = cont['qty']
                order.content_details.append(item)
        order_warehouse = order_in_process[0]

    context = {'order': order_details, 'warehouse': order_warehouse}
    return render(request, 'warehouse/index.html', context=context)
示例#6
0
文件: views.py 项目: utkarsh867/ASP
def do_pop(request):
    WarehousePersonnel.objects.get(user=request.user)
    processing_orders = Order.objects.filter(
        order_status='Processing by Warehouse')
    if len(processing_orders) > 0:
        return HttpResponse(json.dumps({'msg': 1}))

    process_queue_top = ProcessQueue.objects.get(queue_no=0)
    order = Order.objects.get(id=process_queue_top.order_id)

    order.order_status = 'Processing by Warehouse'
    order.save()

    request.session['process'].append({
        'id': order.id,
        'total_weight': order.total_weight
    })
    request.session.modified = True

    update_process_queue()

    print(request.session['process'])
    return HttpResponse(json.dumps({'msg': 0}))