Esempio n. 1
0
def products_cooking(request, product_id):
    data = get_user(request)
    product = get_object_or_404(Produit, pk=product_id)
    new = not product.choix_cuisson
    product.choix_cuisson = new
    product.save()
    return HttpResponseRedirect('/carte/products/%s/' % product_id)
Esempio n. 2
0
def products_add_categories_ok(request, product_id, cat_id):
    data = get_user(request)
    product = get_object_or_404(Produit, pk=product_id)
    category = get_object_or_404(Categorie, pk=cat_id)
    product.categories_ok.add(category)
    product.save()
    return HttpResponseRedirect('/carte/products/%s/' % product_id)
Esempio n. 3
0
def sold_view(request, bill_id, sold_id):
    data = get_user(request)
    data['menu_bills'] = True
    data['bill_id'] = bill_id
    data['sold'] = get_object_or_404(ProduitVendu, pk=sold_id)
    return render_to_response('base/bill/sold.html', data,
                              context_instance=RequestContext(request))
Esempio n. 4
0
def printer_select_width(request, printer_id):
    data = get_user(request)
    data['menu_manager'] = True
    data['printer'] = get_object_or_404(Printer, pk=printer_id)
    data['max'] = range(14, 120)
    return render_to_response('base/manager/printer_select_width.html', data,
                              context_instance=RequestContext(request))
Esempio n. 5
0
def categories_more_priority(request, cat_id, nb=1):
    data = get_user(request)
    cat = get_object_or_404(Categorie, pk=cat_id)
    cat.set_more_priority(nb)
    logger.info("[%s] cat [%s] priority + %d" % (data['user'].username,
                                                 cat.nom, nb))
    return HttpResponseRedirect('/carte/categories/%s/' % cat_id)
Esempio n. 6
0
def users_change(request, user_id):
    data = get_user(request)
    login = request.POST.get('login', '').strip()
    first_name = request.POST.get('first_name', '').strip()
    last_name = request.POST.get('last_name', '').strip()
    mail = request.POST.get('mail', '').strip()
    user = get_object_or_404(User, pk=user_id)
    if login != user.username:
        logger.info("[%s] new login: [%s] > [%s]" % (
                    data['user'].username, user.username, login))
        user.username = login
    if first_name != user.first_name:
        logger.info("[%s] new first name for [%s]: [%s] > [%s]" % (
                    data['user'].username, user.username, user.first_name,
                    first_name))
        user.first_name = first_name
    if last_name != user.last_name:
        logger.info("[%s] new last name for [%s]: [%s] > [%s]" % (
                    data['user'].username, user.username, user.last_name,
                    last_name))
        user.last_name = last_name
    if mail != user.email:
        logger.info("[%s] new mail for [%s]: [%s] > [%s]" % (
                    data['user'].username, user.username, user.email, mail))
        user.email = mail

    try:
        user.save()
    except:
        messages.add_message(request, messages.ERROR, "Les modifications n'ont"
                             " pu être enregistrées.")
        logger.warning("[%s] save failed for [%s]" % (data['user'].username,
                                                      user.username))
    return HttpResponseRedirect('/manager/users/')
Esempio n. 7
0
def rapports_weekly(request):
    """
    Affiche le rapport pour une semaine
    """
    data = get_user(request)
    data['menu_manager'] = True
    DailyStat().update()
    date = datetime.datetime.now()
    year = date.year
    # 01 must be converted to 1
    week = int(date.strftime("%U"))
    if request.method == 'POST':
        try:
            week = int(request.POST.get('week'))
            year = int(request.POST.get('year'))
        except:
            messages.add_message(request,
                                 messages.ERROR,
                                 "La date saisie n'est pas valide.")
    data['week_form'] = WeekForm({'year': year, 'week': week})
    data['week'] = week
    data['year'] = year
    last_year = year - 1
    data = WeeklyStat().get_data(data, year, week)
    for key in ['nb_bills', 'total_ttc', 'guests_nb', 'guests_average',
                'guests_total_ttc', 'bar_nb', 'bar_average', 'bar_total_ttc']:
        data['last_%s' % key] = "%.2f" % WeeklyStat().get_value(key, last_year, week)
        data['max_%s' % key] = WeeklyStat().get_max(key)
        data['avg_%s' % key] = WeeklyStat().get_avg(key)
    return render_to_response('base/manager/rapports/home.html', data,
                              context_instance=RequestContext(request))
