gf2factures.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. '''
  2. Created on 27 juin 2017
  3. @author: olivier.massot
  4. '''
  5. from datetime import datetime
  6. import logging
  7. from core import logconf
  8. from core.pde import FacturesDb
  9. from core.webservice import GfWebservice
  10. logger = logging.getLogger("gf2factures")
  11. logconf.start("gf2factures", logging.INFO)
  12. logger.info("Initialization")
  13. # Connect to factures.mdb
  14. factures_db = FacturesDb(autocommit=True)
  15. # Connect to the astre gf webservice
  16. ws = GfWebservice("GetPDETitres")
  17. analysed = 0
  18. updated = 0
  19. for titre in ws:
  20. if not titre:
  21. continue
  22. analysed += 1
  23. strfilter = "[lngDocId]={} AND [bytTypeDocumentId]=50".format(titre["docId"])
  24. record = factures_db.first("SELECT * FROM tblPieceEntete WHERE {}".format(strfilter))
  25. if not record:
  26. logger.warning("(!) no record found where '{}'".format(strfilter))
  27. continue
  28. memobs = record.get("memobsinterne", "")
  29. if "Titre n° : {}".format(titre["titreId"]) in memobs:
  30. # already imported
  31. continue
  32. logger.info("import: {}".format(titre["docId"]))
  33. if memobs:
  34. memobs += "\r\n"
  35. dt = datetime.strptime(titre["dateTitre"][:10], "%Y-%m-%d").strftime("%d/%m/%Y")
  36. memobs += r"Titre n° : {} le {}".format(titre["titreId"], dt)
  37. factures_db.execute("UPDATE tblPieceEntete SET [memObsInterne]='{}' WHERE {}".format(memobs, strfilter))
  38. updated += 1
  39. logger.info("Operation ended: {} lines analysed, {} updated".format(analysed, updated))