Beispiel #1
0
 def test_cmp(self):
     cat1 = Categorie(nom="nom1", priorite=1)
     cat2 = Categorie(nom="nom2")
     cat3 = Categorie(nom="nom3", priorite=1)
     liste = []
     liste.append(cat3)
     liste.append(cat2)
     liste.append(cat1)
     self.assertEqual([cat3, cat2, cat1], liste)
     liste.sort()
     self.assertEqual([cat2, cat1, cat3], liste)
Beispiel #2
0
 def test_cmp(self):
     cat1 = Categorie(nom="nom1", priorite=1)
     cat2 = Categorie(nom="nom2")
     cat3 = Categorie(nom="nom3", priorite=1)
     liste = []
     liste.append(cat3)
     liste.append(cat2)
     liste.append(cat1)
     self.assertEqual(cat3, liste[0])
     self.assertEqual(cat2, liste[1])
     self.assertEqual(cat1, liste[2])
     liste.sort()
     self.assertEqual(cat1, liste[0])
     self.assertEqual(cat2, liste[1])
     self.assertEqual(cat3, liste[2])
Beispiel #3
0
def categories_new(request):
    data = get_user(request)
    priority = request.POST.get('priority', '').strip()
    name = request.POST.get('name', '').strip()
    if name:
        cat = Categorie()
        cat.nom = name
        if priority:
            cat.priorite = priority
        try:
            cat.save()
            logging.info("[%s] new categorie [%s]" % (data['user'].username, name))
        except:
            logging.warning("[%s] new categorie failed: [%s] [%s]" % (data['user'].username, cat.priorite, cat.nom))
            messages.add_message(request, messages.ERROR, "La nouvelle catégorie n'a pu être créée.")
    else:
        messages.add_message(request, messages.ERROR, "Vous devez choisir un nom pour la nouvelle catégorie.")
    return HttpResponseRedirect('/carte/categories/')
Beispiel #4
0
def categories_new(request):
    priority = request.POST.get('priority', '').strip()
    name = request.POST.get('name', '').strip()
    if name:
        cat = Categorie()
        cat.nom = name
        if priority:
            cat.priorite = priority
        try:
            cat.save()
            logger.info("[%s] new categorie [%s]" % (request.user.username,
                                                     name))
        except:
            logger.warning("[%s] new categorie failed: [%s] [%s]" % (
                           request.user.username, cat.priorite, cat.nom))
            messages.add_message(request, messages.ERROR, "La nouvelle "
                                 "catégorie n'a pu être créée.")
    else:
        messages.add_message(request, messages.ERROR, "Vous devez choisir "
                             "un nom pour la nouvelle catégorie.")
    return redirect('categories')
Beispiel #5
0
def categories_new(request):
    priority = request.POST.get('priority', '').strip()
    name = request.POST.get('name', '').strip()
    if name:
        cat = Categorie()
        cat.nom = name
        if priority:
            cat.priorite = priority
        try:
            cat.save()
            logger.info("[%s] new categorie [%s]" % (request.user.username,
                                                     name))
        except:
            logger.warning("[%s] new categorie failed: [%s] [%s]" % (
                           request.user.username, cat.priorite, cat.nom))
            messages.add_message(request, messages.ERROR,
                                 _("New category has not been created"))
    else:
        messages.add_message(request, messages.ERROR,
                             _("You must choose a name for the new category"))
    return redirect('categories')
Beispiel #6
0
def categories_new(request):
    priority = request.POST.get('priority', '').strip()
    name = request.POST.get('name', '').strip()
    if name:
        cat = Categorie()
        cat.nom = name
        if priority:
            cat.priorite = priority
        try:
            cat.save()
            logger.info("[%s] new categorie [%s]" %
                        (request.user.username, name))
        except:
            logger.warning("[%s] new categorie failed: [%s] [%s]" %
                           (request.user.username, cat.priorite, cat.nom))
            messages.add_message(request, messages.ERROR,
                                 _("New category has not been created"))
    else:
        messages.add_message(request, messages.ERROR,
                             _("You must choose a name for the new category"))
    return redirect('categories')