Esempio n. 8
0
def products_add_produits_ok(request, product_id, sub_id):
    data = get_user(request)
    menu = get_object_or_404(Produit, pk=product_id)
    product = get_object_or_404(Produit, pk=sub_id)
    menu.produits_ok.add(product)
    menu.save()
    return HttpResponseRedirect('/carte/products/%s/' % product_id)
Esempio n. 9
0
def factures(request):
    data = get_user(request)
    data['menu_bills'] = True
    data['need_auto_refresh'] = True
    data['factures'] = Facture().non_soldees()
    return render_to_response('base/bill/home.html', data,
                              context_instance=RequestContext(request))
Esempio n. 10
0
def printer_change_manager(request, printer_id):
    data = get_user(request)
    printer = get_object_or_404(Printer, pk=printer_id)
    new = not printer.manager
    printer.manager = new
    printer.save()
    return HttpResponseRedirect('/manager/printer/%s/' % printer_id)
Esempio n. 11
0
def products_view(request, product_id):
    data = get_user(request)
    data['product'] = get_object_or_404(Produit, pk=product_id)
    data['menu_manager'] = True
    return render_to_response('base/carte/product.html',
                                data,
                                context_instance=RequestContext(request))
Esempio n. 12
0
def bill_payment(request, bill_id, type_id=-1, count=-1, left=0, right=0):
    data = get_user(request)
    bill = get_object_or_404(Facture, pk=bill_id)
    if bill.restant_a_payer == 0:
        messages.add_message(request, messages.ERROR, "Il n'y a rien à payer.")
        return HttpResponseRedirect('/bill/%s/' % bill.id)
    data['bill_id'] = bill_id
    data['type_payments'] = PaiementType.objects.order_by("nom")
    data['menu_bills'] = True
    data['left'] = left
    data['right'] = right
    if type_id > -1:
        data['type_selected'] = get_object_or_404(PaiementType, pk=type_id)
        if data['type_selected'].fixed_value:
            if count > 0:
                data['tickets_count'] = count
            else:
                data['tickets_count'] = 0
            data['ticket_value'] = "0.0"
        else:
            if left == 0 and right == 0:
                montant = u"%.2f" % bill.restant_a_payer
                (data['left'], data['right']) = montant.split(".")
    return render_to_response('base/bill/payment.html',
                                data,
                                context_instance=RequestContext(request))
Esempio n. 13
0
def rapports_monthly(request):
    """
    Affiche le rapport pour un mois
    """
    data = get_user(request)
    data['menu_manager'] = True
    DailyStat().update()
    date = datetime.datetime.now()
    year = date.year
    month = date.month
    if request.method == 'POST':
        try:
            month = int(request.POST.get('month'))
            year = int(request.POST.get('year'))
        except:
            messages.add_message(request,
                                 messages.ERROR,
                                 "La date saisie n'est pas valide.")
    data['month_form'] = MonthForm({'year': year, 'month': month})
    data['month'] = month
    data['year'] = year
    last_year = year - 1
    data = MonthlyStat().get_data(data, year, month)
    for key in ['nb_bills', 'total_ttc', 'guests_nb', 'guests_average',
                'guests_total_ttc', 'bar_nb', 'bar_average', 'bar_total_ttc']:
        data['last_%s' % key] = "%.2f" % MonthlyStat().get_value(key, last_year, month)
        data['max_%s' % key] = MonthlyStat().get_max(key)
        data['avg_%s' % key] = MonthlyStat().get_avg(key)
    return render_to_response('base/manager/rapports/home.html',
                                data,
                                context_instance=RequestContext(request))
Esempio n. 14
0
def users_change_perm(request, user_id, codename):
    data = get_user(request)
    user = get_object_or_404(User, pk=user_id)
    # little test because because user can do ugly things :)
    # now we are sure that it is a good permission
    if codename in settings.PERMS:
        perm = Permission.objects.get(codename=codename)
        if perm in user.user_permissions.all():
            if codename == 'p1' and perm.user_set.count() == 1:
                # we must have at least one person with this permission
                logger.info("[%s] user [%s] perm [%s]: at least should have "
                            "one person" % (data['user'].username,
                                            user.username, 
                                            codename))
                messages.add_message(request, messages.ERROR,
                                     "Il doit rester au moins 1 compte avec "
                                     "la permission P1.")
            else:
                user.user_permissions.remove(perm)
                logger.info("[%s] user [%s] remove perm: %s" % (
                            data['user'].username,
                            user.username,
                            codename))
        else:
            user.user_permissions.add(perm)
            logger.info("[%s] user [%s] add perm: %s" % (
                        data['user'].username,
                        user.username,
                        codename))
    else:
        logger.warning("[%s] wrong perm info : [%s]" % (data['user'].username,
                                                        codename))
    return HttpResponseRedirect('/manager/users/')
