Bonjour,
M’inspirant de la classe_action incluse dans openmarcheforain (merci groleau) de création du code d’accès dans le traitement de commercant_par_telephone,
pour une application de traitement des actes municipaux, je dois créer un code pour identifier ces actes.
J’ai donc ajouté une classe_action pour une table “actes” dans un objet actes_s0 consistant à simplement insérer une valeur quelconque dans un champ de ma base.
La fonction
function affecter_numero() {
// Begin
$this->begin_treatment(METHOD);
// mise à jour
$id = $this->getVal($this->clePrimaire);
// juste un test de changement$valF = array( "act_order_regt" => '222', ); $res = $this->f->db->autoExecute(DB_PREFIXE . $this->table, $valF, DB_AUTOQUERY_UPDATE, $this->getCle($id));
// Return
return $this->end_treatment(METHOD, true);
}
la definition de la classe
<?php
// $Id: acte_s0.class.php 857 2018-02-18 17:46:23Z mferrato $
// gen openMairie
require_once "../gen/obj/actes.class.php";
class actes_s0 extends actes_gen {
function __construct($id, &$dnu1 = null, $dnu2 = null) {
$this->constructeur($id);
}
function init_class_actions() {
parent::init_class_actions();
// ----- Bouton affcter les numeros d'ordre -----
$this->class_actions [5] = array (
"identifier" => "affecter_numero",
"portlet" => array (
"type" => "action-direct",
"libelle" => _("Générer numéro"),
"class" => "code_generator-16"
),
"methode" => "affecter_numero",
"permission_suffix" => "affecter_numero",
"view" => "formulaire",
// condition" : Pour avoir accès aux valeurs de l'enreg.
// Peut y avoir plusieurs conditions (elles sont alors combinées par des ET)
"condition" => array (),
);
}
J’utilise le compte administrateur, et lorsque j’utilise le bouton
depuis la page de mon objet
http://monsite/opencpt/scr/tab.php?obj=actes_s0
la page d’un objet sélectionné
http://monsite/opencpt/scr/form.php?obj=actes_s0&action=3&idx=2433&advs_id=&premier=0&recherche=&selectioncol=&tricol=&valide=&retour=tab
le lien du bouton
http://monsite/opencpt/scr/form.php?obj=actes_s0&action=3&idx=2433&advs_id=&premier=0&recherche=&selectioncol=&tricol=&valide=&retour=tab#
j’obtiens en dessus de l’affichage de l’objet
[un icone d’attente] Le traitement est en cours. Merci de patienter. et plus rien ne se passe …
**le logger**
0.000 : class utils - application::__construct() VERBOSE
0.013 : class utils - application::retrieveUserProfile(): db->query(" SELECT * FROM opencpt.om_utilisateur left join opencpt.om_collectivite on om_collectivite.om_collectivite = om_utilisateur.om_collectivite left join opencpt.om_profil on om_utilisateur.om_profil = om_profil.om_profil WHERE om_utilisateur.login = 'admin';"); VERBOSE
0.014 : class utils - application::getAllRights(): db->query("select om_droit.om_droit as table_om_droit_field_id, om_profil.om_profil as table_om_profil_field_id, om_droit.libelle as table_om_droit_field_libelle, om_profil.libelle as table_om_profil_field_libelle, om_profil.hierarchie as table_om_profil_field_hierarchie from opencpt.om_droit left join opencpt.om_profil on om_droit.om_profil=om_profil.om_profil "); VERBOSE
0.015 : class utils - application::getCollectivite(): db->query("SELECT libelle, valeur FROM opencpt.om_parametre WHERE om_collectivite=1 UNION SELECT libelle, valeur FROM opencpt.om_parametre WHERE om_collectivite=( SELECT om_collectivite FROM opencpt.om_collectivite WHERE niveau='2' ) AND libelle NOT IN ( SELECT libelle FROM opencpt.om_parametre WHERE om_collectivite=1 ) "); VERBOSE
0.016 : class actes_s0 - dbForm::constructeur() VERBOSE
0.017 : class actes_s0 - dbForm::constructeur(): db->limitquery(" select act_id, act_ref_stat_id, act_date_status, act_ref_user_id, act_create, act_ref_regt_id, act_libelle, act_objet, act_valide, act_date, act_date_from, act_date_to, act_order_an, act_order_regt, act_order_rcui, act_public_file, act_nbfolio, maj_date, maj_util from opencpt.actes where actes.act_id = 2433 ", 0, 1); VERBOSE
0.019 : class actes_s0 - dbForm::init_select(): db->query(SELECT registre.regt_id, registre.regt_code FROM opencpt.registre WHERE regt_id = 10); VERBOSE
0.020 : class actes_s0 - dbForm::init_select(): db->query(SELECT status.stat_id, status.stat_code FROM opencpt.status WHERE stat_id = 1); VERBOSE
0.020 : class actes_s0 - dbForm::init_select(): db->query(SELECT om_utilisateur.om_utilisateur, om_utilisateur.nom FROM opencpt.om_utilisateur WHERE om_utilisateur = 1); VERBOSE
0.021 : class utils - application::__destruct() VERBOSE
Qu’ai-je oublié ???
Problème de droit ? (je les ai défini … mais peut être mal…)
Probleme de lien ? ( j’ai essayé en forçant le lien à la meme forme que dans le cas de openmarcheforain
http://monsite/opencpt/scr/form.php?obj=actes_s0&action=3&idx=2433# sans plus de résultat…
Merci de vos conseils…