Пример #1
0
    def post(self, request):
        medlist = request.data.get('list')
        userph = request.data.get('phone')
        user = User.objects.get(phone=userph)
        user_id = user.id
        store_id = medlist[0]['drugstore']

        if request.data.get('pay_method'):
            pay_method = request.data.get('pay_method')

            med_price = 0
            count = 0
            ordergoods = []
            for med in medlist:
                price = med['price'] * med['num']

                context = {
                    'med_name': med['name'],
                    'med_price': price,
                    'med_count': med['num'],
                }
                ordergoods.append(context)
                med_price += price
                count += med['num']

            order = Orders()
            order.order_id = datetime.now().strftime('%Y%m%d%H%M%S') + str(
                store_id) + str(user_id)
            order.customer_id = user_id
            order.drugstore_id = store_id
            order.med_price = med_price
            order.transit_price = 2
            order.total_price = med_price + order.transit_price
            order.total_count = count
            order.order_status = 1
            order.pay_method = pay_method
            order.staff_id = 999
            order.save()

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

            order_ = {
                'order_id': order.order_id,
                'user': User.objects.get(id=user_id).name,
                'address': order.customer.addr,
                'receiver': order.customer.name,
                'phone': order.customer.phone,
                'drugstore': order.drugstore.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],
                'pay_method': paymethod[order.pay_method],
            }

            for med in medlist:
                price = med['price'] * med['num']

                ordergood = OrderGoods()
                ordergood.sku_id = med['id']
                ordergood.order_id = order.order_id
                ordergood.count = med['num']
                ordergood.price = price
                ordergood.save()
                med_ = Medicine.objects.get(id=med['id'])
                med_.stock -= med['num']
                med_.sales += med['num']
                med_.save()

            return Response({'status': 1})
        else:

            med_price = 0
            count = 0
            ordergoods = []
            for med in medlist:
                price = med['price'] * med['num']

                context = {
                    'med_name': med['name'],
                    'med_price': price,
                    'med_count': med['num'],
                }
                ordergoods.append(context)
                med_price += price
                count += med['num']

            order = Orders()
            order.order_id = datetime.now().strftime('%Y%m%d%H%M%S') + str(
                store_id) + str(user_id)
            order.customer_id = user_id
            order.drugstore_id = store_id
            order.med_price = med_price
            order.transit_price = 2
            order.total_price = med_price + order.transit_price
            order.total_count = count
            order.order_status = 1

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

            order_ = {
                'order_id': order.order_id,
                'user': User.objects.get(id=user_id).name,
                'address': order.customer.addr,
                'receiver': order.customer.name,
                'phone': order.customer.phone,
                'drugstore': order.drugstore.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],
            }

            return Response({'ordergoods': ordergoods, 'order': order_})
Пример #2
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)