meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
certif:procedure:usageclasseinterface [2026/05/06 11:53] – [Les fonctions des classes "Serveurs"] nicolascertif:procedure:usageclasseinterface [2026/05/06 12:17] (Version actuelle) – [Les fonctions « normées » à usage interne de la classe ("protected")] nicolas
Ligne 32: Ligne 32:
  
 ^Sortie^Fonction^ ^Sortie^Fonction^
-|Promise<T[]>|Un tableau contenant des éléments de la classe indiqué.\\ Les éléments du tableau doivent être typé/traduit correctement au travers de la fonction de la classe **corrigeDataFromBDD** qui est appeler pour chaque élement via la procedure **mapArrayTo**.\\ NB: Celle-ci prends aussi en charge les problématiques de case|+|**Promise<T[]>**|Un tableau contenant des éléments de la classe indiqué.\\ Les éléments du tableau doivent être typé/traduit correctement au travers de la fonction de la classe **corrigeDataFromBDD** qui est appeler pour chaque élément via la procédure **mapArrayTo**.\\ NB: Celle-ci prends aussi en charge les problématiques de case\\ Si une erreur est détectée, l'utilisateur est informé et un tableau vide est rendu|
  
 == Exemple d'appel : == == Exemple d'appel : ==
Ligne 64: Ligne 64:
  
 ^Sortie^Fonction^ ^Sortie^Fonction^
-|Promise<T[]>|Un tableau contenant des éléments de la classe indiqué.\\ Les éléments du tableau doivent être typé/traduit correctement au travers de la fonction de la classe **corrigeDataFromBDD** qui est appeler pour chaque élement via la procedure **mapArrayTo**.\\ NB: Celle-ci prends aussi en charge les problématiques de case|+|**Promise<T[]>**|Rend l'élement tel qu'enregistré dans la BDD.\\ L'élément doit être typé/traduit correctement au travers de la fonction de la classe **corrigeDataFromBDD** qui est appeler dessus.\\ NB: Celle-ci prends aussi en charge les problématiques de case\\ Si une erreur est détectée, l'utilisateur est informé et null est rendu|
  
 == Exemple d'appel : == == Exemple d'appel : ==
 <code> <code>
