noalyss-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Noalyss-commit] [noalyss] 34/323: Rewriting Module Template Category of


From: Dany De Bontridder
Subject: [Noalyss-commit] [noalyss] 34/323: Rewriting Module Template Category of card
Date: Wed, 14 Mar 2018 17:38:13 -0400 (EDT)

sparkyx pushed a commit to branch master
in repository noalyss.

commit db048d3c544b90c91bf8370c231ccbf86125613e
Author: Dany De Bontridder <address@hidden>
Date:   Tue Jan 9 13:30:25 2018 +0100

    Rewriting Module Template Category of card
---
 html/ajax_misc.php                             |  4 +-
 include/ajax/ajax_template_cat_card.php        | 67 ++++++++++++++++++
 include/class/fiche_def.class.php              |  8 +--
 include/class/fiche_def_ref.class.php          | 94 +-------------------------
 include/class/template_card_category.class.php | 84 +++++++++++++++++++++++
 include/database/fiche_def_ref_sql.class.php   | 67 ++++++++++++++++++
 include/fiche_def.inc.php                      | 74 ++++----------------
 7 files changed, 238 insertions(+), 160 deletions(-)

diff --git a/html/ajax_misc.php b/html/ajax_misc.php
index 58f1496..a2a4362 100644
--- a/html/ajax_misc.php
+++ b/html/ajax_misc.php
@@ -209,7 +209,9 @@ $path = array(
     // search operation to reconcile
        'search_op'=>'ajax_search_operation',
     // delete operation
-       'delete_search_operation'=>'ajax_search_filter'
+       'delete_search_operation'=>'ajax_search_filter',
+    // template category of card
+    'template_cat_card'=>'ajax_template_cat_card'
 )    ;
 
 if (array_key_exists($op, $path)) {
diff --git a/include/ajax/ajax_template_cat_card.php 
b/include/ajax/ajax_template_cat_card.php
new file mode 100644
index 0000000..d5625c5
--- /dev/null
+++ b/include/ajax/ajax_template_cat_card.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ *   This file is part of NOALYSS.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+// Copyright (2016) Author Dany De Bontridder <address@hidden>
+
+if (!defined('ALLOWED'))
+    die('Appel direct ne sont pas permis');
+
+/**
+ * @file
+ * @brief Manage the template of category of card
+ */
+
+require_once NOALYSS_INCLUDE."/class/template_card_category.class.php";
+/**
+ * @todo ajax_template_cat_card add security
+ */
+
+$http=new HttpInput();
+$action=$http->request("action");
+$p_id=$http->request("p_id");
+$ctl=$http->request("ctl");
+
+$cat_sql=new Fiche_Def_Ref_SQL($cn, $p_id);
+$cat=new Template_Card_Category($cat_sql);
+$cat->set_callback("ajax_misc.php");
+$cat->add_json_param("gDossier", Dossier::id());
+$cat->add_json_param("op", "template_cat_card");
+$cat->set_object_name($ctl);
+
+switch ($action)
+{
+    case "input":
+        // Display a box with the data
+        header('Content-type: text/xml; charset=UTF-8');
+        echo $cat->ajax_input()->saveXML();
+        return;
+        break;
+    case "save":
+        header('Content-type: text/xml; charset=UTF-8');
+        echo $cat->ajax_save()->saveXML();
+        return;
+        break;
+    case "delete":
+        header('Content-type: text/xml; charset=UTF-8');
+        echo $cat->ajax_delete()->saveXML();
+        return;
+        break;
+    default:
+        break;
+}
diff --git a/include/class/fiche_def.class.php 
b/include/class/fiche_def.class.php
index 6bfb60b..55ded5b 100644
--- a/include/class/fiche_def.class.php
+++ b/include/class/fiche_def.class.php
@@ -59,10 +59,10 @@ class Fiche_Def
         $class_base->set_attribute('account','class_base');
         $class_base->set_attribute('label','acc_label');
         $f_class_base=$class_base->input();
-               $fd_description=new ITextarea('fd_description');
-               $fd_description->width=80;
-               $fd_description->heigh=4;
-               $fd_description->style='class="itextarea" 
style="margin-left:0px;vertical-align:text-top"';
+        $fd_description=new ITextarea('fd_description');
+        $fd_description->width=80;
+        $fd_description->heigh=4;
+        $fd_description->style='class="itextarea" 
style="margin-left:0px;vertical-align:text-top"';
         require_once  NOALYSS_TEMPLATE.'/fiche_def_input.php';
         return;
     }
