26/02/2024 - 16h30

master
cherif 2024-02-26 16:39:17 +01:00
parent 2b3c62e6e2
commit 213128998b
5 changed files with 2085 additions and 20 deletions

View File

@ -1,11 +1,11 @@
<?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="25/02/2024 - 22h30">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="26/02/2024 - 11h30">
<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$/Session_Formation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/module_editique.py" beforeDir="false" afterPath="$PROJECT_DIR$/module_editique.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_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" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -76,13 +76,6 @@
<option name="presentableId" value="Default" />
<updated>1680804787304</updated>
</task>
<task id="LOCAL-00179" summary="27/12/2023 - 13h">
<created>1703678453790</created>
<option name="number" value="00179" />
<option name="presentableId" value="LOCAL-00179" />
<option name="project" value="LOCAL" />
<updated>1703678453791</updated>
</task>
<task id="LOCAL-00180" summary="27/12/2023 - 13h">
<created>1703714268338</created>
<option name="number" value="00180" />
@ -419,7 +412,14 @@
<option name="project" value="LOCAL" />
<updated>1708898791231</updated>
</task>
<option name="localTasksCounter" value="228" />
<task id="LOCAL-00228" summary="26/02/2024 - 11h30">
<created>1708944824618</created>
<option name="number" value="00228" />
<option name="presentableId" value="LOCAL-00228" />
<option name="project" value="LOCAL" />
<updated>1708944824618</updated>
</task>
<option name="localTasksCounter" value="229" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@ -434,7 +434,6 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="rrrf" />
<MESSAGE value="29/01/24 - 21h30" />
<MESSAGE value="ss" />
<MESSAGE value="31/01/2024 - 16h" />
@ -459,6 +458,7 @@
<MESSAGE value="23/02/2024 - 22h30" />
<MESSAGE value="24/02/2024 - 22h30" />
<MESSAGE value="25/02/2024 - 22h30" />
<option name="LAST_COMMIT_MESSAGE" value="25/02/2024 - 22h30" />
<MESSAGE value="26/02/2024 - 11h30" />
<option name="LAST_COMMIT_MESSAGE" value="26/02/2024 - 11h30" />
</component>
</project>

File diff suppressed because it is too large Load Diff

View File

@ -869,6 +869,10 @@ def Get_Partner_List_Partner_Client(diction):
for retval in MYSY_GV.dbname['partner_client'].find(data_cle).sort([("_id", pymongo.DESCENDING), ]):
user = retval
user['id'] = str(val_tmp)
if( "invoice_condition_paiement_id" not in retval.keys() ):
user['invoice_condition_paiement_id'] = ""
val_tmp = val_tmp + 1
RetObject.append(mycommon.JSONEncoder().encode(user))

View File

