''' Created on 27 juin 2017 @author: olivier.massot ''' from datetime import datetime import logging from core import logconf from core.pde import FacturesDb from core.webservice import GfWebservice logger = logging.getLogger("gf2factures") logconf.start("gf2factures", logging.INFO) logger.info("Initialization") # Connect to factures.mdb factures_db = FacturesDb(autocommit=True) # Connect to the astre gf webservice ws = GfWebservice("GetPDETitres") analysed = 0 updated = 0 for titre in ws: if not titre: continue analysed += 1 strfilter = "[lngDocId]={} AND [bytTypeDocumentId]=50".format(titre["docId"]) record = factures_db.first("SELECT * FROM tblPieceEntete WHERE {}".format(strfilter)) if not record: logger.warning("(!) no record found where '{}'".format(strfilter)) continue memobs = record.get("memobsinterne", "") if "Titre n° : {}".format(titre["titreId"]) in memobs: # already imported continue logger.info("import: {}".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)) updated += 1 logger.info("Operation ended: {} lines analysed, {} updated".format(analysed, updated))