''' Configuration des scripts ''' from datetime import datetime from path import Path from core.db import AccessSDb from core.model import Model MAIN = Path(__file__).parent.parent.abspath() # Web url of the WsPde web service # PDE_WS_URL = r"http://localhost:2890/public/WsPDE.asmx" PDE_WS_URL = r"http://webservices-t.bas-rhin.fr/CG67.AstreGF.WebServices/public/WsPDE.asmx" # Chemin d'acces au fichier de secu Access, et login/mdp MDW_PATH = r"\\h2o\local\4-transversal\BDD\mda\cg67Parc.mdw" UID = "olivier" PWD = "massot" # Dirs WRKDIR = MAIN / "work" RSCDIR = MAIN / "resources" DEFAULT_LOG_DIR = MAIN / "log" LOG_CONFIG_FILE = MAIN / "logging.yaml" PDA_FILES_DEST = Path(r"\\h2o\LOCAL\4-transversal\BDD\mdb\PDA\Fichiers_PDA") FACTURES_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Facture_data.mdb") CONTROLES_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\cg67Parc_data.mdb") WINCAN_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Wincan\parc_2007\DB\PARC_2007.mdb") COMMUN_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Commun_Data.mdb") ANALYTIQUE_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Db_analytique.mdb") BO_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\dbBO.mdb") AGRHUM_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\BDD_ParcRH.mdb") PDA_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\PDA\db_PDA.mdb") ### *********** Ne pas modifier en dessous *************** ### DEFAULT_LOG_DIR.mkdir_p() WRKDIR.mkdir_p() def mk_workdir(name): """ créé le répertoire de travail pour le script 'name' """ workdir = WRKDIR / name workdir.mkdir_p() return workdir # ## Bases du PDE class ParcDb(AccessSDb): _path = "" def __init__(self, **kwargs): super(AccessSDb, self).__init__(self._path, systemdb=MDW_PATH, uid=UID, pwd=PWD, **kwargs) class FacturesDb(ParcDb): _path = FACTURES_DB_PATH class ControlesDb(ParcDb): _path = CONTROLES_DB_PATH class WincanDb(ParcDb): _path = COMMUN_DB_PATH class CommunDb(ParcDb): _path = FACTURES_DB_PATH class AnalytiqueDb(ParcDb): _path = ANALYTIQUE_DB_PATH class BoDb(ParcDb): _path = BO_DB_PATH class AgrhumDb(ParcDb): _path = AGRHUM_DB_PATH class PdaDb(ParcDb): _path = PDA_DB_PATH # ## Modèles class EnTete(Model): """ En-tête d'une facture dans FacturesDb """ def __init__(self): self.lngPieceId = 0 self.lngDocId = 0 self.lngTiersId = 0 self.lngASTRE = None self.strCodeProduit = None self.bytTitreId = 0 self.strCodeAdresse = None self.strAdresse1 = None self.strAdresse2 = None self.strAdresse3 = None self.strAdresse4 = None self.strAdresse5 = None self.strPaysIdIso3166 = None # (!) le nom réel du champ est '[strPaysIdIso3166-A2]' self.bytTVATiersId = 0 self.strTelephone = None self.strTelecopie = None self.strPortable = None self.strEMail = None self.strWeb = None self.strLangueIdIso639 = None self.strCompteComptable = None self.strDeviseIdIso4217 = None self.bytReglementId = 0 self.strReglement = None self.bytClasseTarifId = 0 self.bytClasseRemiseTiersId = 0 self.bytNbExFacture = 1 self.strStatTiers = None self.bytSituationIdPrincipale = 0 self.bytSituationIdSecondaire = 0 self.memObsEntete = None self.memObsPied = None self.memObsInterne = None self.bytTypeDocumentId = 0 self.strStatDocEntete = None self.dblCoursDevise = 1 self.dtmCoursDevise = datetime.now() self.dtmCreation = datetime.now() self.strUserIdCreation = None self.dtmLastMod = datetime.now() self.strUserIdLastMod = None self.dtmPiece = datetime.now() self.dtmFirstPrint = None self.dtmLastPrint = None self.dtmCompta = None self.dtmLivraison = None self.dtmEcheance = None self.bytTypeTarif = 1 self.idEtatEmission = None class Ligne(Model): """ Ligne d'une facture dans FacturesDb """ def __init__(self): self.lngPieceId = 0 self.intLigneId = 0 self.strArticleId = None self.strArticle = None self.bytTVAArticleId = 0 self.bytTVAId = 0 self.dblTVATaux = 0 self.dblQte = 0 self.bytUniteIdQuantite = 0 self.bytNbDecQuantite = 2 self.bytUniteIdPrix = 0 self.dblCnvUniteCoef = 1 self.bytNbDecQuantiteConvertie = 2 self.dblPUhtBrutDev = 0 self.dblPUttcBrutDev = 0 self.dblPUhtNetDev = 0 self.dblPUttcNetDev = 0 self.bytNbDecPU = 2 self.dblPThtBrutDev = 0 self.dblPTttcBrutDev = 0 self.dblPThtNetDev = 0 self.dblPTttcNetDev = 0 self.strStatArticle = None self.strStatDocLigne = None self.dblTauxRemise1 = 0 self.dblTauxRemise2 = 0 self.dblTauxRemise3 = 0 self.blnPrestation = False self.strCompteComptable = None self.memObs = None self.memObsInterne = None self.bytLigneSousTotal = 1 self.intLigneIdRattachement = 0 self.blnLigneVisible = True self.blnLigneGeneree = False self.bytGenerateurId = 0 self.dblPUhtBrut = 0 self.dblPUttcBrut = 0 self.dblPUhtNet = 0 self.dblPUttcNet = 0 self.dblPThtBrut = 0 self.dblPTttcBrut = 0 self.dblPThtNet = 0 self.dblPTttcNet = 0 self.bytClasseRemiseArticleId = 0 self.dblPUSaisie = 0 self.strPUAff = "" self.strQteAff = "" if __name__ == "__main__": for cls in (FacturesDb, ControlesDb, WincanDb, CommunDb, AnalytiqueDb, BoDb, AgrhumDb): db = cls() db.assert_connected() print("connections ok")