Beispiel #7
0
def categories_new(request):
    data = get_user(request)
    priority = request.POST.get('priority', '').strip()
    name = request.POST.get('name', '').strip()
    if name:
        cat = Categorie()
        cat.nom = name
        if priority:
            cat.priorite = priority
        try:
            cat.save()
            logging.info("[%s] new categorie [%s]" %
                         (data['user'].username, name))
        except:
            logging.warning("[%s] new categorie failed: [%s] [%s]" %
                            (data['user'].username, cat.priorite, cat.nom))
            messages.add_message(request, messages.ERROR,
                                 "La nouvelle catégorie n'a pu être créée.")
    else:
        messages.add_message(
            request, messages.ERROR,
            "Vous devez choisir un nom pour la nouvelle catégorie.")
    return HttpResponseRedirect('/carte/categories/')
Beispiel #8
0
vat_alcool.save()
vat_onsite = VAT(name="sur place")
vat_onsite.set_tax("10")
vat_onsite.save()
vat_takeaway = VAT(name=u"à emporter")
vat_takeaway.set_tax("7")
vat_takeaway.save()

###
# Data example

# on entre les nouveaux produits, les prix sont TTC
jus = Categorie(nom="Jus",
                priorite=25,
                surtaxable=False,
                disable_surtaxe=False,
                made_in_kitchen=False,
                color="#44b3dc",
                vat_onsite=vat_onsite,
                vat_takeaway=vat_takeaway)
jus.save()
abricot = Produit(nom="jus abricot",
                  prix="2.80",
                  choix_cuisson=False,
                  categorie=jus)
abricot.save()
pomme = Produit(nom="jus pomme",
                prix="2.80",
                choix_cuisson=False,
                categorie=jus)
pomme.save()
Beispiel #9
0
# TVA
vat_alcool = VAT(name="alcool")
vat_alcool.set_tax("19.6")
vat_alcool.save()
vat_onsite = VAT(name="sur place")
vat_onsite.set_tax("7")
vat_onsite.save()
vat_takeaway = VAT(name=u"à emporter")
vat_takeaway.set_tax("5")
vat_takeaway.save()

# on entre les nouveaux produits, les prix sont TTC
jus = Categorie(nom="Jus",
                priorite=25,
                surtaxable=False,
                disable_surtaxe=False,
                made_in_kitchen=False,
                color="#44b3dc",
                vat_onsite=vat_onsite,
                vat_takeaway=vat_takeaway)
jus.save()
abricot = Produit(nom="jus abricot",
                  prix="2.80",
                  choix_cuisson=False,
                  choix_dish=False,
                  choix_sauce=False,
                  categorie=jus)
