25/09/2023 - 12h40
parent
152afbf49d
commit
951d495b91
|
@ -1,8 +1,15 @@
|
|||
<?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="22/09/2023 - 12h53">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="22/09/2023 - 18h53">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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$/class_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/class_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ela_index_bdd_classes.py" beforeDir="false" afterPath="$PROJECT_DIR$/ela_index_bdd_classes.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/partner_client.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_client.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/partner_order.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_order.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
@ -66,13 +73,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00060" summary="06/08/23 - 23h">
|
||||
<created>1691356503671</created>
|
||||
<option name="number" value="00060" />
|
||||
<option name="presentableId" value="LOCAL-00060" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1691356503671</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00061" summary="08/08/2023 - 16h">
|
||||
<created>1691504850587</created>
|
||||
<option name="number" value="00061" />
|
||||
|
@ -409,7 +409,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1695380023776</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="109" />
|
||||
<task id="LOCAL-00109" summary="22/09/2023 - 18h53">
|
||||
<created>1695401442385</created>
|
||||
<option name="number" value="00109" />
|
||||
<option name="presentableId" value="LOCAL-00109" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1695401442386</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="110" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -424,7 +431,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="26/08/23 - 20h" />
|
||||
<MESSAGE value="27/08/23 - 13h" />
|
||||
<MESSAGE value="27/08/23 - 22h" />
|
||||
<MESSAGE value="28/08/23 - 13h30" />
|
||||
|
@ -449,6 +455,7 @@
|
|||
<MESSAGE value="15/09/2023 - 12h" />
|
||||
<MESSAGE value="15/09/2023 - 18h" />
|
||||
<MESSAGE value="22/09/2023 - 12h53" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="22/09/2023 - 12h53" />
|
||||
<MESSAGE value="22/09/2023 - 18h53" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="22/09/2023 - 18h53" />
|
||||
</component>
|
||||
</project>
|
|
@ -4623,7 +4623,7 @@ On y ajoute la formation concernée
|
|||
"""
|
||||
def Get_Statgaire_List_Partner_with_filter(diction):
|
||||
try:
|
||||
field_list = ['token', 'class_internal_url', 'code_session', 'status', 'email', 'nom', 'class_title', 'code_session']
|
||||
field_list = ['token', 'class_internal_url', 'code_session', 'status', 'email', 'nom', 'class_title', 'code_session','client_nom']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -4709,7 +4709,28 @@ def Get_Statgaire_List_Partner_with_filter(diction):
|
|||
|
||||
filt_class_partner_recid = {'partner_owner_recid': str(partner_recid)}
|
||||
|
||||
query = [{'$match':{ '$and' : [ filt_class_internal_url, filt_session_id, filt_email, filt_nom, {'partner_owner_recid':str(partner_recid)}] } },
|
||||
|
||||
# -----
|
||||
|
||||
filt_client_nom = {}
|
||||
sub_filt_client_nom = {}
|
||||
Lists_partner_client_id = []
|
||||
if ("client_nom" in diction.keys()):
|
||||
sub_filt_client_nom = {'nom': {'$regex': str(diction['client_nom']), "$options": "i"},
|
||||
'partner_recid': str(partner_recid), 'valide': '1', 'locked': '0'}
|
||||
# Recuperation des '_id' des clients dont le nom match en regexp
|
||||
# print(" ### sub_filt_client_nom = ", sub_filt_client_nom)
|
||||
for List_Client_Data in MYSY_GV.dbname['partner_client'].find(sub_filt_client_nom, {'_id': 1}):
|
||||
Lists_partner_client_id.append(str(List_Client_Data['_id']))
|
||||
|
||||
filt_client_nom = {'client_rattachement_id': {'$in': Lists_partner_client_id, }}
|
||||
# print(' ### filt_client_nom = ', filt_client_nom)
|
||||
|
||||
|
||||
#----
|
||||
|
||||
|
||||
query = [{'$match':{ '$and' : [ filt_class_internal_url, filt_session_id, filt_email, filt_nom, filt_client_nom, {'partner_owner_recid':str(partner_recid)}] } },
|
||||
{'$lookup':
|
||||
{
|
||||
'from': 'myclass',
|
||||
|
|
2682
Log/log_file.log
2682
Log/log_file.log
File diff suppressed because it is too large
Load Diff
112
class_mgt.py
112
class_mgt.py
|
@ -3794,6 +3794,7 @@ Cette fonction supprime definitivement une formation.
|
|||
/!\ : Une formation n'est supprimable que si :
|
||||
1 - Il n'y a aucune session à venir. toutes les sessions sont passée.
|
||||
2 - Si il y a des sessions, alors impossible de la supprimer. Proposer plus tard la notion d'archivage
|
||||
3 - Dans la suppression, aller supprimer les champs dans la collection "elaindex"
|
||||
"""
|
||||
def delete_Class(diction):
|
||||
try:
|
||||
|
@ -3881,6 +3882,11 @@ def delete_Class(diction):
|
|||
if( delete_doc.deleted_count > 0 ):
|
||||
return True, " La formation a été correctement supprimée"
|
||||
else:
|
||||
# Une formation a été supprimer, maintenant il faut supprimer les champs associés dans la collection "elaindex"
|
||||
qry_elaindex_to_delete = {"partner_owner_recid":str(my_partner['recid']), "id_formation":str(Myclass_Data['external_code'])}
|
||||
MYSY_GV.dbname['elaindex'].delete_many(qry_elaindex_to_delete)
|
||||
|
||||
|
||||
return True, " Aucune formation supprimée"
|
||||
|
||||
except Exception as e:
|
||||
|
@ -3889,3 +3895,109 @@ def delete_Class(diction):
|
|||
return False, " Impossible de supprimer la formation "
|
||||
|
||||
|
||||
"""
|
||||
Cette fonction supprime definitivement une formation, en utilisant l'internal_url
|
||||
|
||||
/!\ : Une formation n'est supprimable que si :
|
||||
1 - Il n'y a aucune session à venir. toutes les sessions sont passée.
|
||||
2 - Si il y a des sessions, alors impossible de la supprimer. Proposer plus tard la notion d'archivage
|
||||
3 - Dans la suppression, aller supprimer les champs dans la collection "elaindex"
|
||||
"""
|
||||
def delete_Class_by_internal_url(diction):
|
||||
try:
|
||||
diction = mycommon.strip_dictionary(diction)
|
||||
|
||||
"""
|
||||
Verification des input acceptés
|
||||
"""
|
||||
field_list = ['token', 'class_internal_url', ]
|
||||
|
||||
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][3]) + " Le champ '" + val + "' n'existe pas")
|
||||
return False, " Les informations fournies sont incorrectes",
|
||||
|
||||
"""
|
||||
Verification des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['token', 'class_internal_url',]
|
||||
|
||||
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 liste ")
|
||||
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']
|
||||
|
||||
# Verifier la validité du token
|
||||
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
|
||||
if (local_status is not True):
|
||||
return local_status, my_partner
|
||||
|
||||
|
||||
# Verifier qu'une seule formation sera supprimée
|
||||
Myclass_Data_count = MYSY_GV.dbname['myclass'].count_documents({'internal_url': str(diction['class_internal_url']),
|
||||
'partner_owner_recid': str(my_partner['recid'])})
|
||||
|
||||
if( Myclass_Data_count <= 0 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - La formation est invalide ")
|
||||
return False, " La formation est invalide ",
|
||||
|
||||
if( Myclass_Data_count > 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - L'identifiant fourni correspond à plusieurs formation. Suppression annulée ")
|
||||
return False, " L'identifiant fourni correspond à plusieurs formation. Suppression annulée",
|
||||
|
||||
# Receprer le 'internal_url_"
|
||||
Myclass_Data = MYSY_GV.dbname['myclass'].find_one({'internal_url': str(diction['class_internal_url']),
|
||||
'partner_owner_recid':str(my_partner['recid'])})
|
||||
|
||||
if( Myclass_Data is None):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - La formation est invalide ")
|
||||
return False, " La formation est invalide ",
|
||||
|
||||
# Verifier qu'il n'y a pas de session associée à cette formation
|
||||
existe_Session_count = MYSY_GV.dbname['session_formation'].count_documents({'class_internal_url':str(Myclass_Data['internal_url']),
|
||||
'partner_owner_recid':str(my_partner['recid']),
|
||||
'valide':'1'})
|
||||
|
||||
|
||||
if( existe_Session_count > 0 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - La formation a "+str(existe_Session_count)+" session(s) valide(s). Suppression impossible")
|
||||
return False, " La formation a "+str(existe_Session_count)+" session(s) valide(s). Suppression impossible"
|
||||
|
||||
|
||||
|
||||
delete_doc = MYSY_GV.dbname['myclass'].delete_many({'_id':ObjectId(str(Myclass_Data['_id'])),
|
||||
'partner_owner_recid':str(my_partner['recid'])})
|
||||
|
||||
|
||||
if( delete_doc.deleted_count > 0 ):
|
||||
return True, " La formation a été correctement supprimée"
|
||||
else:
|
||||
# Une formation a été supprimer, maintenant il faut supprimer les champs associés dans la collection "elaindex"
|
||||
qry_elaindex_to_delete = {"partner_owner_recid":str(my_partner['recid']), "id_formation":str(Myclass_Data['external_code'])}
|
||||
MYSY_GV.dbname['elaindex'].delete_many(qry_elaindex_to_delete)
|
||||
|
||||
|
||||
return True, " Aucune formation supprimée"
|
||||
|
||||
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 supprimer la formation "
|
||||
|
||||
|
|
|
@ -206,7 +206,7 @@ Pour chaque mot clé,
|
|||
1 - Ajouter le mot dans la collection "word_not_stem" pour eviter les effets de traduction
|
||||
2 - Ajouter les mot dans la collection "elaindex" avec une occurrence par defaut de 1000, source_field = 'keyword', moyanne = "1"
|
||||
"""
|
||||
def ela_index_class_key_word(external_code="", source_field = ""):
|
||||
def ela_index_class_key_word(external_code="", source_field = "", partner_owner_recid=""):
|
||||
try:
|
||||
|
||||
if( str(external_code).strip() == "" or str(source_field).strip() == "" ):
|
||||
|
@ -233,7 +233,8 @@ def ela_index_class_key_word(external_code="", source_field = ""):
|
|||
On supprimer les anciens mots indexé
|
||||
"""
|
||||
MYSY_GV.dbname['elaindex'].delete_many({ 'source_field': 'keyword',
|
||||
'id_formation': str(local_class['external_code'])})
|
||||
'id_formation': str(local_class['external_code']),
|
||||
'partner_owner_recid':str(partner_owner_recid)})
|
||||
|
||||
MYSY_GV.dbname['word_not_stem'].delete_many({'id_formation': str(local_class['external_code'])})
|
||||
|
||||
|
@ -257,7 +258,8 @@ def ela_index_class_key_word(external_code="", source_field = ""):
|
|||
# Ajouter les mot dans la collection "elaindex" avec une occurrence par defaut de 1000, source_field = 'keyword', moyanne = "1"
|
||||
MYSY_GV.dbname['elaindex'].insert_one({'mots': str(val).strip().lower(), 'occurence': 1000,
|
||||
'source_field':'keyword', 'moyenne':"1",
|
||||
'id_formation':str(local_class['external_code'])})
|
||||
'id_formation':str(local_class['external_code']),
|
||||
'partner_owner_recid':str(partner_owner_recid)})
|
||||
|
||||
|
||||
|
||||
|
|
36
main.py
36
main.py
|
@ -2132,7 +2132,7 @@ def RenseignementClass():
|
|||
|
||||
"""
|
||||
Cette API permet de supprimer une formation si elle n'a aucune session
|
||||
de formation valide
|
||||
de formation valide. la fonction utilise l'_id
|
||||
"""
|
||||
@app.route('/myclass/api/delete_Class/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
|
@ -2143,6 +2143,21 @@ def delete_Class():
|
|||
localStatus, message= cm.delete_Class(payload)
|
||||
return jsonify(status=localStatus, message=message )
|
||||
|
||||
"""
|
||||
Cette API permet de supprimer une formation si elle n'a aucune session
|
||||
de formation valide. la fonction utilise l'internal_url
|
||||
"""
|
||||
@app.route('/myclass/api/delete_Class_by_internal_url/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
def delete_Class_by_internal_url():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = mycommon.strip_dictionary (request.form.to_dict())
|
||||
print(" ### delete_Class_by_internal_url : payload = ",str(payload))
|
||||
localStatus, message= cm.delete_Class_by_internal_url(payload)
|
||||
return jsonify(status=localStatus, message=message )
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
API d'envoi de la liste d'emargement
|
||||
|
@ -3529,6 +3544,25 @@ def Get_Given_Partner_Client():
|
|||
return jsonify(status=localStatus, message=message)
|
||||
|
||||
|
||||
"""
|
||||
API de suppression d'un client
|
||||
Avant il faut verifier :
|
||||
1 - pas de stagiaire associé
|
||||
2 - Pas de devis associé
|
||||
3 - Pas de commande associé
|
||||
"""
|
||||
@app.route('/myclass/api/Delete_Given_Partner_Client/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
def Delete_Given_Partner_Client():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = mycommon.strip_dictionary (request.form.to_dict())
|
||||
print(" ### Delete_Given_Partner_Client : payload = ",payload)
|
||||
localStatus, message = partner_client.Delete_Given_Partner_Client(payload)
|
||||
return jsonify(status=localStatus, message=message)
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
API qui permet de modifier un contact donnée (nested list) d'un client de partenaire
|
||||
"""
|
||||
|
|
|
@ -1061,4 +1061,103 @@ def Add_Partner_Client_mass(file=None, Folder=None, diction=None):
|
|||
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 d'importer les client en masse "
|
||||
return False, " Impossible d'importer les client en masse "
|
||||
|
||||
|
||||
"""
|
||||
Cette fonction supprime un client.
|
||||
Avant il faut verifier :
|
||||
1 - pas de stagiaire associé
|
||||
2 - Pas de devis associé
|
||||
3 - Pas de commande associé
|
||||
"""
|
||||
def Delete_Given_Partner_Client(diction):
|
||||
try:
|
||||
diction = mycommon.strip_dictionary(diction)
|
||||
|
||||
"""
|
||||
Verification des input acceptés
|
||||
"""
|
||||
field_list = ['token', '_id']
|
||||
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][3]) + " Le champ '" + val + "' n'existe pas")
|
||||
return False, " Les informations fournies sont incorrectes",
|
||||
|
||||
"""
|
||||
Verification des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['token','_id' ]
|
||||
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 liste ")
|
||||
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
|
||||
|
||||
|
||||
|
||||
# Verification de la validé du client
|
||||
is_existe_client_count = MYSY_GV.dbname['partner_client'].count_documents({'_id':ObjectId(str(diction['_id'])), 'partner_recid':str(my_partner['recid'])})
|
||||
if( is_existe_client_count <= 0 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Le client n'est pas valide ")
|
||||
return False, " - Le client n'est pas valide ",
|
||||
|
||||
if (is_existe_client_count > 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Plusieurs clients ont le même identifiant. Suppression annulée")
|
||||
return False, " - Plusieurs clients ont le même identifiant. Suppression annulée",
|
||||
|
||||
|
||||
# Verifier qu'il n'y pas de stagiaire associé
|
||||
is_Stagiaire_Count = MYSY_GV.dbname['inscription'].count_documents({'client_rattachement_id':str(diction['_id']),
|
||||
'partner_owner_recid':str(my_partner['recid']),
|
||||
'valide':'1'})
|
||||
if( is_Stagiaire_Count > 0 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Le client a "+str(is_Stagiaire_Count)+" stagiaire(s) valide(s). Suppression annulée ")
|
||||
return False, " - Le client a "+str(is_Stagiaire_Count)+" stagiaire(s) valide(s). Suppression annulée ",
|
||||
|
||||
# Verifier qu'il n'y pas de devis ou commande associé
|
||||
is_devis_cmd_Count = MYSY_GV.dbname['partner_order_header'].count_documents(
|
||||
{'order_header_client_id': str(diction['_id']),
|
||||
'partner_owner_recid': str(my_partner['recid']),
|
||||
'valide': '1'})
|
||||
if (is_devis_cmd_Count > 0):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Le client a " + str(
|
||||
is_devis_cmd_Count) + " commande(s) ou devis valide(s). Suppression annulée ")
|
||||
return False, " - Le client a " + str(
|
||||
is_devis_cmd_Count) + " commande(s) ou devis valide(s). Suppression annulée"
|
||||
|
||||
|
||||
|
||||
# Supression à faire
|
||||
MYSY_GV.dbname['partner_client'].delete_one({'_id':ObjectId(str(diction['_id'])), 'partner_recid':str(my_partner['recid'])})
|
||||
|
||||
|
||||
return True, "La suppression du client a été correctement faite."
|
||||
|
||||
|
||||
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 supprimer le client "
|
||||
|
||||
|
||||
|
|
|
@ -431,12 +431,25 @@ def Add_Partner_Order(diction):
|
|||
"""
|
||||
|
||||
### 1 - Creation de l'entete
|
||||
"""
|
||||
/!\ Update du 24/09/2023 :
|
||||
Si on ne trouve pas une sequence propre au partenaire (partner_owner_recid), alors on va chercher
|
||||
la sequence par defaut dont partner_owner_recid = 'default'
|
||||
"""
|
||||
|
||||
# Rcuperation de la sequence de l'objet "lms_user_id" dans la collection : "mysy_sequence"
|
||||
# Rcuperation de la sequence de l'objet "partner_order_header" dans la collection : "mysy_sequence"
|
||||
retval_sequence_order = MYSY_GV.dbname['mysy_sequence'].find_one({'related_mysy_object': 'partner_order_header',
|
||||
'valide': '1', 'partner_owner_recid':str(my_partner['recid'])})
|
||||
|
||||
if (retval_sequence_order is None):
|
||||
# Il n'y pas de sequence pour le partenaire, on va aller chercher la sequence par defaut
|
||||
retval_sequence_order = MYSY_GV.dbname['mysy_sequence'].find_one(
|
||||
{'related_mysy_object': 'partner_order_header',
|
||||
'valide': '1', 'partner_owner_recid': 'default'})
|
||||
|
||||
|
||||
if (retval_sequence_order is None or "current_val" not in retval_sequence_order.keys()):
|
||||
# Il n'y aucune sequence meme par defaut.
|
||||
mycommon.myprint(" Impossible de récupérer la sequence 'retval_sequence_order' ")
|
||||
return False, "Impossible de récupérer la sequence 'retval_sequence_order'", False
|
||||
|
||||
|
@ -904,12 +917,26 @@ def Add_Partner_Quotation(diction):
|
|||
|
||||
### 1 - Creation de l'entete
|
||||
|
||||
# Rcuperation de la sequence de l'objet "lms_user_id" dans la collection : "mysy_sequence"
|
||||
# Rcuperation de la sequence de l'objet "partner_quotation_header" dans la collection : "mysy_sequence"
|
||||
"""
|
||||
/!\ Update du 24/09/2023 :
|
||||
Si on ne trouve pas une sequence propre au partenaire (partner_owner_recid), alors on va chercher
|
||||
la sequence par defaut dont partner_owner_recid = 'default'
|
||||
"""
|
||||
|
||||
retval_sequence_order = MYSY_GV.dbname['mysy_sequence'].find_one({'related_mysy_object': 'partner_quotation_header',
|
||||
'valide': '1', 'partner_owner_recid': str(
|
||||
my_partner['recid'])})
|
||||
|
||||
|
||||
if( retval_sequence_order is None ):
|
||||
# Il n'y pas de sequence pour le partenaire, on va aller chercher la sequence par defaut
|
||||
retval_sequence_order = MYSY_GV.dbname['mysy_sequence'].find_one(
|
||||
{'related_mysy_object': 'partner_quotation_header',
|
||||
'valide': '1', 'partner_owner_recid': 'default'})
|
||||
|
||||
if (retval_sequence_order is None or "current_val" not in retval_sequence_order.keys()):
|
||||
# Il n'y a aucune sequence, meme par defaut.
|
||||
mycommon.myprint(" Impossible de récupérer la sequence 'retval_sequence_order' ")
|
||||
return False, "Impossible de récupérer la sequence 'retval_sequence_order'", False
|
||||
|
||||
|
|
Loading…
Reference in New Issue