def categoryProductView(request):
    data = {'title': 'Danh mục sản phẩm'}
    items = Category.objects.all()
    if items and items.count() > 0:
        data['categoryItems'] = items
    return render(request, 'partner/owner/category_product_view.html',
                  processData(request, data))
def loginUser(request):
    data = {
        'title': 'Đăng nhập'
    }
    if request.method == 'POST':

        username = request.POST.get('username')
        password = request.POST.get('password')

        if not (username and password):
            messages.error(request, 'Hãy nhập đầy đủ thông tin tài khoản!')
            return redirect('login')

        user = auth.authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                nextUrl = request.POST.get('next')
                print(nextUrl)
                if not nextUrl:
                    nextUrl = 'dashboard'

                return redirect(nextUrl)

        messages.error(request, 'Đăng nhập thành công!')
        return redirect('login')

    else:
        # check account type, 3 types normal, rider and restaurent owner

        data['role'] = getRole(request)
        return render(request, 'login.html', processData(request, data))
def orderHistory(request):
    data = {'title': 'Previous orders '}

    if request.method == "POST":
        messages.error(request, "cant save. please try again or conact admin")
        return redirect('order_history')

    ordersFromDb = Order.objects.filter(user=request.user).order_by('-id')

    newOrders = []
    for order in ordersFromDb:
        tmp_order = {}
        tmp_order['id'] = order.id
        tmp_order['delivered'] = order.delivered
        tmp_order['rider'] = order.rider
        # tmp_order['deliveredOn'] = order.deliveredOn
        tmp_order['total'] = order.total_price
        tmp_order['items'] = OrderedItem.objects.filter(
            order=order).order_by('-id')
        newOrders.append(tmp_order)

    print(newOrders)

    data['orders'] = newOrders

    return render(request, 'partner/owner/order_history.html',
                  processData(request, data))
Exemple #4
0
def getOrder(request):
    data = {'title': 'Danh Sách Đơn'}

    ordersFromDb = Order.objects.filter(Q(delivered=False),
                                        Q(rider=None) | Q(rider=request.user))

    newOrders = []
    for order in ordersFromDb:
        tmp_order = {}
        tmp_order['id'] = order.id
        tmp_order['delivered'] = order.delivered
        tmp_order['rider'] = order.rider
        tmp_order['table'] = order.user.username
        print(order.user.username)
        tmp_order['dateTime'] = order.date
        tmp_order['total'] = order.total_price
        tmp_order['items'] = OrderedItem.objects.filter(
            order=order).order_by('-id')
        newOrders.append(tmp_order)

    print(newOrders)

    data['orders'] = newOrders

    return render(request, 'partner/rider/get_order.html',
                  processData(request, data))
def ownerHistoryTable(request):
    data = {'title': 'Thống kê'}
    table_code = request.GET.get('table_code')
    print(table_code)
    try:
        user = User.objects.get(username=table_code)
        print(user)
        ordersFromDb = Order.objects.filter(user=user).order_by('-id')
        print(ordersFromDb[0].id)
    except Exception as ex:
        messages.error(request, table_code + " chưa có dữ liệu Đơn đặt!")
    newOrders = []
    for order in ordersFromDb:
        tmp_order = {}
        tmp_order['id'] = order.id
        tmp_order['delivered'] = order.delivered
        tmp_order['rider'] = order.rider
        tmp_order['dateTime'] = order.date
        tmp_order['total'] = order.total_price
        tmp_order['items'] = OrderedItem.objects.filter(
            order=order).order_by('-id')
        newOrders.append(tmp_order)

    print(newOrders)

    data['orders'] = newOrders
    data['name_table'] = table_code
    return render(request, 'partner/owner/owner_history_details.html',
                  processData(request, data))
def revenueDateDetails(request):
    data = {'title': 'Thống kê'}
    table_code = request.GET.get('table_code')
    date = request.GET.get('date')
    user = User.objects.get(username=table_code)
    try:
        ordersFromDb = Order.objects.filter(
            user=user, date__date=str(date)).order_by('-id')
    except Exception as ex:
        messages.error(request, "Lỗi! Vui lòng liên hệ Admin!")
    newOrders = []
    for order in ordersFromDb:
        tmp_order = {}
        tmp_order['id'] = order.id
        tmp_order['delivered'] = order.delivered
        tmp_order['rider'] = order.rider
        tmp_order['dateTime'] = order.date
        tmp_order['total'] = order.total_price
        tmp_order['items'] = OrderedItem.objects.filter(
            order=order).order_by('-id')
        newOrders.append(tmp_order)

    data['orders'] = newOrders
    data['name_table'] = table_code
    return render(request, 'partner/owner/revenue_table_details.html',
                  processData(request, data))