abricot.save()
pomme = Produit(nom="jus pomme",
                prix="2.80",
                choix_cuisson=False,
                choix_dish=False,
    else:
        result = "0.0"
    return result

print "> les couleurs"
cu.execute("select id,red,green,blue from couleurs")
for id,red,green,blue in cu.fetchall():
    couleur = Couleur(id=id, red=red, green=green, blue=blue)
    couleur.save()

Couleur_get = Couleur.objects.get
print "> les categories et les produits"
cu.execute("select id,nom_facture,nom_ihm,priorite_facture,majoration_terrasse,id_couleur,is_alcool,override_surtaxe from categories")
for id,nom_facture,nom_ihm,priorite_facture,majoration_terrasse,id_couleur,is_alcool,override_surtaxe in cu.fetchall():
    couleur = Couleur_get(pk=id_couleur)
    categorie = Categorie(id=id, nom=nom_ihm, priorite=priorite_facture, surtaxable=majoration_terrasse, alcool=is_alcool, disable_surtaxe=override_surtaxe, couleur=couleur)
    categorie.save()

    cu.execute("select id,nom_facture,nom_ihm,prix_ttc,actif from produits where id_categorie=%s" % categorie.id)
    for id,nom_facture,nom_ihm,prix_ttc,actif in cu.fetchall():
        produit = Produit(id=id, nom=nom_ihm, nom_facture=nom_facture, prix=convert_prix(prix_ttc), actif=actif, categorie=categorie)
        produit.save()

Produit_get = Produit.objects.get
Categorie_get = Categorie.objects.get
print "> les menus"
cu.execute("select id_formule,id_categorie from formules_categories")
for id_formule,id_categorie in cu.fetchall():
    formule = Produit_get(id=id_formule)
    categorie = Categorie_get(id=id_categorie)
    formule.categories_ok.add(categorie)
for id, red, green, blue in cu.fetchall():
    couleur = Couleur(id=id, red=red, green=green, blue=blue)
    couleur.save()

Couleur_get = Couleur.objects.get
print "> les categories et les produits"
cu.execute(
    "select id,nom_facture,nom_ihm,priorite_facture,majoration_terrasse,id_couleur,is_alcool,override_surtaxe from categories"
)
for id, nom_facture, nom_ihm, priorite_facture, majoration_terrasse, id_couleur, is_alcool, override_surtaxe in cu.fetchall(
):
    couleur = Couleur_get(pk=id_couleur)
    categorie = Categorie(id=id,
                          nom=nom_ihm,
                          priorite=priorite_facture,
                          surtaxable=majoration_terrasse,
                          alcool=is_alcool,
                          disable_surtaxe=override_surtaxe,
                          couleur=couleur)
    categorie.save()

    cu.execute(
        "select id,nom_facture,nom_ihm,prix_ttc,actif from produits where id_categorie=%s"
        % categorie.id)
    for id, nom_facture, nom_ihm, prix_ttc, actif in cu.fetchall():
        produit = Produit(id=id,
                          nom=nom_ihm,
                          nom_facture=nom_facture,
                          prix=convert_prix(prix_ttc),
                          actif=actif,
                          categorie=categorie)
Beispiel #12
0
    def handle(self, *args, **options):
        # managers
        for username in ['demo', 'demo1', 'demo2']:
            user = User(username=username, first_name=username,
                        email="*****@*****.**" % username)
            user.set_password(username)
            user.is_superuser = True
            user.save()

        # staff members
        for username in ['staff', 'staff1', 'staff2']:
            user = User(username=username, first_name=username,
                        email="*****@*****.**" % username)
            user.set_password(username)
            user.save()

        # Type de paiements
        PaiementType(nom='AMEX', fixed_value=False).save()
        PaiementType(nom='ANCV', fixed_value=True).save()
        PaiementType(nom='CB', fixed_value=False).save()
        PaiementType(nom='Cheque', fixed_value=False).save()
        PaiementType(nom='Espece', fixed_value=False).save()
        PaiementType(nom='Tic. Resto.', fixed_value=True).save()

        # Type de paiements par défaut pour les remboursements lorsque
        # le paiement dépasse le montant de la facture
        id_type_paiement = PaiementType.objects.get(nom="Espece").id
        Config(key="payment_for_refunds", value=id_type_paiement).save()

        # Default PaymentType to select by default on the payment page
        id_type_paiement = PaiementType.objects.get(nom="Espece").id
        Config(key="default_type_payment", value=id_type_paiement).save()

        # Montant de la surtaxe
        Config(key="price_surcharge", value="0.20").save()

        # Tables
        z = Zone(nom='Bar', surtaxe=False)
        z.save()
        Table(nom="T--", zone=z).save()
        z = Zone(nom='Rez de chaussee', surtaxe=False)
        z.save()
        for i in xrange(1, 15):
            Table(nom="T%02d" % i, zone=z).save()
        z = Zone(nom='Terrasse', surtaxe=True)
        z.save()
        for i in xrange(15, 26):
            Table(nom="T%02d" % i, zone=z).save()

        # TVA
        vat_alcool = VAT(name="alcool")
        vat_alcool.set_tax("20")
        vat_alcool.save()
        vat_onsite = VAT(name="sur place")
        vat_onsite.set_tax("10")
        vat_onsite.save()
        vat_takeaway = VAT(name=u"à emporter")
        vat_takeaway.set_tax("7")
        vat_takeaway.save()

        # Options
        Option(name="A_Frites").save()
        Option(name="A_Salade").save()
        Option(name="S_Creme").save()
        Option(name="A_Haricots").save()
        Option(name="S_Mayo").save()

        # Notes
        Note(message="Pas de sel").save()
        Note(message="Sans champignon").save()

        #
        # Data example

        # on entre les nouveaux produits, les prix sont TTC
        jus = Categorie(nom="Jus",
                        priorite=25,
                        surtaxable=False,
                        disable_surtaxe=False,
                        made_in_kitchen=False,
                        color="#44b3dc",
                        vat_onsite=vat_onsite,
                        vat_takeaway=vat_takeaway)
        jus.save()
        abricot = Produit(nom="jus abricot",
                          prix="2.80",
                          choix_cuisson=False,
                          categorie=jus)
        abricot.save()
        pomme = Produit(nom="jus pomme",
                        prix="2.80",
                        choix_cuisson=False,
                        categorie=jus)
        pomme.save()

        bieres = Categorie(nom="Bieres",
                           priorite=2,
                           surtaxable=False,
                           disable_surtaxe=False,
                           made_in_kitchen=False,
                           color="#ea97b5",
                           vat_onsite=vat_alcool,
                           vat_takeaway=vat_alcool)
        bieres.save()
        biere = Produit(nom="biere 50cl",
                        prix="2.80",
                        choix_cuisson=False,
                        categorie=bieres)
        biere.save()

        entrees = Categorie(nom="Entrees",
                            priorite=5,
                            surtaxable=False,
                            disable_surtaxe=False,
                            made_in_kitchen=True,
                            color="#ff9f00",
                            vat_onsite=vat_onsite,
                            vat_takeaway=vat_takeaway)
        entrees.save()
        salade = Produit(nom="salade normande",
                         prix="3.40",
                         choix_cuisson=False,
                         categorie=entrees)
        salade.save()
        buffet = Produit(nom="buffet",
                         prix="6.40",
                         choix_cuisson=False,
                         categorie=entrees)
        buffet.save()

        plat = Categorie(nom="Plat",
                         priorite=10,
                         surtaxable=False,
                         disable_surtaxe=False,
                         made_in_kitchen=True,
                         color="#c9a100",
                         vat_onsite=vat_onsite,
                         vat_takeaway=vat_takeaway)
        plat.save()
        entrecote = Produit(nom="entrecote",
                            prix="8.40",
                            choix_cuisson=True,
                            categorie=plat)
        entrecote.save()
        pave = Produit(nom="pave de saumon",
                       prix="9.40",
                       choix_cuisson=False,
                       categorie=plat)
        pave.save()

        # pour les menu
        menu = Categorie(nom="Menu",
                         priorite=22,
                         surtaxable=False,
                         disable_surtaxe=False,
                         made_in_kitchen=False,
                         color="#88f027",
                         vat_onsite=vat_onsite,
                         vat_takeaway=vat_takeaway)
        menu.save()
        entree_plat = Produit(nom=u"Menu Entree/Plat",
                              prix="13.40",
                              choix_cuisson=False,
                              categorie=menu)
        entree_plat.save()
        entree_plat.categories_ok.add(entrees)
        entree_plat.categories_ok.add(plat)
        entree_plat.produits_ok.add(salade)
        entree_plat.produits_ok.add(entrecote)
        entree_plat.produits_ok.add(pave)
        entree_plat.save()

        # mis a jour des TTC et TVA
        for product in Produit.objects.all():
            product.update_vats(keep_clone=False)

        def create_bill(finish=True):
            """Create a bill
            """
            table = 'T%d' % random.randint(10, 25)
            bill = Facture(table=Table.objects.get(nom=table))
            bill.save()
            produits_bar = [biere, pomme, abricot]
            produits_guests = [salade, buffet, entrecote, pave]
            payments = ['CB', 'Espece', 'Cheque']
            if random.randint(1, 2) == 1:
                # guests part
                produits = produits_guests
                bill.couverts = random.randint(1, 15)
            else:
                produits = produits_bar
            nb_produits = random.randint(1, 6)
            for i in xrange(nb_produits):
                # random number of products
                nb_max = len(produits) - 1
                produit = produits[random.randint(0, nb_max)]
                sold = ProduitVendu(produit=produit)
                sold.save()
                bill.add_product(sold)
            # nouveau_menu = ProduitVendu(produit=entree_plat)
            # nouveau_menu.save()
            # for produit in [salade, pave]:
                # sold = ProduitVendu(produit=produit)
                # sold.save()
                # nouveau_menu.contient.add(sold)
            # nouveau_menu.save()
            bill.update()
            if finish:
                nb_max = len(payments) - 1
                name = payments[random.randint(0, nb_max)]
                type_payment = PaiementType.objects.get(nom=name)
                bill.add_payment(type_payment, bill.total_ttc)
            return bill

        # on ajoute des données pour avoir des jolies graphiques de
        # démonstrations
        now = datetime.datetime.now()
        for month in xrange(1, 13):
            for i in xrange(20):
                day = random.randint(1, 28)
                bill = create_bill()
                bill.date_creation = datetime.datetime(now.year, month, day)
                bill.save()

        # Création d'une dizaine de facture
        for i in xrange(15):
            bill = create_bill(finish=False)
            if i % 2:
                bill.update_kitchen()
                bill.print_ticket_kitchen()

        Stat().update()
Beispiel #13
0
    def handle(self, *args, **options):
        create_users()
        create_payment()

        # Montant de la surtaxe
        Config(key="price_surcharge", value="0.20").save()

        create_tables()

        # TVA
        vat_alcool = VAT(name="alcool")
        vat_alcool.set_tax("20")
        vat_alcool.save()
        vat_onsite = VAT(name="sur place")
        vat_onsite.set_tax("10")
        vat_onsite.save()
        vat_takeaway = VAT(name="à emporter")
        vat_takeaway.set_tax("7")
        vat_takeaway.save()

        # Options
        Option(name="A_Frites").save()
        Option(name="A_Salade").save()
        Option(name="S_Creme").save()
        Option(name="A_Haricots").save()
        Option(name="S_Mayo").save()

        # Notes
        Note(message="Pas de sel").save()
        Note(message="Sans champignon").save()

        #
        # Data example

        # on entre les nouveaux produits, les prix sont TTC
        jus = Categorie(nom="Jus",
                        priorite=25,
                        surtaxable=False,
                        disable_surtaxe=False,
                        made_in_kitchen=False,
                        color="#44b3dc",
                        vat_onsite=vat_onsite,
                        vat_takeaway=vat_takeaway)
        jus.save()
        abricot = Produit(nom="jus abricot",
                          prix="2.80",
                          choix_cuisson=False,
                          categorie=jus)
        abricot.save()
        pomme = Produit(nom="jus pomme",
                        prix="2.80",
                        choix_cuisson=False,
                        categorie=jus)
        pomme.save()

        bieres = Categorie(nom="Bieres",
                           priorite=2,
                           surtaxable=False,
                           disable_surtaxe=False,
                           made_in_kitchen=False,
                           color="#ea97b5",
                           vat_onsite=vat_alcool,
                           vat_takeaway=vat_alcool)
        bieres.save()
        biere = Produit(nom="biere 50cl",
                        prix="2.80",
                        choix_cuisson=False,
                        categorie=bieres)
        biere.save()

        entrees = Categorie(nom="Entrees",
                            priorite=5,
                            surtaxable=False,
                            disable_surtaxe=False,
                            made_in_kitchen=True,
                            color="#ff9f00",
                            vat_onsite=vat_onsite,
                            vat_takeaway=vat_takeaway)
        entrees.save()
        salade = Produit(nom="salade normande",
                         prix="3.40",
                         choix_cuisson=False,
                         categorie=entrees)
        salade.save()
        buffet = Produit(nom="buffet",
                         prix="6.40",
                         choix_cuisson=False,
                         categorie=entrees)
        buffet.save()

        plat = Categorie(nom="Plat",
                         priorite=10,
                         surtaxable=False,
                         disable_surtaxe=False,
                         made_in_kitchen=True,
                         color="#c9a100",
                         vat_onsite=vat_onsite,
                         vat_takeaway=vat_takeaway)
        plat.save()
        entrecote = Produit(nom="entrecote",
                            prix="8.40",
                            choix_cuisson=True,
                            categorie=plat)
        entrecote.save()
        pave = Produit(nom="pave de saumon",
                       prix="9.40",
                       choix_cuisson=False,
                       categorie=plat)
        pave.save()

        # pour les menu
        menu = Categorie(nom="Menu",
                         priorite=22,
                         surtaxable=False,
                         disable_surtaxe=False,
                         made_in_kitchen=False,
                         color="#88f027",
                         vat_onsite=vat_onsite,
                         vat_takeaway=vat_takeaway)
        menu.save()
        entree_plat = Produit(nom="Menu Entree/Plat",
                              prix="13.40",
                              choix_cuisson=False,
                              categorie=menu)
        entree_plat.save()
        entree_plat.categories_ok.add(entrees)
        entree_plat.categories_ok.add(plat)
        entree_plat.produits_ok.add(salade)
        entree_plat.produits_ok.add(entrecote)
        entree_plat.produits_ok.add(pave)
        entree_plat.save()

        # mis a jour des TTC et TVA
        for product in Produit.objects.all():
            product.update_vats(keep_clone=False)

        def create_bill(finish=True):
            """Create a bill
            """
            table = 'T%d' % random.randint(10, 25)
            bill = Facture(table=Table.objects.get(nom=table))
            bill.save()
            produits_bar = [biere, pomme, abricot]
            produits_guests = [salade, buffet, entrecote, pave]
            payments = ['CB', 'Espece', 'Cheque']
            if random.randint(1, 2) == 1:
                # guests part
                produits = produits_guests
                bill.couverts = random.randint(1, 15)
            else:
                produits = produits_bar
            nb_produits = random.randint(1, 6)
            for i in range(nb_produits):
                # random number of products
                nb_max = len(produits) - 1
                produit = produits[random.randint(0, nb_max)]
                sold = ProduitVendu(produit=produit)
                sold.save()
                bill.add_product(sold)
            # nouveau_menu = ProduitVendu(produit=entree_plat)
            # nouveau_menu.save()
            # for produit in [salade, pave]:
                # sold = ProduitVendu(produit=produit)
                # sold.save()
                # nouveau_menu.contient.add(sold)
            # nouveau_menu.save()
            bill.update()
            if finish:
                nb_max = len(payments) - 1
                name = payments[random.randint(0, nb_max)]
                type_payment = PaiementType.objects.get(nom=name)
                bill.add_payment(type_payment, bill.total_ttc)
            return bill

        # on ajoute des données pour avoir des jolies graphiques de
        # démonstrations
        now = datetime.datetime.now()
        for month in range(1, 13):
            for i in range(20):
                day = random.randint(1, 28)
                bill = create_bill()
                bill.date_creation = datetime.datetime(now.year, month, day)
                bill.save()

        # Création d'une dizaine de facture
        for i in range(15):
            bill = create_bill(finish=False)
            if i % 2:
                bill.update_kitchen()
                bill.print_ticket_kitchen()

        Stat().update()