10/11/2023 - 16h

master
cherif 2023-11-10 16:12:25 +01:00
parent ba57249927
commit 30a7a39782
8 changed files with 2828 additions and 214 deletions

View File

@ -1,11 +1,15 @@
<?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="08/11/2023 - 23h"> <list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="09/11/2023 - 23h">
<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$/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$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" 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$/partner_base_setup.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_base_setup.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$/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> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -75,13 +79,6 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1680804787304</updated> <updated>1680804787304</updated>
</task> </task>
<task id="LOCAL-00092" summary="30/08/23 - 22h">
<created>1693425919707</created>
<option name="number" value="00092" />
<option name="presentableId" value="LOCAL-00092" />
<option name="project" value="LOCAL" />
<updated>1693425919707</updated>
</task>
<task id="LOCAL-00093" summary="01/09/23 - 19h"> <task id="LOCAL-00093" summary="01/09/23 - 19h">
<created>1693586455361</created> <created>1693586455361</created>
<option name="number" value="00093" /> <option name="number" value="00093" />
@ -418,7 +415,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1699540554777</updated> <updated>1699540554777</updated>
</task> </task>
<option name="localTasksCounter" value="141" /> <task id="LOCAL-00141" summary="09/11/2023 - 23h">
<created>1699567383854</created>
<option name="number" value="00141" />
<option name="presentableId" value="LOCAL-00141" />
<option name="project" value="LOCAL" />
<updated>1699567383855</updated>
</task>
<option name="localTasksCounter" value="142" />
<servers /> <servers />
</component> </component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">
@ -433,7 +437,6 @@
</option> </option>
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<MESSAGE value="26/09/23 - 23h" />
<MESSAGE value="28/09/23 - 23h" /> <MESSAGE value="28/09/23 - 23h" />
<MESSAGE value="30/09/2023 - 14h" /> <MESSAGE value="30/09/2023 - 14h" />
<MESSAGE value="30/09/2023 - 18h" /> <MESSAGE value="30/09/2023 - 18h" />
@ -458,6 +461,7 @@
<MESSAGE value="23/10/2023 - 16h" /> <MESSAGE value="23/10/2023 - 16h" />
<MESSAGE value="30/10/23 - 16h" /> <MESSAGE value="30/10/23 - 16h" />
<MESSAGE value="08/11/2023 - 23h" /> <MESSAGE value="08/11/2023 - 23h" />
<option name="LAST_COMMIT_MESSAGE" value="08/11/2023 - 23h" /> <MESSAGE value="09/11/2023 - 23h" />
<option name="LAST_COMMIT_MESSAGE" value="09/11/2023 - 23h" />
</component> </component>
</project> </project>

View File

@ -253,6 +253,8 @@ if (MYSY_ENV == "DEV"):
O365_SMTP_COUNT_port = 587 O365_SMTP_COUNT_port = 587
""" """
Repertoire temporaire de telechargement ou de creation de fichier Repertoire temporaire de telechargement ou de creation de fichier
""" """
@ -511,7 +513,7 @@ PARTNER_QUOTATION_STATUS = ['-1', '0', '1', '2']
""" """
Pour mettre en place un système de configuration global, on va definir les valeur acceptée Pour mettre en place un système de configuration global, on va definir les valeur acceptée
""" """
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' ]
""" """

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -88,6 +88,7 @@ def Add_Update_Partner_Basic_Setup(diction):
if (local_status is not True): if (local_status is not True):
return local_status, my_partner return local_status, my_partner
if(str(diction['config_name']) not in MYSY_GV.PARTNER_BASE_CONFIG_NAME): if(str(diction['config_name']) not in MYSY_GV.PARTNER_BASE_CONFIG_NAME):
mycommon.myprint( mycommon.myprint(
str(inspect.stack()[0][3]) + " - La configuration '" + str(diction['config_name']) + "' n'est pas acceptée ") str(inspect.stack()[0][3]) + " - La configuration '" + str(diction['config_name']) + "' n'est pas acceptée ")
@ -248,6 +249,9 @@ def Get_List_Partner_Basic_Setup(diction):
RetObject = [] RetObject = []
val_tmp = 1 val_tmp = 1
for New_retVal in MYSY_GV.dbname['base_partner_setup'].find({'partner_owner_recid':str(my_partner['recid']), 'valide':'1', 'locked':'0'}): for New_retVal in MYSY_GV.dbname['base_partner_setup'].find({'partner_owner_recid':str(my_partner['recid']), 'valide':'1', 'locked':'0'}):
if( str(New_retVal['config_name']) == "smtp_user_pwd"):
New_retVal['config_value'] = New_retVal['config_value'][:2]+"...."+str(New_retVal['config_value'])[-2:]
user = New_retVal user = New_retVal
user['id'] = str(val_tmp) user['id'] = str(val_tmp)
val_tmp = val_tmp + 1 val_tmp = val_tmp + 1

