om5_rad -- TODO *** A voir Calcul en triggers om - si apostrophe alors mettre 2 ' en saisie dans champs calcul pour ne pas avoir d erreur en sql comment -> date(''Y-m-d'') évolution pb d ordre dans les champs calcul - Attention suivant ordre des champs : montant_ht = prix*quantite doit être avant montant_ttc=montant_ht*1.2 - reprise de champs fictifs et creation de la classe om_forms pour gérer des champs fictifs destinés au calcul. ajout du champs table_name pour clé secondaire om_forms *** format - formatage données numériques en liste cast en numeric -> en 2 caractères : reste à droite en colonne - to_char transforme le numerique en caractère -> le nombre se met à gauche en colonne *** changement de champs/data_type : un champ character varying ne peut devenir que texte et vice versa un champ character varying peut devenir double precision alter table om5.article alter column montant_ht type double precision USING montant_ht::double precision un champ integer ne peut devenir que double precision et vice versa un champ boolean ne peut pas bouger un champ date peut devenir character varying mais pas l'inverse car il faut spécifier dans la requête USING date_acquisition::date alter table om5.article alter column date_acquisition type date USING date_acquisition::date champs boolean -> charcacter : ok inverse : USING disponible::boolean alter table om5.article alter column disponible type boolean USING disponible::boolean *** agregat avec les vues * Evolution : calcul dans une liste de data de sous formulaire avec automatisation d'une vue: ex: nombre d'ouvrages empruntés par un emprunteur de bibliothèque -> vue ou champs réel ? - cumuls en ajouter et modifier après si cumul de sous formulaire - vue en agrégat sur un champ calcul-fictif hidden CREATE OR REPLACE VIEW AS cumul_champsousform_form SELECT form.cle_primaire sum(sousform.champ) AS cumul_champ FROM sousform JOIN ON sousform.cle_secondaire = form.cle_primaire GROUP BY form.cleprimaire CREATE OR REPLACE VIEW om5.famille.montant_ht AS SELECT famille.famille, sum(montant_ht) AS montant_ht FROM om5.article JOIN om5.famille ON article.famille=famille.famille GROUP BY famille.famille; SELECT service.service, count(agent.agent) AS nombre FROM (om5.agent JOIN om5.service ON ((agent.service = service.service))) GROUP BY service.service; - champs calcul + type sql sum article.montant_ht famille = pk + table Actions ======= - enlever supprimer, modifier -> tb : doublon car existe en om_droit - edition -> voir un parametre dans view $this->class_actions[8] = array( "identifier" => "edition_2", "portlet" => array( "type"=>"action-blank", "libelle" => _("fiche(s) payée(s)"), "order" => 50, "class" => "pdf-16", ), "view" => "edition_paye", ); function edition_paye(){ //Verification de l'accessibilité sur l'élément $this->checkAccessibility(); //Récupération de ses paramètres $collectivite = $this->f->getCollectivite($_SESSION['collectivite']); //Génération du PDF $this->setValFFromVal(); $result = $this->compute_pdf_output('etat', 'paye',$collectivite, $this->getVal(($this->clePrimaire))); //Affichage du PDF $this->expose_pdf_output( $result['pdf_output'], $result['filename'] ); } * procédures stockées et triggers https://public.dalibo.com/exports/formation/manuels/modules/n4/n4.handout.html https://public.dalibo.com/exports/formation/manuels/modules/p1/p1.handout.html * grid system tb public -> css grid-2-6 class css qui prend 2/6 éme bloc non applicable avec om_layout Fonctionnel ========================================================================================== * ab -> aspect présentation et non calcul / 100% pour trigger et vue sql == - plusieurs clés scondaires sur une même table - manual select pour boolean ou autre ? maîtrise des noms de valeurs * fr == - systeme de gestion documentaire avec les comments voire une doc en ligne - graphique uml - mettre en place les triggers champs calculés - mettre en place les vues : agrégation champs sql - action édition - om_etat et sous_etat rajouter un champ table_name en etat et sous etat clé secondaire avec om_tables select_multiple pour om_sousetat (ts les champs pour état) etat : requete si no exists ajouter l action etat -> en generation * tb == - créer une fonction util/dev pour admin avec basculement sur l un ou l autre - mettre les tests pour indusrialisation - possible hébergement / intégrateur - éditeur libre * Bugs ========================================================================== - bug : om_tables : si existe vue -> la suppression créé une erreur : a voir - bug : nommage de champs et tables si apostrophe ou guillement dans le nom (setValF) * Ergonomie ============================================================================= - om_champs : en modification data_type = cle secondaire -> accés à tous les types - cle secondaire ne doit pas avoir accès à calcul ? - om_champs : type (om) sql -> virer du data_type