@ -4,13 +4,15 @@ Ce fichier permet de gerer la facturation des commandes des partenaires vers leu
Il se base sur les commandes faite à l'aide du fichier "partner_order.py"
"""
from calendar import monthrange
import bson
import pymongo
from pymongo import MongoClient
import json
from bson import ObjectId
import re
from datetime import datetime
from datetime import datetime, timedelta
import prj_common as mycommon
import secrets
import inspect
@ -232,10 +234,59 @@ def Invoice_Partner_Order(diction):
'partner_owner_recid':my_partner['recid'], 'valide':'1',
'locked':'0', 'order_header_type':'commande'}, {'_id':0, 'order_header_type':0, 'order_header_status':0})
print(" #### A COPIER new_invoice_data_header = ", str(new_invoice_data_header))
new_invoice_data_header['invoice_header_ref_interne'] = retval_sequence_invoice['prefixe']+str(current_seq_value)
new_invoice_data_header['invoice_header_type'] = "facture"
new_invoice_data_header['invoice_date'] = invoice_date_time
new_invoice_data_header['update_by'] = str(my_partner['_id'])
"""
Calcul de la date d'échance de la facture :
Si pas de conidtion de paiement, alors la date à la date du jour
"""
if( "order_header_condition_paiement_id" in new_invoice_data_header.keys() and
new_invoice_data_header['order_header_condition_paiement_id'] ) :
paiement_condition_data = MYSY_GV.dbname['base_partner_paiement_condition'].find_one({'partner_owner_recid':str(my_partner['recid']),
'_id':ObjectId(str(new_invoice_data_header['order_header_condition_paiement_id'])),
'valide':'1',
'locked':'0'})
if(paiement_condition_data is None or 'depart' not in paiement_condition_data.keys() or
'nb_jour' not in paiement_condition_data.keys() ):
mycommon.myprint(str(inspect.stack()[0][3]) + " WARNING - DATE ECHEANCE : Condition de paiement invalide pour calculer la date d'échéance ")
if( paiement_condition_data['depart'] not in MYSY_GV.PAIEMENT_CONDITION_DEPART ):
mycommon.myprint(str(inspect.stack()[0][3]) + " WARNING - DATE ECHEANCE : Condition de départ n'est pas dans la liste "+str(MYSY_GV.PAIEMENT_CONDITION_DEPART))
nb_jour_int = mycommon.tryInt(str(paiement_condition_data['nb_jour']))
today = datetime.today()
date_echance = datetime.today()
if (str(paiement_condition_data['depart']) == "mois"):
days_in_month = lambda dt: monthrange(dt.year, dt.month)[1]
first_day_next_month = today.replace(day=1) + timedelta(days_in_month(today))
date_echance = first_day_next_month + timedelta(days=nb_jour_int)
if( str(paiement_condition_data['depart']) == "facture") :
date_echance = today + timedelta(days=nb_jour_int)
date_echance = date_echance.strftime("%d/%m/%Y")
new_invoice_data_header['invoice_date_echeance'] = str(date_echance)
new_invoice_data_header['order_header_condition_paiement_code'] = str(paiement_condition_data['code'])
new_invoice_data_header['order_header_condition_paiement_description'] = str(paiement_condition_data['description'])
else:
today = datetime.today()
date_echance = datetime.today().strftime("%d/%m/%Y")
new_invoice_data_header['invoice_date_echeance'] = str(date_echance)
new_invoice_data_header['order_header_condition_paiement_code'] = ""
new_invoice_data_header['order_header_condition_paiement_description'] = ""
inserted_invoice_id = MYSY_GV.dbname['partner_invoice_header'].insert_one(new_invoice_data_header).inserted_id
if (not inserted_invoice_id):
order_updated = MYSY_GV.dbname['partner_order_header'].update_one({{'_id': ObjectId(
@ -296,7 +347,7 @@ def Invoice_Partner_Order(diction):
'partner_owner_recid': my_partner['recid'], 'valide': '1',
'locked': '0', 'order_header_type': 'commande'}
print(" #### qry = ", qry)
#print(" #### qry = ", qry)
order_updated = MYSY_GV.dbname['partner_order_line'].update_many(
{'order_header_id': str(diction['order_id']), 'order_header_ref_interne': str(diction['order_ref_interne']),

View File

@ -159,7 +159,7 @@ def Add_Partner_Order(diction):
3]) + " - Le champ 'order_header_condition_paiement' fait plus de 255 caractères ")
return False, " - Le champ 'Condition de paiement' fait plus de 255 caractères ", False
data['order_header_condition_paiement_id'] = diction['order_header_condition_paiement_id']
data['order_header_condition_paiement_id'] = order_header_condition_paiement_id
order_header_ref_interne = ""
if ("order_header_ref_interne" in diction.keys()):
@ -699,7 +699,7 @@ def Add_Partner_Quotation(diction):
3]) + " - Le champ 'order_header_condition_paiement' fait plus de 255 caractères ")
return False, " - Le champ 'Condition de paiement' fait plus de 255 caractères ", False
data['order_header_condition_paiement_id'] = diction['order_header_condition_paiement_id']
data['order_header_condition_paiement_id'] = order_header_condition_paiement_id
order_header_ref_interne = ""
if ("order_header_ref_interne" in diction.keys()):
@ -1211,7 +1211,7 @@ def Update_Partner_Order_Header(diction):
data['order_header_comment'] = diction['order_header_comment']
order_header_condition_paiement_id = ""
if ("order_header_condition_paiement_id" in diction.keys()):
if ("order_header_condition_paiement_id" in diction.keys() and diction['order_header_condition_paiement_id']):
order_header_condition_paiement_id = diction['order_header_condition_paiement_id']
if (len(str(order_header_condition_paiement_id)) > 255):
mycommon.myprint(
@ -1302,7 +1302,7 @@ def Update_Partner_Order_Header(diction):
order_header_vendeur_id = ""
if ("order_header_vendeur_id" in diction.keys()):
if ("order_header_vendeur_id" in diction.keys() and diction['order_header_vendeur_id']):
order_header_vendeur_id = diction['order_header_vendeur_id']
#local_qry = {'_id': ObjectId(str(order_header_vendeur_id)), 'valide': '1', 'locked': '0', 'partner_recid': str(my_partner['recid'])}
@ -1678,7 +1678,7 @@ def Update_Partner_Quotation_Header(diction):
data['order_header_comment'] = diction['order_header_comment']
order_header_condition_paiement_id = ""
if ("order_header_condition_paiement_id" in diction.keys()):
if ("order_header_condition_paiement_id" in diction.keys() and diction['order_header_condition_paiement_id']):
order_header_condition_paiement_id = diction['order_header_condition_paiement_id']
if (len(str(order_header_condition_paiement_id)) > 255):
mycommon.myprint(