Exemple #1
0
def produit_suprimer(current_user, id):
    """ Cette fonction retourne une variable control_process: True en cas de réussité du processus
        dans le cas contraire
    """
    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()

    if not id:
        return jsonify({
            'message': "Vérifier les parametres",
            "control_process": False,
            'nbre_panier': nbre_panier
        })
    verifcation_porduit_vente = Produit.query.filter_by(id=id).first()
    if verifcation_porduit_vente is None:
        return jsonify({
            'message': "Ce produit n'existe pas",
            "control_process": False,
            'nbre_panier': nbre_panier
        })
    else:
        commande_ajout = Commandes.query.filter_by(user_id=current_user.id,
                                                   produit_id=id).delete()
        db.session.commit()
        return jsonify({
            'message': "Suppression avec success",
            "control_process": True,
            'nbre_panier': nbre_panier
        })
    return jsonify({
        'message': 'Verifier les information',
        "control_process": False,
        'nbre_panier': nbre_panier
    })
Exemple #2
0
def produit(current_user):
    """ Cette fonction retourne la liste des produits en expositions """
    produit_schema = ProduitSchema()
    produits_schema = ProduitSchema(many=True)
    produit_all = produits_schema.dump(
        Produit.query.filter_by(statut=True).all())
    #Les produits en de la catélogues
    tous_les_produit = Produit.query.filter_by(statut=True).all()
    #Liste des produits
    produits = []

    nbre_panier = produit_du_panier()

    for produit in tous_les_produit:
        p = {
            'id': produit.id,
            'nom': produit.nom,
            'prix_p': produit.prix_p,
            'code': produit.code,
            'img_url': produit.img_url,
            'description_android': produit.description_android,
            'mesure': produit.mesure,
            'categori_id': produit.categorie_produit.id,
            'nom_categorie': produit.categorie_produit.nom,
        }
        produits.insert(0, p)

    return jsonify({'produits': produits, 'nbre_panier': nbre_panier})
Exemple #3
0
def profil_pass(current_user):
    user = User.query.filter_by(id=current_user.id).first()
    # Les données du formulaire
    data = request.get_json()
    user_one = []
    nbre_panier = produit_du_panier()
    utilisateur_donnees = {
        "nom": user.nom,
        "post_nom": user.post_nom,
        "prenom": user.prenom,
        "tel": user.tel,
        "mail": user.mail,
        "adr": user.adr,
        "username": user.username
    }
    user_one.insert(0, utilisateur_donnees)
    if data is not None:
        password_hash = bcrypt.generate_password_hash(
            data['password']).decode('utf-8')
        user.password = password_hash
        db.session.commit()
        return jsonify({
            'message': 'Mise à jour avec succès',
            "control_process": True
        })

    return jsonify({
        'message': 'Envoie les données svp',
        'utili_donnees': user_one,
        'nbre_panier': nbre_panier
    })
Exemple #4
0
def commande_utilisateur(current_user, id):
    """ Cette fonction retourne liste des produit du panier, la valeur totale du panier et control_process True dans le cas 
    contraire control_procesd est False """

    enre_facture_montant = Facture.query.filter_by(id=id).first()

    panier = []

    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()

    if enre_facture_montant is None:
        return jsonify({
            'message': "Cette commande n'existe pas",
            "control_process": False,
            'nbre_panier': nbre_panier
        })

    panier_des_donnes = Panier.query.filter_by(facture_id=id).all()
    if panier_des_donnes == []:
        return jsonify({
            'message': "Aucun produit dans la commande",
            "control_process": False,
            'nbre_panier': nbre_panier
        })
    #Valeur total de la commande
    val_com_facture = []
    for paniers in panier_des_donnes:
        i = paniers.valeur
        val_com_facture.insert(0, i)
    valeur_totale_panier = sum(val_com_facture)

    #Ajout des elements dans le panier
    for p in panier_des_donnes:
        p = {
            'id': p.produit_panier.id,
            'nom_produit': p.produit_panier.nom,
            'url_image': p.produit_panier.img_url,
            'categorie': p.produit_panier.categorie_produit.nom,
            'qte': int(p.quantite),
            'prix_p': float(p.prix_p),
            'somme': float(p.valeur),
        }
        panier.insert(0, p)
    #Nom
    nbr_produit_panier = len(panier)
    nbr_produit_panier = nbr_produit_panier
    commande_pan = panier
    nbre_commande = len(panier)

    return jsonify({
        'message': 'Produit de commande',
        'nbre_commande': nbre_commande,
        'commande': commande_pan,
        "valeur_panier": valeur_totale_panier,
        "control_process": True,
        'nbre_panier': nbre_panier
    })