View File

@ -1801,30 +1801,105 @@ def Send_Partner_Invoice_By_Email(diction):
print("debut envoi mail de test ") print("debut envoi mail de test ")
msg = EmailMessage() msg = EmailMessage()
msg.set_content(sourceHtml, subtype='html') msg.set_content(sourceHtml, subtype='html')
smtpserver = smtplib.SMTP(MYSY_GV.O365_SMTP_COUNT_smtpsrv, MYSY_GV.O365_SMTP_COUNT_port)
"""
Recuperation des parametre SMTP du partner si le client a decidé d'utiliser son propre smpt
"""
partner_own_smtp_value = "0"
partner_own_smtp = MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid': str(my_partner['recid']),
'config_name': 'partner_smtp',
'valide': '1',
'locked': '0'})
if( partner_own_smtp and "config_value" in partner_own_smtp.keys()):
partner_own_smtp_value = partner_own_smtp['config_value']
if( str(partner_own_smtp_value) == "1"):
partner_SMTP_COUNT_password = str(MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_user_pwd',
'valide': '1',
'locked': '0'}, {'config_value':1} )['config_value'])
partner_SMTP_COUNT_smtpsrv = str(MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_server',
'valide': '1',
'locked': '0'}, {'config_value':1})['config_value'])
partner_SMTP_COUNT_user = str(MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_user',
'valide': '1',
'locked': '0'}, {'config_value':1})['config_value'])
partner_SMTP_COUNT_From_User = str(MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_count_from_name',
'valide': '1',
'locked': '0'}, {'config_value':1})['config_value'])
partner_SMTP_COUNT_port = str(MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_count_port',
'valide': '1',
'locked': '0'}, {'config_value':1})['config_value'])
if (str(partner_own_smtp_value) == "1"):
smtpserver = smtplib.SMTP(partner_SMTP_COUNT_smtpsrv, partner_SMTP_COUNT_port)
else:
smtpserver = smtplib.SMTP(MYSY_GV.O365_SMTP_COUNT_smtpsrv, MYSY_GV.O365_SMTP_COUNT_port)
"""
La commande est envoyée à l'adresse email qui se trouve sur la commande, le champ : 'order_header_email_client'.
Si ce champ est vide alors on regarde si il y a un email sur la fiche client.
"""
client_main_mail_tmp = "" client_main_mail_tmp = ""
client_invoice_email_tmp = ""
if( 'email' in Order_header_client_data.keys()):
client_main_mail_tmp = Order_header_client_data['email']
if ('invoice_email' in Order_header_client_data.keys()): if ("order_header_email_client" in Order_header_data.keys() and Order_header_data['order_header_email_client']):
client_invoice_email_tmp = Order_header_client_data['invoice_email'] client_main_mail_tmp = str(Order_header_data['order_header_email_client'])
if (mycommon.isEmailValide(client_main_mail_tmp) is True): if (mycommon.isEmailValide(client_main_mail_tmp) is True):
msg['To'] = client_main_mail_tmp msg['To'] = client_main_mail_tmp
if (mycommon.isEmailValide(client_invoice_email_tmp) is True): else:
msg['Cc'] = client_invoice_email_tmp mycommon.myprint(str(inspect.stack()[0][
3]) + " - L'adresse email sur la commande n'est pas valide ")
return False, " L'adresse email sur la commande n'est pas valide "
else:
mycommon.myprint(str(inspect.stack()[0][
3]) + " - Aucune adresse email sur la commande ")
return False, " Aucune adresse email sur la commande "
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
msg['Bcc'] = 'contact@mysy-training.com'
msg['Subject'] = sujetHtml
smtpserver.ehlo()
smtpserver.starttls() if (str(partner_own_smtp_value) == "1"):
smtpserver.login(MYSY_GV.O365_SMTP_COUNT_user, MYSY_GV.O365_SMTP_COUNT_password) msg['From'] = partner_SMTP_COUNT_From_User
msg['Bcc'] = 'contact@mysy-training.com'
msg['Subject'] = sujetHtml
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.login(partner_SMTP_COUNT_user, partner_SMTP_COUNT_password)
else:
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
msg['Bcc'] = 'contact@mysy-training.com'
msg['Subject'] = sujetHtml
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.login(MYSY_GV.O365_SMTP_COUNT_user, MYSY_GV.O365_SMTP_COUNT_password)
val = smtpserver.send_message(msg) val = smtpserver.send_message(msg)
smtpserver.close() smtpserver.close()
print(" Email envoyé " + str(val)) print(" Email envoyé " + str(val))

