23/08/22 - 14h30

master
ChérifBALDE 2022-08-23 14:02:15 +02:00 committed by cherif
parent eca3bda910
commit 0a6ef30dd5
3 changed files with 57 additions and 29 deletions

View File

@ -124,3 +124,8 @@ IMG_FORMAT=['jpg', 'jpeg', 'png', 'jpe']
Sendinblue clea API Sendinblue clea API
''' '''
SENDINBLUE_API_KEY = "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" SENDINBLUE_API_KEY = "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"
'''
Taux de TVA
'''
TVA_TAUX = 0.2

View File

@ -17,6 +17,9 @@ from pymongo import ReturnDocument
from math import isnan from math import isnan
import GlobalVariable as MYSY_GV import GlobalVariable as MYSY_GV
import email_mgt as email import email_mgt as email
from dateutil import tz
import pytz
class JSONEncoder(json.JSONEncoder): class JSONEncoder(json.JSONEncoder):
def default(self, o): def default(self, o):
@ -174,8 +177,8 @@ def add_payement_mode(diction):
coll_name = MYSY_GV.dbname['payement_mode'] coll_name = MYSY_GV.dbname['payement_mode']
new_data = {} new_data = {}
new_data['valide'] = "1" new_data['valide'] = "1"
new_data['date_update'] = str(datetime.now()) now = datetime.now()
new_data['client_recid'] = user_recid new_data['date_update'] = str(now)
# initialisation pr nettoyer l'existant (faire comme un delete) # initialisation pr nettoyer l'existant (faire comme un delete)
new_data['nom_carte'] = "" new_data['nom_carte'] = ""
@ -358,7 +361,7 @@ def createOrder(diction):
Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente, Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente,
On controle que les champs obligatoires sont presents dans la liste On controle que les champs obligatoires sont presents dans la liste
''' '''
field_list_obligatoire = ['token', 'nb_product', 'periodicite', 'prix_ttc', 'prix_ht'] field_list_obligatoire = ['token', 'nb_product', 'periodicite']
for val in field_list_obligatoire: for val in field_list_obligatoire:
if val not in diction: if val not in diction:
@ -402,14 +405,6 @@ def createOrder(diction):
if diction['periodicite']: if diction['periodicite']:
new_data['periodicite'] = diction['periodicite'] new_data['periodicite'] = diction['periodicite']
if ("prix_ttc" in diction.keys()):
if diction['prix_ttc']:
new_data['prix_ttc'] = diction['prix_ttc']
if ("prix_ht" in diction.keys()):
if diction['prix_ht']:
new_data['prix_ht'] = diction['prix_ht']
# Recuperation des données client # Recuperation des données client
new_data['client_recid'] = user_recid new_data['client_recid'] = user_recid
@ -500,23 +495,43 @@ def createOrder(diction):
new_data['nb_product'] = str(nb_line) new_data['nb_product'] = str(nb_line)
i = 0 i = 0
total_ht = 0
while (i < nb_line): while (i < nb_line):
print("PRODUIT N° " + str((i + 1)) + " : " ) print("PRODUIT N° " + str((i + 1)) + " : " )
line_dict = json.loads(diction[str(i)]) line_dict = json.loads(diction[str(i)])
print(" line = "+str(line_dict)+" -- le type est : "+str(type(line_dict))) print(" line = "+str(line_dict)+" -- le type est : "+str(type(line_dict)))
print(" code = "+str( line_dict['code'] )) print(" code = "+str( line_dict['code'] ))
print(" prix = " + str(line_dict['prix'])) print(" prix = " + str(line_dict['prix']))
print(" qty = " + str(line_dict['qty']))
montant_line = mycommon.tryFloat(str(line_dict['prix'])) * mycommon.tryInt(str(line_dict['qty']))
print(" montant_line = " + str(montant_line))
total_ht = total_ht + montant_line
new_data_item = {} new_data_item = {}
new_data_item['code'] = line_dict['code'] new_data_item['code'] = line_dict['code']
new_data_item['prix'] = line_dict['prix'] new_data_item['prix'] = line_dict['prix']
new_data_item['qty'] = line_dict['qty']
new_data_item['amount'] = str(montant_line)
row = "item_"+str(i) row = "item_"+str(i)
new_data[str(row)] = new_data_item new_data[str(row)] = new_data_item
i = i + 1 i = i + 1
new_data['total_ht'] = total_ht
new_data['total_tva'] = mycommon.tryFloat( str(total_ht) ) * MYSY_GV.TVA_TAUX
new_data['total_ttc'] = mycommon.tryFloat(str(total_ht))+mycommon.tryFloat(str(new_data['total_tva']))
print(" new_data['total_ht'] = "+str(new_data['total_ht']) + " -- new_data['total_tva'] "
+str(new_data['total_tva'])+ " -- new_data['total_ttc'] = "+ str(new_data['total_ttc']))
new_data['valide'] = "1" new_data['valide'] = "1"
new_data['date_update'] = str(datetime.now()) now = datetime.now()
new_data['date_update'] = str(now)
new_data['order_date'] = str(now.strftime("%d/%m/%Y, %H:%M:%S"))
new_data['order_id'] = "MySy_00"+str(mycommon.create_order_id()) new_data['order_id'] = "MySy_00"+str(mycommon.create_order_id())
print(" la line à facturer est ::::: "+str(new_data)) print(" la line à facturer est ::::: "+str(new_data))

