def send_email(): # check the last time an email was sent. if the duration is # above 7 days, then send an email. else do nothing latest_email, date = Email.get_latest(Email) duration = datetime.timedelta(0) if latest_email: today = datetime.datetime.now() duration = today - date if duration > datetime.timedelta(7): # get sales and purchases sales = Sale.filter(Sale, "all", "", "", date, datetime.datetime(9999, 12, 31)) total_sales = utils.compute_sales(sales) purchases = Purchase.filter(Purchase, "", date, datetime.datetime(9999, 12, 31)) total_purchases = utils.compute_purchases(purchases) # get boss' email address boss_email = current_user.manager.boss_email # send email msg = Message("Weekly sales and purchases", sender='*****@*****.**', recipients=[boss_email]) msg.html = render_template('manager/sales_and_purchases_email.html', sales=sales, purchases=purchases, total_sales=total_sales, total_purchases=total_purchases, date=date) try: mail.send(msg) Email() # return render_template('manager/sales_and_purchases_email.html', sales=sales, purchases=purchases, total_sales=total_sales, total_purchases=total_purchases, date=date) except: pass return redirect(url_for('user.login'))
def get_sales(): sales = Sale.read(Sale) sale_page = Sale.read_limit(Sale, 1, 10) cashiers = Cashier.read(Cashier) waiters = Waiter.read(Waiter) items = Food.read(Food) + Brand.read(Brand) total_sales = utils.compute_sales(sales) return render_template("manager/sales.html", mod=module, sales=sales, sale_page=sale_page, total_sales=total_sales, cashiers=cashiers, waiters=waiters, items=items)
def filter_food(): if request.method == "GET": cashiers = Cashier.read(Cashier) waiters = Waiter.read(Waiter) items = Food.read(Food) item = request.args["item"] cashier = request.args["cashier"] waiter = request.args["waiter"] _from = request.args["from"] to = request.args["to"] if _from: _from = utils.convert_date_from_html(_from) else: _from = datetime.datetime(2000, 1, 1) if to: to = utils.convert_date_from_html(to) else: to = datetime.datetime(3000, 1, 1) if item == '0': return redirect(url_for('sale.get_food_sales')) sales = Sale.filter(Sale, item, cashier, waiter, _from, to) total_sales = utils.compute_sales(sales) # Avoid error on changing str to int if cashier == "": cashier = 0 if waiter == "": waiter = 0 return render_template("chef/food-sales.html", mod=module, sales=sales, total_sales=total_sales, cashiers=cashiers, waiters=waiters, items=items, today=_from, tomorrow=to, item_id=item, cashier_id=int(cashier), waiter_id=int(waiter))
def get_food_sales(): if request.args.get("page"): page = int(request.args.get("page")) if page == 0: return redirect(url_for('sale.get_food_sales')) else: page = 1 sale_page = Sale.read_food_sales(Sale, page, 10) sales = sale_page.items cashiers = Cashier.read(Cashier) waiters = Waiter.read(Waiter) items = Food.read(Food) total_sales = utils.compute_sales(sales) return render_template("chef/food-sales.html", mod=module, sales=sales, sale_page=sale_page, current_page=page, total_sales=total_sales, cashiers=cashiers, waiters=waiters, items=items)
def get_sale_page(): page = request.args.get("page") if page: page = int(page) if page == 0: return redirect(url_for('sale.get_sales')) sale_page = Sale.read_limit(Sale, page, 10) sales = sale_page.items cashiers = Cashier.read(Cashier) waiters = Waiter.read(Waiter) items = Food.read(Food) + Brand.read(Brand) total_sales = utils.compute_sales(sales) return render_template("manager/sales.html", mod=module, sales=sales, sale_page=sale_page, current_page=page, total_sales=total_sales, cashiers=cashiers, waiters=waiters, items=items) else: return redirect(url_for("sale.get_sales"))