pde.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. '''
  2. Configuration des scripts
  3. '''
  4. from datetime import datetime
  5. from path import Path
  6. from core.db import AccessSDb
  7. from core.model import Model
  8. MAIN = Path(__file__).parent.parent.abspath()
  9. # Web url of the WsPde web service
  10. # PDE_WS_URL = r"http://localhost:2890/public/WsPDE.asmx"
  11. PDE_WS_URL = r"http://webservices-t.bas-rhin.fr/CG67.AstreGF.WebServices/public/WsPDE.asmx"
  12. # Chemin d'acces au fichier de secu Access, et login/mdp
  13. MDW_PATH = r"\\h2o\local\4-transversal\BDD\mda\cg67Parc.mdw"
  14. UID = "olivier"
  15. PWD = "massot"
  16. # Dirs
  17. WRKDIR = MAIN / "work"
  18. RSCDIR = MAIN / "resources"
  19. DEFAULT_LOG_DIR = MAIN / "log"
  20. LOG_CONFIG_FILE = MAIN / "logging.yaml"
  21. PDA_FILES_DEST = Path(r"\\h2o\LOCAL\4-transversal\BDD\mdb\PDA\Fichiers_PDA")
  22. FACTURES_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Facture_data.mdb")
  23. CONTROLES_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\cg67Parc_data.mdb")
  24. WINCAN_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Wincan\parc_2007\DB\PARC_2007.mdb")
  25. COMMUN_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Commun_Data.mdb")
  26. ANALYTIQUE_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\Db_analytique.mdb")
  27. BO_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\dbBO.mdb")
  28. AGRHUM_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\BDD_ParcRH.mdb")
  29. PDA_DB_PATH = Path(r"\\h2o\local\4-transversal\BDD\mdb\PDA\db_PDA.mdb")
  30. ### *********** Ne pas modifier en dessous *************** ###
  31. DEFAULT_LOG_DIR.mkdir_p()
  32. WRKDIR.mkdir_p()
  33. def mk_workdir(name):
  34. """ créé le répertoire de travail pour le script 'name' """
  35. workdir = WRKDIR / name
  36. workdir.mkdir_p()
  37. return workdir
  38. # ## Bases du PDE
  39. class ParcDb(AccessSDb):
  40. _path = ""
  41. def __init__(self, **kwargs):
  42. super(AccessSDb, self).__init__(self._path, systemdb=MDW_PATH, uid=UID, pwd=PWD, **kwargs)
  43. class FacturesDb(ParcDb):
  44. _path = FACTURES_DB_PATH
  45. class ControlesDb(ParcDb):
  46. _path = CONTROLES_DB_PATH
  47. class WincanDb(ParcDb):
  48. _path = COMMUN_DB_PATH
  49. class CommunDb(ParcDb):
  50. _path = FACTURES_DB_PATH
  51. class AnalytiqueDb(ParcDb):
  52. _path = ANALYTIQUE_DB_PATH
  53. class BoDb(ParcDb):
  54. _path = BO_DB_PATH
  55. class AgrhumDb(ParcDb):
  56. _path = AGRHUM_DB_PATH
  57. class PdaDb(ParcDb):
  58. _path = PDA_DB_PATH
  59. # ## Modèles
  60. class EnTete(Model):
  61. """ En-tête d'une facture dans FacturesDb """
  62. def __init__(self):
  63. self.lngPieceId = 0
  64. self.lngDocId = 0
  65. self.lngTiersId = 0
  66. self.lngASTRE = None
  67. self.strCodeProduit = None
  68. self.bytTitreId = 0
  69. self.strCodeAdresse = None
  70. self.strAdresse1 = None
  71. self.strAdresse2 = None
  72. self.strAdresse3 = None
  73. self.strAdresse4 = None
  74. self.strAdresse5 = None
  75. self.strPaysIdIso3166 = None # (!) le nom réel du champ est '[strPaysIdIso3166-A2]'
  76. self.bytTVATiersId = 0
  77. self.strTelephone = None
  78. self.strTelecopie = None
  79. self.strPortable = None
  80. self.strEMail = None
  81. self.strWeb = None
  82. self.strLangueIdIso639 = None
  83. self.strCompteComptable = None
  84. self.strDeviseIdIso4217 = None
  85. self.bytReglementId = 0
  86. self.strReglement = None
  87. self.bytClasseTarifId = 0
  88. self.bytClasseRemiseTiersId = 0
  89. self.bytNbExFacture = 1
  90. self.strStatTiers = None
  91. self.bytSituationIdPrincipale = 0
  92. self.bytSituationIdSecondaire = 0
  93. self.memObsEntete = None
  94. self.memObsPied = None
  95. self.memObsInterne = None
  96. self.bytTypeDocumentId = 0
  97. self.strStatDocEntete = None
  98. self.dblCoursDevise = 1
  99. self.dtmCoursDevise = datetime.now()
  100. self.dtmCreation = datetime.now()
  101. self.strUserIdCreation = None
  102. self.dtmLastMod = datetime.now()
  103. self.strUserIdLastMod = None
  104. self.dtmPiece = datetime.now()
  105. self.dtmFirstPrint = None
  106. self.dtmLastPrint = None
  107. self.dtmCompta = None
  108. self.dtmLivraison = None
  109. self.dtmEcheance = None
  110. self.bytTypeTarif = 1
  111. self.idEtatEmission = None
  112. class Ligne(Model):
  113. """ Ligne d'une facture dans FacturesDb """
  114. def __init__(self):
  115. self.lngPieceId = 0
  116. self.intLigneId = 0
  117. self.strArticleId = None
  118. self.strArticle = None
  119. self.bytTVAArticleId = 0
  120. self.bytTVAId = 0
  121. self.dblTVATaux = 0
  122. self.dblQte = 0
  123. self.bytUniteIdQuantite = 0
  124. self.bytNbDecQuantite = 2
  125. self.bytUniteIdPrix = 0
  126. self.dblCnvUniteCoef = 1
  127. self.bytNbDecQuantiteConvertie = 2
  128. self.dblPUhtBrutDev = 0
  129. self.dblPUttcBrutDev = 0
  130. self.dblPUhtNetDev = 0
  131. self.dblPUttcNetDev = 0
  132. self.bytNbDecPU = 2
  133. self.dblPThtBrutDev = 0
  134. self.dblPTttcBrutDev = 0
  135. self.dblPThtNetDev = 0
  136. self.dblPTttcNetDev = 0
  137. self.strStatArticle = None
  138. self.strStatDocLigne = None
  139. self.dblTauxRemise1 = 0
  140. self.dblTauxRemise2 = 0
  141. self.dblTauxRemise3 = 0
  142. self.blnPrestation = False
  143. self.strCompteComptable = None
  144. self.memObs = None
  145. self.memObsInterne = None
  146. self.bytLigneSousTotal = 1
  147. self.intLigneIdRattachement = 0
  148. self.blnLigneVisible = True
  149. self.blnLigneGeneree = False
  150. self.bytGenerateurId = 0
  151. self.dblPUhtBrut = 0
  152. self.dblPUttcBrut = 0
  153. self.dblPUhtNet = 0
  154. self.dblPUttcNet = 0
  155. self.dblPThtBrut = 0
  156. self.dblPTttcBrut = 0
  157. self.dblPThtNet = 0
  158. self.dblPTttcNet = 0
  159. self.bytClasseRemiseArticleId = 0
  160. self.dblPUSaisie = 0
  161. self.strPUAff = ""
  162. self.strQteAff = ""
  163. if __name__ == "__main__":
  164. for cls in (FacturesDb, ControlesDb, WincanDb, CommunDb, AnalytiqueDb, BoDb, AgrhumDb):
  165. db = cls()
  166. db.assert_connected()
  167. print("connections ok")