master
cherif 2024-08-31 14:14:31 +02:00
parent c33426eb74
commit 2b1d9ed044
3 changed files with 2274 additions and 61 deletions

View File

@ -1,7 +1,7 @@
<?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="dddqsdddd"> <list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="dddqsddddss">
<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$/Dashbord_queries/BPF.py" beforeDir="false" afterPath="$PROJECT_DIR$/Dashbord_queries/BPF.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Dashbord_queries/BPF.py" beforeDir="false" afterPath="$PROJECT_DIR$/Dashbord_queries/BPF.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" />
@ -74,13 +74,6 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1680804787304</updated> <updated>1680804787304</updated>
</task> </task>
<task id="LOCAL-00335" summary="ss">
<created>1718903703379</created>
<option name="number" value="00335" />
<option name="presentableId" value="LOCAL-00335" />
<option name="project" value="LOCAL" />
<updated>1718903703380</updated>
</task>
<task id="LOCAL-00336" summary="21/06/24 - 22h30"> <task id="LOCAL-00336" summary="21/06/24 - 22h30">
<created>1719001828472</created> <created>1719001828472</created>
<option name="number" value="00336" /> <option name="number" value="00336" />
@ -417,7 +410,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1725013352921</updated> <updated>1725013352921</updated>
</task> </task>
<option name="localTasksCounter" value="384" /> <task id="LOCAL-00384" summary="dddqsddddss">
<created>1725026643840</created>
<option name="number" value="00384" />
<option name="presentableId" value="LOCAL-00384" />
<option name="project" value="LOCAL" />
<updated>1725026643840</updated>
</task>
<option name="localTasksCounter" value="385" />
<servers /> <servers />
</component> </component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">
@ -459,7 +459,6 @@
</option> </option>
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<MESSAGE value="30/07/2024 - 12h" />
<MESSAGE value="31/07/2024 - 17h30" /> <MESSAGE value="31/07/2024 - 17h30" />
<MESSAGE value="01/08/2024 - 17h30" /> <MESSAGE value="01/08/2024 - 17h30" />
<MESSAGE value="02/08/2024 - 12h" /> <MESSAGE value="02/08/2024 - 12h" />
@ -484,6 +483,7 @@
<MESSAGE value="dddqsd" /> <MESSAGE value="dddqsd" />
<MESSAGE value="dddqsdd" /> <MESSAGE value="dddqsdd" />
<MESSAGE value="dddqsdddd" /> <MESSAGE value="dddqsdddd" />
<option name="LAST_COMMIT_MESSAGE" value="dddqsdddd" /> <MESSAGE value="dddqsddddss" />
<option name="LAST_COMMIT_MESSAGE" value="dddqsddddss" />
</component> </component>
</project> </project>

View File

