""" Ce fichier permet de gerer les produits et service, les Packs vendu par MySy """ import pymongo from pymongo import MongoClient import json from bson import ObjectId import re from datetime import datetime import prj_common as mycommon import secrets import inspect import sys, os import csv import pandas as pd from pymongo import ReturnDocument from math import isnan import GlobalVariable as MYSY_GV class JSONEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, ObjectId): return str(o) return json.JSONEncoder.default(self, o) ''' Cette fonction récupérer produits et service avec possibilité de filtrer sur un pack''' def get_product_service(diction): try : field_list = ['token', 'pack_name' ] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str(inspect.stack()[0][ 3]) + " - Le champ '" + val + "' n'existe pas, Creation formation annulée") return False, " Impossible de récupérer les factures" ''' Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente, On controle que les champs obligatoires sont presents dans la liste ''' field_list_obligatoire = ['token'] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Impossible de récupérer les factures" # recuperation des paramettre my_token = "" user_recid = "" pack_name = "" if ("token" in diction.keys()): if diction['token']: my_token = diction['token'] if ("pack_name" in diction.keys()): if diction['pack_name']: pack_name = str(diction['pack_name']).lower() user_recid = "None" # Verification de la validité du token/mail dans le cas des user en mode connecté if (len(str(my_token)) > 0): retval = mycommon.check_partner_token_validity("", my_token) if retval is False: mycommon.myprint(str(inspect.stack()[0][3]) + " - La session de connexion n'est pas valide") return False, " Impossible de récupérer les factures" # Recuperation du recid de l'utilisateur user_recid = mycommon.get_parnter_recid_from_token(my_token) if user_recid is False: mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de récupérer le token de l'utilisateur") return False, " Impossible de récupérer les factures" if (len(str(my_token)) <= 0): mycommon.myprint(str(inspect.stack()[0][3]) + " - Le token est vide") return False, " Impossible de récupérer les factures" RetObject = [] coll_db = MYSY_GV.dbname['produit_service'] if(len(str(pack_name)) > 0 ): for retVal in coll_db.find({ 'valide': '1', 'packs':pack_name}) \ .sort([("date_facture", pymongo.ASCENDING), ("num_facture", pymongo.DESCENDING), ]): user = retVal RetObject.append(JSONEncoder().encode(user)) else: for retVal in coll_db.find({'valide': '1'}) \ .sort([("date_facture", pymongo.ASCENDING), ("num_facture", pymongo.DESCENDING), ]): user = retVal RetObject.append(JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) return False, "Impossible de récupérer les produits et service"