Exemple #5
0
def commander(current_user):

    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()
    """ Cette fonction retourne la variable control_process en True, si la commande a reussi et False si vous n'avez rien dans le panier """
    valeur_produit_panier = []
    commandes_schema = CommandesSchema(many=True)
    commandes_client = Commandes.query.filter_by(user_id=current_user.id).all()
    if commandes_client == []:
        return jsonify({
            'message': 'Aucun produit dans le panier',
            "control_process": False,
            'nbre_panier': nbre_panier
        })

    code_encours = codecommande()  #Code de la facture
    valeur_commande_panier = []

    enre_facture = Facture(code_commande=code_encours, user_id=current_user.id)
    db.session.add(enre_facture)
    db.session.commit()

    for dans_commande_panier in commandes_client:
        #Enregistrement dans le panier
        valeur_total_panier = float(dans_commande_panier.qte) * float(
            dans_commande_panier.produit_commande.prix_p)
        vente_encours = Panier(
            quantite=dans_commande_panier.qte,
            prix_p=dans_commande_panier.produit_commande.prix_p,
            valeur=valeur_total_panier,
            user_id=current_user.id,
            produit_id=dans_commande_panier.produit_id,
            facture_id=enre_facture.id)
        db.session.add(vente_encours)
        #Facture encours d'enregistrement
        enre_facture_montant = Facture.query.filter_by(
            id=enre_facture.id).first()
        if enre_facture_montant.valeur is None:
            enre_facture_montant.valeur = valeur_total_panier
        else:
            enre_facture_montant.valeur = float(
                enre_facture_montant.valeur) + valeur_total_panier
        Commandes.query.filter_by(id=dans_commande_panier.id).delete()
        db.session.commit()

    return jsonify({
        'message': "Commande reussie",
        "control_process": True,
        'nbre_panier': nbre_panier
    })
Exemple #6
0
def profil_maj(current_user):
    user = User.query.filter_by(id=current_user.id).first()
    # Les données du formulaire
    data = request.get_json()
    nbre_panier = produit_du_panier()
    user_one = []
    utilisateur_donnees = {
        "nom": user.nom,
        "post_nom": user.post_nom,
        "prenom": user.prenom,
        "tel": user.tel,
        "mail": user.mail,
        "adr": user.adr,
        "username": user.username
    }
    user_one.insert(0, utilisateur_donnees)
    if data is not None:
        user_name = User.query.filter_by(username=data['username']).first()
        if user_name:
            user.nom = data['nom']
            user.post_nom = data['post_nom']
            user.prenom = data['prenom']
            user.tel = data['tel']
            user.mail = data['mail']
            user.adr = data['adr']
            db.session.commit()
            return jsonify({
                'message': 'Mise à jour avec succès',
                "control_process": True
            })
        else:
            user.nom = data['nom']
            user.post_nom = data['post_nom']
            user.prenom = data['prenom']
            user.tel = data['tel']
            user.mail = data['mail']
            user.adr = data['adr']
            user.username = data['username']
            db.session.commit()
            return jsonify({
                'message': 'Mise à jour avec succès',
                "control_process": True
            })
    return jsonify({
        'message': 'Envoie les données svp',
        'utili_donnees': user_one,
        'nbre_panier': nbre_panier
    })
Exemple #7
0
def utilisateur(current_user):
    """ Cette fonction retourne un utilisateur la variable utilisateurs un_utilisateur
        dans le cas contraire elle retourne une erreur avec la variable de contrôle
        control_process: False
    """
    nbre_panier = produit_du_panier()
    user_schema = UserSchema()
    users_schema = UserSchema(many=True)
    verifcation_user_profil = User.query.filter_by(id=current_user.id).first()
    if verifcation_user_profil is None:
        return jsonify({
            'message': "Aucun utilisateur associer",
            "control_process": False
        })
    user_one = user_schema.dump(verifcation_user_profil)
    return jsonify({'un_utilisateur': user_one, 'nbre_panier': nbre_panier})
