Exemplo n.º 1
0
def saleOnToday():
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            cur = datetime.datetime.now()
            acs = db.session.query(Account.drugId, Account.userId, Account.time, func.count('*').label('count')) \
                .filter(db.and_(extract('year', Account.time) == cur.year, extract('month', Account.time) == cur.month,
                                extract('day', Account.time) == cur.day)) \
                .group_by(Account.time, Account.drugNum).all()
            accounts = []
            for a in acs:
                account = {}
                drug = Drug.query.filter(Drug.id == a.drugId).first()
                user = User.query.filter(User.id == a.userId).first()
                account['name'] = drug.name
                account['stockPrice'] = drug.stockPrice
                account['count'] = a.count
                account['time'] = a.time
                account['money'] = a.count * drug.stockPrice
                account['username'] = user.username
                accounts.append(account)
            return render_template('saleOnToday.html', accounts=accounts)
    return redirect(url_for('login'))
Exemplo n.º 2
0
def saleOnToday():
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            cur = datetime.datetime.now()
            ats = Account.query.filter(
                db.and_(
                    extract('year', Account.time) == cur.year,
                    extract('month', Account.time) == cur.month,
                    extract('day', Account.time) == cur.day)).all()
            accounts = []
            for a in ats:
                account = {}
                account['accountId'] = a.id
                account['username'] = a.user.username
                account['accountMoney'] = a.accountMoney
                account['time'] = a.time
                # 遍历选购表
                ss = Sale.query.filter(Sale.accountId == a.id).all()
                sales = []
                for sale in ss:
                    s = {}
                    s['name'] = sale.drug.name
                    s['price'] = sale.drug.price
                    s['count'] = sale.saleCount
                    s['money'] = sale.saleMoney
                    sales.append(s)

                account['details'] = sales
                accounts.append(account)
            return render_template('saleOnToday.html', accounts=accounts)
    return redirect(url_for('login'))
Exemplo n.º 3
0
def saleDrug(drugId):
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            # 判断是否是POST
            if request.method == 'GET':
                count = 0
                drug = Drug.query.filter(Drug.id == drugId).first()
                # 查找选购表 药品的选购数量
                s = db.session.query(func.sum(Sale.saleCount).label('count')).\
                    filter(db.and_(Sale.userId == user_id, Sale.drugId == drug.id, Sale.accountId == None)).group_by(Sale.drugId).first()
                if s:
                    count = s.count
                return render_template('saleDrug.html',
                                       drug=drug,
                                       count=int(drug.count) - count)
            else:
                nowTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                id = request.form.get('id')
                price = request.form.get('price')
                saleCount = request.form.get('saleCount')

                sale = Sale(time=nowTime,
                            userId=user.id,
                            saleCount=saleCount,
                            saleMoney=int(saleCount) * float(price),
                            drugId=id)
                db.session.add(sale)
                db.session.commit()

                return redirect(url_for('showSaleDrug'))

    return redirect(url_for('login'))
Exemplo n.º 4
0
def account():
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            nowDate = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
            # 查出当前管理员所有的选购药品进行结账
            sales = db.session.query(Sale.drugNum, Sale.userId,
                                     func.count('*').label('count')).filter(
                                         Sale.userId == user_id).group_by(
                                             Sale.drugNum).all()
            for sale in sales:
                # 结账之前,查询一下库存量是否充足(之间选购已经判断过了)
                drugs = Drug.query.filter(
                    db.and_(Drug.num == sale.drugNum,
                            Drug.isSale == False)).all()
                for i in range(len(drugs)):
                    if i > sale.count - 1:
                        break
                    drug = drugs[i]
                    Drug.query.filter(Drug.id == drug.id).update({
                        Drug.isSale:
                        True,
                        Drug.saleDate:
                        nowDate
                    })
                    account = Account(drugId=drug.id,
                                      userId=user_id,
                                      drugNum=drug.num,
                                      time=nowDate)
                    db.session.add(account)
                    db.session.commit()

                # 删除选购表数据
                salesFromDb = Sale.query.filter(
                    db.and_(Sale.drugNum == sale.drugNum,
                            Sale.userId == user_id)).all()
                for i in range(len(salesFromDb)):
                    db.session.delete(salesFromDb[i])
                    db.session.flush()

                db.session.commit()

            return redirect(url_for('saleManageHome'))

    return redirect(url_for('login'))
