| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- '''
- Script d'import des données de facturation depuis la base de données ASTRE-GF
- vers les tables de la base Factures du Parc Départemental d'Erstein
- @author: olivier.massot, juin 2017
- '''
- from datetime import datetime
- import logging
- from path import Path # @UnusedImport
- from core import logconf
- from core.pde import FacturesDb
- from core.webservice import GfWebservice
- logger = logging.getLogger("gf2factures")
- logconf.start("gf2factures", logging.INFO)
- # # POUR TESTER, décommenter les lignes suivantes
- ##-----------------------------------------------
- # GfWebservice._url = r"http://webservices-t.bas-rhin.fr/CG67.AstreGF.WebServices/public/WsPDE.asmx"
- # FacturesDb._path = Path(r"\\h2o\local\4-transversal\BDD\mdb_test\Facture_data.mdb")
- # logger.handlers = [h for h in logger.handlers if (type(h) == logging.StreamHandler)]
- # logger.warning("<<<<<<<<<<<<<< Mode TEST >>>>>>>>>>>>>>>>>")
- ##-----------------------------------------------
- def main():
- logger.info("Initialization")
- # Connect to factures.mdb
- factures_db = FacturesDb(autocommit=False)
- # Connect to the astre gf webservice
- ws = GfWebservice("GetPDETitres")
- analysed = 0
- updated = 0
- logger.info("Mise à jour de FacturesDb")
- for titre in ws:
- if not titre:
- continue
- analysed += 1
- strfilter = "[lngDocId]={} AND [bytTypeDocumentId]=50".format(titre["docId"])
- record = factures_db.first("SELECT memobsinterne FROM tblPieceEntete WHERE {}".format(strfilter))
- if not record:
- logger.warning("(!) no record found where '{}'".format(strfilter))
- continue
- memobs = record.memobsinterne if record.memobsinterne else ""
- if "Titre n° : {}".format(titre["titreId"]) in memobs:
- # already imported
- continue
- logger.info("Mise à jour de : {}".format(titre["docId"]))
- if memobs:
- memobs += "\r\n"
- dt = datetime.strptime(titre["dateTitre"][:10], "%Y-%m-%d").strftime("%d/%m/%Y")
- memobs += r"Titre n° : {} le {}".format(titre["titreId"], dt)
- factures_db.execute("UPDATE tblPieceEntete SET [memObsInterne]='{}' WHERE {}".format(memobs, strfilter))
- factures_db.commit()
- updated += 1
- logger.info("{} lines analysées, {} mises à jour".format(analysed, updated))
- if __name__ == "__main__":
- main()
- logger.info("-- Fin --")
|