Exemple #8
0
def profil(current_user):
    user = User.query.filter_by(id=current_user.id).first()
    user_one = []
    nbre_panier = produit_du_panier()
    utilisateur_donnees = {
        "nom": user.nom,
        "post_nom": user.post_nom,
        "prenom": user.prenom,
        "tel": user.tel,
        "mail": user.mail,
        "adr": user.adr,
        "username": user.username
    }
    user_one.insert(0, utilisateur_donnees)
    return jsonify({
        'message': 'success',
        "utilisateur": user_one,
        'nbre_panier': nbre_panier
    })
Exemple #9
0
def categorie(current_user):
    """ Cette fonction retourne la liste des commandes"""
    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()

    categorie_de_produit = []
    categories = Categorie.query.filter_by(statut=True).order_by(
        Categorie.id.desc()).all()
    if categories == []:
        return jsonify({
            'message': "Aucune categorie n'est disponible",
            "control_process": False,
            'nbre_panier': nbre_panier
        })

    for cat in categories:
        categ = {
            'id':
            cat.id,
            'nom':
            cat.nom,
            'produit': [{
                'id': i.id,
                'nom_produit': i.nom,
                'url_image': i.img_url,
                'mesure': i.mesure,
                'prix_p': i.prix_p
            } for i in cat.produits]
        }
        #categ=json.dumps(categ, cls=DecimalEncoder)
        categorie_de_produit.insert(0, categ)

    return jsonify({
        'categorie': categorie_de_produit,
        'message': "Listes des categories",
        "control_process": True,
        'nbre_panier': nbre_panier
    })
Exemple #10
0
def categorie_produit(current_user, id):
    """ Cette fonction retourne la liste des commandes"""
    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()

    categories = Categorie.query.filter_by(id=id).first()
    if categories is None:
        return jsonify({
            'message': "Aucune categorie n'est disponible",
            "control_process": False,
            'nbre_panier': nbre_panier
        })

    produit_categorie = Produit.query.filter_by(statut=True,
                                                categorie_id=id).all()
    produits_schema = ProduitSchema(many=True)
    produits_categorie = produits_schema.dump(produit_categorie)
    return jsonify({
        'produits': produits_categorie,
        'message': "Liste des produit par catégorie",
        "control_process": True,
        'nbre_panier': nbre_panier
    })
Exemple #11
0
def payements_deux(current_user, id):
    """ Pyament de commandes"""
    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()
    #La facture
    facture_encours = Facture.query.filter_by(id=id,
                                              user_id=current_user.id).first()
    if facture_encours.premier_payement != 0 and facture_encours.totalite == False:
        #Les données du formulaire
        data = request.get_json()
        #Payements
        produit_facture = []
        panier_de_facture = Panier.query.filter_by(
            facture_id=id, user_id=current_user.id).all()
        for produit in panier_de_facture:
            p = {
                'id': produit.produit_panier.id,
                'nom_produit': produit.produit_panier.nom,
                'img_url': produit.produit_panier.img_url,
                'quantite': int(produit.quantite),
                'prix_p': produit.prix_p,
                'valeur': produit.valeur
            }
            produit_facture.insert(0, p)
        #Vérification des payement
        if data is not None:
            premier = float(facture_encours.premier_payement)
            total = float(facture_encours.valeur)
            payement_deuxieme = float(data['premier_deuxieme'])
            #La difference
            addition = premier + payement_deuxieme
            if addition == total:
                facture_encours.totalite = True
                facture_encours.deuxieme_payement = payement_deuxieme
                facture_encours.ref_payement_deux = data['ref_payement_deux']
                db.session.commit()
                return jsonify({
                    'produit': produit_facture,
                    'message': "Payement éffectué",
                    'premier_payement': facture_encours.premier_payement,
                    'deuxieme_payement': facture_encours.deuxieme_payement,
                    'total_facture': facture_encours.valeur,
                    "control_process": True,
                    'nbre_panier': nbre_panier
                })
            else:
                reste = total - addition
                if reste < 0:
                    #Payements
                    produit_facture = []
                    panier_de_facture = Panier.query.filter_by(
                        facture_id=id, user_id=current_user.id).all()
                    for produit in panier_de_facture:
                        p = {
                            'id': produit.produit_panier.id,
                            'nom_produit': produit.produit_panier.nom,
                            'img_url': produit.produit_panier.img_url,
                            'quantite': int(produit.quantite),
                            'prix_p': produit.prix_p,
                            'valeur': produit.valeur
                        }
                        produit_facture.insert(0, p)

                    return jsonify({
                        'produit': produit_facture,
                        'message': "Effectué juste le reste",
                        'premier_payement': facture_encours.premier_payement,
                        'total_facture': facture_encours.valeur,
                        "control_process": False,
                        'nbre_panier': nbre_panier
                    })
                if reste > 0:
                    #Payements
                    produit_facture = []
                    panier_de_facture = Panier.query.filter_by(
                        facture_id=id, user_id=current_user.id).all()
                    for produit in panier_de_facture:
                        p = {
                            'id': produit.produit_panier.id,
                            'nom_produit': produit.produit_panier.nom,
                            'img_url': produit.produit_panier.img_url,
                            'quantite': int(produit.quantite),
                            'prix_p': produit.prix_p,
                            'valeur': produit.valeur
                        }
                        produit_facture.insert(0, p)

                    return jsonify({
                        'produit': produit_facture,
                        'message': "Payer la totalité du reste",
                        'premier_payement': facture_encours.premier_payement,
                        'total_facture': facture_encours.valeur,
                        "control_process": False,
                        'nbre_panier': nbre_panier
                    })
        reste_payement = float(facture_encours.valeur) - float(
            facture_encours.premier_payement)

        return jsonify({
            'produit': produit_facture,
            'message': "Prière d'éffectuer le deuxième payement",
            'premier_payement': reste_payement,
            'total_facture': facture_encours.valeur,
            "control_process": False,
            'nbre_panier': nbre_panier
        })

    else:
        #Payements
        produit_facture = []
        panier_de_facture = Panier.query.filter_by(
            facture_id=id, user_id=current_user.id).all()
        for produit in panier_de_facture:
            p = {
                'id': produit.produit_panier.id,
                'nom_produit': produit.produit_panier.nom,
                'img_url': produit.produit_panier.img_url,
                'quantite': int(produit.quantite),
                'prix_p': produit.prix_p,
                'valeur': produit.valeur
            }
            produit_facture.insert(0, p)
        return jsonify({
            'produit': produit_facture,
            'message': "Vérifier tes informations",
            'premier_payement': facture_encours.premier_payement,
            'total_facture': facture_encours.valeur,
            "control_process": False,
            'nbre_panier': nbre_panier
        })