Exemplo n.º 5
0
def saleDrug(drugNum):
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            # 判断是否是POST
            if request.method == 'GET':
                count = 0
                drug = {}
                # 查找药品编号  卖出价格 数量
                drugsfromDb = db.session.query(
                    Drug.num, Drug.name, Drug.stockPrice,
                    func.count('*').label('count')).filter(
                        db.and_(Drug.num == drugNum,
                                Drug.isSale == False)).first()
                salesfromDb = db.session.query(
                    func.count('*').label('count')).filter(
                        db.and_(Sale.drugNum == drugNum,
                                Sale.userId == user_id)).first()

                drug['name'] = drugsfromDb.name
                drug['num'] = drugsfromDb.num
                drug['stockPrice'] = drugsfromDb.stockPrice

                if drugsfromDb.count - salesfromDb.count >= 0:
                    count = drugsfromDb.count - salesfromDb.count

                drug['count'] = count

                return render_template('saleDrug.html', drug=drug)
            else:
                num = request.form.get('num')
                saleCount = request.form.get('saleCount')

                for index in range(int(saleCount)):
                    nowTime = time.strftime("%Y-%m-%d %H:%M:%S",
                                            time.localtime())
                    sale = Sale(time=nowTime, userId=user.id, drugNum=num)
                    sale.user = user
                    db.session.add(sale)
                    db.session.commit()

                return redirect(url_for('showSaleDrug'))

    return redirect(url_for('login'))
Exemplo n.º 6
0
def post_detail(post_id):
    post = PostModel.query.get(post_id)
    if not post:
        abort(404)

    comments = CommentModel.query.filter(
        db.and_(CommentModel.post_id == post.id,
                CommentModel.is_display == 1)).all()

    content = {'post': post, 'comments': comments}
    return render_template('front/front_pdetail.html', **content)
Exemplo n.º 7
0
def saleSearchByDay():
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            if request.method == 'GET':
                # 查询今日的明细
                cur = datetime.datetime.now()
                acs = db.session.query(Account.drugId, Account.userId, Account.time, func.count('*').label('count')) \
                    .filter(
                    db.and_(extract('year', Account.time) == cur.year, extract('month', Account.time) == cur.month,
                            extract('day', Account.time) == cur.day)) \
                    .group_by(Account.time, Account.drugNum).all()
                accounts = []
                for a in acs:
                    account = {}
                    drug = Drug.query.filter(Drug.id == a.drugId).first()
                    user = User.query.filter(User.id == a.userId).first()
                    account['name'] = drug.name
                    account['stockPrice'] = drug.stockPrice
                    account['count'] = a.count
                    account['time'] = a.time
                    account['money'] = a.count * drug.stockPrice
                    account['username'] = user.username
                    accounts.append(account)
                return render_template('saleSearchByDay.html',
                                       accounts=accounts,
                                       startTime=cur.strftime("%Y-%m-%d"),
                                       endTime=cur.strftime("%Y-%m-%d"))
            else:
                startTime = request.form.get('startTime')
                endTime = request.form.get('endTime')

                acs = db.session.query(Account.drugId, Account.userId, Account.time, func.count('*').label('count')) \
                    .filter(Account.time.between(startTime, endTime)).group_by(Account.time, Account.drugNum).all()
                accounts = []
                for a in acs:
                    account = {}
                    drug = Drug.query.filter(Drug.id == a.drugId).first()
                    user = User.query.filter(User.id == a.userId).first()
                    account['name'] = drug.name
                    account['stockPrice'] = drug.stockPrice
                    account['count'] = a.count
                    account['time'] = a.time
                    account['money'] = a.count * drug.stockPrice
                    account['username'] = user.username
                    accounts.append(account)
                return render_template('saleSearchByDay.html',
                                       accounts=accounts,
                                       startTime=startTime,
                                       endTime=endTime)
    return redirect(url_for('login'))
Exemplo n.º 8
0
def deleteSale(num):
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            sales = Sale.query.filter(
                db.and_(Sale.drugNum == num, Sale.userId == user_id)).all()
            for sale in sales:
                db.session.delete(sale)
            db.session.commit()
            return redirect(url_for('showSaleDrug'))

    return redirect(url_for('login'))
