06/03/2024 - 22h15

master
cherif 2024-03-06 22:11:53 +01:00
parent 4d2f74ece1
commit 9048dc6d15
3 changed files with 3334 additions and 4 deletions

View File

@ -5,7 +5,6 @@
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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$/crm_opportunite.py" beforeDir="false" afterPath="$PROJECT_DIR$/crm_opportunite.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

File diff suppressed because it is too large Load Diff

View File

@ -341,7 +341,8 @@ def Get_List_CRM_Opportunite_with_filter(diction):
"""
Verification des input acceptés
"""
field_list = ['token', 'vendeur_id', ]
field_list = ['token', 'vendeur_id', 'revenu_cible_superieur', 'revenu_cible_inferieur','date_fermeture_avant',
'date_fermeture_apres', 'partner_client_nom', 'titre']
incom_keys = diction.keys()
for val in incom_keys:
@ -374,16 +375,92 @@ def Get_List_CRM_Opportunite_with_filter(diction):
if (local_status is not True):
return local_status, my_partner
filt_titre = {}
if ("titre" in diction.keys()):
filt_titre = {'titre': {'$regex': str(diction['titre']), "$options": "i"}}
filt_vendeur_id = {}
if ("vendeur_id" in diction.keys()):
filt_vendeur_id = {'vendeur_id': str(diction['vendeur_id'])}
# Recuperer les client dont le nom contient 'partner_client_nom'
filt_partner_client_id = {}
list_client_id = []
if ("partner_client_nom" in diction.keys() and diction['partner_client_nom']):
qry_sub_filter_client = {'nom': {'$regex': str(diction['partner_client_nom']), "$options": "i"},
'partner_recid':my_partner['recid'], 'valide':'1', 'locked':'0'}
for tmp_val in MYSY_GV.dbname['partner_client'].find(qry_sub_filter_client):
list_client_id.append(str(tmp_val['_id']))
filt_partner_client_id = { 'partner_client_id': { '$in': list_client_id } }
filt_revenu_cible_superieur = {}
if ("revenu_cible_superieur" in diction.keys() and diction['revenu_cible_superieur']):
val_revenu_cible_superieur = diction['revenu_cible_superieur']
local_status, local_val = mycommon.IsFloat(val_revenu_cible_superieur)
if( local_status is False) :
mycommon.myprint(
str(inspect.stack()[0][
3]) + " Le revenu cible superieur " + str(
val) + " n'est pas valide ")
return False, " Le revenu cible superieur " + str(
val) + " n'est pas valide "
filt_revenu_cible_superieur = { '$expr': { '$gte': [{ '$toDouble': '$revenu_cible'}, local_val]}}
filt_revenu_cible_inferieur = {}
if ("revenu_cible_inferieur" in diction.keys() and diction['revenu_cible_inferieur']):
val_revenu_cible_inferieur = diction['revenu_cible_inferieur']
local_status, local_val = mycommon.IsFloat(val_revenu_cible_inferieur)
if (local_status is False):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " Le revenu cible superieur " + str(
val) + " n'est pas valide ")
return False, " Le revenu cible superieur " + str(
val) + " n'est pas valide "
filt_revenu_cible_inferieur = { '$expr': { '$lte': [{ '$toDouble': '$revenu_cible'}, local_val]}}
filter_date_fermeture_avant = {}
if ("date_fermeture_avant" in diction.keys()):
if diction['date_fermeture_avant']:
filter_date_fermeture_avant = str(diction['date_fermeture_avant'])[0:10]
local_status = mycommon.CheckisDate(filter_date_fermeture_avant)
if (local_status is False):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " La date de fermeture " + str(filter_date_fermeture_avant) + " n'est pas au format 'jj/mm/aaaa' ")
return False, " La date de fermeture " + str(filter_date_fermeture_avant) + " n'est pas au format 'jj/mm/aaaa'"
filter_date_fermeture_apres = {}
if ("date_fermeture_apres" in diction.keys()):
if diction['date_fermeture_apres']:
filter_date_fermeture_apres = str(diction['date_fermeture_apres'])[0:10]
local_status = mycommon.CheckisDate(filter_date_fermeture_apres)
if (local_status is False):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " La date de fermeture " + str(
filter_date_fermeture_apres) + " n'est pas au format 'jj/mm/aaaa' ")
return False, " La date de fermeture " + str(
filter_date_fermeture_apres) + " n'est pas au format 'jj/mm/aaaa'"
RetObject = []
val_tmp = 0
qry = {"partner_owner_recid":str(my_partner['recid']), 'valide':'1', 'locked':'0'}
query_with_filter = {'$and': [qry, filt_vendeur_id ]}
query_with_filter = {'$and': [qry, filt_titre, filt_vendeur_id, filt_revenu_cible_superieur,
filt_revenu_cible_inferieur, filt_partner_client_id, filt_partner_client_id ]}
print(" #### query_with_filter ttt = ", query_with_filter)
for New_retVal in MYSY_GV.dbname['crm_opportunite'].find(query_with_filter).sort([("_id", pymongo.DESCENDING), ]):
user = New_retVal
@ -458,10 +535,29 @@ def Get_List_CRM_Opportunite_with_filter(diction):
if ("probabilite_gain" not in New_retVal.keys()):
user['probabilite_gain'] = ""
New_retVal_date_fermeture = datetime.strptime(str(New_retVal['date_fermeture'])[0:10], '%d/%m/%Y').strftime("%d/%m/%Y")
if (filter_date_fermeture_avant and filter_date_fermeture_apres):
RetObject.append(mycommon.JSONEncoder().encode(user))
if (datetime.strptime(str(New_retVal_date_fermeture)[0:10], '%d/%m/%Y') <= datetime.strptime(str(filter_date_fermeture_avant)[0:10], '%d/%m/%Y') and
datetime.strptime(str(New_retVal_date_fermeture)[0:10], '%d/%m/%Y') >= datetime.strptime(
str(filter_date_fermeture_apres)[0:10], '%d/%m/%Y')
):
RetObject.append(mycommon.JSONEncoder().encode(user))
elif (filter_date_fermeture_avant):
if ( datetime.strptime(str(New_retVal_date_fermeture)[0:10], '%d/%m/%Y') <= datetime.strptime(str(filter_date_fermeture_avant)[0:10], '%d/%m/%Y')):
RetObject.append(mycommon.JSONEncoder().encode(user))
elif (filter_date_fermeture_apres):
if ( datetime.strptime(str(New_retVal_date_fermeture)[0:10], '%d/%m/%Y') >= datetime.strptime(str(filter_date_fermeture_apres)[0:10], '%d/%m/%Y')):
RetObject.append(mycommon.JSONEncoder().encode(user))
else:
RetObject.append(mycommon.JSONEncoder().encode(user))
return True, RetObject