Пример #1
0
def staff_order_add(request):
    # 判断是否登录
    context = {
        'page': 'staff_order_add',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
        if request.session.get('identity') == 'shopkeeper':
            context['page'] = 'find_staff'
            context['errmsg'] = '请以员工账号登录,用以生成订单'
            shopkeeper = True
            return render(request, 'staff/find_staff.html', context=context)
        else:
            shopkeeper = False
    else:
        return login(request)

    store_id = request.session.get('storeid')
    staff_id = request.session.get('staffid')

    if request.POST.get('pay_method'):
        pay_method = request.POST.get('pay_method')
        carts = Cart.objects.filter(C_store=request.session.get('storeid'))
        med_price = 0
        count = 0
        ordergoods = []
        for med in carts:
            price = med.C_goods.price * med.C_goods_num
            context1 = {
                'med_name': med.C_goods.name,
                'med_price': price,
                'med_count': med.C_goods_num,
            }
            ordergoods.append(context1)
            med_price += price
            count += med.C_goods_num

        order = Orders()
        order.order_id = datetime.now().strftime('%Y%m%d%H%M%S') + \
            str(store_id) + str(staff_id)
        order.staff_id = staff_id
        order.drugstore_id = store_id
        order.med_price = med_price
        order.transit_price = 0
        order.total_price = med_price
        order.total_count = count
        order.order_status = 4
        order.pay_method = int(pay_method)
        order.sale_method = 0  # 默认线下销售
        order.save()

        paymethod = ['现金支付', '微信支付', '支付宝']
        orderstatus = ['待支付', '待配送', '已送达', '待评价', '已完成']

        order_ = {
            'order_id': order.order_id,
            'staff': order.staff.name,
            # 'address': Order.addr,
            # 'receiver': address_.receiver,
            # 'phone': address_.phone,
            # 'drugstore': drug_store.name,
            'pay_method': paymethod[order.pay_method],
            'med_price': order.med_price,
            'total_count': order.total_count,
            'total_price': order.total_price,
            'transit_price': order.transit_price,
            'order_status': orderstatus[order.order_status],
        }

        for med in carts:
            price = med.C_goods.price * med.C_goods_num
            ordergood = OrderGoods()
            ordergood.sku_id = med.C_goods_id
            ordergood.order_id = order.order_id
            ordergood.count = med.C_goods_num
            ordergood.price = price
            ordergood.save()
            med_ = Medicine.objects.get(id=med.C_goods_id)
            med_.stock -= med.C_goods_num
            med_.sales += med.C_goods_num
            med_.save()
            med.delete()

        return redirect('orders:order_list')

    else:
        carts = Cart.objects.filter(C_store=request.session.get('storeid'))
        med_price = 0
        count = 0
        ordergoods = []
        for med in carts:
            price = med.C_goods.price * med.C_goods_num

            context1 = {
                'med_name': med.C_goods.name,
                'med_price': price,
                'med_count': med.C_goods_num,
            }
            ordergoods.append(context1)
            med_price += price
            count += med.C_goods_num

        order = Orders()
        order.order_id = datetime.now().strftime('%Y%m%d%H%M%S') + \
            str(store_id) + str(staff_id)
        order.staff_id = staff_id
        order.drugstore_id = store_id
        order.med_price = med_price
        order.transit_price = 0
        order.total_price = med_price
        order.total_count = count
        order.order_status = 4

        paymethod = ['现金支付', '微信支付', '支付宝']
        orderstatus = ['待支付', '待配送', '已送达', '待评价', '已完成']
        staffname = Staff.objects.get(id=staff_id).name
        order_ = {
            'order_id': order.order_id,
            'staff': staffname,
            # 'address': Order.addr,
            # 'receiver': address_.receiver,
            # 'phone': address_.phone,
            # 'drugstore': drug_store.name,
            'med_price': order.med_price,
            'total_count': order.total_count,
            'total_price': order.total_price,
            'transit_price': order.transit_price,
            'order_status': orderstatus[order.order_status],
        }
    context['ordergoods'] = ordergoods
    context['order'] = order_
    return render(request, "orders/staff_order_add.html", context=context)