01/02/23 - 22h
parent
141c3dd06e
commit
c177ca409b
|
@ -1,17 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="1122d9e2-679f-46d6-8c4f-97e9ae4041b5" name="Changes" comment="27/01:23 - 19h">
|
||||
<list default="true" id="1122d9e2-679f-46d6-8c4f-97e9ae4041b5" name="Changes" comment="30/01/23 - 22h">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Emargement/fichier_presence.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/Emargement/fichier_presence.pdf" 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$/Template/Mysy_attestion_modele2_tpl.html" beforeDir="false" afterPath="$PROJECT_DIR$/Template/Mysy_attestion_modele2_tpl.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Template/invoice_RIB.html" beforeDir="false" afterPath="$PROJECT_DIR$/Template/invoice_RIB.html" 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" afterPath="$PROJECT_DIR$/data_indexees.csv" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ela_output_test_file_pandas_2.txt" beforeDir="false" afterPath="$PROJECT_DIR$/ela_output_test_file_pandas_2.txt" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/email_inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_inscription_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$/email_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/partners.py" beforeDir="false" afterPath="$PROJECT_DIR$/partners.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
@ -259,7 +262,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1674844418103</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="27" />
|
||||
<task id="LOCAL-00027" summary="30/01/23 - 22h">
|
||||
<created>1675114173514</created>
|
||||
<option name="number" value="00027" />
|
||||
<option name="presentableId" value="LOCAL-00027" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1675114173514</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="28" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -274,7 +284,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="sss - init new pc" />
|
||||
<MESSAGE value="18/11/22 - 23h30" />
|
||||
<MESSAGE value="22/11/22 - 11h30" />
|
||||
<MESSAGE value="22/11/22 - 22h30" />
|
||||
|
@ -299,7 +308,8 @@
|
|||
<MESSAGE value="25/01/23 - 20h" />
|
||||
<MESSAGE value="27/01/23 - 15h" />
|
||||
<MESSAGE value="27/01:23 - 19h" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="27/01:23 - 19h" />
|
||||
<MESSAGE value="30/01/23 - 22h" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="30/01/23 - 22h" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
|
|
|
@ -53,10 +53,16 @@ def GetPartnerAttestation_Certificat(diction):
|
|||
return False, "Impossible de recuperer la liste des attestations "
|
||||
|
||||
RetObject = []
|
||||
local_cpt = 0
|
||||
for ret_val in MYSY_GV.dbname['attestation_certificat'].find( {"$or":[ {"partner_recid":str(partner_recid), "valide":"1"},
|
||||
{"partner_recid":'default', "valide":"1"}]}):
|
||||
RetObject.append(mycommon.JSONEncoder().encode(ret_val))
|
||||
{"partner_recid":'default', "valide":"1"}]}):
|
||||
if( ret_val and ret_val['_id']):
|
||||
RetObject.append(mycommon.JSONEncoder().encode(ret_val))
|
||||
local_cpt = local_cpt + 1
|
||||
|
||||
if( local_cpt == 0):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " Aucun certificat trouvé ")
|
||||
return False, "Aucun certificat trouvé"
|
||||
|
||||
return True, RetObject
|
||||
|
||||
|
|
|
@ -1683,6 +1683,8 @@ def SendAttendeeCertification(diction):
|
|||
|
||||
my_retrun_dict = {}
|
||||
|
||||
my_retrun_dict['partner_recid'] = partner_recid
|
||||
|
||||
my_template = ""
|
||||
if ("template_name" in attestation_certificat.keys() and attestation_certificat['template_name']):
|
||||
my_template = attestation_certificat['template_name']
|
||||
|
@ -1752,6 +1754,16 @@ def SendAttendeeCertification(diction):
|
|||
formateur = session_formation['formateur']
|
||||
my_retrun_dict['formateur'] = formateur
|
||||
|
||||
presentiel = ""
|
||||
if ("presentiel" in session_formation.keys() and session_formation['presentiel']):
|
||||
presentiel = session_formation['presentiel']
|
||||
my_retrun_dict['presentiel'] = presentiel
|
||||
|
||||
distantiel = ""
|
||||
if ("distantiel" in session_formation.keys() and session_formation['distantiel']):
|
||||
distantiel = session_formation['distantiel']
|
||||
my_retrun_dict['distantiel'] = distantiel
|
||||
|
||||
|
||||
#my_retrun_dict['formateur'] = session_formation['formateur']
|
||||
|
||||
|
|
7046
Log/log_file.log
7046
Log/log_file.log
File diff suppressed because one or more lines are too long
|
@ -5,7 +5,11 @@
|
|||
border: 2px solid; ">
|
||||
<div style="border: 2px solid; margin: 5px;">
|
||||
<div style="padding-top:10px;text-align:left;width:30%; border: 2px; float: left;">
|
||||
{% if json_data.logo_url %}
|
||||
<img src={{json_data.logo_url}} alt="Mysy Training Logo" width="80px" />
|
||||
{% else %}
|
||||
<img src="http://88.170.110.220/img/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo" width="80px" />
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div style="padding-top:10px;text-align:center;width:70%; border: none; float: center;">
|
||||
|
@ -17,21 +21,56 @@ border: 2px solid; ">
|
|||
serif;color:#454349;font-size:1.5rem;padding: 0px; border: none;">
|
||||
<div style="width:100%">
|
||||
<div style="text-align:center;border: none;">
|
||||
<nav style="text-align:center;font-weight: bold;border: none;"> Formation </nav>
|
||||
|
||||
<div style="padding:12px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times,
|
||||
serif;color:#454349;font-size:1.2rem; line-height: 2rem;border: none;">
|
||||
<p style="border: none;">
|
||||
<p style="border: none; text-align: left;">
|
||||
{% if json_data.num_declation|length > 5 %}
|
||||
Par la presente, l'oganisme de formation {{json_data.partner}} au Numero de declaration
|
||||
{{json_data.num_declation}} <br />
|
||||
atteste que {{json_data.nom}} {{json_data.prenom}} a suivi la formation <br />
|
||||
<b> "{{json_data.class_title}}" </b> <br />
|
||||
realisé par le formateur {{json_data.formateur}}
|
||||
|
||||
{% else %}
|
||||
|
||||
Par la presente, l'oganisme de formation {{json_data.partner}} au Numero de SIREN
|
||||
{{json_data.mysy_partner_siren}} <br />
|
||||
|
||||
{% endif %}
|
||||
|
||||
</p>
|
||||
<p style="border: none; text-align: center;"></p>
|
||||
Atteste que <b> {{json_data.nom}} {{json_data.prenom}} </b> a suivi la formation <br />
|
||||
<b> "{{json_data.class_title}}" </b> <br />
|
||||
realisé par le formateur {{json_data.formateur}}
|
||||
</p>
|
||||
|
||||
<p style="border: none;">
|
||||
Cette formation a eu lieu du {{json_data.date_du}} au {{json_data.date_au}} à l'adresse
|
||||
:{{json_data.adresse}}
|
||||
|
||||
{% if json_data.date_du == json_data.date_au %}
|
||||
{% if json_data.presentiel == "1" %}
|
||||
<p style="border: none; text-align: left;">
|
||||
Cette formation a eu lieu le {{json_data.date_du}} à l'adresse
|
||||
:{{json_data.adresse}}.
|
||||
</p>
|
||||
{% else %}
|
||||
<p style="border: none;text-align: left;">
|
||||
Cette formation a eu lieu le {{json_data.date_du}} en ligne.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
|
||||
{% if json_data.presentiel == "1" %}
|
||||
<p style="border: none;text-align: left;">
|
||||
Cette formation a eu lieu du {{json_data.date_du}} au {{json_data.date_au}} à l'adresse
|
||||
:{{json_data.adresse}}.
|
||||
</p>
|
||||
{% else %}
|
||||
<p style="border: none;text-align: left;">
|
||||
Cette formation a eu lieu du {{json_data.date_du}} au {{json_data.date_au}} en ligne.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
<div
|
||||
style="padding:12px 0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:1.2rem">
|
||||
|
@ -42,14 +81,14 @@ border: 2px solid; ">
|
|||
|
||||
</div>
|
||||
<div style="width: 30%; float: left;">
|
||||
Fait à {{json_data.ville}} le {{json_data.date_impression}}
|
||||
Fait à {{json_data.mysy_partner_adr_city}} le {{json_data.date_jour}}
|
||||
</div>
|
||||
<div style="width: 70%; float: left;text-align: right;">
|
||||
Pour l'organisme de formation <br />
|
||||
|
||||
{% if json_data.img_url %}
|
||||
{% if json_data.cachet_signature %}
|
||||
|
||||
<img src={{ json_data.signature }} width="200px" />
|
||||
<img src={{ json_data.cachet_signature }} width="100px" />
|
||||
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -1,181 +1,191 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body style="padding:20px 20px;padding-top:0px">
|
||||
<div style="padding:0px;text-align:left;width:30%">
|
||||
<img src="http://88.170.110.220/img/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo" width="100px" /> </h2>
|
||||
</div>
|
||||
<div style="padding:0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:1.5rem;padding: 0px">
|
||||
<div style="width:100%">
|
||||
<div style="text-align:center;">
|
||||
<nav style="text-align:center;font-weight: bold;"> Facture </nav>
|
||||
<hr />
|
||||
<div style="padding:12px 0px;text-align:right;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;">
|
||||
{{json_data.client_name}}<br/>
|
||||
{{json_data.client_address}}<br/>
|
||||
{{json_data.client_zip_ville}}<br/>
|
||||
{{json_data.client_pays}}<br/>
|
||||
<html>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div style="padding:12px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;font-weight: bold;">
|
||||
|
||||
Facture n° {{json_data.invoice_id}}
|
||||
<body style="padding:20px 20px;padding-top:0px">
|
||||
<div style="padding:0px;text-align:left;width:30%">
|
||||
<img src="http://88.170.110.220/img/MYSY-LOGO-BLUE.png" alt="Mysy Training Logo" width="100px" /> </h2>
|
||||
</div>
|
||||
<div
|
||||
style="padding:0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:1.5rem;padding: 0px">
|
||||
<div style="width:100%">
|
||||
<div style="text-align:center;">
|
||||
<nav style="text-align:center;font-weight: bold;"> Facture </nav>
|
||||
<hr/>
|
||||
<div
|
||||
style="padding:12px 0px;text-align:right;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;">
|
||||
{{json_data.client_name}}<br />
|
||||
{{json_data.client_address}}<br />
|
||||
{{json_data.client_zip_ville}}<br />
|
||||
{{json_data.client_pays}}<br />
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
|
||||
<table style="width:100%;padding: 5px;">
|
||||
<div
|
||||
style="padding:5px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;font-weight: bold;">
|
||||
|
||||
<tr style="padding: 0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;">Date de facture: {{json_data.invoice_date}} </td>
|
||||
<td style="text-align:right;">Date échéance : {{json_data.due_date}}</td>
|
||||
</tr>
|
||||
Facture n° {{json_data.invoice_id}}
|
||||
|
||||
</table>
|
||||
|
||||
<div style="padding:12px 0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;width:100%;float:right;text-align:left;">Origine : {{json_data.orign_order}}
|
||||
</div>
|
||||
|
||||
<div> </div>
|
||||
<div style="padding:12px 0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;width:100%;float:right;text-align:left;">
|
||||
<table style="width:100%;border: 1px solid black;padding: 0px;">
|
||||
<tr style="border: 1px solid black;padding: 0px; padding-top:5px;">
|
||||
<th style="text-align:center;border: 1px solid black;">Description</th>
|
||||
<th style="text-align:center;border: 1px solid black;">Quantité</th>
|
||||
<th style="text-align:center;border: 1px solid black;">Prix unitaire</th>
|
||||
<th style="text-align:center;border: 1px solid black;">Montant</th>
|
||||
</tr>
|
||||
<tr style="border: 1px solid black;padding: 0px;padding: 0px; padding-top:5px;">
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.packs}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.qty}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.unit_price}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.montant}}</td>
|
||||
</tr>
|
||||
<tr style="border: 1px solid black;">
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.packs1}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.qty1}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.unit_price1}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.montant1}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div> </div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<table style="width:100%;padding: 5px;">
|
||||
|
||||
<tr style="padding: 0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;">Date de facture: {{json_data.invoice_date}} </td>
|
||||
<td style="text-align:right;">Date échéance : {{json_data.due_date}}</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<div
|
||||
style="padding:12px 0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;width:100%;float:right;text-align:left;">
|
||||
Origine : {{json_data.orign_order}}
|
||||
</div>
|
||||
|
||||
<div
|
||||
style="padding:12px 0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.9rem;width:100%;float:right;text-align:left;">
|
||||
<table style="width:100%;border: none;padding: 0px;">
|
||||
<tr style="border: 1px solid black;padding: 0px; padding-top:5px;">
|
||||
<th style="text-align:center;border: 1px solid black;">Description</th>
|
||||
<th style="text-align:center;border: 1px solid black;">Quantité</th>
|
||||
<th style="text-align:center;border: 1px solid black;">Prix unitaire</th>
|
||||
<th style="text-align:center;border: 1px solid black;">Montant</th>
|
||||
</tr>
|
||||
<tr style="border: 1px solid black;padding: 0px;padding: 0px; padding-top:5px;">
|
||||
<td style="text-align:center;border: 1px solid black;"> {{json_data.packs}} <br>
|
||||
<nav style="text-align:left;font-size:0.6rem; font-style:italic;"> {{json_data.detail_packs}} </nav>
|
||||
</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.qty}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.unit_price}}</td>
|
||||
<td style="text-align:center;border: 1px solid black;">{{json_data.montant}}</td>
|
||||
</tr>
|
||||
<tr style="border: none;padding: 0px; padding-top:5px;">
|
||||
<th style="text-align:center;border: none;" colspan="4"> </th>
|
||||
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<table style="width:100%;padding: 5px;float:right;padding:0px;">
|
||||
<tr style="padding: 0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:center;">Montant HT: </td>
|
||||
<td style="text-align:center;">{{json_data.total_ht}} €</td>
|
||||
</tr>
|
||||
|
||||
<tr style="padding:0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:center;">TVA 20% : </td>
|
||||
<td style="text-align:center;">{{json_data.tva}} €</td>
|
||||
</tr>
|
||||
|
||||
<tr style="padding:0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:center;">Montant TTC : </td>
|
||||
<td style="text-align:center;">{{json_data.total_ttc}} €</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<hr />
|
||||
|
||||
<p
|
||||
style="font-weight:bold; font-size:1rem;text-align: center;width: 80%;margin-left: auto;margin-right: auto;">
|
||||
Règlement : Virement bancaire</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p style="font-size:0.7rem; margin-left: auto;width: 100%;">
|
||||
> Relevé d'identité bancaire
|
||||
</p>
|
||||
|
||||
<table style="font-size:0.7rem; margin-left: auto;width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th scope="col" style="text-align: left;">Banque</th>
|
||||
<th scope="col" style="text-align: left;">Indicatif</th>
|
||||
<th scope="col" style="text-align: left;">Numéro de compte</th>
|
||||
<th scope="col" style="text-align: left;">Clé RIB</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
<td scope="col" style="text-align: left;">17418</td>
|
||||
<td scope="col" style="text-align: left;">00001</td>
|
||||
<td scope="col" style="text-align: left;">00011010233</td>
|
||||
<td scope="col" style="text-align: left;">69</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
<p style="font-size:0.7rem; margin-left: auto;width: 100%;">
|
||||
> Identification internationale
|
||||
</p>
|
||||
|
||||
|
||||
<table style="font-size:0.7rem; margin-left: auto; width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th scope="col" style="text-align: left;">IBAN</th>
|
||||
<th scope="col" style="text-align: left;">Code BIC</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
<td scope="col" style="text-align: left;">FR76 1741 8000 0100 0110 1023 369 </td>
|
||||
<td scope="col" style="text-align: left;">SNNNFR22XXX</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<table style="width:100%;padding: 5px;float:right;padding:0px;">
|
||||
<tr style="padding: 0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:center;">Montant HT: </td>
|
||||
<td style="text-align:center;">{{json_data.total_ht}}</td>
|
||||
</tr>
|
||||
<hr />
|
||||
<br/>
|
||||
<br />
|
||||
<footer>
|
||||
<div
|
||||
style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.8rem;font-style: italic;">
|
||||
|
||||
<tr style="padding:0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:center;">TVA 20% : </td>
|
||||
<td style="text-align:center;">{{json_data.tva}}</td>
|
||||
</tr>
|
||||
<p>MySy Training<br />
|
||||
|
||||
<tr style="padding:0px; padding-top:5px;font-size:0.9rem;">
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:left;"> </td>
|
||||
<td style="text-align:center;">Montant TTC : </td>
|
||||
<td style="text-align:center;">{{json_data.total_ttc}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
Cour du Havre 1, 75008, Paris<br />
|
||||
|
||||
<hr />
|
||||
|
||||
<p style="font-weight:bold; font-size:1rem;text-align: center;width: 80%;margin-left: auto;margin-right: auto;">
|
||||
Règlement : Virement bancaire</p>
|
||||
MySy Training Technology (MTT), société par actions simplifiée au capital de 1000 euros, dont le siège
|
||||
social est
|
||||
situé 2, place des magnolias, 77680, Roissy en Brie, immatriculée au Registre du Commerce et des
|
||||
Sociétés sous le numéro 917 500 860 R.C.S. Melun
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
||||
|
||||
|
||||
<p style="font-size:0.9rem; margin-left: auto;width: 100%;">
|
||||
> Relevé d'identité bancaire
|
||||
</p>
|
||||
|
||||
<table style="font-size:0.9rem; margin-left: auto;width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th scope="col" style="text-align: left;">Banque</th>
|
||||
<th scope="col" style="text-align: left;">Indicatif</th>
|
||||
<th scope="col" style="text-align: left;">Numéro de compte</th>
|
||||
<th scope="col" style="text-align: left;">Clé RIB</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
<td scope="col" style="text-align: left;">17418</td>
|
||||
<td scope="col" style="text-align: left;">00001</td>
|
||||
<td scope="col"style="text-align: left;">00011010233</td>
|
||||
<td scope="col" style="text-align: left;">69</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
<p style="font-size:0.9rem; margin-left: auto;width: 100%;">
|
||||
> Identification internationale
|
||||
</p>
|
||||
|
||||
|
||||
<table style="font-size:0.9rem; margin-left: auto; width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th scope="col" style="text-align: left;">IBAN</th>
|
||||
<th scope="col" style="text-align: left;">Code BIC</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
<td scope="col" style="text-align: left;">FR76 1741 8000 0100 0110 1023 369 </td>
|
||||
<td scope="col" style="text-align: left;">SNNNFR22XXX</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
<footer>
|
||||
<div style="padding:20px 0px;text-align:center;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:0.8rem;font-style: italic;">
|
||||
|
||||
<p>MySy Training<br/>
|
||||
|
||||
Cour du Havre 1, 75008, Paris<br/>
|
||||
|
||||
MySy Training Technology (MTT), société par actions simplifiée au capital de 1000 euros, dont le siège social est
|
||||
situé 2, place des magnolias, 77680, Roissy en Brie, immatriculée au Registre du Commerce et des Sociétés sous le numéro 917 500 860 R.C.S. Melun
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
45
class_mgt.py
45
class_mgt.py
|
@ -129,8 +129,17 @@ def add_class(diction):
|
|||
|
||||
'''
|
||||
Si l'internal_url reste à vide, alors le système va créer une internal url de la formation
|
||||
/!\ : Il faut aller verifier si il a une formation ayant le meme code externe si oui recuperer son internal_url.
|
||||
Si a chaque fois on créer un nouveau "internal_url", on va perdre les url à chaque mise à jour par excel.
|
||||
Oui pire, si on modifie le tritre, c'est mort.... :(
|
||||
'''
|
||||
if( len(class_internal_url) <= 0 ):
|
||||
exist_class = MYSY_GV.dbname['myclass'].find_one({'external_code':str(diction['external_code']).strip(),
|
||||
'valide':'1'})
|
||||
|
||||
if( exist_class and exist_class['internal_url'] and len(str(exist_class['internal_url'])) > 5):
|
||||
class_internal_url = str(exist_class['internal_url'])
|
||||
|
||||
else :
|
||||
status, class_internal_url = mycommon.CreateInternalUrl(diction['title'])
|
||||
|
||||
mydata['internal_url'] = class_internal_url
|
||||
|
@ -1733,6 +1742,24 @@ def get_class(diction):
|
|||
|
||||
#print(' ICICICIC '+str(filt_external_code))
|
||||
|
||||
# Recuperation des info du partenaire propriaitaire comme : ces certification (qualiopi, datadock, etc) et son nom
|
||||
tmp_class_data = MYSY_GV.dbname['myclass'].find_one({'valide':'1','locked':'0','internal_url':internal_url, 'published':'1'},
|
||||
{"_id": 1, "partner_owner_recid": 1, } )
|
||||
|
||||
if( tmp_class_data is None or tmp_class_data["partner_owner_recid"] is None):
|
||||
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 "
|
||||
|
||||
tmp_partenaire_data = MYSY_GV.dbname['partnair_account'].find_one({'active':'1','locked':'0','recid':str(tmp_class_data["partner_owner_recid"]), },
|
||||
)
|
||||
|
||||
if (tmp_partenaire_data is None or tmp_partenaire_data["_id"] is None):
|
||||
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) "
|
||||
|
||||
|
||||
|
||||
|
||||
filt_title = {}
|
||||
if ("title" in diction.keys()):
|
||||
filt_title = {'title': {'$regex': str(diction['title'])}}
|
||||
|
@ -1770,6 +1797,22 @@ def get_class(diction):
|
|||
" d'une recherche de formation. Voir _id = ")
|
||||
return False, "Impossible de faire un affichage detaillé "
|
||||
|
||||
if( "isdatadock" in tmp_partenaire_data.keys() and tmp_partenaire_data['isdatadock']):
|
||||
retVal['isdatadock'] = tmp_partenaire_data['isdatadock']
|
||||
|
||||
if ("isqualiopi" in tmp_partenaire_data.keys() and tmp_partenaire_data['isqualiopi']):
|
||||
retVal['isqualiopi'] = tmp_partenaire_data['isqualiopi']
|
||||
|
||||
if ("iscertitrace" in tmp_partenaire_data.keys() and tmp_partenaire_data['iscertitrace']):
|
||||
retVal['iscertitrace'] = tmp_partenaire_data['iscertitrace']
|
||||
|
||||
if ("nom" in tmp_partenaire_data.keys() and tmp_partenaire_data['nom']):
|
||||
retVal['nom_partenaire'] = tmp_partenaire_data['nom']
|
||||
|
||||
if ("website" in tmp_partenaire_data.keys() and tmp_partenaire_data['website']):
|
||||
retVal['website_partenaire'] = tmp_partenaire_data['website']
|
||||
|
||||
|
||||
if ("description" in retVal.keys()):
|
||||
tmp_str = retVal['description']
|
||||
no_html = mycommon.cleanhtml(retVal['description'])
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
,index,mots,occurence,moyenne,id_formation,source_field
|
||||
0,0,certif,1,0.25,QPR_F2,keyword
|
||||
1,1,pratiqu,1,0.25,QPR_F2,keyword
|
||||
2,2,p,1,0.25,QPR_F2,keyword
|
||||
3,3,agile,1,0.25,QPR_F2,keyword
|
||||
0,0,bio,1,0.17,HIFMI_001,title
|
||||
1,1,vegan,1,0.17,HIFMI_001,title
|
||||
2,2,casher,1,0.17,HIFMI_001,title
|
||||
3,3,tracabilite,1,0.17,HIFMI_001,title
|
||||
4,4,halal,1,0.17,HIFMI_001,title
|
||||
5,5,alimentaire,1,0.17,HIFMI_001,title
|
||||
|
|
|
|
@ -1,5 +1,3 @@
|
|||
mots occurence moyenne id_formation source_field
|
||||
0 certif 1 0.25 QPR_F2 keyword
|
||||
1 pratiqu 1 0.25 QPR_F2 keyword
|
||||
2 p 1 0.25 QPR_F2 keyword
|
||||
3 agile 1 0.25 QPR_F2 keyword
|
||||
Empty DataFrame
|
||||
Columns: [mots, occurence, moyenne, id_formation, source_field]
|
||||
Index: []
|
|
@ -647,7 +647,8 @@ def SendAttestion_to_attendee_by_email_standalone(diction):
|
|||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['nom', 'prenom', 'email', 'date_du', 'date_au', 'adresse', 'title',
|
||||
'attestation_tmpl', 'inscription_id']
|
||||
'attestation_tmpl', 'inscription_id', 'partner_recid', 'formateur',
|
||||
'presentiel', 'distantiel']
|
||||
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
|
@ -661,9 +662,42 @@ def SendAttestion_to_attendee_by_email_standalone(diction):
|
|||
msg = MIMEMultipart("alternative")
|
||||
|
||||
|
||||
# Recuperation des données du partenaire formateur
|
||||
mysy_partner = MYSY_GV.dbname['partnair_account'].find_one({'recid':str(diction['partner_recid']),
|
||||
'active':"1",'locked':"0" })
|
||||
|
||||
if( mysy_partner is None or mysy_partner['_id'] is None):
|
||||
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 "
|
||||
|
||||
mysy_partner_nom = ""
|
||||
if ("nom" in mysy_partner.keys() and mysy_partner['nom']):
|
||||
mysy_partner_nom = mysy_partner['nom']
|
||||
|
||||
mysy_partner_num_declation = ""
|
||||
if ("num_nda" in mysy_partner.keys() and mysy_partner['num_nda']):
|
||||
mysy_partner_num_declation = mysy_partner['num_nda']
|
||||
|
||||
mysy_partner_siren = ""
|
||||
if ("siren" in mysy_partner.keys() and mysy_partner['siren']):
|
||||
mysy_partner_siren = mysy_partner['siren']
|
||||
|
||||
mysy_partner_adr_city = ""
|
||||
if ("adr_city" in mysy_partner.keys() and mysy_partner['adr_city']):
|
||||
mysy_partner_adr_city = mysy_partner['adr_city']
|
||||
|
||||
|
||||
if(len(mysy_partner_num_declation.strip()) == 0 and len(mysy_partner_siren.strip()) == 0):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Aucun numero de déclaration ni numero SIREN enregistré")
|
||||
return False, "Aucun numero de déclaration ni numero SIREN enregistré"
|
||||
|
||||
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
||||
msg['To'] = str(diction['email'])
|
||||
|
||||
ct = datetime.datetime.now()
|
||||
ts = ct.timestamp()
|
||||
date_jour = ct.strftime("%d/%m/%Y")
|
||||
|
||||
# msg = MIMEMultipart("alternative")
|
||||
msg = EmailMessage()
|
||||
|
@ -680,14 +714,23 @@ def SendAttestion_to_attendee_by_email_standalone(diction):
|
|||
"params": {"nom": str(diction['nom']),
|
||||
"prenom": str(diction['prenom']),
|
||||
"date_du": str(diction['date_du'])[0:10],
|
||||
"date_fin": str(diction['date_au'])[0:10],
|
||||
"date_au": str(diction['date_au'])[0:10],
|
||||
"adresse": str(diction['adresse']),
|
||||
"title": str(diction['title']),
|
||||
"class_title": str(diction['title']),
|
||||
"email": str(diction['email']),
|
||||
"formateur": str(diction['formateur']),
|
||||
"presentiel": str(diction['presentiel']),
|
||||
"distantiel": str(diction['distantiel']),
|
||||
"partner": str(mysy_partner_nom),
|
||||
"num_declation": str(mysy_partner_num_declation),
|
||||
"mysy_partner_siren": str(mysy_partner_siren),
|
||||
"mysy_partner_adr_city":str(mysy_partner_adr_city),
|
||||
"date_jour":str(date_jour),
|
||||
"cachet_signature": "https://img.mysy-training.com/perso/mysy_cachet.png",
|
||||
"logo_url": "https://img.mysy-training.com/1000formation/LOGO-FORMATION1000.png"
|
||||
}}
|
||||
|
||||
ct = datetime.datetime.now()
|
||||
ts = ct.timestamp()
|
||||
|
||||
|
||||
sourceHtml = template.render(json_data=body["params"])
|
||||
|
||||
|
@ -707,7 +750,7 @@ def SendAttestion_to_attendee_by_email_standalone(diction):
|
|||
msg.set_content(sourceHtml, subtype='html')
|
||||
|
||||
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
||||
msg['Bcc'] = 'contact@mysy-training.com'
|
||||
msg['Bcc'] = 'contact@mysy-training.com, mysytraining@gmail.com'
|
||||
msg['Subject'] = 'MySy Training : Votre attestation de formation : ' + str(diction['title'])
|
||||
msg['To'] = str(diction['email'])
|
||||
|
||||
|
|
77
email_mgt.py
77
email_mgt.py
|
@ -14,6 +14,7 @@ import inspect
|
|||
import sys, os
|
||||
|
||||
from bson import ObjectId
|
||||
from xhtml2pdf import pisa
|
||||
|
||||
import prj_common as mycommon
|
||||
import GlobalVariable as MYSY_GV
|
||||
|
@ -1845,16 +1846,16 @@ def ManualSendInvoiceEmailRIB(diction):
|
|||
TEMPLATE_FILE = "Template/MySy_Invoice_RIB_tpl.html"
|
||||
template = templateEnv.get_template(TEMPLATE_FILE)
|
||||
body = {
|
||||
"params": {"order_id": "MySy_00wheA",
|
||||
"date_order": ": 01/11/2022",
|
||||
"total_ht": "550",
|
||||
"tva": "110",
|
||||
"total_ttc": "660",
|
||||
"client_name": "POTENTIALS",
|
||||
"client_address": "21 RUE D ABOUKIR",
|
||||
"client_zip_ville": "75002 Paris",
|
||||
"params": {"order_id": "004G",
|
||||
"date_order": ": 01/01/2023",
|
||||
"total_ht": "90",
|
||||
"tva": "18",
|
||||
"total_ttc": "108",
|
||||
"client_name": "5DISCOVERY",
|
||||
"client_address": "7bis Rue du 13ème de ligne",
|
||||
"client_zip_ville": "58000 Nevers",
|
||||
"client_pays": "France",
|
||||
"packs": "Gold",
|
||||
"packs": "PACK GOLD ",
|
||||
"detail_packs": "-- Support téléphonique -- "
|
||||
"Reporting basique -- "
|
||||
"Mots clés par formation -- "
|
||||
|
@ -1862,13 +1863,14 @@ def ManualSendInvoiceEmailRIB(diction):
|
|||
"Préférence/ Diffusion géographique -- "
|
||||
"Publication d'un article -- "
|
||||
"Reporting Dynamique et personnalisé",
|
||||
|
||||
"qty": "1",
|
||||
"unit_price": "550",
|
||||
"montant": "550",
|
||||
"invoice_id": "FACT_221100019",
|
||||
"invoice_date": "01/11/2022",
|
||||
"due_date": "01/11/2022",
|
||||
"orign_order": "MySy_00wheA",
|
||||
"unit_price": "90",
|
||||
"montant": "90",
|
||||
"invoice_id": "FACT_230200020",
|
||||
"invoice_date": "01/02/2023",
|
||||
"due_date": "01/02/2022",
|
||||
"orign_order": "Contrat 004G",
|
||||
}
|
||||
}
|
||||
sourceHtml = template.render(params=body["params"])
|
||||
|
@ -1876,7 +1878,7 @@ def ManualSendInvoiceEmailRIB(diction):
|
|||
msg.set_content(sourceHtml, subtype='html')
|
||||
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
||||
msg['Bcc'] = 'contact@mysy-training.com'
|
||||
msg['Subject'] = "[MySy Training Technology] : Votre facture N° FACT_221100019"
|
||||
msg['Subject'] = "[MySy Training Technology] : Votre facture N° FACT_230200020"
|
||||
msg['To'] = 'billardman1@gmail.com'
|
||||
|
||||
smtpserver.ehlo()
|
||||
|
@ -1885,6 +1887,49 @@ def ManualSendInvoiceEmailRIB(diction):
|
|||
val = smtpserver.send_message(msg)
|
||||
smtpserver.close()
|
||||
print(" Email envoyé " + str(val))
|
||||
|
||||
### CREATION DE LA FACTION PDF
|
||||
templateLoader = jinja2.FileSystemLoader(searchpath="./")
|
||||
templateEnv = jinja2.Environment(loader=templateLoader)
|
||||
TEMPLATE_FILE = "Template/invoice_RIB.html"
|
||||
template = templateEnv.get_template(TEMPLATE_FILE)
|
||||
# This data can come from database query
|
||||
"""
|
||||
body = {
|
||||
"data": {
|
||||
"client_name": str(diction['invoice_nom']),
|
||||
"client_address": str(diction['invoice_adr_street']),
|
||||
"client_zip_ville": str(diction['invoice_adr_zip']) + " " + str(diction['invoice_adr_city']),
|
||||
"client_pays": str(diction['invoice_adr_country']),
|
||||
"invoice_id": str(diction['invoice_id']),
|
||||
"invoice_date": str(diction['invoice_date']),
|
||||
"due_date": str(diction['due_date']),
|
||||
"orign_order": str(diction['order_id']),
|
||||
"packs": str(diction['item_0']['code']),
|
||||
"qty": str(diction['item_0']['qty']),
|
||||
"unit_price": str(diction['item_0']['prix']),
|
||||
"montant": str(diction['item_0']['amount']),
|
||||
"total_ht": str(diction['total_ht']),
|
||||
"tva": str(diction['total_tva']),
|
||||
"total_ttc": str(diction['total_ttc']),
|
||||
}
|
||||
}
|
||||
"""
|
||||
sourceHtml = template.render(json_data=body["params"])
|
||||
orig_file_name = "invoice_FACT_230200020.pdf"
|
||||
outputFilename = str(MYSY_GV.INVOICE_DIRECTORY) + str(orig_file_name)
|
||||
|
||||
# open output file for writing (truncated binary)
|
||||
resultFile = open(outputFilename, "w+b")
|
||||
|
||||
# convert HTML to PDF
|
||||
pisaStatus = pisa.CreatePDF(
|
||||
src=sourceHtml, # the HTML to convert
|
||||
dest=resultFile) # file handle to receive result
|
||||
|
||||
# close output file
|
||||
resultFile.close()
|
||||
|
||||
return True, " facture envoyée"
|
||||
|
||||
|
||||
|
|
87
partners.py
87
partners.py
|
@ -518,7 +518,8 @@ def update_partner_account(diction):
|
|||
'email', 'pwd', 'telephone', 'contact_nom', 'contact_prenom', 'contact_tel',
|
||||
'contact_mail', 'token', 'link_facebook', 'link_twitter', 'invoice_vat_num',
|
||||
'invoice_nom', 'invoice_adr_street', 'invoice_adr_city', 'invoice_adr_zip',
|
||||
'invoice_adr_country', 'invoice_email', 'invoice_telephone', 'invoice_vat_num']
|
||||
'invoice_adr_country', 'invoice_email', 'invoice_telephone', 'invoice_vat_num',
|
||||
'siren', 'num_nda', 'iscertitrace', 'isdatadock', 'isqualiopi']
|
||||
incom_keys = diction.keys()
|
||||
|
||||
|
||||
|
@ -561,96 +562,88 @@ def update_partner_account(diction):
|
|||
|
||||
mydata = {}
|
||||
if ("nom" in diction.keys()):
|
||||
if diction['nom']:
|
||||
mydata['nom'] = diction['nom']
|
||||
mydata['nom'] = diction['nom']
|
||||
|
||||
if ("adr_street" in diction.keys()):
|
||||
if diction['adr_street']:
|
||||
mydata['adr_street'] = diction['adr_street']
|
||||
mydata['adr_street'] = diction['adr_street']
|
||||
|
||||
if ("adr_city" in diction.keys()):
|
||||
if diction['adr_city']:
|
||||
mydata['adr_city'] = diction['adr_city']
|
||||
mydata['adr_city'] = diction['adr_city']
|
||||
|
||||
if ("adr_zip" in diction.keys()):
|
||||
if diction['adr_zip']:
|
||||
mydata['adr_zip'] = diction['adr_zip']
|
||||
mydata['adr_zip'] = diction['adr_zip']
|
||||
|
||||
if ("adr_country" in diction.keys()):
|
||||
if diction['adr_country']:
|
||||
mydata['adr_country'] = diction['adr_country']
|
||||
mydata['adr_country'] = diction['adr_country']
|
||||
|
||||
if ("siren" in diction.keys()):
|
||||
mydata['siren'] = diction['siren']
|
||||
|
||||
if ("num_nda" in diction.keys()):
|
||||
mydata['num_nda'] = diction['num_nda']
|
||||
|
||||
if ("iscertitrace" in diction.keys()):
|
||||
mydata['iscertitrace'] = diction['iscertitrace']
|
||||
|
||||
if ("isdatadock" in diction.keys()):
|
||||
mydata['isdatadock'] = diction['isdatadock']
|
||||
|
||||
if ("isqualiopi" in diction.keys()):
|
||||
mydata['isqualiopi'] = diction['isqualiopi']
|
||||
|
||||
if ("email" in diction.keys()):
|
||||
if diction['email']:
|
||||
my_email = diction['email']
|
||||
my_email = diction['email']
|
||||
|
||||
if ("telephone" in diction.keys()):
|
||||
if diction['telephone']:
|
||||
mydata['telephone'] = diction['telephone']
|
||||
mydata['telephone'] = diction['telephone']
|
||||
|
||||
if ("pwd" in diction.keys()):
|
||||
if diction['pwd']:
|
||||
mydata['pwd'] = diction['pwd']
|
||||
mydata['pwd'] = diction['pwd']
|
||||
|
||||
if ("contact_nom" in diction.keys()):
|
||||
if diction['contact_nom']:
|
||||
mydata['contact_nom'] = diction['contact_nom']
|
||||
mydata['contact_nom'] = diction['contact_nom']
|
||||
|
||||
if ("contact_prenom" in diction.keys()):
|
||||
if diction['contact_prenom']:
|
||||
mydata['contact_prenom'] = diction['contact_prenom']
|
||||
mydata['contact_prenom'] = diction['contact_prenom']
|
||||
|
||||
if ("contact_tel" in diction.keys()):
|
||||
if diction['contact_tel']:
|
||||
mydata['contact_tel'] = diction['contact_tel']
|
||||
mydata['contact_tel'] = diction['contact_tel']
|
||||
|
||||
if ("contact_mail" in diction.keys()):
|
||||
if diction['contact_mail']:
|
||||
mydata['contact_mail'] = diction['contact_mail']
|
||||
mydata['contact_mail'] = diction['contact_mail']
|
||||
|
||||
if ("link_linkedin" in diction.keys()):
|
||||
if diction['link_linkedin']:
|
||||
mydata['link_linkedin'] = diction['link_linkedin']
|
||||
mydata['link_linkedin'] = diction['link_linkedin']
|
||||
|
||||
if ("link_facebook" in diction.keys()):
|
||||
if diction['link_facebook']:
|
||||
mydata['link_facebook'] = diction['link_facebook']
|
||||
mydata['link_facebook'] = diction['link_facebook']
|
||||
|
||||
if ("link_twitter" in diction.keys()):
|
||||
if diction['link_twitter']:
|
||||
mydata['link_twitter'] = diction['link_twitter']
|
||||
mydata['link_twitter'] = diction['link_twitter']
|
||||
|
||||
if ("invoice_vat_num" in diction.keys()):
|
||||
if diction['invoice_vat_num']:
|
||||
mydata['invoice_vat_num'] = diction['invoice_vat_num']
|
||||
mydata['invoice_vat_num'] = diction['invoice_vat_num']
|
||||
|
||||
if ("invoice_nom" in diction.keys()):
|
||||
if diction['invoice_nom']:
|
||||
mydata['invoice_nom'] = diction['invoice_nom']
|
||||
mydata['invoice_nom'] = diction['invoice_nom']
|
||||
|
||||
if ("invoice_adr_street" in diction.keys()):
|
||||
if diction['invoice_adr_street']:
|
||||
mydata['invoice_adr_street'] = diction['invoice_adr_street']
|
||||
mydata['invoice_adr_street'] = diction['invoice_adr_street']
|
||||
|
||||
if ("invoice_adr_city" in diction.keys()):
|
||||
if diction['invoice_adr_city']:
|
||||
mydata['invoice_adr_city'] = diction['invoice_adr_city']
|
||||
mydata['invoice_adr_city'] = diction['invoice_adr_city']
|
||||
|
||||
if ("invoice_adr_zip" in diction.keys()):
|
||||
if diction['invoice_adr_zip']:
|
||||
mydata['invoice_adr_zip'] = diction['invoice_adr_zip']
|
||||
mydata['invoice_adr_zip'] = diction['invoice_adr_zip']
|
||||
|
||||
if ("invoice_adr_zip" in diction.keys()):
|
||||
if diction['invoice_adr_country']:
|
||||
mydata['invoice_adr_country'] = diction['invoice_adr_country']
|
||||
mydata['invoice_adr_country'] = diction['invoice_adr_country']
|
||||
|
||||
if ("invoice_email" in diction.keys()):
|
||||
if diction['invoice_email']:
|
||||
mydata['invoice_email'] = diction['invoice_email']
|
||||
mydata['invoice_email'] = diction['invoice_email']
|
||||
|
||||
if ("invoice_telephone" in diction.keys()):
|
||||
if diction['invoice_telephone']:
|
||||
mydata['invoice_telephone'] = diction['invoice_telephone']
|
||||
mydata['invoice_telephone'] = diction['invoice_telephone']
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -24,9 +24,12 @@ def email_validation():
|
|||
coll_emails = MYSY_GV.dbname['bdd_email']
|
||||
|
||||
cpt = 0
|
||||
nb_doc = coll_emails.count_documents({'valide':'1', "checked_status": {"$ne": "1"}})
|
||||
nb_doc = coll_emails.count_documents({'valide':'1', "checked": {"$ne": "1"}})
|
||||
|
||||
for val in coll_emails.find({'valide':'1', "checked_status": {"$ne": "1"}}):
|
||||
print(" ### nb_doc = ", nb_doc)
|
||||
|
||||
|
||||
for val in coll_emails.find({'valide':'1', "checked": {"$ne": "1"}}):
|
||||
cpt = cpt + 1
|
||||
if ("email_address" in val.keys()):
|
||||
|
||||
|
|
Loading…
Reference in New Issue