Exemplo n.º 9
0
def backStock(drugNum, stockDate):
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            drugsfromDb = Drug.query.filter(
                db.and_(Drug.num == drugNum,
                        Drug.stockDate == stockDate)).all()
            # 从数据库查到列表
            for drug in drugsfromDb:
                db.session.delete(drug)
                db.session.commit()

            return redirect(url_for('addStocHistory'))

    return redirect(url_for('login'))
Exemplo n.º 10
0
def showSaleDrug():
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            saleMoney = 0
            # 还未结账 accountId=None
            sales = Sale.query.filter(
                db.and_(Sale.userId == user_id, Sale.accountId == None)).all()
            for sale in sales:
                saleMoney = saleMoney + sale.saleMoney
            return render_template('showSaleDrug.html',
                                   sales=sales,
                                   saleMoney=saleMoney)

    return redirect(url_for('login'))
Exemplo n.º 11
0
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        user = request.form.get('username')
        passwd = request.form.get('passwd')
        code = request.form.get('code')
        #try:
        q1 = db.session.query(Demo_Login_Users).filter(
            db.and_(Demo_Login_Users.name == user,
                    Demo_Login_Users.password == passwd)).first()
        with open('temp.json', 'r') as f:
            temp = f.read()
        #print(type(q1))
        #print(q1 != None)
        if q1 != None and code.lower() == json.loads(temp):
            return 'success'
        else:
            return redirect(url_for('login'))
Exemplo n.º 12
0
def drugType(drugTypeId):
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            drugs = []
            # 获取数据列表
            drugTypes = DrugType.query.all()

            # 获取所有药品
            drugsfromDb = db.session.query(Drug.num, Drug.name, func.count('*').label('count'))\
                .filter(db.and_(Drug.drugTypeId == drugTypeId,Drug.isSale == False)).group_by(Drug.num).order_by(Drug.id)

            # 从数据库查到列表
            for drug in drugsfromDb:
                drugs.append(drug)

            return render_template('home.html',
                                   drugTypes=drugTypes,
                                   drugs=drugs,
                                   drugTypeId=drugTypeId)
    return redirect(url_for('login'))
Exemplo n.º 13
0
def saleSearchByDay():
    # 判断用户是否登录
    user_id = session.get('user_id')
    if user_id:
        user = User.query.filter(User.id == user_id).first()
        if user:
            if request.method == 'GET':
                # 查询今日的明细
                cur = datetime.datetime.now()
                ats = Account.query.filter(
                    db.and_(
                        extract('year', Account.time) == cur.year,
                        extract('month', Account.time) == cur.month,
                        extract('day', Account.time) == cur.day)).all()
                accounts = []
                for a in ats:
                    account = {}
                    account['accountId'] = a.id
                    account['username'] = a.user.username
                    account['accountMoney'] = a.accountMoney
                    account['time'] = a.time
                    # 遍历选购表
                    ss = Sale.query.filter(Sale.accountId == a.id).all()
                    sales = []
                    for sale in ss:
                        s = {}
                        s['name'] = sale.drug.name
                        s['price'] = sale.drug.price
                        s['count'] = sale.saleCount
                        s['money'] = sale.saleMoney
                        sales.append(s)

                    account['details'] = sales
                    accounts.append(account)
                return render_template(
                    'saleSearchByDay.html',
                    accounts=accounts,
                    startTime=cur.strftime("%Y-%m-%d"),
                    endTime=(cur +
                             datetime.timedelta(days=1)).strftime("%Y-%m-%d"))
            else:
                startTime = request.form.get('startTime')
                endTime = request.form.get('endTime')
                ats = Account.query.filter(
                    Account.time.between(startTime, endTime)).all()
                accounts = []
                for a in ats:
                    account = {}
                    account['accountId'] = a.id
                    account['username'] = a.user.username
                    account['accountMoney'] = a.accountMoney
                    account['time'] = a.time
                    # 遍历选购表
                    ss = Sale.query.filter(Sale.accountId == a.id).all()
                    sales = []
                    for sale in ss:
                        s = {}
                        s['name'] = sale.drug.name
                        s['price'] = sale.drug.price
                        s['count'] = sale.saleCount
                        s['money'] = sale.saleMoney
                        sales.append(s)

                    account['details'] = sales
                    accounts.append(account)
                return render_template('saleSearchByDay.html',
                                       accounts=accounts,
                                       startTime=startTime,
                                       endTime=endTime)
    return redirect(url_for('login'))