1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| # coding: utf-8
from __future__ import unicode_literals
#1- Connection à la base dolibarr distante sur la raspberry
import pyodbc
#affichage des différents drivers installés
for driver in pyodbc.drivers():
print(driver)
connexion = pyodbc.connect("DRIVER=MySQL ODBC 8.0 Unicode Driver; \
SERVER=192.168.0.24; \
PORT=3306;\
DATABASE=dolibarr;\
UID=xxxx;\
PWD=xxxx;\
charset=utf8mb4")
cursor = connexion.cursor()
#2- Tester la récupération du prix (price) d'une reférence (ref) dans la table llx_product
requete = "SELECT price FROM llx_product WHERE ref = '100_CONSUEL_NEUF'"
cursor.execute(requete)
#Affiche le résultat dans la console
resultat = cursor.fetchone()[0]
print("La valeur récupérée avant modification est :", resultat)
#3- Mettre cette valeur dans une cellule du tableau (J10) de la feuille ouverte
desktop = XSCRIPTCONTEXT.getDesktop()
model = desktop.getCurrentComponent()
sheet = model.CurrentController.ActiveSheet
cell= sheet.getCellRangeByName("J10")
cell.setValue(resultat)
# 4- Mise à jour du prix et du prix TTC dans la table llx_product de la référence
requete = "UPDATE llx_product SET price = 113.11 WHERE ref = '100_CONSUEL_NEUF'"
cursor.execute(requete)
requete = "UPDATE llx_product SET price_ttc = 113.11 WHERE ref = '100_CONSUEL_NEUF'"
cursor.execute(requete)
# 5- Vérification que les valeurs sont bien passées. Affichage uniquement dans la console
requete = "SELECT price FROM llx_product WHERE ref = '100_CONSUEL_NEUF'"
cursor.execute(requete)
resultat = cursor.fetchone()[0]
print("La valeur récupérée après modification est :", resultat)
# 6- Validation des modifications. A faire obligatoirement sinon, la base n'est pas modifiée durablement.
connexion.commit()
#Fermer la connexion
cursor.close()
conn.close()
# Pour debuguer dans calc
from apso_utils import msgbox
msgbox('terminé') |
Partager