24/11/2023 - 18h30
parent
e04568b072
commit
dab50014a3
|
@ -1,13 +1,11 @@
|
|||
<?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="23/11/23 - 13:30">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="23/11/2023 - 21h30">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Emargement/test_emargement.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/Emargement/test_emargement.pdf" 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$/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$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.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" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
@ -78,13 +76,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00108" summary="22/09/2023 - 12h53">
|
||||
<created>1695380023775</created>
|
||||
<option name="number" value="00108" />
|
||||
<option name="presentableId" value="LOCAL-00108" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1695380023776</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00109" summary="22/09/2023 - 18h53">
|
||||
<created>1695401442385</created>
|
||||
<option name="number" value="00109" />
|
||||
|
@ -421,7 +412,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1700742130514</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="157" />
|
||||
<task id="LOCAL-00157" summary="23/11/2023 - 21h30">
|
||||
<created>1700772203290</created>
|
||||
<option name="number" value="00157" />
|
||||
<option name="presentableId" value="LOCAL-00157" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1700772203291</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="158" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -436,7 +434,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="17/10/2023 - 22h45" />
|
||||
<MESSAGE value="zzz" />
|
||||
<MESSAGE value="22/10/2023 - 12h" />
|
||||
<MESSAGE value="22/10/2023 - 18h00" />
|
||||
|
@ -461,6 +458,7 @@
|
|||
<MESSAGE value="20/11/2023 - 21h00" />
|
||||
<MESSAGE value="22/11/2023 - 23h00" />
|
||||
<MESSAGE value="23/11/23 - 13:30" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="23/11/23 - 13:30" />
|
||||
<MESSAGE value="23/11/2023 - 21h30" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="23/11/2023 - 21h30" />
|
||||
</component>
|
||||
</project>
|
2792
Log/log_file.log
2792
Log/log_file.log
File diff suppressed because it is too large
Load Diff
105
emargement.py
105
emargement.py
|
@ -582,6 +582,12 @@ def GerneratePDFEmargementList(diction):
|
|||
return False, " Impossible d'imprimer la liste d'emargement"
|
||||
|
||||
query_get_data = {}
|
||||
|
||||
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
|
||||
if (local_status is not True):
|
||||
return local_status, my_partner
|
||||
|
||||
|
||||
mytoken = ""
|
||||
if ("token" in diction.keys()):
|
||||
if diction['token']:
|
||||
|
@ -627,8 +633,6 @@ def GerneratePDFEmargementList(diction):
|
|||
local_tmp['email'] = val_tmp['email']
|
||||
local_tmp['nom'] = val_tmp['nom']
|
||||
local_tmp['prenom'] = val_tmp['prenom']
|
||||
local_tmp['matin'] = val_tmp['matin']
|
||||
local_tmp['apresmidi'] = val_tmp['apresmidi']
|
||||
local_tmp['date'] = val_tmp['date']
|
||||
|
||||
local_tmp['sequence_start'] = val_tmp['sequence_start']
|
||||
|
@ -639,39 +643,102 @@ def GerneratePDFEmargementList(diction):
|
|||
tab_users.append(local_tmp)
|
||||
|
||||
#print(' ### tab_users = ' + str(tab_users))
|
||||
date_for_tmplate = {}
|
||||
|
||||
# Recuperation des données du partenaire
|
||||
date_for_tmplate['partner_name'] = my_partner['nom']
|
||||
date_for_tmplate['partner_adresse'] = my_partner['adr_street']
|
||||
date_for_tmplate['partner_ville'] = my_partner['adr_city']
|
||||
date_for_tmplate['partner_code_postal'] = my_partner['invoice_adr_zip']
|
||||
date_for_tmplate['partner_pays'] = my_partner['adr_country']
|
||||
date_for_tmplate['partner_phone'] = my_partner['telephone']
|
||||
date_for_tmplate['partner_mail'] = my_partner['email']
|
||||
|
||||
if( "website" in my_partner.keys() ):
|
||||
date_for_tmplate['partner_website'] = my_partner['website']
|
||||
else:
|
||||
date_for_tmplate['partner_website'] = ""
|
||||
|
||||
|
||||
mytoday = str(datetime.today().strftime("%d/%m/%Y"))
|
||||
date_for_tmplate['today_date'] = str(mytoday)
|
||||
|
||||
## Recuperation des info de la formation
|
||||
class_title = ""
|
||||
for val_tmp in MYSY_GV.dbname['myclass'].find({'internal_url': str(myclass_internal_url)}):
|
||||
class_title = val_tmp['title']
|
||||
|
||||
## Recuperation des info de la sessop,
|
||||
class_title = ""
|
||||
if("title" in val_tmp):
|
||||
class_title = val_tmp['title']
|
||||
date_for_tmplate['title'] = class_title
|
||||
|
||||
|
||||
## Recuperation des info de la session
|
||||
code_session = ""
|
||||
for val_tmp_2 in MYSY_GV.dbname['session_formation'].find({'_id': ObjectId(str(mysession_id))}):
|
||||
code_session = val_tmp_2['code_session']
|
||||
code_session = ""
|
||||
if ("code_session" in val_tmp_2):
|
||||
code_session = val_tmp_2['code_session']
|
||||
date_for_tmplate['code_session'] = code_session
|
||||
|
||||
mytoday = datetime.today().strftime("%d/%m/%Y")
|
||||
session_date_debut = ""
|
||||
if ("date_debut" in val_tmp_2):
|
||||
session_date_debut = val_tmp_2['date_debut']
|
||||
date_for_tmplate['session_date_debut'] = session_date_debut
|
||||
|
||||
#print(' ### class_title = ' + str(class_title))
|
||||
session_date_fin = ""
|
||||
if ("date_fin" in val_tmp_2):
|
||||
session_date_fin = val_tmp_2['date_fin']
|
||||
date_for_tmplate['session_date_fin'] = session_date_fin
|
||||
|
||||
templateLoader = jinja2.FileSystemLoader(searchpath="./")
|
||||
templateEnv = jinja2.Environment(loader=templateLoader)
|
||||
TEMPLATE_FILE = "Template/tpl_emargement.html"
|
||||
template = templateEnv.get_template(TEMPLATE_FILE)
|
||||
session_titre = ""
|
||||
if ("titre" in val_tmp_2):
|
||||
session_titre = val_tmp_2['titre']
|
||||
date_for_tmplate['session_titre'] = session_titre
|
||||
|
||||
session_distantiel = ""
|
||||
if ("distantiel" in val_tmp_2):
|
||||
session_distantiel = val_tmp_2['distantiel']
|
||||
date_for_tmplate['session_distantiel'] = session_distantiel
|
||||
|
||||
session_presentiel = ""
|
||||
if ("presentiel" in val_tmp_2):
|
||||
session_presentiel = val_tmp_2['presentiel']
|
||||
date_for_tmplate['session_presentiel'] = session_presentiel
|
||||
|
||||
#print(json.dumps(date_for_tmplate, indent=1))
|
||||
|
||||
#print(" -------- ")
|
||||
|
||||
#print(json.dumps(tab_users, indent=1))
|
||||
# This data can come from database query
|
||||
body = {
|
||||
"data": {
|
||||
"title": str(class_title),
|
||||
"date": str(mytoday),
|
||||
"code_session":str(code_session),
|
||||
},
|
||||
"data": date_for_tmplate,
|
||||
"user": tab_users
|
||||
}
|
||||
|
||||
#print(" ### body = " + str(body))
|
||||
#print( " body = ", body)
|
||||
|
||||
sourceHtml = template.render(json_data=body["data"], users=body["user"])
|
||||
orig_file_name = "test_emargement.pdf"
|
||||
### Recuperation du modèle de courrier pdf pour l'emargement
|
||||
|
||||
|
||||
data_doc = {}
|
||||
data_doc['document_ref_intere'] = "EMARGEMENT"
|
||||
data_doc['document_type'] = "pdf"
|
||||
data_doc['partner_owner_recid'] = str(partner_recid)
|
||||
|
||||
local_retval_status, local_retval_message = mycommon.Get_Personnalized_Document_From_courrier_template(data_doc)
|
||||
if( local_retval_status is False):
|
||||
return local_retval_status, local_retval_message
|
||||
|
||||
partner_document_data = local_retval_message
|
||||
|
||||
contenu_doc_Template = jinja2.Template(str(partner_document_data['contenu_doc']))
|
||||
|
||||
|
||||
|
||||
sourceHtml = contenu_doc_Template.render(json_data=body["data"], users=body["user"])
|
||||
orig_file_name = "Emargement.pdf"
|
||||
outputFilename = str(MYSY_GV.EMARGEMENT_DIRECTORY) + str(orig_file_name)
|
||||
|
||||
# open output file for writing (truncated binary)
|
||||
|
|
|
@ -4203,8 +4203,8 @@ def GerneratePDF_Partner_Order(diction):
|
|||
if (partner_document_CONF_ORDER_data is None):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + "Aucun document parametré ")
|
||||
return False, "Aucun document parametré "
|
||||
3]) + "Aucun document paramétré ")
|
||||
return False, "Aucun document paramétré "
|
||||
|
||||
if ("contenu_doc" not in partner_document_CONF_ORDER_data or len(
|
||||
str(partner_document_CONF_ORDER_data['contenu_doc'])) <= 0):
|
||||
|
|
|
@ -3584,4 +3584,68 @@ def Is_User_Has_Right_To_Action(diction):
|
|||
|
||||
def daterange(start_date, end_date):
|
||||
for n in range(int((end_date - start_date).days)):
|
||||
yield start_date + timedelta(n)
|
||||
yield start_date + timedelta(n)
|
||||
|
||||
|
||||
"""
|
||||
Cette fonction retroune un document paramétré dans le collection 'courrier_template'
|
||||
pour un partenaire donné.
|
||||
Si aucun, alors le sytème renvoie le document par defaut de MySy
|
||||
"""
|
||||
def Get_Personnalized_Document_From_courrier_template(diction):
|
||||
try:
|
||||
|
||||
diction = strip_dictionary(diction)
|
||||
|
||||
"""
|
||||
Verification des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['document_ref_intere', 'document_type', 'partner_owner_recid']
|
||||
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
myprint(
|
||||
str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ")
|
||||
return False, " Les informations fournies sont incorrectes",
|
||||
|
||||
document_ref_intere = diction["document_ref_intere"]
|
||||
document_type = diction["document_type"]
|
||||
partner_owner_recid = diction["partner_owner_recid"]
|
||||
|
||||
partner_document_qry = {'partner_owner_recid': str(partner_owner_recid),
|
||||
'valide': '1', 'locked': '0', 'ref_interne': str(document_ref_intere),
|
||||
'type_doc': str(document_type)}
|
||||
|
||||
partner_document_data = MYSY_GV.dbname['courrier_template'].find_one(partner_document_qry)
|
||||
|
||||
if (partner_document_data is None):
|
||||
# Il n'existe pas de personnalisation document pour ce partenaire, on va aller récupérer un eventuel modele par default de MySy
|
||||
partner_document_qry_mysy = {'partner_owner_recid': 'default',
|
||||
'valide': '1', 'locked': '0', 'ref_interne': str(document_ref_intere),
|
||||
'type_doc': str(document_type)}
|
||||
|
||||
partner_document_data = MYSY_GV.dbname['courrier_template'].find_one(partner_document_qry_mysy)
|
||||
|
||||
if (partner_document_data is None):
|
||||
myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " Aucun document " + str(document_ref_intere) + " de Type " + str(
|
||||
document_type) + " n'est paramétré dans le système ")
|
||||
return False, " Aucun document " + str(document_ref_intere) + " de Type " + str(
|
||||
document_type) + " n'est paramétré dans le système "
|
||||
|
||||
if ("contenu_doc" not in partner_document_data or len(
|
||||
str(partner_document_data['contenu_doc'])) <= 0):
|
||||
myprint(str(inspect.stack()[0][
|
||||
3]) + " Le paramétrage du document " + str(
|
||||
document_ref_intere) + " de Type " + str(document_type) + " est invalide ")
|
||||
return False, " Le paramétrage du document " + str(document_ref_intere) + " de Type " + str(
|
||||
document_type) + " est invalide "
|
||||
|
||||
|
||||
return True, partner_document_data
|
||||
|
||||
except Exception as e:
|
||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||
myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno))
|
||||
return False, " Impossible de récuperer le document personnalisé "
|
||||
|
|
Loading…
Reference in New Issue