@ -128,9 +128,11 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
On recherche le CA venant des client : is_client = 1, is_financeur != 1 On recherche le CA venant des client : is_client = 1, is_financeur != 1
""" """
C1_qery_match = {'$and': [{"partner_owner_recid": str(my_partner['recid'])}, C1_qery_match = {'$and': [
{"valide": '1'}, {"valide": '1', 'invoice_header_type': 'facture',
'credit_note_ref': {'$exists': False},
"partner_owner_recid": str(my_partner['recid'])
},
{ {
'mysy_invoice_date': {'$gte': filt_periode_start_date_ISODATE, 'mysy_invoice_date': {'$gte': filt_periode_start_date_ISODATE,
'$lte': filt_periode_end_date_ISODATE}}, ]} '$lte': filt_periode_end_date_ISODATE}}, ]}
@ -151,12 +153,9 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
} }
}, },
{'$match': {'invoice_header_type': 'facture', {'$match': C1_qery_match
'credit_note_ref': {'$exists': False},
'order_header_is_client':'1', 'order_header_is_company':'1', },
'invoice_header_ref_interne': {
'$in': ['Invoice_588', 'Invoice_589', 'Invoice_590', 'Invoice_591', 'Invoice_592',
'Invoice_593', 'Invoice_594', 'Invoice_595']}}},
{'$lookup': { {'$lookup': {
'from': 'partner_invoice_line_detail', 'from': 'partner_invoice_line_detail',
"let": {"invoice_header_id": {'$toString': "$_id"}, "let": {"invoice_header_id": {'$toString': "$_id"},
@ -219,10 +218,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
} }
}, },
{'$match': {'invoice_header_type': 'facture', {'$match': C1_qery_match },
'credit_note_ref': {'$exists': False},
'invoice_header_ref_interne': {
'$in': ['Invoice_588', 'Invoice_589', 'Invoice_590', 'Invoice_591', 'Invoice_592', 'Invoice_593', 'Invoice_594', 'Invoice_595' ]} } },
{'$lookup': { {'$lookup': {
'from': 'partner_invoice_line_detail', 'from': 'partner_invoice_line_detail',
"let": {"invoice_header_id": {'$toString': "$_id"}, "let": {"invoice_header_id": {'$toString': "$_id"},
@ -355,10 +351,8 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
} }
}, },
{'$match': {'invoice_header_type': 'facture', {'$match': C1_qery_match
'credit_note_ref': {'$exists': False}, },
'invoice_header_ref_interne': {
'$in': ['Invoice_588', 'Invoice_589', 'Invoice_590', 'Invoice_591', 'Invoice_592', 'Invoice_593', 'Invoice_594', 'Invoice_595' ]} } },
{'$lookup': { {'$lookup': {
'from': 'partner_invoice_line_detail', 'from': 'partner_invoice_line_detail',
"let": {"invoice_header_id": {'$toString': "$_id"}, "let": {"invoice_header_id": {'$toString': "$_id"},
@ -465,12 +459,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
} }
}, },
{'$match': {'invoice_header_type': 'facture', {'$match': C1_qery_match},
'credit_note_ref': {'$exists': False},
'order_header_is_company': '0',
'invoice_header_ref_interne': {
'$in': ['Invoice_588', 'Invoice_589', 'Invoice_590', 'Invoice_591', 'Invoice_592',
'Invoice_593', 'Invoice_594', 'Invoice_595']}}},
{'$lookup': { {'$lookup': {
'from': 'partner_invoice_line_detail', 'from': 'partner_invoice_line_detail',
"let": {"invoice_header_id": {'$toString': "$_id"}, "let": {"invoice_header_id": {'$toString': "$_id"},
@ -573,18 +562,18 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
{'$eq': ['$rh_id', '$$rh_id']}, {'$eq': ['$rh_id', '$$rh_id']},
{'$eq': ['$partner_owner_recid', '$$rh_partner_owner_recid']}, {'$eq': ['$partner_owner_recid', '$$rh_partner_owner_recid']},
{"$or": {"$and":
[ [
{'$and':[ {"$gt": [
{'$gte': [{'$toDate': "$mysy_contrat_date_debut"}, filt_periode_start_date_ISODATE]}, {
{'$lt': [{'$toDate': "$mysy_contrat_date_debut"}, filt_periode_end_date_ISODATE]} "$toDate": "$mysy_contrat_date_fin"
] },filt_periode_start_date_ISODATE
}, ]},
{'$and':[ {"$lt": [
{'$gt': [{'$toDate': "$mysy_contrat_date_fin"}, filt_periode_start_date_ISODATE]}, {
{'$lte': [{'$toDate': "$mysy_contrat_date_fin"}, filt_periode_end_date_ISODATE]} "$toDate": "$mysy_contrat_date_debut"
] },filt_periode_end_date_ISODATE
}, ]},
], ],
@ -614,6 +603,24 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
'from': 'agenda', 'from': 'agenda',
"let": {"rh_id": {'$toString': "$_id"}, 'rh_partner_owner_recid': '$partner_recid'}, "let": {"rh_id": {'$toString': "$_id"}, 'rh_partner_owner_recid': '$partner_recid'},
'pipeline': [ 'pipeline': [
{
"$addFields": {
"agenda_event_date_debut": {
"$dateFromString": {
'dateString': {"$substr": ["$event_start", 0, 10]},
"format": "%Y-%m-%d"
}
},
"agenda_event_date_fin": {
"$dateFromString": {
'dateString': {"$substr": ["$event_end", 0, 10]},
"format": "%Y-%m-%d"
}
},
}
},
{'$match': {'$match':
{'$expr': {'$expr':
{'$and': {'$and':
@ -623,6 +630,8 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
{'$eq': ["$related_collection_recid", '$$rh_id']}, {'$eq': ["$related_collection_recid", '$$rh_id']},
{'$eq': ["$partner_owner_recid", '$$rh_partner_owner_recid']}, {'$eq': ["$partner_owner_recid", '$$rh_partner_owner_recid']},
{'$eq': ["$event_type", 'planning']}, {'$eq': ["$event_type", 'planning']},
{'$gte': [{'$toDate': "$agenda_event_date_debut"},filt_periode_start_date_ISODATE]},
{'$lt': [{'$toDate': "$agenda_event_date_fin"}, filt_periode_end_date_ISODATE]}
] ]
} }
@ -647,12 +656,13 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
print(" ### E_pipe_qry_ressource_humaine__ressource_humaine_contrat = ", E_pipe_qry_ressource_humaine__ressource_humaine_contrat) print(" ### E_pipe_qry_ressource_humaine__ressource_humaine_contrat = ", E_pipe_qry_ressource_humaine__ressource_humaine_contrat)
for retval in MYSY_GV.dbname['ressource_humaine'].aggregate( for retval in MYSY_GV.dbname['ressource_humaine'].aggregate(
E_pipe_qry_ressource_humaine__ressource_humaine_contrat): E_pipe_qry_ressource_humaine__ressource_humaine_contrat):
#print(" ### retval (employé ayant un contrat valide) = ", retval) #print(" ### retval (employé ayant un contrat valide) = ", retval)
formateur_id = str(retval['_id']) formateur_id = str(retval['_id'])
formateur_data = str(retval['nom']) + " " + str(retval['prenom']) + " - " + str(retval['email']) + " - " + str(retval['_id']) formateur_data = str(retval['nom']) + " " + str(retval['prenom']) + " - " + str(retval['email']) + " - " + str(retval['_id'])
formateur_contrat_type = "" formateur_contrat_type = ""
if( "collection_ressource_humaine_contrat" in retval.keys() and "type_contrat" in retval['collection_ressource_humaine_contrat'].keys()): if( "collection_ressource_humaine_contrat" in retval.keys() and "type_contrat" in retval['collection_ressource_humaine_contrat'].keys()):
formateur_contrat_type = retval['collection_ressource_humaine_contrat'] formateur_contrat_type = retval['collection_ressource_humaine_contrat']["type_contrat"]
total_duration = 0 total_duration = 0
@ -676,7 +686,6 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
formateur_data = formateur_data+" - Nb_heure = "+str(total_duration)+" heure " formateur_data = formateur_data+" - Nb_heure = "+str(total_duration)+" heure "
if( formateur_contrat_type and formateur_contrat_type in ['vacataire', 'vacataire_qty']): if( formateur_contrat_type and formateur_contrat_type in ['vacataire', 'vacataire_qty']):
if( formateur_id not in tab_formateur_rh_id_sous_traitant ): if( formateur_id not in tab_formateur_rh_id_sous_traitant ):
tab_formateur_rh_id_sous_traitant.append(str(retval['_id'])) tab_formateur_rh_id_sous_traitant.append(str(retval['_id']))
@ -689,6 +698,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
tab_formateur_rh_interne_nom_prenom_mail.append(str(formateur_data)) tab_formateur_rh_interne_nom_prenom_mail.append(str(formateur_data))
tab_formateur_rh_interne_total_heure = tab_formateur_rh_interne_total_heure + total_duration tab_formateur_rh_interne_total_heure = tab_formateur_rh_interne_total_heure + total_duration
""" """
RetObject['tab_formateur_rh_id_interne'] = tab_formateur_rh_id_interne RetObject['tab_formateur_rh_id_interne'] = tab_formateur_rh_id_interne
RetObject['tab_formateur_rh_interne_nom_prenom_mail'] = tab_formateur_rh_interne_nom_prenom_mail RetObject['tab_formateur_rh_interne_nom_prenom_mail'] = tab_formateur_rh_interne_nom_prenom_mail
@ -746,6 +756,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
{'$eq': ["$valide", "1"]}, {'$eq': ["$valide", "1"]},
{'$eq': ["$partner_owner_recid", '$$partner_owner_recid']}, {'$eq': ["$partner_owner_recid", '$$partner_owner_recid']},
{'$gte': [{'$toDate': "$mysy_date_debut_session"}, filt_periode_start_date_ISODATE]}, {'$gte': [{'$toDate': "$mysy_date_debut_session"}, filt_periode_start_date_ISODATE]},
{'$lt': [{'$toDate': "$mysy_date_debut_session"}, filt_periode_end_date_ISODATE]},
] ]
} }
} }
@ -836,7 +847,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
for retval in MYSY_GV.dbname['inscription'].aggregate(F1_pipe_qry_stagiaire_par_class_level): for retval in MYSY_GV.dbname['inscription'].aggregate(F1_pipe_qry_stagiaire_par_class_level):
print(" ### retval = ", retval) #print(" ### retval = ", retval)
node = {} node = {}
node['Class_Level_Desc'] = retval['_id']['Class_Level_Desc'] node['Class_Level_Desc'] = retval['_id']['Class_Level_Desc']
@ -883,6 +894,8 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
{'$eq': ["$partner_owner_recid", '$$partner_owner_recid']}, {'$eq': ["$partner_owner_recid", '$$partner_owner_recid']},
{'$gte': [{'$toDate': "$mysy_date_debut_session"}, {'$gte': [{'$toDate': "$mysy_date_debut_session"},
filt_periode_start_date_ISODATE]}, filt_periode_start_date_ISODATE]},
{'$lt': [{'$toDate': "$mysy_date_debut_session"},
filt_periode_end_date_ISODATE]},
] ]
} }
} }
@ -903,7 +916,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
'localField': 'session_formation_collection.class_internal_url', 'localField': 'session_formation_collection.class_internal_url',
'foreignField': 'internal_url', 'foreignField': 'internal_url',
"pipeline": [ "pipeline": [
{'$project': {'title': 1, 'internal_url': 1, 'external_code': 1, 'published': 1, {'$project': {'_id':1, 'title': 1, 'internal_url': 1, 'external_code': 1, 'published': 1,
'duration': 1, 'duration_unit': 1, 'class_level': 1, 'partner_owner_recid':1}}, 'duration': 1, 'duration_unit': 1, 'class_level': 1, 'partner_owner_recid':1}},
{'$match': {'class_level': str(retval['_id']['Class_Level_Code']) , 'partner_owner_recid': str(my_partner['recid'])}}, {'$match': {'class_level': str(retval['_id']['Class_Level_Code']) , 'partner_owner_recid': str(my_partner['recid'])}},
@ -920,34 +933,57 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
]) ])
print(" ### pipe_concerned_class = ", pipe_concerned_class) #print(" ### pipe_concerned_class = ", pipe_concerned_class)
tab_class_info = []
tab_class_id = []
total_nb_heure_formation_by_level = 0 total_nb_heure_formation_by_level = 0
if( local_conversion_heure_status is True ): if( local_conversion_heure_status is True ):
for retval_pipe_concerned_class in MYSY_GV.dbname['inscription'].aggregate(pipe_concerned_class): for retval_pipe_concerned_class in MYSY_GV.dbname['inscription'].aggregate(pipe_concerned_class):
print(" ### retval_pipe_concerned_class = ", retval_pipe_concerned_class) #print(" ### retval_pipe_concerned_class = ", retval_pipe_concerned_class)
if( "myclass_collection" in retval_pipe_concerned_class.keys() and if( "myclass_collection" in retval_pipe_concerned_class.keys() and
"duration" in retval_pipe_concerned_class['myclass_collection'].keys() and retval_pipe_concerned_class['myclass_collection']['duration'] and "duration" in retval_pipe_concerned_class['myclass_collection'].keys() and retval_pipe_concerned_class['myclass_collection']['duration'] and
"duration_unit" in retval_pipe_concerned_class['myclass_collection'].keys() and retval_pipe_concerned_class['myclass_collection']['duration_unit'] ): "duration_unit" in retval_pipe_concerned_class['myclass_collection'].keys() and retval_pipe_concerned_class['myclass_collection']['duration_unit'] ):
local_duration = mycommon.tryFloat(str(retval_pipe_concerned_class['myclass_collection']['duration'])) local_duration = mycommon.tryFloat(str(retval_pipe_concerned_class['myclass_collection']['duration']))
local_duration_unit = str(retval_pipe_concerned_class['myclass_collection']['duration_unit']) local_duration_unit = str(retval_pipe_concerned_class['myclass_collection']['duration_unit'])
if( str(local_duration_unit) == "heure"):
total_nb_formation_by_level = total_nb_heure_formation_by_level + local_duration
elif( str(local_duration_unit) == "jour"): #print(" ### local_duration = ", str(local_duration), " duration_unit = ", str(local_duration_unit) )
total_nb_formation_by_level = total_nb_heure_formation_by_level + ( local_duration * local_nb_heure_par_jour)
elif (str(local_duration_unit) == "semaine"): if( str(retval_pipe_concerned_class['myclass_collection']['_id']) not in tab_class_id ):
total_nb_formation_by_level = total_nb_heure_formation_by_level + (local_duration * local_nb_heure_par_sem) tab_class_id.append((str(retval_pipe_concerned_class['myclass_collection']['_id'])))
local_node = {}
local_node['class_id'] = str(retval_pipe_concerned_class['myclass_collection']['_id'])
local_node['class_duration'] = str(local_duration)
local_node['class_duration_unit'] = local_duration_unit
tab_class_info.append(local_node)
elif (str(local_duration_unit) == "mois"):
total_nb_formation_by_level = total_nb_heure_formation_by_level + (local_duration * local_nb_heure_par_mois)
elif (str(local_duration_unit) == "annee"): for local_retval in tab_class_info :
total_nb_formation_by_level = total_nb_heure_formation_by_level + (local_duration * local_nb_heure_par_annee) #print( " ### local_retval = ",local_retval)
local_duration = mycommon.tryFloat(str(local_retval['class_duration']))
local_duration_unit = str(local_retval['class_duration_unit'])
if( str(local_duration_unit) == "heure"):
total_nb_heure_formation_by_level = total_nb_heure_formation_by_level + local_duration
elif( str(local_duration_unit) == "jour"):
total_nb_heure_formation_by_level = total_nb_heure_formation_by_level + ( local_duration * local_nb_heure_par_jour)
elif (str(local_duration_unit) == "semaine"):
total_nb_heure_formation_by_level = total_nb_heure_formation_by_level + (local_duration * local_nb_heure_par_sem)
elif (str(local_duration_unit) == "mois"):
total_nb_heure_formation_by_level = total_nb_heure_formation_by_level + (local_duration * local_nb_heure_par_mois)
elif (str(local_duration_unit) == "annee"):
total_nb_heure_formation_by_level = total_nb_heure_formation_by_level + (local_duration * local_nb_heure_par_annee)
node['total_nb_heure_formation_by_level'] = str(total_nb_heure_formation_by_level) node['total_nb_heure_formation_by_level'] = str(total_nb_heure_formation_by_level)
@ -960,6 +996,7 @@ def Get_Qery_Generate_BPF_From_partner_invoice_header(diction):
RetObject['total_bpf_f_class_niveau_formation'] = round(total_bpf_f_class_niveau_formation, 2) RetObject['total_bpf_f_class_niveau_formation'] = round(total_bpf_f_class_niveau_formation, 2)
print(" ### RetObject = ", RetObject)
RetObject = mycommon.JSONEncoder().encode(RetObject) RetObject = mycommon.JSONEncoder().encode(RetObject)
return True, RetObject return True, RetObject

File diff suppressed because it is too large Load Diff