Esempio n. 15
0
def rapports_daily(request):
    """
    Affiche le rapport pour une journée
    """
    data = get_user(request)
    data['menu_manager'] = True
    DailyStat().update()
    date = datetime.datetime.now()
    if request.method == 'POST':
        try:
            year = int(request.POST.get('date_year'))
            month = int(request.POST.get('date_month'))
            day = int(request.POST.get('date_day'))
            date = datetime.datetime(year, month, day)
        except:
            messages.add_message(request,
                                 messages.ERROR,
                                 "La date saisie n'est pas valide.")
    data['date_form'] = DateForm({'date': date, })
    data['date'] = date
    data = DailyStat().get_data(data, date)
    # les stats de l'année précédente
    last_year = get_last_year(date)
    for key in ['nb_bills', 'total_ttc', 'guests_nb', 'guests_average',
                'guests_total_ttc', 'bar_nb', 'bar_average', 'bar_total_ttc']:
        data['last_%s' % key] = "%.2f" % DailyStat().get_value(key, last_year)
        data['max_%s' % key] = DailyStat().get_max(key)
        data['avg_%s' % key] = DailyStat().get_avg(key)
    return render_to_response('base/manager/rapports/home.html', data,
                              context_instance=RequestContext(request))
Esempio n. 16
0
def sold_cooking(request, bill_id, sold_id, cooking_id=-1, menu_id=-1):
    data = get_user(request)
    data['sold'] = get_object_or_404(ProduitVendu, pk=sold_id)
    data['cookings'] = Cuisson.objects.order_by('priorite', 'nom')
    data['bill_id'] = bill_id
    if menu_id > -1:
        data['menu_id'] = menu_id
    if cooking_id > -1:
        cooking = get_object_or_404(Cuisson, pk=cooking_id)
        old = data['sold'].cuisson
        data['sold'].cuisson = cooking
        data['sold'].save()
        logger.debug("[S%s] cooking saved" % sold_id)
        if menu_id > -1:
            # this is a menu
            logger.debug("[S%s] is a subproduct of %s" % (sold_id, menu_id))
            menu = get_object_or_404(ProduitVendu, pk=menu_id)
            category = menu.getFreeCategorie()
            if category:
                logger.debug("[S%s] menu is not full" % menu_id)
                url = '/bill/%s/sold/%s/category/%s/select/' % (bill_id,
                      menu.id, category.id)
                return HttpResponseRedirect(url)
            else:
                logger.debug("[S%s] menu is full" % menu_id)
        if old == None:
            # certainement un nouveau produit donc on veut retourner
            # sur le panneau de saisie des produits
            return HttpResponseRedirect('/bill/%s/category/%s/' % (bill_id,
                                        data['sold'].produit.categorie.id))
        else:
            return HttpResponseRedirect('/bill/%s/' % bill_id)
    return render_to_response('base/bill/cooking.html', data,
                              context_instance=RequestContext(request))
Esempio n. 17
0
def product_select_made_with(request, bill_id, product_id):
    data = get_user(request)
    data['menu_bills'] = True
    data['bill'] = get_object_or_404(Facture, pk=bill_id)
    data['product'] = get_object_or_404(ProduitVendu, pk=product_id)
    data['categories'] = Categorie.objects.filter(made_in_kitchen=True)
    return render_to_response('base/bill/product_select_made_with.html',
                              data, context_instance=RequestContext(request))
Esempio n. 18
0
def table_select(request, bill_id):
    """Select/modify table of a bill"""
    data = get_user(request)
    data['menu_bills'] = True
    data['zones'] = Zone.objects.all()
    data['bill_id'] = bill_id
    return render_to_response('base/bill/select_a_table.html', data,
                              context_instance=RequestContext(request))
