Ejemplo n.º 1
0
def finance(request):
    # 判断是否登录
    context = {
        'page': 'homepage_update',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)

    year = request.POST.get('time1')
    month = request.POST.get('time2')
    id = request.session.get('storeid')
    Orders_ = Orders.objects.filter(drugstore=id)

    order_y_m = []
    for order in Orders_:
        if year and month:
            if order.time.strftime('%Y%m') == str(year) + str(month):
                order_y_m.append(order)
        if year and not month:
            if order.time.strftime('%Y') == str(year):
                order_y_m.append(order)

    total_in = 0
    for i in order_y_m:
        total_in += i.med_price
    return render(request, "orders/finance.html", total_in)
Ejemplo n.º 2
0
def finance_month_datas(request):
    # 判断是否登录
    context = {
        'page': 'order_list',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        store = medstore.objects.get(pk=storeid)
        context['username'] = username
    else:
        return login(request)

    if request.method == 'GET':
        year = request.GET.get('year')
        month = request.GET.get('month')
        # if startdate > enddate:
        #     startdate, enddate = enddate, startdate
        orders = Orders.objects.filter(drugstore=store)
        if orders == None:
            return HttpResponse("None")
        if year == None and month == None:
            year = datetime.datetime.now().strftime('%Y')
            month = datetime.datetime.now().strftime('%m')
        all = {
            "title": "{}年{}月的每日销售数据:".format(year, month),
            "allnum": 0,
            "allmoney": 0,
            "all_i": [],
            "all_daycount": [],
            "all_dayallprice": [],
        }
        allorders = orders.filter(time__year=year, time__month=month)
        if allorders == None:
            return HttpResponse("None")
        all_daycount = {}
        all_dayprice = {}
        days = int(calendar.monthrange(int(year), int(month))[1])
        for i in range(1, days + 1):
            orders = allorders.filter(time__day=i)
            all_daycount[i] = 0
            all_dayprice[i] = 0
            if orders == None:
                continue
            else:
                for order in orders:
                    med_price = order.med_price
                    all["allmoney"] += med_price
                    total_count = order.total_count
                    all["allnum"] += total_count
                    all_daycount[i] += total_count
                    all_dayprice[i] += med_price

        for dayname in all_daycount.keys():
            all["all_i"].append(str(month) + "-" + str(dayname))
            all["all_daycount"].append(all_daycount[dayname])
            all["all_dayallprice"].append(all_dayprice[dayname])
    data = json.dumps(all, ensure_ascii=False)
    return HttpResponse(data)
Ejemplo n.º 3
0
def add_to_cart(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
    else:
        return login(request)

    if request.method == "POST":
        goodsid = request.POST.get('id')
        goodsnum = request.POST.get('goodsnum')
        Cart1 = Cart.objects.filter(C_goods_id=goodsid).filter(
            C_store_id=store)
        if Cart1.exists():
            Cart1 = Cart1[0]
            Cart1.C_goods_num = goodsnum
            Cart1.save()
        else:
            c_obj = Cart()
            c_obj.C_goods_id = goodsid
            c_obj.C_store_id = store
            c_obj.C_goods_num = goodsnum
            c_obj.save()

        if goodsnum == 0:
            Cart.objects.filter(C_goods_id=goodsid).filter(
                C_store_id=store).filter(C_goods_num=goodsnum).delete()
        return redirect(reverse('medicine:cart_list'))
    elif request.method == "GET":
        goodsid = request.GET.get('id')
        if (goodsid == None):
            return redirect(reverse('medicine:find_medicine'))
        # 获取购物车里的数据
        carts = Cart.objects.filter(
            C_store_id=request.session.get('storeid')).filter(
                C_goods_id=goodsid)
        # 有数据
        if carts.exists():
            c_obj = carts.first()
            goodsnum = c_obj.C_goods_num

        # 没有数据创建新的
        else:
            goodsnum = 1

        if goodsnum == 0:
            Cart.objects.filter(pk=c_obj.id).delete()
    else:
        print("ok")
        return redirect(reverse('medicine:find_medicine'))
    good = Medicine.objects.filter(pk=goodsid)
    context["good"] = good[0]
    context["goodnum"] = goodsnum
    return render(request, "medicine/add_to_cart.html", context=context)
Ejemplo n.º 4
0
def cart_list(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
        allprice = get_allprice(request)
    else:
        return login(request)
    context['allprice'] = allprice
    return render(request, "medicine/cart_list.html", context=context)
Ejemplo n.º 5
0
def register_staff(request):
    context = {
        'page': 'register_staff',
    }
    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['errmsg'] = '请以店主账号登录'
            shopkeeper = False
            return render(request,
                          'staff/register_staff.html',
                          context=context)
        else:
            shopkeeper = True
    else:
        return login(request)

    if request.method == "POST" and shopkeeper:
        username = request.POST.get('username')
        name = request.POST.get('name')
        password = request.POST.get('password')
        phonenumber = request.POST.get("phonenumber")
        desc = request.POST.get("desc")
        user_model = Staff.objects.filter(username=username).filter(
            store_id=store)

        # 参数验证
        if not all([username, name, password, phonenumber, desc]):
            # 参数不完整
            context['errmsg'] = '数据不完整'
            return render(request,
                          'staff/register_staff.html',
                          context=context)

        if user_model:  #不为NULL
            context['errmsg'] = '用户名已存在'
            return render(request,
                          'staff/register_staff.html',
                          context=context)
        else:
            user = Staff()
            user.username = username
            user.name = name
            user.password = password
            user.phonenumber = phonenumber
            user.desc = desc
            user.store_id = store
            user.save()
            return redirect(reverse('staff:find_staff'))
    return render(request, 'staff/register_staff.html', context=context)
Ejemplo n.º 6
0
def find_medicine(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)
    if request.method == 'POST':
        name = request.POST.get("name")
        context["name"] = name
    return render(request, "medicine/find_medicine.html", context=context)
Ejemplo n.º 7
0
def medicine_detail(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)

    pk = request.GET.get('id')
    obj = Medicine.objects.get(id=pk)
    context["obj"] = obj
    return render(request, "medicine/medicine_detail.html", context=context)
Ejemplo n.º 8
0
def del_cart_list(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)

    pk = request.GET.get('id')
    obj = Cart.objects.get(id=pk)
    obj.delete()
    return redirect(reverse('medicine:cart_list'))
Ejemplo n.º 9
0
def order_details(request):
    # 判断是否登录
    context = {
        'page': 'order_list',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)

    id = request.GET.get("order_id")

    Order = Orders.objects.get(order_id=id)

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

    context1 = {
        '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],
        },
        'order_med': []
    }

    order_med = OrderGoods.objects.filter(order=Order.order_id)
    for med in order_med:
        med_detail = {
            'med_code': med.sku.medicinecode,
            'med_name': med.sku.name,
            'med_count': med.count,
            'med_price': med.price,
        }
        context1['order_med'].append(med_detail)
    context['context'] = context1
    return render(request, "orders/order_details.html", context=context)
Ejemplo n.º 10
0
def get_allprice(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
    else:
        return login(request)

    carts = Cart.objects.filter(C_store=store)
    allprice = 0
    for med in carts:
        price = med.C_goods.price * med.C_goods_num
        allprice += price
    return allprice
Ejemplo n.º 11
0
def detail_staff(request):
    context = {"page": "find_staff"}
    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['errmsg'] = '请以店主账号登录'
        #     shopkeeper = False
        #     return render(request, 'store/find_staff.html', context=context)
        # else:
        #     shopkeeper = True
    else:
        return login(request)
    pk = request.GET.get('id')
    obj = Staff.objects.get(id=pk)
    context["staff"] = obj
    return render(request, 'staff/detail_staff.html', context=context)
Ejemplo n.º 12
0
def cart_list_data(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)

    carts = Cart.objects.filter(C_store=store)
    carts_ = []
    allprice = 0
    for med in carts:
        price = med.C_goods.price * med.C_goods_num
        allprice += price
        cart1 = {
            'id': med.id,
            'med_name': med.C_goods.name,
            'price': price,
            'med_count': med.C_goods_num,
            'med_id': med.C_goods_id,
            'med_price': med.C_goods.price
        }
        carts_.append(cart1)
    for data in carts_:
        med_id = str(data['med_id'])
        id = str(data['id'])
        data['med_price'] = str(data['med_price']) + "元"
        data['price'] = str(data['price']) + "元"
        data[
            'del_cart'] = '<button class="button1" onclick="del_cart(' + id + ')">删除</button>'
        data[
            'edit_cart'] = '<button class="button1" onclick="add(' + med_id + ')">修改数量</button>'
    num = len(carts_) + 1
    cart1 = {
        'id': "总价",
        'price': str(allprice) + "元",
    }
    carts_.append(cart1)
    return HttpResponse('{"code":0,"msg":"","count":' + str(num) + ',"data":' +
                        json.dumps(carts_, ensure_ascii=False) + "}",
                        content_type="application/json")
Ejemplo n.º 13
0
def del_order(request):
    # 判断是否登录
    context = {
        'page': 'order_list',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)

    id = request.GET.get('order_id')
    obj = Orders.objects.get(order_id=id)
    obj.delete()
    order_med = OrderGoods.objects.filter(order=id)
    for med in order_med:
        med.delete()
    return redirect(reverse('orders:order_list'))
Ejemplo n.º 14
0
def add_medicine(request):
    context = {"page": "add_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        context['username'] = username

    else:
        return login(request)

    drugstore = request.session.get('storeid')
    if request.method == "POST":
        name = request.POST.get("name")
        price = request.POST.get("price")
        desc = request.POST.get("desc")
        status = request.POST.get("status")
        stock = request.POST.get("stock")
        medicinecode = request.POST.get("medicinecode")
        unite = request.POST.get("unite")
        type = request.POST.get("type")
        # image=request.FILES.get("medicineimg")
        if not all(
            [name, price, desc, status, stock, medicinecode, unite, type]):
            context['errmsg'] = '数据不完整'
            return render(request,
                          "medicine/add_medicine.html",
                          context=context)
        medicine = Medicine()
        medicine.name = name
        medicine.price = price
        medicine.status = status
        medicine.desc = desc
        medicine.stock = stock
        medicine.medicinecode = medicinecode
        medicine.unite = unite
        medicine.type = type
        medicine.drugstore_id = drugstore

        medicine.save()

    return render(request, "medicine/add_medicine.html", context=context)
Ejemplo n.º 15
0
def del_staff(request):
    context = {"page": "find_staff"}
    shopkeeper = False
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
        staff_model = Staff.objects.filter(store_id=store)
        context["staff_model"] = staff_model
        if request.session.get('identity') != 'shopkeeper':
            context['errmsg'] = '请以店主账号登录'
            shopkeeper = False
            return render(request, 'staff/find_staff.html', context=context)
        else:
            shopkeeper = True
    else:
        return login(request)

    if shopkeeper:
        pk = request.GET.get('id')
        obj = Staff.objects.get(id=pk)
        obj.delete()
        return redirect(reverse('staff:find_staff'))
Ejemplo n.º 16
0
def edit_staff(request):
    context = {"page": "find_staff"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
        staff_model = Staff.objects.filter(store_id=store)
        context["staff_model"] = staff_model
        if request.session.get('identity') != 'shopkeeper':
            context['errmsg'] = '请以店主账号登录'
            shopkeeper = False
            # return redirect(reverse('staff:find_staff'))
            return render(request, 'staff/find_staff.html', context=context)
        else:
            shopkeeper = True
    else:
        return login(request)

    pk = request.GET.get('id')
    obj = Staff.objects.get(id=pk)
    if request.method == "POST" and shopkeeper:
        name = request.POST.get("name")
        username = request.POST.get("username")
        password = request.POST.get("password")
        phonenumber = request.POST.get("phonenumber")
        desc = request.POST.get("desc")

        obj.name = name
        obj.username = username
        obj.password = password
        obj.phonenumber = phonenumber
        obj.desc = desc
        obj.save()
        return redirect(reverse('staff:find_staff'))
    context["obj"] = obj
    return render(request, "staff/edit_staff.html", context=context)
Ejemplo n.º 17
0
def edit_medicine(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username

    else:
        return login(request)

    pk = request.GET.get('id')
    obj = Medicine.objects.get(id=pk)
    if request.method == "POST":
        name = request.POST.get("name")
        medicinecode = request.POST.get("medicinecode")
        price = request.POST.get("price")
        desc = request.POST.get("desc")
        stock = request.POST.get("stock")
        unite = request.POST.get("unite")
        type = request.POST.get("type")
        status = request.POST.get("status")
        # image=request.FILES.get("medicineimg")

        obj.name = name
        obj.price = price
        obj.status = status
        obj.desc = desc
        obj.stock = stock
        obj.medicinecode = medicinecode
        obj.unite = unite
        obj.type_id = type

        obj.save()
        return redirect(reverse('medicine:find_medicine'))
    context['obj'] = obj
    return render(request, "medicine/edit_medicine.html", context=context)
Ejemplo n.º 18
0
def find_staff(request):
    context = {"page": "find_staff"}
    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['errmsg'] = '请以店主账号登录'
        #     shopkeeper = False
        #     return render(request, 'store/find_staff.html', context=context)
        # else:
        #     shopkeeper = True
    else:
        return login(request)

    if request.method == "POST":
        name = request.POST.get("name")
        staff_model = Staff.objects.filter(store_id=store).filter(name=name)
        context["staff_model"] = staff_model
        return render(request, "staff/find_staff.html", context=context)
    else:
        staff_model = Staff.objects.filter(store_id=store)
        context["staff_model"] = staff_model
        return render(request, "staff/find_staff.html", context=context)
Ejemplo n.º 19
0
def finance_medicine_datas(request):
    # 判断是否登录
    context = {
        'page': 'order_list',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        store = medstore.objects.get(pk=storeid)
        context['username'] = username
    else:
        return login(request)

    if request.method == 'GET':
        year = request.GET.get('year')
        month = request.GET.get('month')
        day = request.GET.get('day')
        all = {
            "title": "的销售数据:",
            "allnum": 0,
            "allmoney": 0,
            "all_medname": [],
            "all_medcount": [],
            "all_medallprice": [],
        }
        date_str = ""
        orders = Orders.objects.filter(drugstore=store)
        if year != None:
            orders = orders.filter(time__year=year)
            date_str = date_str + str(year) + "年"
        if month != None:
            orders = orders.filter(time__month=month)
            date_str = date_str + str(month) + "月"
        if day != None:
            orders = orders.filter(time__day=day)
            date_str = date_str + str(day) + "日"
        all['title'] = date_str + all['title']
        all_medcount = {}
        all_medprice = {}
        # all["all_med"] = all_medcount
        for order in orders:  # 读取每一笔订单
            all["allmoney"] += order.med_price
            all["allnum"] += order.total_count
            allmed = OrderGoods.objects.filter(order=order)
            for med in allmed:  # 读取每一笔订单中的具体药品
                medname = med.sku.name
                count = med.count
                price = med.price
                all_medprice[medname] = price
                if medname in all_medcount:
                    all_medcount[medname] += count
                else:
                    all_medcount[medname] = count
        all["title"] = all["title"] + " 总销售量:{0};总销售额:{1}".format(
            all["allnum"], all["allmoney"])
        for medname in all_medcount.keys():
            all["all_medname"].append(medname)
            all["all_medcount"].append(all_medcount[medname])
            all["all_medallprice"].append(all_medcount[medname] *
                                          all_medprice[medname])
    data = json.dumps(all, ensure_ascii=False)
    return HttpResponse(data)
Ejemplo n.º 20
0
def finance_staff_datas(request):
    # 判断是否登录
    context = {
        'page': 'order_list',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        store = medstore.objects.get(pk=storeid)
        context['username'] = username
    else:
        return login(request)

    if request.method == 'GET':
        startdate = request.GET.get('startdate')
        enddate = request.GET.get('enddate')
        if startdate > enddate:
            startdate, enddate = enddate, startdate
        orders = Orders.objects.filter(drugstore=store)
        if orders == None:
            return HttpResponse("None")
        order1 = orders[0]
        if startdate == None:
            startdate = order1.time.strftime('%Y-%m-%d')
        if enddate == None:
            enddate = (datetime.datetime.now() +
                       datetime.timedelta(days=1)).strftime('%Y-%m-%d')
        all = {
            "title": "从{}到{}的各员工销售数据:".format(startdate, enddate),
            "allnum": 0,
            "allmoney": 0,
            "all_staffname": [],
            "all_staffcount": [],
            "all_staffallprice": [],
        }
        orders = orders.filter(time__range=(startdate, enddate))
        if orders == None:
            return HttpResponse("None")
        all_staffcount = {}
        all_staffprice = {}
        all_staff = Staff.objects.filter(store=store)
        for staff in all_staff:
            staffname = staff.name
            all_staffcount[staffname] = 0
            all_staffprice[staffname] = 0

        # all["all_med"] = all_medcount
        for order in orders:  # 读取每一笔订单
            med_price = order.med_price
            all["allmoney"] += med_price
            total_count = order.total_count
            all["allnum"] += total_count
            staffname = order.staff.name
            if staffname in all_staffcount:
                all_staffcount[staffname] += total_count
                all_staffprice[staffname] += med_price
            else:
                all_staffcount[staffname] = total_count
                all_staffprice[staffname] = med_price
        for staffname in all_staffcount.keys():
            all["all_staffname"].append(staffname)
            all["all_staffcount"].append(all_staffcount[staffname])
            all["all_staffallprice"].append(all_staffprice[staffname])
    data = json.dumps(all, ensure_ascii=False)
    return HttpResponse(data)
Ejemplo n.º 21
0
def finance_medicine(request):
    # 判断是否登录
    context = {
        'page': 'finance_medicine',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        store = medstore.objects.get(pk=storeid)
        context['username'] = username
    else:
        return login(request)

    if request.method == 'GET':
        year = request.GET.get('year')
        month = request.GET.get('month')
        day = request.GET.get('day')
        all = {
            "title": "的销售数据:",
            "allnum": 0,
            "allmoney": 0,
            "all_medname": [],
            "all_medcount": [],
            "all_medallprice": [],
        }
        date_str = ""
        orders = Orders.objects.filter(drugstore=store)
        if not orders.exists():
            context['errmsg'] = "您还没有数据"
        if year != None and year != "":
            orders = orders.filter(time__year=year)
            date_str = date_str + str(year) + "年"
        if month != None and month != "":
            orders = orders.filter(time__month=month)
            date_str = date_str + str(month) + "月"
        if day != None and day != "":
            orders = orders.filter(time__day=day)
            date_str = date_str + str(day) + "日"
        if not orders.exists():
            context['errmsg'] = "该时间没有销售数据"
        if date_str == '':
            date_str = "所有"
        all['title'] = date_str + all['title']
        context['year'] = year
        context['month'] = month
        context['day'] = day
        if context['year'] == None:
            context.pop('year')
        if context['month'] == None:
            context.pop('month')
        if context['day'] == None:
            context.pop('day')
        thisyear = int(datetime.datetime.now().strftime('%Y'))
        context['years'] = [i for i in range(thisyear, 1999, -1)]
        context['months'] = [i for i in range(1, 13)]
        context['days'] = [i for i in range(1, 32)]
        all_medcount = {}
        all_medprice = {}
        # all["all_med"] = all_medcount
        for order in orders:  # 读取每一笔订单
            all["allmoney"] += order.med_price
            all["allnum"] += order.total_count
            allmed = OrderGoods.objects.filter(order=order)
            for med in allmed:  # 读取每一笔订单中的具体药品
                medname = med.sku.name
                count = med.count
                price = med.price
                all_medprice[medname] = price
                if medname in all_medcount:
                    all_medcount[medname] += count
                else:
                    all_medcount[medname] = count
        all["title"] = all["title"] + " 总销售量:{0};总销售额:{1}".format(
            all["allnum"], all["allmoney"])
        for medname in all_medcount.keys():
            all["all_medname"].append(medname)
            all["all_medcount"].append(all_medcount[medname])
            all["all_medallprice"].append(all_medcount[medname] *
                                          all_medprice[medname])
        all["all_medname"] = json.dumps(all["all_medname"], ensure_ascii=False)
        all["all_medcount"] = json.dumps(all["all_medcount"],
                                         ensure_ascii=False)
        all["all_medallprice"] = json.dumps(all["all_medallprice"],
                                            ensure_ascii=False)
    context['all'] = all
    return render(request, "salesDATA/finance_medicine.html", context=context)
Ejemplo n.º 22
0
def finance_year(request):
    # 判断是否登录
    context = {
        'page': 'finance_year',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        store = medstore.objects.get(pk=storeid)
        context['username'] = username
    else:
        return login(request)

    if request.method == 'GET':
        year = request.GET.get('year')
        orders = Orders.objects.filter(drugstore=store)
        if not orders.exists():
            context['errmsg'] = "您还没有数据"
        if year == None:
            year = datetime.datetime.now().strftime('%Y')
        all = {
            "title": "{}年的每月销售数据:".format(year),
            "allnum": 0,
            "allmoney": 0,
            "all_i": [],
            "all_daycount": [],
            "all_dayallprice": [],
        }
        allorders = orders.filter(time__year=year)
        if not orders.exists():
            context['errmsg'] = "您还没有数据"
        all_daycount = {}
        all_dayprice = {}
        context['year'] = year
        if context['year'] == None:
            context.pop('year')
        thisyear = int(datetime.datetime.now().strftime('%Y'))
        context['years'] = [i for i in range(thisyear, 1999, -1)]
        for i in range(1, 13):
            orders = allorders.filter(time__month=i)
            all_daycount[i] = 0
            all_dayprice[i] = 0
            if orders == None:
                continue
            else:
                for order in orders:
                    med_price = order.med_price
                    all["allmoney"] += med_price
                    total_count = order.total_count
                    all["allnum"] += total_count
                    all_daycount[i] += total_count
                    all_dayprice[i] += med_price

        for dayname in all_daycount.keys():
            all["all_i"].append(str(dayname) + "月")
            all["all_daycount"].append(all_daycount[dayname])
            all["all_dayallprice"].append(all_dayprice[dayname])
        all["all_i"] = json.dumps(all["all_i"], ensure_ascii=False)
        all["all_daycount"] = json.dumps(all["all_daycount"],
                                         ensure_ascii=False)
        all["all_dayallprice"] = json.dumps(all["all_dayallprice"],
                                            ensure_ascii=False)
    context['all'] = all
    return render(request, "salesDATA/finance_year.html", context=context)
Ejemplo n.º 23
0
def finance_staff(request):
    # 判断是否登录
    context = {
        'page': 'finance_staff',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        store = medstore.objects.get(pk=storeid)
        context['username'] = username
    else:
        return login(request)

    if request.method == 'GET':
        startdate = request.GET.get('startdate')
        enddate = request.GET.get('enddate')
        if str(startdate) > str(enddate):
            startdate, enddate = enddate, startdate
        orders = Orders.objects.filter(drugstore=store)
        if not orders.exists():
            context['errmsg'] = "您还没有数据"
        try:
            order1 = orders[0]
            if startdate == None:
                startdate = order1.time.strftime('%Y-%m-%d')
        except:
            startdate = '2020-01-01'
        if enddate == None:
            enddate = (datetime.datetime.now() +
                       datetime.timedelta(days=1)).strftime('%Y-%m-%d')
        all = {
            "title": "从{}到{}的各员工销售数据:".format(startdate, enddate),
            "allnum": 0,
            "allmoney": 0,
            "all_staffname": [],
            "all_staffcount": [],
            "all_staffallprice": [],
        }
        context['startdate'] = startdate
        context['enddate'] = enddate
        orders = orders.filter(time__range=(startdate, enddate))
        # print(orders)
        if not orders.exists():
            context['errmsg'] = "没有销售数据"
        all_staffcount = {}
        all_staffprice = {}
        all_staff = Staff.objects.filter(store=store)
        for staff in all_staff:
            staffname = staff.name
            all_staffcount[staffname] = 0
            all_staffprice[staffname] = 0

        # all["all_med"] = all_medcount
        for order in orders:  # 读取每一笔订单
            med_price = order.med_price
            all["allmoney"] += med_price
            total_count = order.total_count
            all["allnum"] += total_count
            try:
                staffname = order.staff.name
            except:
                staffname = "线上销售"
            if staffname in all_staffcount:
                all_staffcount[staffname] += total_count
                all_staffprice[staffname] += med_price
            else:
                all_staffcount[staffname] = total_count
                all_staffprice[staffname] = med_price
        for staffname in all_staffcount.keys():
            all["all_staffname"].append(str(staffname))
            all["all_staffcount"].append(all_staffcount[staffname])
            all["all_staffallprice"].append(all_staffprice[staffname])
        all["all_staffname"] = json.dumps(all["all_staffname"],
                                          ensure_ascii=False)
        all["all_staffcount"] = json.dumps(all["all_staffcount"],
                                           ensure_ascii=False)
        all["all_staffallprice"] = json.dumps(all["all_staffallprice"],
                                              ensure_ascii=False)
    context['all'] = all
    return render(request, "salesDATA/finance_staff.html", context=context)
Ejemplo n.º 24
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)
Ejemplo n.º 25
0
def find_medicine_data(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
    else:
        return login(request)

    drugstore = request.session.get('storeid')
    page = 1
    if request.GET.get("page") != None:
        page = int(request.GET.get("page"))
    limit = 30
    if request.GET.get("limit") != None:
        limit = int(request.GET.get("limit"))

    if request.GET.get("name") != None:
        search = request.GET.get("name")
        search_list = jieba.lcut(search)
        # print(search_list)
        med_details_ = Medicine.objects.filter(drugstore_id=drugstore).values()
        med_details = []
        for med_detail in med_details_:
            # print(med_detail)
            med_str = str(med_detail)
            # print(med_str)
            tag0 = 0
            tag1 = 0
            tag = 0
            for word in search_list:
                if med_str.find(word) != -1:
                    word_count = med_str.count(word)
                    tag0 = tag0 + 10
                    tag1 = tag1 + word_count
                    tag = tag0 + tag1
            if tag == 0:
                continue
            med_detail.setdefault('tag', tag)
            med_details.append(med_detail)
        med_details.sort(key=get_tag, reverse=True)
        # print(med_details)
        medicine_model = med_details
        all_medicine = []
        for medicine in medicine_model:
            id = str(medicine["id"])
            data = medicine
            data[
                'del_medicine'] = '<button class="button1" onclick="del_medicine(' + id + ')">删除</button>'
            data[
                'edit_medicine'] = '<button class="button1" onclick="window.location.href=\'../edit_medicine/?id=' + id + '\'">编辑</button>'
            data[
                'medicine_detail'] = '<button class="button1" onclick="window.location.href=\'../medicine_detail/?id=' + id + '\'">详情</button>'
            data[
                'add_to_cart'] = '<button class="button1" onclick="add(' + id + ')">添加到购物车</button>'
            del data['image']
            all_medicine.append(data)
        num = len(all_medicine)

    else:
        medicine_model = Medicine.objects.filter(drugstore_id=drugstore)
        all_medicine = []
        for medicine in medicine_model:
            id = str(medicine.pk)
            data = model_to_dict(medicine)
            data[
                'del_medicine'] = '<button class="button1" onclick="del_medicine(' + id + ')">删除</button>'
            data[
                'edit_medicine'] = '<button class="button1" onclick="window.location.href=\'../edit_medicine/?id=' + id + '\'">编辑</button>'
            data[
                'medicine_detail'] = '<button class="button1" onclick="window.location.href=\'../medicine_detail/?id=' + id + '\'">详情</button>'
            data[
                'add_to_cart'] = '<button class="button1" onclick="add(' + id + ')">添加到购物车</button>'
            del data['image']
            all_medicine.append(data)
        num = len(all_medicine)

    x = (page - 1) * limit
    y = x + limit - 1
    medicines = []
    for i in range(x, y + 1):
        if i >= num:
            break
        medicines.append(all_medicine[i])
    return HttpResponse('{"code":0,"msg":"","count":' + str(num) + ',"data":' +
                        json.dumps(medicines, ensure_ascii=False) + "}",
                        content_type="application/json")
Ejemplo n.º 26
0
def find_order_data(request):
    context = {"page": "find_medicine"}
    if request.session.get('is_login', None):
        username = request.session.get('username')
        store = request.session.get('storeid')
        context['username'] = username
    else:
        return login(request)

    if request.GET.get("search_text"):
        search = request.GET.get("search_text")
        id = request.session.get('storeid')
        Orders_ = Orders.objects.filter(drugstore=id)

        search_list = jieba.lcut(search)

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

        for Order in Orders_:

            order_detail = {
                '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],
                },
                'order_med': []
            }

            order_med = OrderGoods.objects.filter(order=Order.order_id)
            for med in order_med:
                med_detail = {
                    'med_code': med.sku.medicinecode,
                    'med_name': med.sku.name,
                    'med_count': med.count,
                    'med_price': med.price,
                }
                order_detail['order_med'].append(med_detail)
            tag0 = 0
            tag1 = 0
            tag = 0
            order_str = str(order_detail)
            for word in search_list:
                if order_str.find(word) != -1:
                    word_count = order_str.count(word)
                    tag0 = tag0 + 10
                    tag1 = tag1 + word_count
                    tag = tag0 + tag1
            if tag == 0:
                continue

            # address_ = Order.addr
            # drug_store = Order.drugstore
            context1 = {
                'order_id': Order.order_id,
                'staff': Order.staff.name,
                # 'address': address_.addr,
                # 'receiver': address_.receiver,
                # 'phone': address_.phone,
                # 'drugstore': drug_store.name,
                # 'pay_method': paymethod[Order.pay_method],
                'total_count': Order.total_count,
                'total_price': Order.total_price,
                'order_status': orderstatus[Order.order_status],
                'tag': tag,
            }
            Orderlist.append(context1)
        Orderlist.sort(key=get_tag, reverse=True)
    else:
        id = request.session.get('storeid')
        Orders_ = Orders.objects.filter(drugstore=id)

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

        for Order in Orders_:
            # address_ = Order.addr
            # drug_store = Order.drugstore
            context1 = {
                'order_id': Order.order_id,
                'staff': Order.staff.name,
                # 'address': address_.addr,
                # 'receiver': address_.receiver,
                # 'phone': address_.phone,
                # 'drugstore': drug_store.name,
                # 'pay_method': paymethod[Order.pay_method],
                'total_count': Order.total_count,
                'total_price': Order.total_price,
                'order_status': orderstatus[Order.order_status],
            }

            Orderlist.append(context1)
    num = len(Orderlist)
    page = 1
    if request.GET.get("page") != None:
        page = int(request.GET.get("page"))
    limit = 30
    if request.GET.get("limit") != None:
        limit = int(request.GET.get("limit"))
    x = (page - 1) * limit
    y = x + limit - 1
    order = []
    for i in range(x, y + 1):
        if i >= num:
            break
        order.append(Orderlist[i])
    for order1 in order:
        id = order1['order_id']
        order1['del_cart'] = '<button class="button1" onclick="del_order(' + \
            id+')">删除</button>'
        order1[
            'order_details'] = '<button class="button1" onclick="window.location.href=\'../order_details/?order_id=' + id + '\'">详情</button>'

    return HttpResponse('{"code":0,"msg":"","count":' + str(num) + ',"data":' +
                        json.dumps(order, ensure_ascii=False) + "}",
                        content_type="application/json")

    carts = Cart.objects.filter(C_store=store)
    carts_ = []
    allprice = 0
    for med in carts:
        price = med.C_goods.price * med.C_goods_num
        allprice += price
        cart1 = {
            'id': med.id,
            'med_name': med.C_goods.name,
            'price': price,
            'med_count': med.C_goods_num,
            'med_id': med.C_goods_id,
            'med_price': med.C_goods.price
        }
        carts_.append(cart1)
    for data in carts_:
        med_id = str(data['med_id'])
        id = str(data['id'])
        data['med_price'] = str(data['med_price']) + "元"
        data['price'] = str(data['price']) + "元"
        data['del_cart'] = '<button class="button1" onclick="del_cart(' + \
            id+')">删除</button>'
        data['edit_cart'] = '<button class="button1" onclick="add(' + \
            med_id+')">修改数量</button>'
Ejemplo n.º 27
0
def order_list(request):
    # 判断是否登录
    context = {
        'page': 'order_list',
    }
    if request.session.get('is_login', None):
        username = request.session.get('username')
        storeid = request.session.get('storeid')
        context['username'] = username
    else:
        return login(request)

    if request.POST.get("search_text") != None:
        search = request.POST.get("search_text")
        context['search_text'] = search
        id = request.session.get('storeid')
        Orders_ = Orders.objects.filter(drugstore=id)

        search_list = jieba.lcut(search)

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

        for Order in Orders_:

            order_detail = {
                '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],
                },
                'order_med': []
            }

            order_med = OrderGoods.objects.filter(order=Order.order_id)
            for med in order_med:
                med_detail = {
                    'med_code': med.sku.medicinecode,
                    'med_name': med.sku.name,
                    'med_count': med.count,
                    'med_price': med.price,
                }
                order_detail['order_med'].append(med_detail)
            tag0 = 0
            tag1 = 0
            tag = 0
            order_str = str(order_detail)
            for word in search_list:
                if order_str.find(word) != -1:
                    word_count = order_str.count(word)
                    tag0 = tag0 + 10
                    tag1 = tag1 + word_count
                    tag = tag0 + tag1
            if tag == 0:
                continue

            # address_ = Order.addr
            # drug_store = Order.drugstore
            context1 = {
                'order_id': Order.order_id,
                'staff': Order.staff.name,
                # 'address': address_.addr,
                # 'receiver': address_.receiver,
                # 'phone': address_.phone,
                # 'drugstore': drug_store.name,
                # 'pay_method': paymethod[Order.pay_method],
                'total_count': Order.total_count,
                'total_price': Order.total_price,
                'order_status': orderstatus[Order.order_status],
                'tag': tag,
            }
            Orderlist.append(context1)
        Orderlist.sort(key=get_tag, reverse=True)
    else:
        id = request.session.get('storeid')
        Orders_ = Orders.objects.filter(drugstore=id)

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

        for Order in Orders_:
            # address_ = Order.addr
            # drug_store = Order.drugstore
            context1 = {
                'order_id': Order.order_id,
                'staff': Order.staff.name,
                # 'address': address_.addr,
                # 'receiver': address_.receiver,
                # 'phone': address_.phone,
                # 'drugstore': drug_store.name,
                # 'pay_method': paymethod[Order.pay_method],
                'total_count': Order.total_count,
                'total_price': Order.total_price,
                'order_status': orderstatus[Order.order_status],
            }
            Orderlist.append(context1)
    context['orderlist'] = Orderlist
    return render(request, "orders/find_orders.html", context=context)