View File

@ -4614,38 +4614,135 @@ def Send_Partner_Order_By_Email(diction):
#print(" #### sourceHtml = ", sourceHtml) #print(" #### sourceHtml = ", sourceHtml)
"""
Recuperation des parametre SMTP du partner si le client a decidé d'utiliser son propre smpt
"""
partner_own_smtp_value = "0"
partner_own_smtp = MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid':str(my_partner['recid']),
'config_name': 'partner_smtp',
'valide': '1',
'locked': '0'})
print("debut envoi mail de test ") if (partner_own_smtp and "config_value" in partner_own_smtp.keys()):
msg = EmailMessage() partner_own_smtp_value = partner_own_smtp['config_value']
msg.set_content(sourceHtml, subtype='html')
smtpserver = smtplib.SMTP(MYSY_GV.O365_SMTP_COUNT_smtpsrv, MYSY_GV.O365_SMTP_COUNT_port)
client_main_mail_tmp = "" if (str(partner_own_smtp_value) == "1"):
client_invoice_email_tmp = "" partner_SMTP_COUNT_password = str(MYSY_GV.dbname['base_partner_setup'].find_one(
if ('email' in Order_header_client_data.keys()): {'partner_owner_recid': str(my_partner['recid']),
client_main_mail_tmp = Order_header_client_data['email'] 'config_name': 'smtp_user_pwd',
'valide': '1',
'locked': '0'}, {'config_value': 1})['config_value'])
if ('invoice_email' in Order_header_client_data.keys()): partner_SMTP_COUNT_smtpsrv = str(MYSY_GV.dbname['base_partner_setup'].find_one(
client_invoice_email_tmp = Order_header_client_data['invoice_email'] {'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_server',
'valide': '1',
'locked': '0'}, {'config_value': 1})['config_value'])
if (mycommon.isEmailValide(client_main_mail_tmp) is True): partner_SMTP_COUNT_user = str(MYSY_GV.dbname['base_partner_setup'].find_one(
msg['To'] = client_main_mail_tmp {'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_user',
'valide': '1',
'locked': '0'}, {'config_value': 1})['config_value'])
if (mycommon.isEmailValide(client_invoice_email_tmp) is True): partner_SMTP_COUNT_From_User = str(MYSY_GV.dbname['base_partner_setup'].find_one(
msg['Cc'] = client_invoice_email_tmp {'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_count_from_name',
'valide': '1',
'locked': '0'}, {'config_value': 1})['config_value'])
partner_SMTP_COUNT_port = str(MYSY_GV.dbname['base_partner_setup'].find_one(
{'partner_owner_recid': str(my_partner['recid']),
'config_name': 'smtp_count_port',
'valide': '1',
'locked': '0'}, {'config_value': 1})['config_value'])
if (str(partner_own_smtp_value) == "1"):
print("debut envoi mail de test ")
msg = EmailMessage()
msg.set_content(sourceHtml, subtype='html')
smtpserver = smtplib.SMTP(partner_SMTP_COUNT_smtpsrv, partner_SMTP_COUNT_port)
"""
La commande est envoyée à l'adresse email qui se trouve sur la commande, le champ : 'order_header_email_client'.
Si ce champ est vide alors on regarde si il y a un email sur la fiche client.
"""
client_main_mail_tmp = ""
if ("order_header_email_client" in Order_header_data.keys() and Order_header_data[
'order_header_email_client']):
client_main_mail_tmp = str(Order_header_data['order_header_email_client'])
if (mycommon.isEmailValide(client_main_mail_tmp) is True):
msg['To'] = client_main_mail_tmp
else:
mycommon.myprint(str(inspect.stack()[0][
3]) + " - L'adresse email sur la commande n'est pas valide ")
return False, " L'adresse email sur la commande n'est pas valide "
else:
mycommon.myprint(str(inspect.stack()[0][
3]) + " - Aucune adresse email sur la commande ")
return False, " Aucune adresse email sur la commande "
msg['From'] = partner_SMTP_COUNT_From_User
msg['Bcc'] = 'contact@mysy-training.com'
msg['Subject'] = sujetHtml
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.login(partner_SMTP_COUNT_user, partner_SMTP_COUNT_password)
val = smtpserver.send_message(msg)
smtpserver.close()
print(" Email envoyé " + str(val))
else:
print("debut envoi mail de test ")
msg = EmailMessage()
msg.set_content(sourceHtml, subtype='html')
smtpserver = smtplib.SMTP(MYSY_GV.O365_SMTP_COUNT_smtpsrv, MYSY_GV.O365_SMTP_COUNT_port)
"""
La commande est envoyée à l'adresse email qui se trouve sur la commande, le champ : 'order_header_email_client'.
Si ce champ est vide alors on regarde si il y a un email sur la fiche client.
"""
client_main_mail_tmp = ""
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User if( "order_header_email_client" in Order_header_data.keys() and Order_header_data['order_header_email_client']):
msg['Bcc'] = 'contact@mysy-training.com' client_main_mail_tmp = str(Order_header_data['order_header_email_client'])
msg['Subject'] = sujetHtml
smtpserver.ehlo() if (mycommon.isEmailValide(client_main_mail_tmp) is True):
smtpserver.starttls() msg['To'] = client_main_mail_tmp
smtpserver.login(MYSY_GV.O365_SMTP_COUNT_user, MYSY_GV.O365_SMTP_COUNT_password)
val = smtpserver.send_message(msg) else:
smtpserver.close() mycommon.myprint(str(inspect.stack()[0][
print(" Email envoyé " + str(val)) 3]) + " - L'adresse email sur la commande n'est pas valide ")
return False, " L'adresse email sur la commande n'est pas valide "
else:
mycommon.myprint(str(inspect.stack()[0][
3]) + " - Aucune adresse email sur la commande ")
return False, " Aucune adresse email sur la commande "
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
msg['Bcc'] = 'contact@mysy-training.com'
msg['Subject'] = sujetHtml
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.login(MYSY_GV.O365_SMTP_COUNT_user, MYSY_GV.O365_SMTP_COUNT_password)
val = smtpserver.send_message(msg)
smtpserver.close()
print(" Email envoyé " + str(val))
return True, " La commande a été envoyée par email à :'"+str(client_main_mail_tmp)+"' " return True, " La commande a été envoyée par email à :'"+str(client_main_mail_tmp)+"' "

View File

@ -3393,6 +3393,8 @@ def strip_dictionary(orig_diction):
else : else :
orig_diction[key] = orig_diction[key].strip() orig_diction[key] = orig_diction[key].strip()
return orig_diction return orig_diction