paiement.save()
        facture.paiements.add(paiement)

    cu.execute("select id_produit from factures_produits where id_facture=%d" % facture.id)
    # liste des relations des sous produits deja pris
    deja_pris = []
    for [id_produit] in cu.fetchall():
        if produit:
            try:
                produit = Produit_get(id=id_produit)
                vendu = ProduitVendu(produit=produit, \
                        date=facture.date_creation, \
                        facture=facture, \
                        prix=produit.prix)
                vendu.save()
                vendu.date = facture.date_creation
#                facture.produits.add(vendu)

                sql = "select formules_produits.id_produit,factures_formules.id from factures_formules,formules_produits where factures_formules.id_facture=%d and factures_formules.id_formule_produit=formules_produits.id and formules_produits.id_formule=%d" % (facture.id, produit.id)
                cu.execute(sql)
                for row2 in cu.fetchall():
                    if row2[1] not in deja_pris:
                        if not vendu.isFull():
                            sub = ProduitVendu(
                                    produit=Produit_get(id=row2[0]), \
                                    facture=facture)
                            sub.save()
                            sub.date = facture.date_creation
                            sub.save()
#                            product.addProduit(self.db.getProductById(row2[0]))
                            vendu.contient.add(sub)
        facture.paiements.add(paiement)

    cu.execute("select id_produit from factures_produits where id_facture=%d" %
               facture.id)
    # liste des relations des sous produits deja pris
    deja_pris = []
    for [id_produit] in cu.fetchall():
        if produit:
            try:
                produit = Produit_get(id=id_produit)
                vendu = ProduitVendu(produit=produit, \
                        date=facture.date_creation, \
                        facture=facture, \
                        prix=produit.prix)
                vendu.save()
                vendu.date = facture.date_creation
                #                facture.produits.add(vendu)

                sql = "select formules_produits.id_produit,factures_formules.id from factures_formules,formules_produits where factures_formules.id_facture=%d and factures_formules.id_formule_produit=formules_produits.id and formules_produits.id_formule=%d" % (
                    facture.id, produit.id)
                cu.execute(sql)
                for row2 in cu.fetchall():
                    if row2[1] not in deja_pris:
                        if not vendu.isFull():
                            sub = ProduitVendu(
                                    produit=Produit_get(id=row2[0]), \
                                    facture=facture)
                            sub.save()
                            sub.date = facture.date_creation
                            sub.save()
                            #                            product.addProduit(self.db.getProductById(row2[0]))