Exemple #1
0
def updatePanier(request):
    #On récupère la commande existante associé a la loge connecté,
    # par mesure de sécurité, on n'execute pas de requete en base de donnée si l'utilisateur connecté n'a pas de loge associé
    try:
        if request.user.loge:
            commandeExistante = Commande.objects.exclude(validee=True).exclude(servie=True).filter(loge=request.user.loge).first()
    except ObjectDoesNotExist:
        pass

    if request.method == "POST":
        if request.POST.get('addPanier'):  # Si la soumission de formulaire est un ajout au panier
            idProduit = int(request.POST.get('leProduit', False))  # on récupère le produit concerné
            quantite = int(request.POST.get('quantite', 1))         # ainsi que la quantité

            produit_existant = False
            commandeExistante = Commande.objects.exclude(validee=True).exclude(servie=True).filter(loge=request.user.loge).first()
            # si il existe une commande pour cette loge, on verifie que le produit ajouté n'est pas déjà présent dans la commande
            # si tel est le cas, on se contente de mettre a jour la quantité
            if commandeExistante:
                for ligneCom in commandeExistante.lignecom_set.all():
                    if ligneCom.produit.pk == idProduit:
                        ligneCom.quantite += quantite
                        ligneCom.save(loge=request.user.loge)
                        produit_existant = True
            if not produit_existant:
                ligneCom = LigneCom(produit=Produit.objects.get(pk=idProduit), quantite=quantite)
                ligneCom.save(loge=request.user.loge)
        else:
            # si le formulaire est une validation, on valide la commande existante et la sauvegarde
            if request.POST.get('validerCommande'):
                commandeExistante = Commande.objects.exclude(validee=True).exclude(servie=True).filter(loge=request.user.loge).first()
                commandeExistante.validee = True
                commandeExistante.save()

    return commandeExistante
Exemple #2
0
    def test_commission_serveur(self):
        c = Commande(loge=self.l, serveur=self.s)
        c.save()

        lc = LigneCom(produit=self.p, commande=c, quantite=10)
        lc.save(self.l)
        lc = LigneCom(produit=self.p2, commande=c, quantite=10)
        lc.save(self.l)

        self.assertEqual(Commande.objects.get(pk=c.pk).prixTTC, 300)
        c = Commande.objects.get(pk=c.pk)
        c.validee = True
        c.servie = True
        c.save()

        self.assertEqual(Commande.objects.get(pk=c.pk).prixTTC, 300)

        self.assertEqual(self.s.get_commissions(), 30)
Exemple #3
0
    def test_save_add_prix(self):
        c = Commande(loge=self.l)
        c.save()

        lc = LigneCom(produit=self.p, commande=c, quantite=4)
        lc.save()
        lc = LigneCom(produit=self.p2, commande=c, quantite=2)
        lc.save()

        self.assertEqual(Commande.objects.get(pk=c.pk).prixTTC, 16)

        for ligneCom in c.lignecom_set.all():
            if ligneCom.produit.pk == 1:
                ligneCom.quantite = 2
            print(ligneCom.produit.nom)
            print(ligneCom.quantite)
            print(ligneCom.produit.pk)
        print(self.p.pk)