-*********** CLASSIQUE *********** +const res =await this.DG.BaseCourante.sauveToBDD$(personne,"FICHIER"
-  detailDon!:TSQLHistoriqueDon[]; +</code> 
-  listeCerfa!:TSQLHistoriqueDonSynthese[]; + 
-  [...] +=== Fonction d'effacement (effaceFromBDD$) === 
-  this.detailDon = await this.DG.BaseCourante.chargeFromBDD$(TSQLHistoriqueDon,filtre); +<code>async effaceFromBDD$<T extends TSQLRecord>(record:T): Promise<boolean></code> 
-  this.listeCerfa await this.DG.BaseCourante.chargeFromBDD$(TSQLHistoriqueDonSynthese,{personne:this.personne.ID}); +^Entrée^Fonction^ 
-   +|**record:T**|Il s'agit de l'objet à effacer. Il doit bien sur être d'un type connu| 
-*********** SIGNAL*********** + 
-  public personnes = signal<TSQLPersonne[]>([]); +^Sortie^Fonction^ 
-  [...] +|**Promise<boolean>**|Indique si Ok| 
-  const [titres, liens, data] await Promise.all([ + 
-     await this.DG.BaseCourante.GetFichierTexte$('/PersonneTitre.Txt'), +== Exemple d'appel : == 
-     await this.DG.BaseCourante.GetFichierTexte$('/PersonneLienFamille.Txt'), +<code> 
-     await this.DG.BaseCourante.chargeFromBDD$(TSQLPersonne) +await this.DG.BaseCourante.effaceFromBDD$(famille); 
-  ]); +</code> 
-  this.listeTitres = titres.lignes; +===== Les fonctions « normées » à définira dans toutes les classes TSQL... ===== 
-  this.listeLiensFamille = liens.lignes; +^ Fonction ^ Description ^ 
-  this.personnes.set(data); +|<code>static override readonly sqlTableName: string = "personne";</code>|En haut de la classe, doit indiqué (en minuscule) le nom de la table correspondante dans la BDD| 
-  </code> +|<code> 
-==== Les fonctions « normées » correspondant au CRUD ==== +constructor(init?Partial<TSQLPersonne>) { 
-^ Opération ^ Fonction ^ Description ^ +  super(init)
-READ ''chargeFromBDD$'' ''static async chargeFromBDD$(filtre:TSQLPersonne=new TSQLPersonne(), base?:TBaseLoGeAs: Promise<TSQLPersonne[]>'' \\ C'est la procédure qui doit se charger de toutes les transformations nécessaires après la réception (appel de la fonction générique ''mapArrayTo'' qui appelle ''corrigeDataFromBDD''). \\ ''static'' permet d'appeler la fonction sans instance de la classe. \\ Exemple ''this.personnes await TSQLPersonne.chargeFromBDD$();'' \\ Le filtre permet de demander à la BDD un sous-ensemble de la table. \\ Exemple : ''const filtre = new TSQLPersonne({Codepostal: "31800"}) ; this.personnes = await TSQLPersonne.chargeFromBDD$(filtre);'' \\ → on ne devrait avoir que les personnes ayant un codepostal = 31800 (A TESTER) \\ ''base'' peut être laissé vide si on utilise la base chargée dans DG, sinon il faut bien sûr l'indiquer (possibilité de charger une deuxième base) +  if (init) {Object.assign(thisinit)
-CREATE UPDATE ''sauveToBDD$'' | ''async sauveToBDD$(base?:TbaseLoGeAs)'' \\ Permet de créer (ID=0) ou de mettre à jour l'objet instancié dans la base de données. Aucune préparation ne doit être faite avant, c'est la procédure qui s'en charge. \\ ''base'' peut être laissé vide si on utilise la base chargée dans DG, sinon il faut bien sûr l'indiquer (possibilité de charger une deuxième base) +}</code>
-DELETE | ''effaceToBDD$'' | ''async effaceToBDD$(base?:TbaseLoGeAs)'' |+|<code> 
 +override corrigeDataFromBDD(){ 
 +  super.corrigeDataFromBDD(); 
 +  [...]\\ code spécifique à la classe 
 +}</code>| Cette fonction doit s'assurer que la donnée qu'elle manipule est bien conforme à la classe. Par exemple une date reçu en texte doit être transformer en Date ...\\  **Elle ne doit manipuler que les objets de sa classe, celle des classes mère doivent être faite par la fonction éponyme de la classe mère**| 
 +|<code> 
 +override async prepareDataToBDD(  
 +        source"FICHIER" | "COMPTA" | "SANSOBJET" "SANSOBJET", 
 +        DureeConsentement: number,  
 +        ReValidationDateConservation_Compta:boolean,   
 +        ReValidationDateConservation_Modif:boolean){ 
 +  super.prepareDataToBDD(source,DureeConsentement, 
 +    ReValidationDateConservation_Compta, 
 +    ReValidationDateConservation_Modif); 
 +  [...]\\ code spécifique à la classe 
 +}</code>| Cette fonction doit s'assurer que la donnée qu'elle manipule est conforme à ce que le back s'attends à recevoir. Par exemple un sous objet doit être transformer en string...\\  Elle peut aussi gérer des champs "calculépar exemple la date de fin de consentent**On préfèrera toujours le faire ici afin d'éviter divergence et redondance)** **Elle ne doit manipuler que les objets de sa classe, celle des classes mère doivent être faite par la fonction éponyme de la classe mère**
 +|<code>override toGrid():IFamilleGrid</code>|Met à plat la structure parente (champ personnalisé, sous structure...afin de faciliter leur affichage dans les grilles\\ Peut permettre au passage à ajouter des champs calculé\\ **Attention :** la structure résultante est une Interface elle ne peut/doit pas servir pour interfacer avec le back ou autre
 +|<code>static toGrids(liste:TSQLFamille[]):IFamilleGrid[]</code>|Boucle sur les éléments du tableau pour appelé togrid| 
 + 
  
-==== Les fonctions « normées » à usage interne de la classe ("protected") ==== 
-^Nom de la fonction^Usage^ 
-|protected override corrigeDataFromBDD()|Appelé sur chaque enregistrement lors du chargement depuis le back, via la procédure  MapUtils.mapArrayTo. Elle permet de corriger, mapper.. les données sur le modèle de la classe. Elle permet en outre de s'affranchir des problèmes de case entre back et front| 
-|protected override async prepareDataToBDD()|Appelé par la fonction sauveToBDD$ elle permet de mettre les format angular au format attendu par le back| 
  
-==== Les fonctions « normées » à usage public ==== 
-^Nom de la fonction^Usage^ 
-|override toGrid():IFamilleGrid|Met à plat la structure parente (champ personnalisé, sous structure...) afin de faciliter leur affichage dans les grilles\\ Peut permettre au passage à ajouter des champs calculé\\ **Attention :** la structure résultante est une Interface elle ne peut/doit pas servir pour interfacer avec le back ou autre| 
-|static toGrids(liste:TSQLFamille[]):IFamilleGrid[]|Boucle sur les éléments du tableau pour appelé togrid| 
  
 ==== Les fonctions spécifique à la classe ==== ==== Les fonctions spécifique à la classe ====
 Dépends de chaque classe voir la classe Dépends de chaque classe voir la classe