Esempio n. 19
0
def bill_payment_view(request, bill_id, payment_id):
    data = get_user(request)
    data['menu_bills'] = True
    data['bill_id'] = bill_id
    data['payment'] = get_object_or_404(Paiement, pk=payment_id)
    return render_to_response('base/bill/payment_view.html',
                                data,
                                context_instance=RequestContext(request))
Esempio n. 20
0
def bill_payment_delete(request, bill_id, payment_id):
    data = get_user(request)
    data['menu_bills'] = True
    data['bill_id'] = bill_id
    payment = get_object_or_404(Paiement, pk=payment_id)
    bill = get_object_or_404(Facture, pk=bill_id)
    bill.del_payment(payment)
    return HttpResponseRedirect('/bill/%s/' % bill_id)
Esempio n. 21
0
def printer_test_print(request, printer_id):
    data = get_user(request)
    printer = get_object_or_404(Printer, pk=printer_id)
    if printer.print_test():
        messages.add_message(request, messages.SUCCESS, "L'impression a été acceptée.")
    else:
        messages.add_message(request, messages.ERROR, "L'impression de test a achouée.")
    return HttpResponseRedirect('/manager/printer/%s/' % printer_id)
Esempio n. 22
0
def couverts_select(request, bill_id):
    """List of couverts for a bill"""
    data = get_user(request)
    data['menu_bills'] = True
    data['nb_couverts'] = range(43)
    data['bill_id'] = bill_id
    return render_to_response('base/bill/couverts.html', data,
                              context_instance=RequestContext(request))
Esempio n. 23
0
def couverts_set(request, bill_id, number):
    """Set couverts of a bill"""
    data = get_user(request)
    bill = get_object_or_404(Facture, pk=bill_id)
    bill.set_couverts(number)
    data['facture'] = bill
    return render_to_response('base/bill/bill.html', data,
                              context_instance=RequestContext(request))
Esempio n. 24
0
def carte(request):
    """This is not used.
    """
    data = get_user(request)
    data['menu_manager'] = True
    return render_to_response('base/carte.html',
                                data,
                                context_instance=RequestContext(request))
Esempio n. 25
0
def products_category(request, product_id):
    data = get_user(request)
    data['product'] = get_object_or_404(Produit, pk=product_id)
    data['menu_manager'] = True
    data['categories'] = Categorie.objects.order_by('priorite', 'nom')
    return render_to_response('base/carte/product_category.html',
                                data,
                                context_instance=RequestContext(request))
Esempio n. 26
0
def users(request):
    data = get_user(request)
    data['perms_list'] = settings.PERMS
    data['menu_manager'] = True
    data['users'] = User.objects.all()
    for user in data['users']:
        user.permissions = [p.codename for p in user.user_permissions.all()]
    return render_to_response('base/manager/users.html', data,
                              context_instance=RequestContext(request))
Esempio n. 27
0
def table_set(request, bill_id, table_id):
    """Select/modify table of a bill"""
    data = get_user(request)
    bill = get_object_or_404(Facture, pk=bill_id)
    table = get_object_or_404(Table, pk=table_id)
    bill.set_table(table)
    data['facture'] = bill
    return render_to_response('base/bill/bill.html', data,
                              context_instance=RequestContext(request))
Esempio n. 28
0
def categories_view(request, cat_id):
    data = get_user(request)
    data['category'] = get_object_or_404(Categorie, pk=cat_id)
    data['menu_manager'] = True
    products = Produit.objects.filter(categorie__id=cat_id)
    data['products_enable'] = products.filter(actif=True)
    data['products_disable'] = products.filter(actif=False)
    return render_to_response('base/carte/category.html', data,
                              context_instance=RequestContext(request))
Esempio n. 29
0
def bill_new(request):
    """Create a new bill"""
    data = get_user(request)
    data['menu_bills'] = True
    bill = Facture()
    bill.save()
    data['facture'] = bill
    return render_to_response('base/bill/bill.html', data,
                              context_instance=RequestContext(request))
Esempio n. 30
0
def categories_vat_onsite(request, cat_id):
    data = get_user(request)
    data['menu_manager'] = True
    data['category'] = get_object_or_404(Categorie, pk=cat_id)
    data['type_vat'] = 'TVA sur place'
    data['url_vat'] = 'vat_onsite'
    data['vats'] = VAT.objects.order_by('name')
    return render_to_response('base/carte/categories/select_vat.html', data,
                              context_instance=RequestContext(request))