View File

@ -10,7 +10,8 @@ import inspect
import sys, os import sys, os
import prj_common as mycommon import prj_common as mycommon
import GlobalVariable as MYSY_GV import GlobalVariable as MYSY_GV
from dateutil import tz
import pytz
import sib_api_v3_sdk import sib_api_v3_sdk
from sib_api_v3_sdk.rest import ApiException from sib_api_v3_sdk.rest import ApiException
@ -373,23 +374,25 @@ def SalesOrderConfirmationEmail(account_mail, diction):
On controle que les champs obligatoires sont presents dans la liste On controle que les champs obligatoires sont presents dans la liste
''' '''
field_list_obligatoire = ['invoice_nom', 'invoice_adr_city', 'invoice_adr_country', 'invoice_adr_street', field_list_obligatoire = ['invoice_nom', 'invoice_adr_city', 'invoice_adr_country', 'invoice_adr_street',
'invoice_adr_zip', 'periodicite', 'prix_ht', 'prix_ttc', 'order_id', 'invoice_adr_zip', 'periodicite', 'total_ht', 'total_tva', 'total_ttc',
'date_update', 'nb_product'] 'order_id', 'date_update', 'nb_product', 'order_date']
for val in field_list_obligatoire: for val in field_list_obligatoire:
if val not in diction: if val not in diction:
mycommon.myprint(str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ") mycommon.myprint(str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ")
return False, " Impossible d'envoyer l'email de confirmation" return False, " Impossible d'envoyer l'email de confirmation"
total_ht = diction['prix_ht'] total_ht = diction['total_ht']
tva = "20%%ch" tva = diction['total_tva']
total_ttc = diction['prix_ttc'] total_ttc = diction['total_ttc']
client_name = diction['invoice_nom'] client_name = diction['invoice_nom']
client_address = diction['invoice_adr_street'] client_address = diction['invoice_adr_street']
client_zip_ville = diction['invoice_adr_zip']+" "+diction['invoice_adr_city'] client_zip_ville = diction['invoice_adr_zip']+" "+diction['invoice_adr_city']
client_pays = diction['invoice_adr_country'] client_pays = diction['invoice_adr_country']
order_id = diction['order_id'] order_id = diction['order_id']
date_order = diction['date_update'] date_order = diction['order_date']
nb_line = mycommon.tryInt(diction['nb_product']) nb_line = mycommon.tryInt(diction['nb_product'])
if( nb_line == 0 ): if( nb_line == 0 ):
@ -409,25 +412,26 @@ def SalesOrderConfirmationEmail(account_mail, diction):
if ("item_0" in diction.keys()): if ("item_0" in diction.keys()):
if( diction["item_0"] ): if( diction["item_0"] ):
packs = diction["item_0"]['code'] packs = diction["item_0"]['code']
qty = "1" qty = diction["item_0"]['qty']
unit_price = diction["item_0"]['prix'] unit_price = diction["item_0"]['prix']
montant = diction["item_0"]['prix'] montant = diction["item_0"]['amount']
detail_packs = " detail_lin1 \n detail_lin2 \n detail_lin3"
# produit 2 # produit 2
if ("item_1" in diction.keys()): if ("item_1" in diction.keys()):
if (diction["item_1"]): if (diction["item_1"]):
packs1 = diction["item_1"]['code'] packs1 = diction["item_1"]['code']
qty1 = "1" qty1 = diction["item_0"]['qty']
unit_price1 = diction["item_1"]['prix'] unit_price1 = diction["item_1"]['prix']
montant1 = diction["item_1"]['prix'] montant1 = diction["item_1"]['amount']
# produit 3 # produit 3
if ("item_2" in diction.keys()): if ("item_2" in diction.keys()):
if (diction["item_2"]): if (diction["item_2"]):
packs2 = diction["item_2"]['code'] packs2 = diction["item_2"]['code']
qty2 = "1" qty2 = diction["item_0"]['qty']
unit_price2 = diction["item_2"]['prix'] unit_price2 = diction["item_2"]['prix']
montant2 = diction["item_2"]['prix'] montant2 = diction["item_2"]['amount']
i = 0 i = 0
@ -458,9 +462,7 @@ def SalesOrderConfirmationEmail(account_mail, diction):
send_smtp_email = sib_api_v3_sdk.SendSmtpEmail(template_id=22, params={"order_id": order_id, send_smtp_email = sib_api_v3_sdk.SendSmtpEmail(template_id=22, params={"order_id": order_id,
"date_order": date_order, "date_order": date_order,
"packs": packs,
"qty": qty,
"unit_price": unit_price,
"total_ht": total_ht, "total_ht": total_ht,
"tva": tva, "tva": tva,
"total_ttc": total_ttc, "total_ttc": total_ttc,
@ -469,6 +471,12 @@ def SalesOrderConfirmationEmail(account_mail, diction):
"client_zip_ville": client_zip_ville, "client_zip_ville": client_zip_ville,
"client_pays": client_pays, "client_pays": client_pays,
"packs": packs,
"detail_packs": detail_packs,
"qty": qty,
"unit_price": unit_price,
"montant":montant,
}, to=to, bcc=bcc) }, to=to, bcc=bcc)
api_response = api_instance.send_transac_email(send_smtp_email) api_response = api_instance.send_transac_email(send_smtp_email)
print(api_response) print(api_response)