08/07/23 - 20h

master
cherif 2023-07-08 21:57:53 +02:00
parent ae9218fddf
commit 27b1f14139
5 changed files with 3781 additions and 12 deletions

View File

@ -3,18 +3,10 @@
<component name="ChangeListManager">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="05/07/23 - 20h">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Attestation_Certificat.py" beforeDir="false" afterPath="$PROJECT_DIR$/Attestation_Certificat.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/Inscription_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Log/log_file.log" beforeDir="false" afterPath="$PROJECT_DIR$/Log/log_file.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Session_Formation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/class_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/class_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/data_indexees.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ela_output_test_file_pandas_2.txt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ela_user_account.py" beforeDir="false" afterPath="$PROJECT_DIR$/ela_user_account.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/email_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emargement.py" beforeDir="false" afterPath="$PROJECT_DIR$/emargement.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/partners.py" beforeDir="false" afterPath="$PROJECT_DIR$/partners.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/strype_payement.py" beforeDir="false" afterPath="$PROJECT_DIR$/strype_payement.py" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

File diff suppressed because one or more lines are too long

17
main.py
View File

@ -310,7 +310,7 @@ mais pour que l'api fonctionne, il faut lui fournir
def get_class():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### payload = ",str(payload)+" IP requester = "+str(request.remote_addr))
print(" ### get_class : payload = ",str(payload)+" IP requester = "+str(request.remote_addr))
status, retval = cm.get_class(payload)
return jsonify(status=status, message=retval)
@ -3065,6 +3065,21 @@ def Get_Given_Code_Promo():
return jsonify(status=localStatus, message=message)
"""
Cette API Permet de recuperer les données
d'abonnement d'un client
"""
@app.route('/myclass/api/Strip_Get_Customer_Abonnement_Data/', methods=['POST','GET'])
@crossdomain(origin='*')
def Strip_Get_Customer_Abonnement_Data():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Strip_Get_Customer_Abonnement_Data : payload = ",payload)
localStatus, message = Stripe.Strip_Get_Customer_Abonnement_Data(payload)
return jsonify(status=localStatus, message=message)
if __name__ == '__main__':
print(" debut api")
context = SSL.Context(SSL.SSLv23_METHOD)

View File

@ -394,6 +394,31 @@ def get_partner_data_from_recid(user_recid = ""):
return False
"""
Recuperation des données du partner à partir du token
"""
def get_partner_data_from_token(token = ""):
try :
if len(str(token)) <= 0:
myprint(" Le token partner est vide")
return False, ""
val_tmp = MYSY_GV.dbname['partnair_account'].count_documents({'token': str(token), 'active': '1', 'locked':'0'})
if (val_tmp <= 0):
return False, ""
ret_val = MYSY_GV.dbname['partnair_account'].find_one(
{'token': str(token), 'active': '1', 'locked': '0'})
return True, ret_val
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, ""
'''
recuperation d'email du user from token
'''

View File

@ -1168,7 +1168,6 @@ def strip_update_subscription_plan(diction):
print(" ### local_status = "+str(local_status)+" mysy_lms.Disable_MySy_LMS_Class_Of_User = "+str(local_message))
return True, " ok"
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))
@ -1242,3 +1241,111 @@ def webhook_received():
"""
Cette fonction recuperer les informations sur l'abonnement
d'un client. Par exemple,
- date de prochaine facturation
- montant de prochaine facture
"""
def Strip_Get_Customer_Abonnement_Data(diction):
try:
field_list_obligatoire = ['recid']
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 liste ")
return False, " Les informations fournies sont incorrectes"
recid = ""
if ("recid" in diction.keys()):
if diction['recid']:
recid = diction['recid']
# Recuperation du recid du partenaire
local_status, partner_data = mycommon.get_partner_data_from_recid(str(recid))
if local_status is False:
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer les données du partenaire")
return False, " Impossible de recuperer les données du partenaire"
if ("stripe_account_id" not in partner_data.keys()):
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer les données du partenaire (2)")
return False, " Impossible de recuperer les données du partenaire (2)"
stripe_account_id = partner_data["stripe_account_id"]
local_ret_val = stripe.Invoice.upcoming(
customer=stripe_account_id,
)
print(" #### local_ret_val : ", str(local_ret_val))
lines_to_invoice = local_ret_val.lines.list(limit=5)
stripe_account_id_JSON = json.loads(str(local_ret_val))
lines_to_invoice_JSON = json.loads(str(lines_to_invoice))
return_data = {}
return_data['recid'] = str(recid)
period_start = ""
period_end = ""
total = ""
if( "period_start" in stripe_account_id_JSON.keys()):
# convert the timestamp to a datetime object in the local timezone
dt_object = datetime.fromtimestamp(stripe_account_id_JSON["period_start"]).strftime("%d/%m/%Y")
return_data['period_start'] = str(dt_object)[0:10]
period_start = str(dt_object)[0:10]
if ("period_end" in stripe_account_id_JSON.keys()):
# convert the timestamp to a datetime object in the local timezone
dt_object = datetime.fromtimestamp(stripe_account_id_JSON["period_end"]).strftime("%d/%m/%Y")
return_data['period_end'] = str(dt_object)[0:10]
period_end = str(dt_object)[0:10]
if ("total" in stripe_account_id_JSON.keys()):
total_local = mycommon.tryFloat(str(stripe_account_id_JSON["total"])) / 100
return_data['total'] = str(total_local)
total = str(total_local)
return_data['main_description'] = "Facture à venir : Ceci est un aperçu de la facture qui sera émise "+str(period_end)+"." \
" Elle est susceptible d'être modifiée si l'abonnement est mis à jour."
return_data['lines'] = []
for val in lines_to_invoice_JSON['data']:
local_diction = {}
local_diction['id'] = str(val['id'])
period = val['period']
local_diction['period_end'] = str(datetime.fromtimestamp(period['end']).strftime("%d/%m/%Y-%H:%M:%S"))
local_diction['period_start'] = str(datetime.fromtimestamp(period['start']).strftime("%d/%m/%Y-%H:%M:%S"))
local_diction['unit_amount'] = str(val['price']['unit_amount'])
local_diction['quantity'] = str(val['quantity'])
local_diction['description'] = str(val['description'])
local_diction['amount'] = str(val['amount'])
return_data['lines'].append(local_diction)
RetObject = []
RetObject.append(mycommon.JSONEncoder().encode(return_data))
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 recuperer les données de l'abonnement "