03/09/2024 - 20:00
parent
9a905df4d3
commit
fecc9123ee
|
@ -1,10 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="01/09/2024 - 14:00">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="01/09/2024 - 20:00">
|
||||
<change afterPath="$PROJECT_DIR$/type_cours.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Dashbord_queries/BPF.py" beforeDir="false" afterPath="$PROJECT_DIR$/Dashbord_queries/BPF.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$/domaine_formation_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/domaine_formation_mgt.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$/unite_enseignement_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/unite_enseignement_mgt.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
@ -74,13 +79,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00339" summary="qsds">
|
||||
<created>1719144150975</created>
|
||||
<option name="number" value="00339" />
|
||||
<option name="presentableId" value="LOCAL-00339" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1719144150976</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00340" summary="26/06/2024 - 19h30">
|
||||
<created>1719423411649</created>
|
||||
<option name="number" value="00340" />
|
||||
|
@ -417,7 +415,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1725191980575</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="388" />
|
||||
<task id="LOCAL-00388" summary="01/09/2024 - 20:00">
|
||||
<created>1725213634326</created>
|
||||
<option name="number" value="00388" />
|
||||
<option name="presentableId" value="LOCAL-00388" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1725213634327</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="389" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -459,7 +464,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="02/08/2024 - 17h" />
|
||||
<MESSAGE value="03/08/2024 - 18h30" />
|
||||
<MESSAGE value="08/08/2024 - 20h30" />
|
||||
<MESSAGE value="08/08/2024 - 20h32" />
|
||||
|
@ -484,6 +488,7 @@
|
|||
<MESSAGE value="31082024" />
|
||||
<MESSAGE value="31/08/2024 - 18h50" />
|
||||
<MESSAGE value="01/09/2024 - 14:00" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="01/09/2024 - 14:00" />
|
||||
<MESSAGE value="01/09/2024 - 20:00" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="01/09/2024 - 20:00" />
|
||||
</component>
|
||||
</project>
|
|
@ -176,7 +176,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
|
|||
{'$expr':
|
||||
{'$and':
|
||||
[
|
||||
{'$eq': ["order_line_is_include_bpf", "1"]},
|
||||
{'$eq': ["$order_line_is_include_bpf", "1"]},
|
||||
{'$eq': ["$valide", "1"]},
|
||||
{'$eq': ["$invoice_header_ref_interne",
|
||||
'$$partner_invoice_line_invoice_header_ref_interne']},
|
||||
|
@ -1398,8 +1398,8 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
{'$expr':
|
||||
{'$and':
|
||||
[
|
||||
{'$eq': ["$valide", "1"]},
|
||||
{'$eq': ["$order_line_is_include_bpf", "1"]},
|
||||
{'$eq': ["$valide", "1"]},
|
||||
{'$eq': ["$invoice_header_ref_interne",
|
||||
'$$partner_invoice_line_invoice_header_ref_interne']},
|
||||
{'$eq': ["$partner_owner_recid", '$$partner_invoice_line_partner_owner_recid']},
|
||||
|
@ -1429,6 +1429,11 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
},
|
||||
|
||||
])
|
||||
|
||||
print(
|
||||
" ### C1_pipe_qry_invoice_header_partner__invoice_line_detail__is_client_1_is_financeur_0_is_company_1 = ",
|
||||
C1_pipe_qry_invoice_header_partner__invoice_line_detail__is_client_1_is_financeur_0_is_company_1)
|
||||
|
||||
for retval in MYSY_GV.dbname['partner_invoice_header'].aggregate(
|
||||
C1_pipe_qry_invoice_header_partner__invoice_line_detail__is_client_1_is_financeur_0_is_company_1):
|
||||
print(" ### retval bpf_c1_entreprise = ", retval)
|
||||
|
@ -1575,7 +1580,7 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
total_bpf_c_type_apprenant = 0
|
||||
for retval in MYSY_GV.dbname['partner_invoice_header'].aggregate(
|
||||
C2_pipe_qry_invoice_header_partner__invoice_line_detail__partner_type_organisme_financement__type_apprenant):
|
||||
|
||||
print(" ### retval = ", retval)
|
||||
node = {}
|
||||
node['Type_Apprenant_Code'] = retval['_id']['Type_Apprenant']
|
||||
node['Type_Apprenant_Desc'] = retval['_id']['Type_Apprenant_Description']
|
||||
|
@ -1587,6 +1592,7 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
RetObject['bpf_c2_type_apprenant'] = bpf_c2_type_apprenant
|
||||
RetObject['total_bpf_c_type_apprenant'] = round(total_bpf_c_type_apprenant, 2)
|
||||
total_c1_C9 = total_c1_C9 + mycommon.tryFloat(total_bpf_c_type_apprenant)
|
||||
print(" ### total_c1_C9 = ", total_c1_C9, ", ### total_bpf_c_type_apprenant = ", total_bpf_c_type_apprenant)
|
||||
|
||||
C3_qery_match = {'$and': [
|
||||
{"valide": '1', 'invoice_header_type': 'facture',
|
||||
|
@ -1996,14 +2002,22 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
RetObject['bpf_e2_nb_formateurs_externes'] = str(len(tab_formateur_rh_id_sous_traitant))
|
||||
RetObject['bpf_e2_nb_heures_formateurs_externes'] = tab_formateur_rh_sous_traitant_total_heure
|
||||
|
||||
F1_qery_match = {'$and': [{"partner_owner_recid": str(my_partner['recid'])}, {"valide": '1', 'status': '1'},
|
||||
"""
|
||||
FIN TRAITEMENT DU PAVE EEEE
|
||||
"""
|
||||
|
||||
"""
|
||||
TRAITEMENT DU PAVE FFFF
|
||||
"""
|
||||
|
||||
F3_qery_match = {'$and': [{"partner_owner_recid": str(my_partner['recid'])}, {"valide": '1', 'status': '1'},
|
||||
]}
|
||||
|
||||
F1_pipe_qry_stagiaire_par_class_level = ([
|
||||
F3_pipe_qry_stagiaire_par_class_level = ([
|
||||
|
||||
{'$project': {'_id': 1, 'email': 1, 'session_id': 1, 'nom': 1, 'prenom': 1, 'partner_owner_recid': 1,
|
||||
'valide': 1, 'type_apprenant': 1, 'status': 1}},
|
||||
{'$match': F1_qery_match},
|
||||
{'$match': F3_qery_match},
|
||||
{'$lookup': {
|
||||
'from': 'session_formation',
|
||||
'let': {'session_id': "$session_id", 'partner_owner_recid': '$partner_owner_recid'},
|
||||
|
@ -2115,10 +2129,10 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
|
||||
])
|
||||
|
||||
print(" ### F1_pipe_qry_stagiaire_par_class_level = ", F1_pipe_qry_stagiaire_par_class_level)
|
||||
print(" ### F3_pipe_qry_stagiaire_par_class_level = ", F3_pipe_qry_stagiaire_par_class_level)
|
||||
|
||||
bpf_f_class_niveau_formation = []
|
||||
total_bpf_f_class_niveau_formation = 0
|
||||
bpf_f3_class_niveau_formation = []
|
||||
total_bpf_f3_class_niveau_formation = 0
|
||||
|
||||
"""
|
||||
Recuperer la configuration de conversion des semaines, mois, années en nombre d'heures
|
||||
|
@ -2126,7 +2140,7 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
local_conversion_heure_status, local_nb_heure_par_jour, local_nb_heure_par_sem, local_nb_heure_par_mois, local_nb_heure_par_annee = mycommon.Get_Config_Conversion_Heures(
|
||||
str(my_partner['recid']))
|
||||
|
||||
for retval in MYSY_GV.dbname['inscription'].aggregate(F1_pipe_qry_stagiaire_par_class_level):
|
||||
for retval in MYSY_GV.dbname['inscription'].aggregate(F3_pipe_qry_stagiaire_par_class_level):
|
||||
# print(" ### retval = ", retval)
|
||||
node = {}
|
||||
|
||||
|
@ -2140,7 +2154,7 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
|
||||
{'$project': {'_id': 1, 'email': 1, 'session_id': 1, 'nom': 1, 'prenom': 1, 'partner_owner_recid': 1,
|
||||
'valide': 1, 'type_apprenant': 1, 'status': 1}},
|
||||
{'$match': F1_qery_match},
|
||||
{'$match': F3_qery_match},
|
||||
{'$lookup': {
|
||||
'from': 'session_formation',
|
||||
'let': {'session_id': "$session_id", 'partner_owner_recid': '$partner_owner_recid'},
|
||||
|
@ -2270,14 +2284,188 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
|
||||
node['total_nb_heure_formation_by_level'] = str(total_nb_heure_formation_by_level)
|
||||
|
||||
total_bpf_f_class_niveau_formation = total_bpf_f_class_niveau_formation + mycommon.tryFloat(retval['count'])
|
||||
bpf_f_class_niveau_formation.append(node)
|
||||
total_bpf_f3_class_niveau_formation = total_bpf_f3_class_niveau_formation + mycommon.tryFloat(
|
||||
retval['count'])
|
||||
bpf_f3_class_niveau_formation.append(node)
|
||||
|
||||
RetObject['bpf_f_class_niveau_formation'] = bpf_f_class_niveau_formation
|
||||
RetObject['total_bpf_f_class_niveau_formation'] = round(total_bpf_f_class_niveau_formation, 2)
|
||||
RetObject['bpf_f3_class_niveau_formation'] = bpf_f3_class_niveau_formation
|
||||
RetObject['total_bpf_f3_class_niveau_formation'] = round(total_bpf_f3_class_niveau_formation, 2)
|
||||
|
||||
""""
|
||||
F1 – Les différents types de stagiaires au sein de votre organisme
|
||||
"""
|
||||
|
||||
"""
|
||||
Recuperation des types d'apprenant
|
||||
"""
|
||||
bpf_f1_type_apprenant = []
|
||||
nb_personne_a_distance = 0
|
||||
nb_personne = 0
|
||||
nb_heure_formation = 0
|
||||
|
||||
for type_apprenant_data in MYSY_GV.dbname['type_apprenant'].find({'valide': '1', 'locked': '0'}):
|
||||
|
||||
F1_qery_match = {'$and': [{"partner_owner_recid": str(my_partner['recid'])}, {"valide": '1', 'status': '1',
|
||||
'type_apprenant': str(
|
||||
type_apprenant_data[
|
||||
'code'])},
|
||||
]}
|
||||
F1_pipe_qry_stagiaire_type = ([
|
||||
|
||||
{'$project': {'_id': 1, 'email': 1, 'session_id': 1, 'nom': 1, 'prenom': 1, 'partner_owner_recid': 1,
|
||||
'valide': 1, 'type_apprenant': 1, 'status': 1, }},
|
||||
{'$match': F1_qery_match},
|
||||
{'$lookup': {
|
||||
'from': 'session_formation',
|
||||
'let': {'session_id': "$session_id", 'partner_owner_recid': '$partner_owner_recid'},
|
||||
'pipeline': [
|
||||
{
|
||||
"$addFields": {
|
||||
"mysy_date_debut_session": {
|
||||
"$dateFromString": {
|
||||
"dateString": "$date_debut",
|
||||
"format": "%d/%m/%Y"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{'$project': {'_id': 1, 'code_session': 1, 'class_internal_url': 1, 'date_debut': 1,
|
||||
'date_fin': 1,
|
||||
'nb_participant': 1, 'partner_owner_recid': 1, 'valide': 1,
|
||||
'mysy_date_debut_session': 1, 'distantiel': 1}},
|
||||
{'$match':
|
||||
{'$expr':
|
||||
{'$and':
|
||||
[
|
||||
|
||||
{'$eq': ["$_id", {'$convert': {
|
||||
'input': "$$session_id",
|
||||
'to': "objectId",
|
||||
'onError': {'error': 'true'},
|
||||
'onNull': {'isnull': 'true'}
|
||||
}}]},
|
||||
|
||||
{'$eq': ["$valide", "1"]},
|
||||
{'$eq': ["$partner_owner_recid", '$$partner_owner_recid']},
|
||||
{'$gte': [{'$toDate': "$mysy_date_debut_session"},
|
||||
filt_periode_start_date_ISODATE]},
|
||||
{'$lt': [{'$toDate': "$mysy_date_debut_session"},
|
||||
filt_periode_end_date_ISODATE]},
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
],
|
||||
'as': 'session_formation_collection'
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
'$unwind': '$session_formation_collection'
|
||||
},
|
||||
{
|
||||
"$lookup": {
|
||||
'from': 'myclass',
|
||||
'localField': 'session_formation_collection.class_internal_url',
|
||||
'foreignField': 'internal_url',
|
||||
"pipeline": [
|
||||
{'$project': {'title': 1, 'internal_url': 1, 'external_code': 1, 'published': 1,
|
||||
'duration': 1, 'duration_unit': 1, 'class_level': 1,
|
||||
'partner_owner_recid': 1}},
|
||||
|
||||
{'$match': {'partner_owner_recid': str(my_partner['recid'])}},
|
||||
|
||||
],
|
||||
"as": "myclass_collection"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
'$unwind': '$myclass_collection'
|
||||
},
|
||||
|
||||
{
|
||||
"$group": {
|
||||
"_id": {
|
||||
"class_id": "$myclass_collection._id",
|
||||
"class_external_code": "$myclass_collection.external_code",
|
||||
"class_duration": "$myclass_collection.duration",
|
||||
"class_duration_unit": "$myclass_collection.duration_unit",
|
||||
"session_distance": "$session_formation_collection.distantiel"
|
||||
},
|
||||
"count": {
|
||||
"$sum": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
])
|
||||
|
||||
print(" ### F1_pipe_qry_stagiaire_type pour : " + str(type_apprenant_data['description']) + " = ",
|
||||
F1_pipe_qry_stagiaire_type)
|
||||
|
||||
total_bpf_f1_type_apprenant = 0
|
||||
total_bpf_f1_nb_heure_formation = 0
|
||||
node = {}
|
||||
node['Type_Apprenant'] = str(type_apprenant_data['code'])
|
||||
node['Type_Apprenant_Desc'] = str(type_apprenant_data['description'])
|
||||
local_f1_nb_distance = 0
|
||||
for f1_local_retval in MYSY_GV.dbname['inscription'].aggregate(F1_pipe_qry_stagiaire_type):
|
||||
# print(" ### retval F1_pipe_qry_stagiaire_type = ", f1_local_retval)
|
||||
total_bpf_f1_type_apprenant = total_bpf_f1_type_apprenant + mycommon.tryFloat(f1_local_retval['count'])
|
||||
nb_personne = nb_personne + + mycommon.tryFloat(f1_local_retval['count'])
|
||||
|
||||
if (str(f1_local_retval['_id']['session_distance']) == "1"):
|
||||
nb_personne_a_distance = nb_personne_a_distance + mycommon.tryFloat(f1_local_retval['count'])
|
||||
local_f1_nb_distance = local_f1_nb_distance + mycommon.tryFloat(f1_local_retval['count'])
|
||||
|
||||
print(" ### nb_personne_a_distance= ", str(nb_personne_a_distance))
|
||||
print(" ### local_f1_nb_distance= ", str(local_f1_nb_distance))
|
||||
|
||||
"""
|
||||
traitement du nombre d'heure de formation
|
||||
"""
|
||||
local_duration = mycommon.tryFloat(str(f1_local_retval['_id']['class_duration']))
|
||||
local_duration_unit = str(f1_local_retval['_id']['class_duration_unit'])
|
||||
|
||||
if (str(local_duration_unit) == "heure"):
|
||||
total_bpf_f1_nb_heure_formation = total_bpf_f1_nb_heure_formation + local_duration
|
||||
|
||||
elif (str(local_duration_unit) == "jour"):
|
||||
total_bpf_f1_nb_heure_formation = total_bpf_f1_nb_heure_formation + (
|
||||
local_duration * local_nb_heure_par_jour)
|
||||
|
||||
elif (str(local_duration_unit) == "semaine"):
|
||||
total_bpf_f1_nb_heure_formation = total_bpf_f1_nb_heure_formation + (
|
||||
local_duration * local_nb_heure_par_sem)
|
||||
|
||||
elif (str(local_duration_unit) == "mois"):
|
||||
total_bpf_f1_nb_heure_formation = total_bpf_f1_nb_heure_formation + (
|
||||
local_duration * local_nb_heure_par_mois)
|
||||
|
||||
elif (str(local_duration_unit) == "annee"):
|
||||
total_bpf_f1_nb_heure_formation = total_bpf_f1_nb_heure_formation + (
|
||||
local_duration * local_nb_heure_par_annee)
|
||||
|
||||
node['total_bpf_f1_type_apprenant'] = str(total_bpf_f1_type_apprenant)
|
||||
node['total_bpf_f1_type_apprenant_distance'] = str(local_f1_nb_distance)
|
||||
node['total_bpf_f1_nb_heure_formation'] = str(total_bpf_f1_nb_heure_formation)
|
||||
|
||||
nb_heure_formation = nb_heure_formation + mycommon.tryFloat(total_bpf_f1_nb_heure_formation)
|
||||
|
||||
bpf_f1_type_apprenant.append(node)
|
||||
|
||||
RetObject['total_f1_apprenant_a_distance'] = str(nb_personne_a_distance)
|
||||
RetObject['total_f1_apprenant'] = str(nb_personne)
|
||||
RetObject['total_f1_nb_heure'] = str(nb_heure_formation)
|
||||
RetObject['filt_periode_start_date'] = str(filt_periode_start_date)
|
||||
RetObject['filt_periode_end_date'] = str(filt_periode_end_date)
|
||||
RetObject['bpf_f1_type_apprenant'] = bpf_f1_type_apprenant
|
||||
|
||||
print(" ### RetObject BPF = ", RetObject)
|
||||
|
||||
|
||||
|
||||
# Creation du dictionnaire d'information à utiliser pour la creation du doc
|
||||
convention_dictionnary_data = {}
|
||||
new_diction = {}
|
||||
|
@ -2294,11 +2482,16 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
return local_status, local_retval
|
||||
|
||||
convention_dictionnary_data = local_retval
|
||||
convention_dictionnary_data['bpf_data'] = RetObject
|
||||
|
||||
body = {
|
||||
"params": convention_dictionnary_data,
|
||||
}
|
||||
|
||||
#json_formatted_str = json.dumps(body, indent=2)
|
||||
#print(" ### AFFICHAGE dU data dictionnary -- body body ")
|
||||
#print(json_formatted_str)
|
||||
|
||||
"""
|
||||
Recuperer le modèle de document
|
||||
"""
|
||||
|
@ -2333,7 +2526,7 @@ def Prepare_and_Print_BPF_PDF(diction):
|
|||
if (len(str(tmp_file_name)) > 30):
|
||||
tmp_file_name = str(tmp_file_name)[0:30]
|
||||
|
||||
orig_file_name = "Contrat_" + str(tmp_file_name) + "_" + str(ts) + ".pdf"
|
||||
orig_file_name = str(tmp_file_name) + "_" + str(ts) + ".pdf"
|
||||
outputFilename = str(MYSY_GV.TEMPORARY_DIRECTORY) + "/" + str(orig_file_name)
|
||||
|
||||
# open output file for writing (truncated binary)
|
||||
|
|
8707
Log/log_file.log
8707
Log/log_file.log
File diff suppressed because one or more lines are too long
|
@ -65,7 +65,7 @@ def Add_Class_Domaine(diction):
|
|||
"""
|
||||
Verification des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['token', 'code', 'nom', 'class_domaine_id']
|
||||
field_list_obligatoire = ['token', 'code', 'nom',]
|
||||
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
|
@ -185,13 +185,11 @@ def Update_Class_domaine(diction):
|
|||
return False, " L'identifiant de le domaine est invalide "
|
||||
|
||||
|
||||
|
||||
local_id = str(diction['_id'])
|
||||
|
||||
del diction['token']
|
||||
del diction['_id']
|
||||
|
||||
|
||||
new_data['date_update'] = str(datetime.now())
|
||||
new_data['update_by'] = str(my_partner['_id'])
|
||||
|
||||
|
@ -269,7 +267,7 @@ def Delete_Class_domaine(diction):
|
|||
return local_status, my_partner
|
||||
|
||||
|
||||
# Verifier que la codition de paiement existe
|
||||
|
||||
is_existe_class_domaine = MYSY_GV.dbname['class_domaine'].count_documents(
|
||||
{'_id': ObjectId(str(diction['_id'])),
|
||||
'valide': '1',
|
||||
|
@ -282,7 +280,7 @@ def Delete_Class_domaine(diction):
|
|||
|
||||
|
||||
"""
|
||||
Verifier que la domaine de formation n'est pas utilisée (collection : myclass)
|
||||
Verifier que le domaine de formation n'est pas utilisé (collection : myclass)
|
||||
"""
|
||||
is_domaine_in_myclass = MYSY_GV.dbname['myclass'].count_documents({'partner_owner_recid':my_partner['recid'],
|
||||
'valide':'1',
|
||||
|
@ -358,7 +356,7 @@ def Get_List_Class_domaine(diction):
|
|||
Clés de mise à jour
|
||||
"""
|
||||
data_cle = {}
|
||||
#data_cle['partner_owner_recid'] = str(my_partner['recid'])
|
||||
data_cle['partner_owner_recid'] = str(my_partner['recid'])
|
||||
data_cle['valide'] = "1"
|
||||
data_cle['locked'] = "0"
|
||||
|
||||
|
@ -366,7 +364,7 @@ def Get_List_Class_domaine(diction):
|
|||
RetObject = []
|
||||
val_tmp = 0
|
||||
|
||||
for retval in MYSY_GV.dbname['class_domaine'].find(data_cle):
|
||||
for retval in MYSY_GV.dbname['class_domaine'].find(data_cle).sort([("_id", pymongo.DESCENDING), ]):
|
||||
user = retval
|
||||
user['id'] = str(val_tmp)
|
||||
val_tmp = val_tmp + 1
|
||||
|
@ -383,7 +381,7 @@ def Get_List_Class_domaine(diction):
|
|||
|
||||
|
||||
"""
|
||||
Recuperer les données d'un domainede formtion donnée
|
||||
Recuperer les données d'un domaine de formtion donnée
|
||||
"""
|
||||
def Get_Given_Class_domaine(diction):
|
||||
try:
|
||||
|
|
13
main.py
13
main.py
|
@ -95,6 +95,7 @@ import partner_produit_service_mgt as partner_produit_service_mgt
|
|||
import model_planning_sequence_mgt as model_planning_sequence_mgt
|
||||
import base_partner_catalog_config as base_partner_catalog_config
|
||||
import Dashbord_queries.BPF as BPF
|
||||
import type_cours as type_cours
|
||||
|
||||
app = Flask(__name__)
|
||||
cors = CORS(app, resources={r"/foo": {"origins": "*"}})
|
||||
|
@ -11059,6 +11060,18 @@ def Prepare_and_Print_BPF_PDF(token, periode_start_date, periode_end_date):
|
|||
else:
|
||||
return False
|
||||
|
||||
"""
|
||||
API pour recuperer les types de cours (TP, CM, TPG etc)
|
||||
"""
|
||||
@app.route('/myclass/api/Get_List_Type_Cours/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
def Get_List_Type_Cours():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = mycommon.strip_dictionary (request.form.to_dict())
|
||||
print(" ### Get_List_Type_Cours payload = ",payload)
|
||||
status, retval = type_cours.Get_List_Type_Cours(payload)
|
||||
return jsonify(status=status, message=retval)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -4588,7 +4588,7 @@ def Get_Dictionnary_data_For_Template(diction):
|
|||
local_company_data = local_retval
|
||||
company_data = {}
|
||||
|
||||
company_liste_champ = ['nom', 'email', 'telephone', 'num_nda', 'website', 'adr_street', 'adr_zip', 'adr_city', 'adr_country']
|
||||
company_liste_champ = ['nom', 'email', 'telephone', 'num_nda', 'website', 'adr_street', 'adr_zip', 'adr_city', 'adr_country', 'siret']
|
||||
for champ in company_liste_champ:
|
||||
if (champ in local_company_data):
|
||||
new_champ_name = "societe_" + str(champ)
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
"""
|
||||
Ce fichier permet de gerer les types de cours
|
||||
"""
|
||||
import bson
|
||||
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
|
||||
import GlobalVariable as MYSY_GV
|
||||
from math import isnan
|
||||
import GlobalVariable as MYSY_GV
|
||||
import ela_index_bdd_classes as eibdd
|
||||
import email_mgt as email
|
||||
import jinja2
|
||||
from flask import send_file
|
||||
from xhtml2pdf import pisa
|
||||
from email.message import EmailMessage
|
||||
from email.mime.text import MIMEText
|
||||
from email import encoders
|
||||
import smtplib
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime.base import MIMEBase
|
||||
from email import encoders
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
Recuperer la liste des type d'evaluation d'un partenaire
|
||||
"""
|
||||
def Get_List_Type_Cours(diction):
|
||||
try:
|
||||
diction = mycommon.strip_dictionary(diction)
|
||||
|
||||
"""
|
||||
Verification des input acceptés
|
||||
"""
|
||||
field_list = ['token', ]
|
||||
|
||||
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")
|
||||
return False, " Les informations fournies sont incorrectes",
|
||||
|
||||
"""
|
||||
Verification des champs obligatoires
|
||||
"""
|
||||
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 liste ")
|
||||
return False, " Les informations fournies sont incorrectes",
|
||||
|
||||
"""
|
||||
Verification de l'identité et autorisation de l'entité qui
|
||||
appelle cette API
|
||||
"""
|
||||
token = ""
|
||||
if ("token" in diction.keys()):
|
||||
if diction['token']:
|
||||
token = diction['token']
|
||||
|
||||
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
|
||||
if (local_status is not True):
|
||||
return local_status, my_partner
|
||||
|
||||
"""
|
||||
Clés de mise à jour
|
||||
"""
|
||||
data_cle = {}
|
||||
data_cle['partner_owner_recid'] = "default"
|
||||
data_cle['valide'] = "1"
|
||||
data_cle['locked'] = "0"
|
||||
|
||||
|
||||
RetObject = []
|
||||
val_tmp = 0
|
||||
|
||||
for retval in MYSY_GV.dbname['type_cours'].find(data_cle).sort([("_id", pymongo.DESCENDING), ]):
|
||||
user = retval
|
||||
user['id'] = str(val_tmp)
|
||||
val_tmp = val_tmp + 1
|
||||
|
||||
RetObject.append(mycommon.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) + " - Line : " + str(exc_tb.tb_lineno))
|
||||
return False, " Impossible de récupérer la liste des type d'évaluation "
|
|
@ -376,7 +376,7 @@ def Get_List_Unite_Enseignement_no_filter(diction):
|
|||
RetObject.append(mycommon.JSONEncoder().encode(user))
|
||||
|
||||
|
||||
print(" #### RetObject = ", RetObject)
|
||||
#print(" #### RetObject = ", RetObject)
|
||||
return True, RetObject
|
||||
|
||||
except Exception as e:
|
||||
|
|
Loading…
Reference in New Issue