Exemple #12
0
def payements(current_user, id):
    """ Pyament de commandes"""
    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()
    #Les données du formulaire
    data = request.get_json()
    #La facture
    facture_encours = Facture.query.filter_by(id=id,
                                              user_id=current_user.id).first()
    if facture_encours.premier_payement == 0 and facture_encours.totalite == False:
        #Payements
        produit_facture = []
        panier_de_facture = Panier.query.filter_by(
            facture_id=id, user_id=current_user.id).all()
        for produit in panier_de_facture:
            p = {
                'id': produit.produit_panier.id,
                'nom_produit': produit.produit_panier.nom,
                'img_url': produit.produit_panier.img_url,
                'quantite': int(produit.quantite),
                'prix_p': produit.prix_p,
                'valeur': produit.valeur
            }
            produit_facture.insert(0, p)
        #Les informations de la factures
        if data is not None:
            if data['premier_payement'] == facture_encours.valeur:
                facture_encours.ref_payement_un = data['ref_payement_un']
                facture_encours.totalite = True
                facture_encours.tel = data['tel']
                facture_encours.mail = data['mail']
                facture_encours.adr = data['adr']
            else:
                facture_encours.premier_payement = data['premier_payement']
                facture_encours.ref_payement_un = data['ref_payement_un']
                facture_encours.tel = data['tel']
                facture_encours.mail = data['mail']
                facture_encours.adr = data['adr']
            db.session.commit()
            return jsonify({
                'produit': produit_facture,
                'message': "Premier payement effectué",
                "control_process": True,
                'nbre_panier': nbre_panier
            })
        return jsonify({
            'produit': produit_facture,
            'message': "Prière d'éffectuer le premier payement",
            "control_process": False,
            'nbre_panier': nbre_panier,
            'totalit_facture': facture_encours.valeur,
            'ref_premier': facture_encours.ref_payement_un
        })
    else:
        #Payements
        produit_facture = []
        panier_de_facture = Panier.query.filter_by(
            facture_id=id, user_id=current_user.id).all()
        for produit in panier_de_facture:
            p = {
                'id': produit.produit_panier.id,
                'nom_produit': produit.produit_panier.nom,
                'img_url': produit.produit_panier.img_url,
                'quantite': int(produit.quantite),
                'prix_p': produit.prix_p,
                'valeur': produit.valeur
            }
            produit_facture.insert(0, p)
        reste_payement = float(facture_encours.valeur) - float(
            facture_encours.premier_payement)
    return jsonify({
        'produit': produit_facture,
        'message': "Effectué le  deuxième payement",
        'premier_payement': facture_encours.premier_payement,
        'total_facture': facture_encours.valeur,
        "control_process": False,
        'nbre_panier': nbre_panier,
        'reste': reste_payement
    })
