05/06/2024 - 23h
parent
946f6e6289
commit
e8eb55a5cc
|
@ -1,14 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="qsdsq">
|
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="qsdsqsqdsq">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/E_Sign_Document.py" beforeDir="false" afterPath="$PROJECT_DIR$/E_Sign_Document.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/GlobalVariable.py" beforeDir="false" afterPath="$PROJECT_DIR$/GlobalVariable.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$/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$/Session_Formation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/partner_invoice.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_invoice.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/partner_order.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_order.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
@ -79,13 +77,6 @@
|
||||||
<option name="presentableId" value="Default" />
|
<option name="presentableId" value="Default" />
|
||||||
<updated>1680804787304</updated>
|
<updated>1680804787304</updated>
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00274" summary="sss">
|
|
||||||
<created>1713719597944</created>
|
|
||||||
<option name="number" value="00274" />
|
|
||||||
<option name="presentableId" value="LOCAL-00274" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1713719597944</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00275" summary="22/04/2024 - 17h30">
|
<task id="LOCAL-00275" summary="22/04/2024 - 17h30">
|
||||||
<created>1713799833124</created>
|
<created>1713799833124</created>
|
||||||
<option name="number" value="00275" />
|
<option name="number" value="00275" />
|
||||||
|
@ -422,7 +413,14 @@
|
||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1717577652191</updated>
|
<updated>1717577652191</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="323" />
|
<task id="LOCAL-00323" summary="qsdsqsqdsq">
|
||||||
|
<created>1717601060943</created>
|
||||||
|
<option name="number" value="00323" />
|
||||||
|
<option name="presentableId" value="LOCAL-00323" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1717601060943</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="324" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="Vcs.Log.Tabs.Properties">
|
<component name="Vcs.Log.Tabs.Properties">
|
||||||
|
@ -464,7 +462,6 @@
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="VcsManagerConfiguration">
|
<component name="VcsManagerConfiguration">
|
||||||
<MESSAGE value="gdf" />
|
|
||||||
<MESSAGE value="dd" />
|
<MESSAGE value="dd" />
|
||||||
<MESSAGE value="ddsdfsd" />
|
<MESSAGE value="ddsdfsd" />
|
||||||
<MESSAGE value="12/05/2024 - 21h30" />
|
<MESSAGE value="12/05/2024 - 21h30" />
|
||||||
|
@ -489,6 +486,7 @@
|
||||||
<MESSAGE value="sss" />
|
<MESSAGE value="sss" />
|
||||||
<MESSAGE value="01/06/2024 - 14h30" />
|
<MESSAGE value="01/06/2024 - 14h30" />
|
||||||
<MESSAGE value="qsdsq" />
|
<MESSAGE value="qsdsq" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="qsdsq" />
|
<MESSAGE value="qsdsqsqdsq" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="qsdsqsqdsq" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -570,7 +570,7 @@ Pour mettre en place un système de configuration global, on va definir les vale
|
||||||
"""
|
"""
|
||||||
PARTNER_BASE_CONFIG_NAME = ['tva', 'smtp_server', 'smtp_user', 'smtp_user_pwd', 'smtp_count_from_name',
|
PARTNER_BASE_CONFIG_NAME = ['tva', 'smtp_server', 'smtp_user', 'smtp_user_pwd', 'smtp_count_from_name',
|
||||||
'smtp_count_port', 'partner_smtp', 'partner_jour_heure', 'nb_relance_auto',
|
'smtp_count_port', 'partner_smtp', 'partner_jour_heure', 'nb_relance_auto',
|
||||||
'relance_auto', 'frequence_relance_auto']
|
'relance_auto', 'frequence_relance_auto', 'session_warning', 'session_warning_lead_time']
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -718,4 +718,12 @@ Statut de paiement des factures
|
||||||
1 - partiellement payé
|
1 - partiellement payé
|
||||||
2 - entièrement payé
|
2 - entièrement payé
|
||||||
"""
|
"""
|
||||||
INVOICE_PAIEMENT_STATUS = ['0', '1', '2']
|
INVOICE_PAIEMENT_STATUS = ['0', '1', '2']
|
||||||
|
|
||||||
|
"""
|
||||||
|
Completude des etapes d'une session de formation : "statut_completude"
|
||||||
|
- 2 = "Oui", Etape completé
|
||||||
|
- 1 = "Part", Etape partiellement effectué
|
||||||
|
- 0 = "Non", Etape non demarré
|
||||||
|
|
||||||
|
"""
|
1266
Log/log_file.log
1266
Log/log_file.log
File diff suppressed because it is too large
Load Diff
|
@ -1440,6 +1440,26 @@ def GetAllValideSessionPartner_List(diction):
|
||||||
val['qty_in_quotation'] = str(total_qty)
|
val['qty_in_quotation'] = str(total_qty)
|
||||||
val['qty_in_quotation_list_quotation'] = ', '.join(tab_quotation_ref)
|
val['qty_in_quotation_list_quotation'] = ', '.join(tab_quotation_ref)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Pour chaque session recuperer le statut de controle d'alert
|
||||||
|
"""
|
||||||
|
local_diction = {}
|
||||||
|
local_diction['token'] = str(diction['token'])
|
||||||
|
local_diction['session_id'] = str(retVal['_id'])
|
||||||
|
|
||||||
|
local_check_session_alert_status, local_check_session_alert_retval, local_check_session_alert_is_warning = mycommon.Check_Partner_Session_Alert(local_diction)
|
||||||
|
|
||||||
|
is_session_alert = ""
|
||||||
|
session_alert_message = ""
|
||||||
|
if( local_check_session_alert_status ):
|
||||||
|
is_session_alert = local_check_session_alert_is_warning
|
||||||
|
session_alert_message = local_check_session_alert_retval
|
||||||
|
|
||||||
|
val['is_session_alert'] = is_session_alert
|
||||||
|
val['session_alert_message'] = session_alert_message
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RetObject.append(mycommon.JSONEncoder().encode(val))
|
RetObject.append(mycommon.JSONEncoder().encode(val))
|
||||||
|
|
||||||
return True, RetObject
|
return True, RetObject
|
||||||
|
|
14
main.py
14
main.py
|
@ -9864,6 +9864,20 @@ def Export_To_Excel_List_Groupe_Membres(token, _id):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
API pour tester la recuperation des element d'alerte d'une session de formation
|
||||||
|
"""
|
||||||
|
@app.route('/myclass/api/Check_Partner_Session_Alert/', methods=['POST','GET'])
|
||||||
|
@crossdomain(origin='*')
|
||||||
|
def Check_Partner_Session_Alert():
|
||||||
|
# On recupere le corps (payload) de la requete
|
||||||
|
payload = mycommon.strip_dictionary (request.form.to_dict())
|
||||||
|
print(" ### Check_Partner_Session_Alert payload = ",payload)
|
||||||
|
status, retval , is_warning = mycommon.Check_Partner_Session_Alert(payload)
|
||||||
|
return jsonify(status=status, message=retval, is_warning=is_warning)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -47,6 +47,7 @@ import Collection_Historique as Collection_Historique
|
||||||
import partner_client
|
import partner_client
|
||||||
import partners
|
import partners
|
||||||
import math
|
import math
|
||||||
|
import module_editique as module_editique
|
||||||
|
|
||||||
class JSONEncoder(json.JSONEncoder):
|
class JSONEncoder(json.JSONEncoder):
|
||||||
def default(self, o):
|
def default(self, o):
|
||||||
|
@ -5995,7 +5996,7 @@ def Check_Partner_Session_Alert(diction):
|
||||||
if val not in field_list and val.startswith('my_') is False:
|
if val not in field_list and val.startswith('my_') is False:
|
||||||
myprint(str(
|
myprint(str(
|
||||||
inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé")
|
inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé")
|
||||||
return False, " Les informations fournies sont incorrectes"
|
return False, " Les informations fournies sont incorrectes ", False
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Verification des champs obligatoires
|
Verification des champs obligatoires
|
||||||
|
@ -6006,7 +6007,7 @@ def Check_Partner_Session_Alert(diction):
|
||||||
if val not in diction:
|
if val not in diction:
|
||||||
myprint(
|
myprint(
|
||||||
str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ")
|
str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ")
|
||||||
return False, " Les informations fournies sont incorrectes"
|
return False, " Les informations fournies sont incorrectes ", False
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Verification de l'identité et autorisation de l'entité qui
|
Verification de l'identité et autorisation de l'entité qui
|
||||||
|
@ -6019,13 +6020,37 @@ def Check_Partner_Session_Alert(diction):
|
||||||
|
|
||||||
local_status, my_partner = Check_Connexion_And_Return_Partner_Data(diction)
|
local_status, my_partner = Check_Connexion_And_Return_Partner_Data(diction)
|
||||||
if (local_status is not True):
|
if (local_status is not True):
|
||||||
return local_status, my_partner
|
return local_status, my_partner, False
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Verifier la validité de la session
|
||||||
|
"""
|
||||||
|
is_session_valide_cout = MYSY_GV.dbname["session_formation"].count_documents({'_id':ObjectId(str(diction['session_id'])),
|
||||||
|
'valide':'1',
|
||||||
|
'partner_owner_recid':str(my_partner['recid'])})
|
||||||
|
|
||||||
|
if( is_session_valide_cout != 1):
|
||||||
|
myprint(
|
||||||
|
str(inspect.stack()[0][3]) + " L'identifiant de session est invalide ")
|
||||||
|
return False, " L'identifiant de session est invalide ", False
|
||||||
|
|
||||||
|
is_session_valide_data = MYSY_GV.dbname["session_formation"].find_one(
|
||||||
|
{'_id': ObjectId(str(diction['session_id'])),
|
||||||
|
'valide': '1',
|
||||||
|
'partner_owner_recid': str(my_partner['recid'])})
|
||||||
|
|
||||||
|
mytoday = datetime.today().strftime("%d/%m/%Y")
|
||||||
|
|
||||||
|
delta_day = datetime.strptime(str(is_session_valide_data['date_debut'])[0:10], '%d/%m/%Y') - datetime.strptime(str(mytoday).strip(), '%d/%m/%Y')
|
||||||
|
|
||||||
|
delta_day_INT = delta_day.days
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Recuperer les paramettres de controle du partenaire
|
Recuperer les paramettres de controle du partenaire
|
||||||
"""
|
"""
|
||||||
session_warning = ""
|
session_warning = ""
|
||||||
tmp_val = MYSY_GV.dbname["base_partner_setup"].find({'partner_owner_recid': str(my_partner['recid']),
|
tmp_val = MYSY_GV.dbname["base_partner_setup"].find_one({'partner_owner_recid': str(my_partner['recid']),
|
||||||
'valide': '1',
|
'valide': '1',
|
||||||
'locked': '0',
|
'locked': '0',
|
||||||
'config_name': 'session_warning'
|
'config_name': 'session_warning'
|
||||||
|
@ -6036,7 +6061,7 @@ def Check_Partner_Session_Alert(diction):
|
||||||
|
|
||||||
session_warning_lead_time = ""
|
session_warning_lead_time = ""
|
||||||
session_warning_lead_time_INT = 0
|
session_warning_lead_time_INT = 0
|
||||||
tmp_val = MYSY_GV.dbname["base_partner_setup"].find({'partner_owner_recid':str(my_partner['recid']),
|
tmp_val = MYSY_GV.dbname["base_partner_setup"].find_one({'partner_owner_recid':str(my_partner['recid']),
|
||||||
'valide':'1',
|
'valide':'1',
|
||||||
'locked':'0',
|
'locked':'0',
|
||||||
'config_name':'session_warning_lead_time'
|
'config_name':'session_warning_lead_time'
|
||||||
|
@ -6046,11 +6071,21 @@ def Check_Partner_Session_Alert(diction):
|
||||||
session_warning_lead_time_INT = tryInt(session_warning_lead_time)
|
session_warning_lead_time_INT = tryInt(session_warning_lead_time)
|
||||||
|
|
||||||
make_ctl = 0
|
make_ctl = 0
|
||||||
if(session_warning == "1" and session_warning_lead_time_INT > 0 ):
|
if(session_warning == "1" and session_warning_lead_time_INT >= delta_day_INT ):
|
||||||
make_ctl = 1
|
make_ctl = 1
|
||||||
|
|
||||||
if( make_ctl == 0 ):
|
if( make_ctl == 0 ):
|
||||||
return True, "OK"
|
return True, "OK", "0"
|
||||||
|
|
||||||
|
|
||||||
|
print(" ## session_warning_lead_time_INT = ", session_warning_lead_time_INT)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Pour la liste des étapes à controler, on prent : 'courrier_template_ref_interne'
|
||||||
|
"""
|
||||||
|
list_etape_a_controler = ['CONF_INSCRIPTION', 'CONVENTION_STAGIAIRE_ENTREPRISE',
|
||||||
|
'CONVENTION_STAGIAIRE_INDIVIDUELLE', 'QUESTION_POSITIONNEMENT',
|
||||||
|
'CONVOCATION_STAGIAIRE']
|
||||||
|
|
||||||
is_warning = 0
|
is_warning = 0
|
||||||
warning_message = ""
|
warning_message = ""
|
||||||
|
@ -6063,14 +6098,46 @@ def Check_Partner_Session_Alert(diction):
|
||||||
- si les questionnaire de positionnement n'ont pas été envoyés
|
- si les questionnaire de positionnement n'ont pas été envoyés
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
diction_list_tracked_doc = {}
|
||||||
|
diction_list_tracked_doc['token'] = str(diction['token'])
|
||||||
|
diction_list_tracked_doc['related_collection'] = "session_formation"
|
||||||
|
diction_list_tracked_doc['related_collection_recid'] = str(diction['session_id'])
|
||||||
|
diction_list_tracked_doc['session_id'] = str(diction['session_id'])
|
||||||
|
|
||||||
|
local_status, local_retval = module_editique.Get_Editable_Document_By_Partner_By_Collection(
|
||||||
|
diction_list_tracked_doc)
|
||||||
|
if (local_status is False):
|
||||||
|
return local_status, local_retval, False
|
||||||
|
|
||||||
|
json_formatted_str = json.dumps(local_retval, indent=2)
|
||||||
|
|
||||||
|
#print(" ### AFFICHAGE dU data Check_Partner_Session_Alert ")
|
||||||
|
#print(json_formatted_str)
|
||||||
|
|
||||||
|
for val_str in local_retval:
|
||||||
|
val = ast.literal_eval(val_str)
|
||||||
|
|
||||||
|
local_courrier_template_ref_interne = val['courrier_template_ref_interne']
|
||||||
|
|
||||||
|
if( local_courrier_template_ref_interne in list_etape_a_controler ):
|
||||||
|
if( str(val['statut_completude']) == "1"):
|
||||||
|
is_warning = 1
|
||||||
|
warning_message = warning_message + "<br/> "+str(val['courrier_template_nom'])+ " Partiel"
|
||||||
|
|
||||||
|
if (str(val['statut_completude']) == "0"):
|
||||||
|
is_warning = 1
|
||||||
|
warning_message = warning_message + "<br/> " + str(val['courrier_template_nom']) + " Non Commencé"
|
||||||
|
|
||||||
|
|
||||||
|
#print(" is_warning = ", is_warning)
|
||||||
|
#print(" warning_message = ", warning_message)
|
||||||
|
|
||||||
|
if( is_warning == 1 ):
|
||||||
|
return True, warning_message, str(is_warning)
|
||||||
|
|
||||||
|
return True, "OK", str(is_warning)
|
||||||
return True, "OK"
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||||
myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno))
|
myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno))
|
||||||
return False, " Impossible de verifier si la session est ok "
|
return False, " Impossible de verifier si la session est ok ", False
|
||||||
|
|
Loading…
Reference in New Issue