def addTable(request):
    data = {'title': 'Bàn'}
    # Lấy dữ liệu từ form add table
    if request.method == "POST":
        print("Add")
        table_name = request.POST.get('name')
        table_code = request.GET.get('table_code')
        try:
            table_code_check = Table.objects.filter(
                table_name=table_name).first()
            if table_code_check.table_code == table_code:
                messages.info(request, table_name + " không thay đổi!")
            else:
                tableItem = Table.objects.filter(table_code=table_code).first()
                tableItem.table_code = "Ban_" + table_name.split(" ", 1)[1]
                tableItem.table_name = table_name
                tableItem.save()

                # user = User.objects.
                messages.info(request, table_name + " đã được cập nhật!")
        except Exception as ex:
            messages.info(request, 'updated price for item ')
            print(ex)
            return redirect('add_table')
        return redirect('view_table')

    # Tải dữ liệu từ form view table
    table_code = request.GET.get('table_code')
    if table_code:
        data['tableItems'] = Table.objects.filter(
            table_code=table_code).first()
    return render(request, 'partner/owner/add_table.html',
                  processData(request, data))
def viewTable(request):
    data = {'title': 'Bàn'}
    items = Table.objects.all()
    if items and items.count() > 0:
        data['tableItems'] = items
    return render(request, 'partner/owner/view_table.html',
                  processData(request, data))
def index(request):
    data = {
        'title': 'Hệ thống e-menu'
    }
    items = Table.objects.all()
    if items and items.count() > 0:
        data['tableItems'] = items
    return render(request, 'user/select.html', processData(request, data))
def addMenu(request):
    data = {'title': 'Menu sản phẩm'}
    data['categoryItem'] = Category.objects.all()
    if request.method == "POST":
        id = request.POST.get('id')
        name = request.POST.get('name')
        price = request.POST.get('price')
        image = request.FILES.get('image')
        describe = request.POST.get('describe')
        category_code = request.POST.get('categoryCode')

        if not (name and price):
            messages.error(request, 'Hãy thêm tên và giá cả!')
            return redirect('add_menu')

        try:
            if id:
                menuItem = MenuItem.objects.filter(user=request.user,
                                                   id=id).first()
                menuItem.price = price
                menuItem.name = name
                if image:
                    menuItem.image.save(image.name, image)
                menuItem.describe = describe
                menuItem.category = category_code
                menuItem.save()
                messages.info(request,
                              'Sản phẩm ' + name + ' đã được cập nhật!')
            else:
                menuItem = MenuItem.objects.create(user=request.user,
                                                   name=name,
                                                   price=price,
                                                   image=image,
                                                   describe=describe,
                                                   category=category_code)
                messages.info(request,
                              'Sản phẩm ' + name + ' đã được thêm mới!')

        except Exception as e:
            messages.error(request, 'Xảy ra lỗi!')
            return redirect('add_menu')
        return redirect('view_menu')

    itemId = request.GET.get('id')
    if itemId:
        menuItem = MenuItem.objects.filter(id=itemId).first()
        category_code = menuItem.category
        category = Category.objects.filter(category_code=category_code).first()
        data['menuItem'] = menuItem
        data['category_code'] = category_code
        data['category_name'] = category.category_name
        data['categoryItem'] = Category.objects.all()
    return render(request, 'partner/owner/add_menu.html',
                  processData(request, data))
def revenue(request):
    data = {'title': 'Thống kê'}

    ordersFromDb = Order.objects.all()
    list_date = []
    for order in ordersFromDb:
        str_date = str(order.date).split(" ", 1)[0]
        if str_date not in list_date:
            list_date.append(str_date)

    data = {'list_date': list_date}
    return render(request, 'partner/owner/revenue.html',
                  processData(request, data))
def signup(request):
    data = {
        'title': 'Tạo tài khoản'
    }
    
    if(request.method == 'POST'):

        first_name = request.POST.get('first_name')
        last_name = request.POST.get('last_name')
        username = request.POST.get('username')
        email = request.POST.get('email')
        password1 = request.POST.get('password1')
        password2 = request.POST.get('password2')

        if not(first_name and last_name and username and email and password1 and password2):
            messages.info(request, 'All fields are mandatory')
            return redirect('signup')

        if password1 != password2:
            messages.info(request, 'Passwords not matching')
            return redirect('signup')

        else:
            if User.objects.filter(username=username).exists():
                messages.info(
                    request, 'Username already taken. Please select another Username.')
                return redirect('signup')
            elif User.objects.filter(email=email).exists():
                messages.info(
                    request, 'Email already registered. Please login to continue.')
            else:
                user = User.objects.create_user(
                    username=username, email=email, password=password1, first_name=first_name, last_name=last_name)
                user.profile.role = getRole(request)
                user.save()

                print('User created')
                messages.info(
                    request, 'Account created successfully. Please login to continue.')
        return redirect('login')
    else:
        # check account type, 3 types normal, rider and restaurent owner
        role = request.GET.get('type', 'normal').lower()

        if role != 'rider' and role != 'owner':
            role = 'normal'

        data['role'] = role
        return render(request, 'signup.html', processData(request, data))