Exemple #13
0
def commandes(current_user):
    """ Cette fonction retourne la liste des commandes"""
    commdandes_encours = []
    commande = Facture.query.filter_by(user_id=current_user.id).all()
    if commande == []:
        return jsonify({
            'message': "Aucune commande disponible",
            "control_process": False
        })

    for com in commande:
        p = {
            "adr":
            com.adr,
            "annul":
            com.annul,
            "code_commande":
            com.code_commande,
            "datecommande":
            com.datecommande,
            "deuxieme_payement":
            com.deuxieme_payement,
            "id":
            com.id,
            "mail":
            com.mail,
            "paniers": [{
                'id': i.id,
                'nom_produit': i.produit_panier.nom,
                'url_image': i.produit_panier.img_url,
                'mesure': i.produit_panier.mesure,
                "qte": i.quantite,
                "valeur": i.valeur,
                'prix_p': i.prix_p
            } for i in com.paniers],
            "premier_payement":
            com.premier_payement,
            "ref_payement_deux":
            com.ref_payement_deux,
            "ref_payement_totalite":
            com.ref_payement_totalite,
            "ref_payement_un":
            com.ref_payement_un,
            "statut":
            com.statut,
            "tel":
            com.tel,
            "totalite":
            com.totalite,
            "valeur":
            com.valeur
        }
        commdandes_encours.insert(0, p)
    #Le nombre des produits dans le panier
    commdandes_encours_nbr = len(commdandes_encours)
    nbre_panier = produit_du_panier()
    return jsonify({
        'commandes': commdandes_encours,
        'nbr_commande': commdandes_encours_nbr,
        'message': "Liste des commandes",
        "control_process": True,
        'nbre_panier': nbre_panier
    })
Exemple #14
0
def produit_vente_moins(current_user, id):
    """ Cette fonction retourne une variable control_process: True en cas de réussité du processus
        dans le cas contraire
    """
    data = request.get_json()

    #Le nombre des produits dans le panier
    nbre_panier = produit_du_panier()

    if not id:
        return jsonify({
            'message': "Vérifier les parametres",
            "control_process": False,
            'nbre_panier': nbre_panier
        })

    produi_schema = ProduitSchema()
    produits_schema = ProduitSchema(many=True)

    verifcation_porduit_vente = Produit.query.filter_by(id=id).first()
    if verifcation_porduit_vente is None:
        return jsonify({
            'message': "Ce produit n'existe pas",
            "control_process": False,
            'nbre_panier': nbre_panier
        })
    else:
        commande_ajout = Commandes.query.filter_by(user_id=current_user.id,
                                                   produit_id=id).first()
        if commande_ajout is None:
            valeur_commande = float(data['qte']) * float(
                verifcation_porduit_vente.prix_p)
            enregistrement_commande = Commandes(qte=data['qte'],
                                                somme=valeur_commande,
                                                user_id=current_user.id,
                                                produit_id=id)
            db.session.add(enregistrement_commande)
            db.session.commit()
            return jsonify({
                'message': "Ajout au panier avec succès",
                "control_process": True,
                'nbre_panier': nbre_panier
            })
        else:
            valeur_commande_entree = float(data['qte']) * float(
                verifcation_porduit_vente.prix_p)
            if commande_ajout.qte > data['qte']:
                qte_nouvelle = commande_ajout.qte - data['qte']
                valeur_commande_noubelle = valeur_commande_entree + float(
                    commande_ajout.somme)
                commande_ajout.qte = qte_nouvelle
                commande_ajout.somme = valeur_commande_noubelle
                db.session.commit()
                return jsonify({
                    'message': "Diminution au panier avec succès",
                    "control_process": True,
                    'nbre_panier': nbre_panier
                })
            else:
                return jsonify({
                    'message':
                    'La quantité est superieur à la quantité disponible',
                    "control_process": False,
                    'nbre_panier': nbre_panier
                })
    return jsonify({
        'message': 'Verifier les information',
        "control_process": False,
        'nbre_panier': nbre_panier
    })