diff --git a/include/class/fiche_def_ref.class.php 
b/include/class/fiche_def_ref.class.php
index c8aa5c1..2c3b604 100644
--- a/include/class/fiche_def_ref.class.php
+++ b/include/class/fiche_def_ref.class.php
@@ -40,99 +40,7 @@ class Fiche_Def_Ref
         $this->frd_id=$p_frd_id;
         $this->attribut=array('frd_id','frd_text','frd_class_base');
     }
-    /*!
-     **************************************************
-     * \brief  Load all the fiche_def_ref data and
-     *           return an array of  fiche_def_ref objects
-     *        
-     * \return array
-     */
-    function LoadAll()
-    {
-        $sql="select * from fiche_def_ref order by frd_id";
-        $Res=$this->db->exec_sql($sql);
-        $all=Database::fetch_all($Res);
-        if ( $Res == false ) return array();
-        $idx=0;
-        $array=array();
-        foreach ($all as $row)
-        {
-            $o=new Fiche_Def_Ref($this->db);
-
-            foreach (  $this->attribut as  $value)
-            {
-                $o->$value=$row[$value];
-            }
-            $array[$idx]=$o;
-            $idx++;
-        }
-        return $array;
-    }
-    /*!
-     **************************************************
-     * \brief  Display data between <TD> tag
-     *        
-     * \return string
-     */
-    function Display()
-    {
-        $r="";
-        foreach ( $this->attribut as $value)
-        {
-            $r.="<TD>".$this->$value.'</TD>';
-        }
-        return $r;
-    }
-    /*!
-     **************************************************
-     * \brief  Input Data between <td> tag
-     *        
-     * \return string
-     */
-    function Input()
-    {
-        $r="";
-        $h=new IHidden();
-        $r.='<li>Id          
:'.$h->input('frd_id',$this->frd_id).$this->frd_id."</li>";
-        $w=new IText();
-        $r.='<li>'._('Commentaire ').' 
:'.$w->input('frd_text',$this->frd_text)."</li>";
-        $t=new IText();
-        $r.='<li>'._('Poste de 
base').':'.$t->input('frd_class_base',$this->frd_class_base)."</li>";
-
-        return $r;
-    }
-    /*!
-     **************************************************
-     * \brief  Store data into the database: update the 
-     *           record
-     *        
-     * -
-     * \return none
-     */
-    function Save()
-    {
-        $sql="update fiche_def_ref set frd_text=$1 ".
-             " ,  frd_class_base=$2 ".
-             " where frd_id= $3";
-        
$Res=$this->db->exec_sql($sql,array($this->frd_text,$this->frd_class_base,$this->frd_id));
-    }
-    /*!
-     **************************************************
-     * \brief  Get the data with the p_code and complete
-     *           the current object
-     *        
-     * \return none
-     */
-    function Get()
-    {
-        $sql="select * from  fiche_def_ref ".
-             " where frd_id=".$this->frd_id;
-        $Res=$this->db->exec_sql($sql);
-        if ( Database::num_row($Res) == 0 ) return null;
-        $r=Database::fetch_array($Res,0);
-        $this->frd_text=$r['frd_text'];
-        $this->frd_class_base=$r['frd_class_base'];
-    }
+   
     /**
     * get category of cards by model
     * @param $p_modele if the FRD_ID
diff --git a/include/class/template_card_category.class.php 
b/include/class/template_card_category.class.php
new file mode 100644
index 0000000..81b6f6f
--- /dev/null
+++ b/include/class/template_card_category.class.php
@@ -0,0 +1,84 @@
+<?php
+
+/*
+ *   This file is part of NOALYSS.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+// Copyright (2016) Author Dany De Bontridder <address@hidden>
+
+require_once NOALYSS_INCLUDE.'/lib/manage_table_sql.class.php';
+require_once NOALYSS_INCLUDE.'/database/fiche_def_ref_sql.class.php';
+
+/**
+ * @file
+ * @brief  Manage the template of card category 
+ */
+
+/**
+ * @class
+ * @brief Manage the template of card category
+ */
+class Template_Card_Category extends Manage_Table_SQL
+{
+    function __construct(Fiche_def_ref_SQL $p_table)
+    {
+        $this->table=$p_table;
+        parent::__construct($p_table);
+        // Label of the columns
+        $this->set_col_label("frd_text", _("Nom"));
+        $this->set_col_label("frd_class_base", _("Poste comptable de base"));
+        $this->set_col_label("frd_id", _("ID"));
+        // Cannot update frd_id
+        $this->set_property_updatable("frd_id", FALSE);
+        $this->a_order=["frd_id","frd_text","frd_class_base"];
+    }
+    function delete()
+    {
+        $cn=Dossier::connect();
+        
+        if ( $cn->get_value("select count(*) from fiche_def where 
frd_id=$1",[$this->table->frd_id])>0)
+        {
+            throw new Exception(_("Effacement impossible : catégorie 
utilisée"));
+        }
+    }
+    /**
+     * Check before inserting or updating, return TRUE if ok otherwise FALSE.
+     * @return boolean
+     */
+    function check()
+    {
+        $cn=Dossier::connect();
+        $error=0;
+        if ( trim($this->table->frd_text) == "" ) {
+            $this->set_error("frd_text",_("Le nom ne peut pas être vide"));
+            $error++;
+        }
+        if ( trim($this->table->frd_class_base) != "" ) {
+            $cnt=$cn->get_value("select count(*) from tmp_pcmn where 
pcm_val=$1"
+                    ,[$this->table->frd_class_base]);
+            if ($cnt == 0) {
+                $this->set_error("frd_class_base",_("Poste comptable n'existe 
pas"));
+                $error++;
+            }
+        }
+        
+        if ( $error != 0) {
+            return false;
+        }
+        return true;
+        
+    }
+}
\ No newline at end of file
diff --git a/include/database/fiche_def_ref_sql.class.php 
b/include/database/fiche_def_ref_sql.class.php
new file mode 100644
index 0000000..5ad8b99
--- /dev/null
+++ b/include/database/fiche_def_ref_sql.class.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * Copyright (C) 2018 Dany De Bontridder <address@hidden>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+/**
+ * @file
+ * @brief Manage the table public.fiche_def_ref , which concerns the template 
of
+ * category of card
+ */
+require_once NOALYSS_INCLUDE.'/lib/noalyss_sql.class.php';
+require_once NOALYSS_INCLUDE.'/lib/database.class.php';
+
+/**
+ * @class
+ * @file Manage the table public.fiche_def_ref , which concerns the template of
+ * category of card
+ */
+class Fiche_def_ref_SQL extends Noalyss_SQL
+{
+
+    function __construct(Database $p_cn, $p_id=-1)
+    {
+        $this->table="public.fiche_def_ref";
+        $this->primary_key="frd_id";
+        /*
+         * List of columns
+         */
+        $this->name=array(
+            "frd_id"=>"frd_id"
+            , "frd_text"=>"frd_text"
+            , "frd_class_base"=>"frd_class_base"
+        );
+        /*
+         * Type of columns
+         */
+        $this->type=array(
+            "frd_id"=>"numeric"
+            , "frd_text"=>"text"
+            , "frd_class_base"=>"text"
+        );
+
+
+        $this->default=array(
+            "frd_id"=>"auto"
+        );
+
+        $this->date_format="DD.MM.YYYY";
+        parent::__construct($p_cn, $p_id);
+    }
+
+}
diff --git a/include/fiche_def.inc.php b/include/fiche_def.inc.php
index 4930c6d..cf30220 100644
--- a/include/fiche_def.inc.php
+++ b/include/fiche_def.inc.php
@@ -20,68 +20,18 @@
 if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
 require_once NOALYSS_INCLUDE.'/lib/ihidden.class.php';
 require_once NOALYSS_INCLUDE.'/class/fiche_def.class.php';
+require_once NOALYSS_INCLUDE.'/class/template_card_category.class.php';
 
-/*! \file
- * \brief Let customise the fiche_def_ref for the user
+/*! 
+ * @file
+ * @brief Let customise the fiche_def_ref for the user
  */
 echo '<div class="content">';
-// record change
-if ( isset ($_POST['confirm_mod']))
-{
-    extract ($_POST);
-    $update=new Fiche_Def_Ref($cn);
-    $update->frd_id=sql_string($frd_id);
-    $update->frd_text=sql_string($frd_text);
-    $update->frd_class_base=sql_string($frd_class_base);
-    $update->Save();
-}
-// Load All Fiche_def
-$fiche_def=new Fiche_Def_Ref($cn);
-$all=$fiche_def->LoadAll();
-
-// Display Them
-echo '<table align="left">';
-for ($i=0;$i<sizeof($all);$i++)
-{
-    echo '<TR>';
-    echo $all[$i]->Display();
-    echo "<TD>";
-    echo '<form method="post">';
-    $w=new IHidden();
-    echo $w->input('idx',$all[$i]->frd_id);
-    echo HtmlInput::submit('mod','modifie');
-    echo $w->input($_REQUEST['ac'],'ac');
-    //echo $w->input($sa,'sa');
-    echo "</form>";
-    echo "</TD>";
-    echo '</TR>';
-}
-echo "</table>";
-// modify input
-if ( isset ($_POST['mod']) )
-{
-    extract ($_POST);
-    echo '<div style="float:left;padding:2%">';
-    echo _("Voulez-vous modifier ?");
-    echo "<br><font color=\"red\"> ";
-    echo _("Attention, ne changer pas la signification de ce poste.");
-    echo hi(_("par exemple ne pas changer Client par fournisseur"))."<br>";
-    echo _("sinon le programme fonctionnera mal, ".
-           "utiliser uniquement des chiffres pour la classe de base ou 
rien")."</font>";
-
-    $mod=new Fiche_Def_Ref($cn);
-    $mod->frd_id=$idx;
-    $mod->Get();
-    echo '<form method="post">';
-    echo '<ul style="list-style-type:none"';
-    echo $mod->Input();
-    echo "</ul>";
-    $w=new IHidden();
-    echo $w->input('ac',$_REQUEST['ac']);
-//    echo $w->input('sa',$sa);
-    echo HtmlInput::submit('confirm_mod' ,'Confirme');
-    echo HtmlInput::submit('no','Cancel');
-    echo '</form>';
-    echo '</div>';
-}
-echo '</div>';
+$fiche_def_ref=new Fiche_def_ref_SQL($cn);
+$cat=new Template_Card_Category($fiche_def_ref);
+$cat->set_callback("ajax_misc.php");
+$cat->add_json_param("gDossier", Dossier::id());
+$cat->add_json_param("op", "template_cat_card");
+$cat->create_js_script();
+$cat->display_table();
+echo "</div>";
\ No newline at end of file



reply via email to

[Prev in Thread] Current Thread [Next in Thread]