parent
18fdf72633
commit
9aa74df58b
|
|
@ -4,12 +4,17 @@
|
|||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="04/05/2026 - 19h">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="05/05/2026 - 19h">
|
||||
<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$/Dashbord_queries/factures_tbd_qries.py" beforeDir="false" afterPath="$PROJECT_DIR$/Dashbord_queries/factures_tbd_qries.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$/partner_client.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_client.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/stage_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/stage_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/wrapper.py" beforeDir="false" afterPath="$PROJECT_DIR$/wrapper.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
@ -453,7 +458,7 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1747251650255</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="573" />
|
||||
<option name="localTasksCounter" value="574" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
|
@ -495,7 +500,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="14/03/2026 - 22h" />
|
||||
<MESSAGE value="17/03/2026 - 22h" />
|
||||
<MESSAGE value="18/03/2026 - 22h" />
|
||||
<MESSAGE value="20/03/2026 - 9h" />
|
||||
|
|
@ -520,6 +524,7 @@
|
|||
<MESSAGE value="29/04/26 - 21h" />
|
||||
<MESSAGE value="04/05/2026 - 13h" />
|
||||
<MESSAGE value="04/05/2026 - 19h" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="04/05/2026 - 19h" />
|
||||
<MESSAGE value="05/05/2026 - 19h" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="05/05/2026 - 19h" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -3541,6 +3541,8 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header_work(diction):
|
|||
|
||||
])
|
||||
|
||||
print(" ### C2_pipe_qry_invoice_header_partner__invoice_line_detail__partner_type_organisme_financement__type_apprenant qry = ", C2_pipe_qry_invoice_header_partner__invoice_line_detail__partner_type_organisme_financement__type_apprenant)
|
||||
|
||||
C3_C8_pipe_qry_invoice_header_partner__invoice_line_detail__partner_type_pouvoir_public = ([
|
||||
{"$addFields": {
|
||||
"mysy_invoice_date": {
|
||||
|
|
|
|||
|
|
@ -2665,6 +2665,374 @@ def Get_Qery_List_Factures_For_List_Class(diction):
|
|||
return False, " Impossible de récupérer les données "
|
||||
|
||||
|
||||
"""
|
||||
Cette fonction permet de recuperer les factures par inscrit
|
||||
db.partner_invoice_header.aggregate([
|
||||
{
|
||||
"$addFields":{
|
||||
"mysy_invoice_date":{
|
||||
"$dateFromString":{
|
||||
"dateString":"$invoice_date",
|
||||
"format":"%d/%m/%Y"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"$match":{
|
||||
"$and":[
|
||||
{
|
||||
"valide":"1",
|
||||
"invoice_header_type":"facture",
|
||||
"credit_note_ref":{
|
||||
"$exists":false
|
||||
},
|
||||
"partner_owner_recid":"43598820dd270936c3d2fd822717d0f18f194b1a1b894aaf89"
|
||||
},
|
||||
{invoice_header_ref_interne: 'NEW_Invoice_56'},
|
||||
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"$lookup":{
|
||||
"from":"partner_invoice_line_detail",
|
||||
"let":{
|
||||
"invoice_header_id":{
|
||||
"$toString":"$_id"
|
||||
},
|
||||
"partner_invoice_line_partner_owner_recid":"$partner_owner_recid",
|
||||
"partner_invoice_line_invoice_header_ref_interne":"$invoice_header_ref_interne"
|
||||
},
|
||||
"pipeline":[
|
||||
{
|
||||
"$match":{
|
||||
"$expr":{
|
||||
"$and":[
|
||||
{
|
||||
"$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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"as":"collection_partner_invoice_line"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$unwind":"$collection_partner_invoice_line"
|
||||
},
|
||||
{
|
||||
"$lookup":{
|
||||
"from":"inscription",
|
||||
"let":{
|
||||
"inscription_id":"$collection_partner_invoice_line.order_line_inscription_id"
|
||||
},
|
||||
"pipeline":[
|
||||
{
|
||||
"$match":{
|
||||
"$expr":{
|
||||
"$and":[
|
||||
{
|
||||
"$eq":[
|
||||
"$_id",
|
||||
{
|
||||
"$convert":{
|
||||
"input":"$$inscription_id",
|
||||
"to":"objectId",
|
||||
"onError":{
|
||||
"error":"true"
|
||||
},
|
||||
"onNull":{
|
||||
"isnull":"true"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$eq":[
|
||||
"$valide",
|
||||
"1"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"as":"inscription_collection"
|
||||
}
|
||||
},
|
||||
{
|
||||
"$unwind":"$inscription_collection"
|
||||
},
|
||||
|
||||
])
|
||||
|
||||
"""
|
||||
def Get_Qery_List_Factures_For_List_Inscrit(diction):
|
||||
try:
|
||||
diction = mycommon.strip_dictionary(diction)
|
||||
|
||||
"""
|
||||
Verification des input acceptés
|
||||
"""
|
||||
field_list = ['token', 'periode_start_date', 'periode_end_date', 'filter_value',
|
||||
'tab_formation_ids', 'from_beginning']
|
||||
|
||||
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'est pas autorisé ")
|
||||
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 la liste des arguments ")
|
||||
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
|
||||
|
||||
tab_formation_ids_split = []
|
||||
tab_formation_ids = []
|
||||
tab_formation_internal_url = []
|
||||
if ("tab_formation_ids" in diction.keys()):
|
||||
tab_formation_ids_split = str(diction['tab_formation_ids']).split(",")
|
||||
|
||||
for tmp in tab_formation_ids_split:
|
||||
if (tmp):
|
||||
tab_formation_ids.append((str(tmp)))
|
||||
local_class_data = MYSY_GV.dbname['myclass'].find_one({'_id':ObjectId(str(tmp)),
|
||||
'partner_owner_recid':str(my_partner['recid'])}, {'internal_url':1})
|
||||
if( local_class_data and "internal_url" in local_class_data.keys() and local_class_data['internal_url']):
|
||||
tab_formation_internal_url.append(str(local_class_data['internal_url']))
|
||||
|
||||
|
||||
filt_periode_start_date = ""
|
||||
if ("periode_start_date" in diction.keys() and diction['periode_start_date']):
|
||||
filt_periode_start_date = str(diction['periode_start_date'])[0:10]
|
||||
local_status = mycommon.CheckisDate(filt_periode_start_date)
|
||||
if (local_status is False):
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][3]) + " Le filtre : 'date de debut' n'est pas au format jj/mm/aaaa.")
|
||||
return False, " Le filtre : 'date de debut' n'est pas au format jj/mm/aaaa."
|
||||
|
||||
filt_periode_end_date = ""
|
||||
if ("periode_end_date" in diction.keys() and diction['periode_end_date']):
|
||||
filt_periode_end_date = str(diction['periode_end_date'])[0:10]
|
||||
local_status = mycommon.CheckisDate(filt_periode_end_date)
|
||||
if (local_status is False):
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][3]) + " Le filtre : 'date de fin' n'est pas au format jj/mm/aaaa.")
|
||||
return False, " Le filtre : 'date de fin' n'est pas au format jj/mm/aaaa."
|
||||
|
||||
|
||||
|
||||
"""
|
||||
Si la valeur de 'filter_value' est m0 ou m1, on va aller recuperer les date du mois correspondant.
|
||||
On ecrase les valeur de filt_session_start_date et filt_session_end_date
|
||||
"""
|
||||
if ('filter_value' in diction.keys()):
|
||||
# print(" filter_value = ", diction['filter_value'])
|
||||
if (str(diction['filter_value']) == "m0"):
|
||||
# On recupere les date du mois en cours
|
||||
local_status, start_current_month_date, end_current_month_date = mycommon.Get_Current_Month_Start_End_Date()
|
||||
if (local_status is False):
|
||||
return local_status, start_current_month_date
|
||||
|
||||
filt_periode_start_date = start_current_month_date
|
||||
filt_periode_end_date = end_current_month_date
|
||||
|
||||
# print(" ### filt_session_start_date = ", filt_session_start_date, " ### filt_session_end_date = ", filt_session_end_date)
|
||||
|
||||
elif (str(diction['filter_value']) == "m1"):
|
||||
# On recupere les date du mois en cours
|
||||
local_status, start_current_month_date, end_current_month_date = mycommon.Get_Previous_Month_Start_End_Date()
|
||||
if (local_status is False):
|
||||
return local_status, start_current_month_date
|
||||
|
||||
filt_periode_start_date = start_current_month_date
|
||||
filt_periode_end_date = end_current_month_date
|
||||
|
||||
|
||||
|
||||
filt_periode_start_date_ISODATE = datetime.strptime(str(filt_periode_start_date), '%d/%m/%Y')
|
||||
filt_periode_end_date_ISODATE = datetime.strptime(str(filt_periode_end_date), '%d/%m/%Y')
|
||||
|
||||
|
||||
if ("from_beginning" in diction.keys() and diction['from_beginning'] == "1"):
|
||||
filt_mysy_invoice_date = {}
|
||||
else:
|
||||
filt_mysy_invoice_date = {
|
||||
'mysy_invoice_date': {'$gte': filt_periode_start_date_ISODATE,
|
||||
'$lte': filt_periode_end_date_ISODATE}}
|
||||
|
||||
|
||||
filt_list_class_internal_url = {}
|
||||
filt_list_class_id = {}
|
||||
if (len(tab_formation_ids) > 0):
|
||||
filt_list_class_id = {'$in': ["$class_id", tab_formation_ids]}
|
||||
filt_list_class_internal_url = {'$in': ["$order_line_formation", tab_formation_internal_url]}
|
||||
|
||||
|
||||
|
||||
qery_match = {'$and': [{"partner_owner_recid": str(my_partner['recid'])},
|
||||
{"valide": '1'},
|
||||
filt_mysy_invoice_date, ]}
|
||||
|
||||
pipe_qry = ([
|
||||
{"$addFields": {
|
||||
"mysy_invoice_date": {
|
||||
'$dateFromString': {
|
||||
'dateString': '$invoice_date',
|
||||
'format': "%d/%m/%Y"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{'$match': qery_match},
|
||||
{'$lookup': {
|
||||
'from': 'partner_invoice_line',
|
||||
"let": {"invoice_header_id": {'$toString': "$_id"},
|
||||
'partner_invoice_line_partner_owner_recid': '$partner_owner_recid',
|
||||
'partner_invoice_line_invoice_header_ref_interne': '$invoice_header_ref_interne'},
|
||||
'pipeline': [
|
||||
{'$match':
|
||||
{'$expr':
|
||||
{'$and':
|
||||
[
|
||||
{'$eq': ["$valide", "1"]},
|
||||
filt_list_class_internal_url,
|
||||
{'$eq': ["$invoice_header_ref_interne",'$$partner_invoice_line_invoice_header_ref_interne']},
|
||||
{'$eq': ["$partner_owner_recid", '$$partner_invoice_line_partner_owner_recid']},
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
],
|
||||
'as': 'collection_partner_invoice_line'
|
||||
}
|
||||
},
|
||||
{
|
||||
'$unwind': '$collection_partner_invoice_line'
|
||||
},
|
||||
{'$group': {
|
||||
'_id': {
|
||||
"class_internal_url": "$collection_partner_invoice_line.order_line_formation",
|
||||
},
|
||||
"TotalAmount_HT": {
|
||||
"$sum": {'$toDouble': '$collection_partner_invoice_line.order_line_montant_hors_taxes'}},
|
||||
"count": {"$sum": 1}
|
||||
}
|
||||
},
|
||||
{
|
||||
'$sort': {'count': -1}
|
||||
},
|
||||
|
||||
])
|
||||
|
||||
print(" ### Get_Qery_List_Factures_Data_By_Class ici pipe_qry = ", pipe_qry)
|
||||
|
||||
RetObject = []
|
||||
val_tmp = 0
|
||||
|
||||
axis_data = []
|
||||
series_TotalAmount_data = []
|
||||
|
||||
tab_data = []
|
||||
tab_axis_data_class_code = []
|
||||
tab_axis_data_class_title = []
|
||||
"""
|
||||
On recupere les données, on les format dans le 'range_date_month' et on retourne"""
|
||||
for retval in MYSY_GV.dbname['partner_invoice_header'].aggregate(pipe_qry):
|
||||
val_tmp = val_tmp + 1
|
||||
|
||||
node = {}
|
||||
node['class_internal_url'] = retval['_id']['class_internal_url']
|
||||
node['TotalAmount_HT'] = retval['TotalAmount_HT']
|
||||
node['label'] = retval['TotalAmount_HT']
|
||||
node['nb_line'] = retval['count']
|
||||
|
||||
# Recuperation des données de la formation
|
||||
|
||||
class_data = MYSY_GV.dbname['myclass'].find_one({'internal_url':str(retval['_id']['class_internal_url']),
|
||||
'partner_owner_recid':str(my_partner['recid']),
|
||||
'valide':'1'})
|
||||
|
||||
|
||||
if( class_data and "title" in class_data.keys() ):
|
||||
node['class_title'] = class_data['title']
|
||||
tab_axis_data_class_title.append(class_data['title'])
|
||||
else:
|
||||
node['class_title'] = ""
|
||||
tab_axis_data_class_title.append("")
|
||||
|
||||
if (class_data and "external_code" in class_data.keys()):
|
||||
node['class_external_code'] = class_data['external_code']
|
||||
tab_axis_data_class_code.append(class_data['external_code'])
|
||||
else:
|
||||
node['class_external_code'] = ""
|
||||
tab_axis_data_class_code.append("")
|
||||
|
||||
tab_data.append(node)
|
||||
|
||||
|
||||
|
||||
|
||||
json_retval = {}
|
||||
json_retval['data'] = tab_data
|
||||
json_retval['axis_class_code'] = tab_axis_data_class_code
|
||||
json_retval['axis_class_title'] = tab_axis_data_class_title
|
||||
|
||||
print(" ### Get_Qery_List_Factures_Data_By_Class json_retval = ", json_retval)
|
||||
RetObject.append(mycommon.JSONEncoder().encode(json_retval))
|
||||
|
||||
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 les données "
|
||||
|
||||
|
||||
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -12671,7 +12671,7 @@ def Sent_Convention_Stagiaire_By_Email(tab_files, Folder, diction):
|
|||
|
||||
"""
|
||||
new_model_courrier_with_code_tag = str(
|
||||
sourceHtml) + " <p style='width: 300px; text-align: right;'> Signature Client <br/> <img style='height:150px; width:150px' src='{{ params.mysy_manual_signature_img }}'> </p> <br/> " \
|
||||
sourceHtml) + " <p style='width: 300px; text-align: right;'> Signature manuscrite <br/> <img style='height:150px; width:150px' src='{{ params.mysy_manual_signature_img }}'> </p> <br/> " \
|
||||
" <p style='width: 300px; text-align: center;'> <img style='height:150px; width:150px;' src='{{ params.mysy_qrcode_securite }}'> </p> "
|
||||
"""
|
||||
new_model_courrier_with_code_tag = " <div style='width: 100%'> <div style = 'width: 100%; text-align: center;' >" \
|
||||
|
|
@ -12679,7 +12679,7 @@ def Sent_Convention_Stagiaire_By_Email(tab_files, Folder, diction):
|
|||
" <nav style = 'font-size: 10px; font-style: italic;' > Sécurisé par MySy Training Technology </nav>" \
|
||||
" <br/> </div> </div>" + \
|
||||
str(sourceHtml) + " <div style='width: 100%'> <div style = 'width: 100%; text-align: center;' >" \
|
||||
" Signature Client <br/> <img style = 'height:100px; width:100px' " \
|
||||
" Signature manuscrite <br/> <img style = 'height:100px; width:100px' " \
|
||||
" src = '{{ params.mysy_manual_signature_img }}' > <br/> " \
|
||||
" </div> </div>"
|
||||
|
||||
|
|
@ -14723,7 +14723,7 @@ def Sent_Convention_Stagiaire_By_Email_By_Partner_client(tab_files_name_full_pat
|
|||
sourceHtml = contenu_doc_Template.render(params=body["params"])
|
||||
|
||||
"""
|
||||
new_model_courrier_with_code_tag = str(sourceHtml) + " <p style='width: 300px; text-align: right;'> Signature Client <br/> <img style='height:150px; width:150px' src='{{ params.mysy_manual_signature_img }}'> </p> <br/> " \
|
||||
new_model_courrier_with_code_tag = str(sourceHtml) + " <p style='width: 300px; text-align: right;'> Signature manuscrite <br/> <img style='height:150px; width:150px' src='{{ params.mysy_manual_signature_img }}'> </p> <br/> " \
|
||||
" <p style='width: 300px; text-align: center;'> <img style='height:150px; width:150px;' src='{{ params.mysy_qrcode_securite }}'> </p> "
|
||||
"""
|
||||
new_model_courrier_with_code_tag = " <div style='width: 100%'> <div style = 'width: 100%; text-align: center;' >" \
|
||||
|
|
@ -14731,7 +14731,7 @@ def Sent_Convention_Stagiaire_By_Email_By_Partner_client(tab_files_name_full_pat
|
|||
" <nav style = 'font-size: 10px; font-style: italic;' > Sécurisé par MySy Training Technology </nav>" \
|
||||
" <br/> </div> </div>" + \
|
||||
str(sourceHtml)+ " <div style='width: 100%'> <div style = 'width: 100%; text-align: center;' >" \
|
||||
" Signature Client <br/> <img style = 'height:100px; width:100px' " \
|
||||
" Signature manuscrite <br/> <img style = 'height:100px; width:100px' " \
|
||||
" src = '{{ params.mysy_manual_signature_img }}' > <br/> " \
|
||||
" </div> </div>"
|
||||
|
||||
|
|
@ -14802,7 +14802,7 @@ def Sent_Convention_Stagiaire_By_Email_By_Partner_client(tab_files_name_full_pat
|
|||
new_e_document_diction['file_cononical_name'] = cononic_name
|
||||
new_e_document_diction['type'] = "convention"
|
||||
|
||||
#print(" ### 011 new_e_document_diction = ", new_e_document_diction)
|
||||
print(" ### 011 new_e_document_diction = ", new_e_document_diction)
|
||||
local_status_e_doc, local_retval_e_doc = E_Sign_Document.Create_E_Document(new_e_document_diction)
|
||||
|
||||
if(local_status_e_doc is False ):
|
||||
|
|
|
|||
75041
Log/log_file.log
75041
Log/log_file.log
File diff suppressed because one or more lines are too long
|
|
@ -6945,7 +6945,7 @@ def Prepare_and_Send_Convention_From_Session_For_Selected_Inscrit_By_Email(tab_f
|
|||
)
|
||||
|
||||
|
||||
print(" ### la liste des liste_client_rattachement_id = ", liste_client_rattachement_id)
|
||||
#print(" ### la liste des liste_client_rattachement_id = ", liste_client_rattachement_id)
|
||||
|
||||
|
||||
# Sauvegarde des fichiers joints depuis le front
|
||||
|
|
@ -6958,7 +6958,7 @@ def Prepare_and_Send_Convention_From_Session_For_Selected_Inscrit_By_Email(tab_f
|
|||
|
||||
tab_saved_file_full_path.append(saved_file_full_path)
|
||||
|
||||
print(" #### tab_saved_file_full_path = ", tab_saved_file_full_path)
|
||||
#print(" #### tab_saved_file_full_path = ", tab_saved_file_full_path)
|
||||
|
||||
# Recupération des données du modèle de document
|
||||
is_convention_by_client = "0"
|
||||
|
|
@ -6990,7 +6990,7 @@ def Prepare_and_Send_Convention_From_Session_For_Selected_Inscrit_By_Email(tab_f
|
|||
mycommon.myprint(" Impossible de récupérer les contacts de communication du client ")
|
||||
return False, " Impossible de récupérer les contacts de communication du client "
|
||||
|
||||
#print(" ### partner_client_contact_communication = ", partner_client_contact_communication)
|
||||
print(" ### partner_client_contact_communication = ", partner_client_contact_communication)
|
||||
tab_local_email_production = []
|
||||
for tmp in partner_client_contact_communication:
|
||||
tmp_JSON = ast.literal_eval(tmp)
|
||||
|
|
@ -7011,7 +7011,7 @@ def Prepare_and_Send_Convention_From_Session_For_Selected_Inscrit_By_Email(tab_f
|
|||
new_diction_client['request_digital_signature'] = diction['request_digital_signature']
|
||||
|
||||
|
||||
#print(" ##### new_diction_client 0102 = ", new_diction_client)
|
||||
print(" ##### new_diction_client 0102 = ", new_diction_client)
|
||||
|
||||
local_status, local_retval = Inscription_mgt.Sent_Convention_Stagiaire_By_Email_By_Partner_client(tab_saved_file_full_path, Folder, new_diction_client)
|
||||
|
||||
|
|
|
|||
21
class_mgt.py
21
class_mgt.py
|
|
@ -6411,6 +6411,27 @@ def get_class_by_metier(diction):
|
|||
if ("inscription_direct" not in user.keys()):
|
||||
user['inscription_direct'] = ""
|
||||
|
||||
"""
|
||||
07/05/2026 - recuperer le code du domaine
|
||||
"""
|
||||
domaine_code = ""
|
||||
if ("domaine" in user.keys() and user['domaine']):
|
||||
"""
|
||||
Verifier la validé du domaine
|
||||
"""
|
||||
class_domaine_data = MYSY_GV.dbname['class_domaine'].find_one(
|
||||
{'_id': ObjectId(str(user['domaine'])),
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'partner_owner_recid': str(
|
||||
user['partner_owner_recid'])
|
||||
})
|
||||
|
||||
if (class_domaine_data and 'code' in class_domaine_data.keys()):
|
||||
domaine_code = class_domaine_data['code']
|
||||
|
||||
user['domaine_code'] = str(domaine_code)
|
||||
|
||||
RetObject.append(JSONEncoder().encode(user))
|
||||
# print(" 22222 ")
|
||||
retVal_for_stat = retVal
|
||||
|
|
|
|||
|
|
@ -3509,7 +3509,7 @@ def Get_Partner_Client_Communication_Contact(diction):
|
|||
new_diction['locked'] = "0"
|
||||
new_diction['include_com'] = "1"
|
||||
|
||||
|
||||
print(" ### REQ Get_Partner_Client_Communication_Contact = ", new_diction)
|
||||
RetObject = []
|
||||
val_tmp = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -2059,7 +2059,7 @@ def Sent_Etudiant_Convention_Stage_By_Email(tab_files, Folder, diction):
|
|||
|
||||
"""
|
||||
new_model_courrier_with_code_tag = str(
|
||||
sourceHtml) + " <p style='width: 300px; text-align: right;'> Signature Client <br/> <img style='height:150px; width:150px' src='{{ params.mysy_manual_signature_img }}'> </p> <br/> " \
|
||||
sourceHtml) + " <p style='width: 300px; text-align: right;'> Le maitre de stage <br/> <img style='height:150px; width:150px' src='{{ params.mysy_manual_signature_img }}'> </p> <br/> " \
|
||||
" <p style='width: 300px; text-align: center;'> <img style='height:150px; width:150px;' src='{{ params.mysy_qrcode_securite }}'> </p> "
|
||||
"""
|
||||
new_model_courrier_with_code_tag = " <div style='width: 100%'> <div style = 'width: 100%; text-align: center;' >" \
|
||||
|
|
@ -2067,7 +2067,7 @@ def Sent_Etudiant_Convention_Stage_By_Email(tab_files, Folder, diction):
|
|||
" <nav style = 'font-size: 10px; font-style: italic;' > Sécurisé par MySy Training Technology </nav>" \
|
||||
" <br/> </div> </div>" + \
|
||||
str(sourceHtml) + " <div style='width: 100%'> <div style = 'width: 100%; text-align: center;' >" \
|
||||
" Signature Client <br/> <img style = 'height:100px; width:100px' " \
|
||||
" Le maitre de stage <br/> <img style = 'height:100px; width:100px' " \
|
||||
" src = '{{ params.mysy_manual_signature_img }}' > <br/> " \
|
||||
" </div> </div>"
|
||||
|
||||
|
|
|
|||
86
wrapper.py
86
wrapper.py
|
|
@ -287,6 +287,27 @@ def get_all_class(diction):
|
|||
mytoday = datetime.today()
|
||||
for x in coll_name.aggregate(pipe):
|
||||
|
||||
|
||||
"""
|
||||
07/05/2026 - recuperer le code du domaine
|
||||
"""
|
||||
domaine_code = ""
|
||||
if ("domaine" in x.keys() and x['domaine']):
|
||||
"""
|
||||
Verifier la validé du domaine
|
||||
"""
|
||||
class_domaine_data = MYSY_GV.dbname['class_domaine'].find_one(
|
||||
{'_id': ObjectId(str(x['domaine'])),
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'partner_owner_recid': str(
|
||||
x['partner_owner_recid'])
|
||||
})
|
||||
|
||||
if( class_domaine_data and 'code' in class_domaine_data.keys()):
|
||||
domaine_code = class_domaine_data['code']
|
||||
|
||||
x['domaine_code'] = str(domaine_code)
|
||||
"""
|
||||
24/10/2025 - Pour verifie si le prix est HT ou TTC du PRORITAIRE DE LA FORMATION
|
||||
on va aller chercher la valeur de TVA dans la collecion :'base_partner_setup'
|
||||
|
|
@ -1002,6 +1023,26 @@ def recherche_text_simple(diction):
|
|||
|
||||
x['partnaire_tva'] = str(partnaire_tva)
|
||||
|
||||
"""
|
||||
07/05/2026 - recuperer le code du domaine
|
||||
"""
|
||||
domaine_code = ""
|
||||
if ("domaine" in x.keys() and x['domaine']):
|
||||
"""
|
||||
Verifier la validé du domaine
|
||||
"""
|
||||
class_domaine_data = MYSY_GV.dbname['class_domaine'].find_one(
|
||||
{'_id': ObjectId(str(x['domaine'])),
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'partner_owner_recid': str(
|
||||
x['partner_owner_recid'])
|
||||
})
|
||||
|
||||
if (class_domaine_data and 'code' in class_domaine_data.keys()):
|
||||
domaine_code = class_domaine_data['code']
|
||||
|
||||
x['domaine_code'] = str(domaine_code)
|
||||
|
||||
val = x['description']
|
||||
no_html = mycommon.cleanhtml(x['description'])
|
||||
|
|
@ -1489,6 +1530,27 @@ def recherche_text_simple_for_partner_catalog(diction):
|
|||
else:
|
||||
x['description'] = no_html
|
||||
|
||||
"""
|
||||
07/05/2026 - recuperer le code du domaine
|
||||
"""
|
||||
domaine_code = ""
|
||||
if ("domaine" in x.keys() and x['domaine']):
|
||||
"""
|
||||
Verifier la validé du domaine
|
||||
"""
|
||||
class_domaine_data = MYSY_GV.dbname['class_domaine'].find_one(
|
||||
{'_id': ObjectId(str(x['domaine'])),
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'partner_owner_recid': str(
|
||||
x['partner_owner_recid'])
|
||||
})
|
||||
|
||||
if (class_domaine_data and 'code' in class_domaine_data.keys()):
|
||||
domaine_code = class_domaine_data['code']
|
||||
|
||||
x['domaine_code'] = str(domaine_code)
|
||||
|
||||
insertObject.append(JSONEncoder().encode(user))
|
||||
|
||||
# mycommon.myprint(" insertObject = ", insertObject)
|
||||
|
|
@ -1590,6 +1652,8 @@ def recherche_text_simple_for_partner_catalog(diction):
|
|||
|
||||
x['partnaire_tva'] = str(partnaire_tva)
|
||||
|
||||
|
||||
|
||||
nb_result = nb_result + 1
|
||||
|
||||
tab_selected_business_prices = []
|
||||
|
|
@ -1645,6 +1709,28 @@ def recherche_text_simple_for_partner_catalog(diction):
|
|||
x['description'] = no_html[:MYSY_GV.MAX_CARACT] + " ..."
|
||||
else:
|
||||
x['description'] = no_html
|
||||
|
||||
"""
|
||||
07/05/2026 - recuperer le code du domaine
|
||||
"""
|
||||
domaine_code = ""
|
||||
if ("domaine" in x.keys() and x['domaine']):
|
||||
"""
|
||||
Verifier la validé du domaine
|
||||
"""
|
||||
class_domaine_data = MYSY_GV.dbname['class_domaine'].find_one(
|
||||
{'_id': ObjectId(str(x['domaine'])),
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'partner_owner_recid': str(
|
||||
x['partner_owner_recid'])
|
||||
})
|
||||
|
||||
if (class_domaine_data and 'code' in class_domaine_data.keys()):
|
||||
domaine_code = class_domaine_data['code']
|
||||
|
||||
x['domaine_code'] = str(domaine_code)
|
||||
|
||||
insertObject.append(JSONEncoder().encode(user))
|
||||
|
||||
'''
|
||||
|
|
|
|||
Loading…
Reference in New Issue