def restaurantDetails(request):
    data = {'title': 'My Restaurant Details'}
    if request.method == "POST":
        name = request.POST.get('name')
        address1 = request.POST.get('address1', '')
        address2 = request.POST.get('address2', '')
        country = request.POST.get('country', 'Vietnam')
        state = request.POST.get('state', '')
        zip = request.POST.get('zip', '')
        location = request.POST.get('location', '')
        tag = request.POST.get('tag', '')
        if not name:
            messages.error(request, 'cant save restaurant details')
            return redirect('restaurant_details')
        rest = Restaurant()
        try:
            rest = Restaurant.objects.create(user=request.user,
                                             name=name,
                                             address1=address1,
                                             address2=address2,
                                             country=country,
                                             state=state,
                                             zip=zip,
                                             location=location,
                                             tag=tag)
            messages.info(request, 'saved restaurant details')

        except IntegrityError:
            rest = Restaurant.objects.get(user=request.user)
            rest.name = name
            rest.address1 = address1
            rest.address2 = address2
            rest.country = country
            rest.state = state
            rest.zip = zip
            rest.location = location
            rest.tag = tag
            rest.save()
            messages.info(request, 'updated restaurant details.')
        except:
            messages.info(request, 'cant save restaurant details. try again')

        return redirect('restaurant_details')

    data['rest'] = Restaurant.objects.filter(
        user=request.user).order_by('id').first()
    data['countries'] = list(countries)
    return render(request, 'partner/owner/restaurant_details.html',
                  processData(request, data))
def viewDescribe(request):
    data = {'title': 'Mô tả sản phẩm'}
    name = request.GET.get('name')
    id_s = request.GET.get('id')

    item = MenuItem.objects.filter(name=name)
    data = {
        'info_item_id': item[0].id,
        'info_item_name': item[0].name,
        'info_item_price': item[0].price,
        'info_item_image': item[0].image,
        'info_item_describe': item[0].describe,
    }
    return render(request, 'partner/owner/describe.html',
                  processData(request, data))
def home(request):
    data = {
        'title': 'Hệ thống e-menu',
    }
    
    data['slideBar'] = Category.objects.all()
    categoryFromDb = Category.objects.all()
    
    newCategory = []
    for category in categoryFromDb:
        tmp_category = {}
        tmp_category['categoryCode'] = category.category_code
        tmp_category['categoryName'] = category.category_name
        tmp_category['categoryItems'] = MenuItem.objects.filter(category=category.category_code)
        newCategory.append(tmp_category)

    data['category'] = newCategory
    return render(request, 'index.html', processData(request, data))
def revenueDate(request):
    data = {'title': 'Thống kê'}

    if request.method == "POST":

        date = request.POST.get('date')
        data['date'] = date
        orders = Order.objects.filter(date__date=str(date))
        list_table = []
        total_venenue = 0
        for order in orders:
            if str(order.user.username) not in list_table:
                list_table.append(str(order.user.username))
            total_venenue += order.total_price

    data['all_table'] = list_table
    data['total_venenue'] = total_venenue
    return render(request, 'partner/owner/revenue_table.html',
                  processData(request, data))
def ownerHistory(request):
    data = {'title': 'Thống kê'}

    if request.method == "POST":
        messages.error(request, "cant save. please try again or conact admin")
        return redirect('order_history')
    data['all_table'] = Table.objects.all()

    # o = OrderedItem.objects.filter(item__user=request.user)
    # history = ()
    # for i in o:
    #     history.append(i)
    #     print(i.item)

    # data['history'] = history

    # print(history)
    return render(request, 'partner/owner/view_table_order.html',
                  processData(request, data))
def categoryProductCreate(request):
    data = {'title': 'Danh mục sản phẩm'}
    if request.method == "POST":
        category_name = request.POST.get('name')
        category_code = request.GET.get('category_code')
        try:
            category_code_check = Category.objects.filter(
                category_code=category_code).first()
            print(category_name)
            if category_code_check.category_name == category_name:
                messages.info(
                    request,
                    "Danh mục \"" + category_name + "\" không thay đổi!")
            else:
                categoryItem = Category.objects.filter(
                    category_code=category_code).first()
                category_list = category_name.split()
                sub_str = ''
                for item in category_list:
                    if item.isalnum():
                        lower_item = unidecode(item.lower()) + "-"
                        sub_str += lower_item
                categoryItem.category_code = sub_str.rsplit('-', 1)[0]
                categoryItem.category_name = category_name.upper()
                categoryItem.save()
                print(category_name.upper())
                messages.info(
                    request,
                    "Danh mục \"" + category_name + "\" đã được cập nhật!")
        except Exception as ex:
            messages.info(request, 'Xảy ra lỗi! Vui lòng liên hệ admin!')
            return redirect('category_product_create')
        return redirect('category_product_view')
        # Tải dữ liệu từ form view table
    category_code = request.GET.get('category_code')
    print(category_code)
    if category_code:
        data['categoryItems'] = Category.objects.filter(
            category_code=category_code).first()
    return render(request, 'partner/owner/category_product_create.html',
                  processData(request, data))
def deleteMenu(request):
    data = {'title': 'Menu sản phẩm'}

    if request.method == 'POST':
        confirmed = request.POST.get('confirm', 'no')
        id = request.POST.get('id')

        if not id:
            messages.error(request, 'Hãy chọn Sản phẩm cần xóa!')
            return redirect('view_menu')
        print(confirmed)
        if confirmed and unidecode(confirmed.lower()) == 'co':
            try:
                itemToDelete = MenuItem.objects.filter(user=request.user,
                                                       id=id).first()
                print(itemToDelete.name)
                itemToDelete.delete()
                messages.error(request, itemToDelete.name + ' đã được xóa!')
                return redirect('view_menu')
            except Exception as e:
                print(e)
                messages.error(request, 'Không thể xóa id = ' + str(id) + "!")
                return redirect('view_menu')

        else:
            messages.error(request, 'Hãy chọn "Có" để xác nhận và xóa!')
            return redirect('view_menu')

    id = request.GET.get('id')
    print(id)
    if not id:
        messages.error(request, 'Hãy chọn Sản phẩm cần xóa!')
        return redirect('view_menu')

    if MenuItem.objects.filter(user=request.user, id=id).count() != 1:
        messages.error(request, 'Không tìm thấy Sản phẩm cần xóa!')
        return redirect('view_menu')

    data['item'] = MenuItem.objects.filter(user=request.user, id=id).first()
    return render(request, 'partner/owner/confirm_delete_item.html',
                  processData(request, data))
Exemple #20
0
def deliveryHistory(request):
    data = {'title': 'Nhật Ký Đơn'}

    ordersFromDb = Order.objects.filter(rider=request.user, delivered=True)

    newOrders = []
    for order in ordersFromDb:
        tmp_order = {}
        tmp_order['id'] = order.id
        tmp_order['delivered'] = order.delivered
        tmp_order['rider'] = order.rider
        tmp_order['table'] = order.user.username
        print(order.user.username)
        tmp_order['dateTime'] = order.date
        tmp_order['total'] = order.total_price
        tmp_order['items'] = OrderedItem.objects.filter(
            order=order).order_by('-id')
        newOrders.append(tmp_order)

    print(newOrders)

    data['orders'] = newOrders
    return render(request, 'partner/rider/delivery_history.html',
                  processData(request, data))
Exemple #21
0
def completePay(request):
    data = {
        'title': 'Đơn của bạn đã được nhận'
    }
    return render(request, 'complete_pay.html', processData(request, data))
def aboutTeams(request):
    data = {
        'title': 'Thông tin về nhóm!'
    }
    return render(request, 'teams.html', processData(request, data))
Exemple #23
0
def pay(request):
    data = {
        'title': 'Thanh toán'
    }
    return render(request, 'pay.html', processData(request, data))
def partnerWithUs(request):
    data = {
        'title': 'Partner with us'
    }
    return render(request, 'partner/select.html', processData(request, data))
def specials(request):
    data = {
        'title': 'Special deals'
    }
    return render(request, 'specials.html', processData(request, data))
def dashboard(request):
    data = {
        'title': 'Trang chủ'
    }
    return render(request, 'user/profile.html', processData(request, data))
def profile(request):
    data = {
        'title': 'Thông tin'
    }
    return render(request, 'user/profile.html', processData(request, data))
def cart(request):
    data = {
        'title': 'Đơn đặt'
    }
    return render(request, 'cart.html', processData(request, data))
def support(request):
    data = {
        'title': 'Customer support page'
    }
    return render(request, 'support.html', processData(request, data))
def offers(request):
    data = {
        'title': 'New offers'
    }
    return render(request, 'offers.html', processData(request, data))