Code cleaning : remove Fic_Attr , replace by Attr_Def_SQL
This commit is contained in:
parent
4b913f1e88
commit
07fedf5178
10 changed files with 68 additions and 189 deletions
|
|
@ -65,14 +65,14 @@ if ($action=="enable_search")
|
|||
}
|
||||
else
|
||||
{
|
||||
$obj=new Fiche_Attr($cn);
|
||||
$obj=new Attr_Def_SQL($cn);
|
||||
$mtable=new Card_Attribut_MTable($obj);
|
||||
$mtable->add_json_param("op", "card");
|
||||
$mtable->add_json_param("op2", "attribute");
|
||||
$mtable->set_callback("ajax_misc.php");
|
||||
$mtable->set_object_name($http->request("ctl"));
|
||||
$ad_id=$http->request("p_id");
|
||||
$mtable->get_table()->set_parameter("id", $ad_id);
|
||||
$mtable->get_table()->setp("ad_id", $ad_id);
|
||||
switch ($action)
|
||||
{
|
||||
case "input":
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
*/
|
||||
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
|
||||
|
||||
$obj=new Fiche_Attr($cn);
|
||||
$obj=new Attr_Def_SQL($cn);
|
||||
$mtable=new Card_Attribut_MTable($obj);
|
||||
$mtable->add_json_param("op", "card");
|
||||
$mtable->add_json_param("op2", "attribute");
|
||||
|
|
|
|||
|
|
@ -148,13 +148,11 @@ class Card_Attribut_MTable extends Manage_Table_SQL
|
|||
|
||||
function check()
|
||||
{
|
||||
$nb_error=0;
|
||||
$object_sql=$this->get_table();
|
||||
|
||||
if ($object_sql->get("ad_id")<9000 && $object_sql->get("ad_id")!=-1)
|
||||
{
|
||||
$this->set_error("ad_id",_("Bloqué"));
|
||||
return false;
|
||||
}
|
||||
|
||||
// Duplicate
|
||||
|
|
@ -168,30 +166,70 @@ class Card_Attribut_MTable extends Manage_Table_SQL
|
|||
if ($count_duplicate>0)
|
||||
{
|
||||
$this->set_error("ad_text", _("Doublon"));
|
||||
$nb_error++;
|
||||
}
|
||||
// type
|
||||
if (in_array($object_sql->get("ad_type"),
|
||||
array('date', 'text', 'numeric', 'zone', 'poste', 'card', 'select','check'))==false)
|
||||
{
|
||||
$this->set_error("ad_type", _("Type invalide"));
|
||||
}
|
||||
|
||||
// Name empty
|
||||
if (trim($object_sql->ad_text)=="")
|
||||
{
|
||||
$this->set_error("ad_text", _("Description ne peut pas être vide"));
|
||||
$nb_error++;
|
||||
}
|
||||
// select protect
|
||||
if ( $object_sql->ad_size=="") {
|
||||
$object_sql->ad_size=22;
|
||||
}
|
||||
if ($object_sql->ad_type=='numeric')
|
||||
{
|
||||
$object_sql->ad_extra=(trim($object_sql->ad_extra)=='')?'2':$object_sql->ad_extra;
|
||||
if (isNumber($object_sql->ad_extra)==0)
|
||||
{
|
||||
$this->set_error("ad_text",_("La précision doit être un chiffre"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($object_sql->ad_type=='select')
|
||||
{
|
||||
if (trim($object_sql->ad_extra)=="") {
|
||||
|
||||
$this->set_error("ad_extra",_("La requête SQL est vide "));
|
||||
}
|
||||
if (preg_match('/^\h*select/i', $object_sql->ad_extra)==0)
|
||||
{
|
||||
$this->set_error("ad_extra",_("La requête SQL doit commencer par SELECT "));
|
||||
}
|
||||
|
||||
|
||||
if ($nb_error>0)
|
||||
}
|
||||
if ($this->count_error()>0) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function delete() {
|
||||
$object_sql=$this->get_table();
|
||||
|
||||
if ( $object_sql->getp("ad_id") < 9000 ) {
|
||||
throw new Exception (_("Effacement bloqué"));
|
||||
}
|
||||
|
||||
$db=$object_sql->cn;
|
||||
try {
|
||||
$db->start();
|
||||
$object_sql=$this->get_table()->delete();
|
||||
$db->commit();
|
||||
$sql=$db->exec_sql("delete from fiche_detail where ad_id=$1 ", array($object_sql->ad_id));
|
||||
|
||||
$sql="delete from jnt_fic_attr where ad_id=$1";
|
||||
$res=$db->exec_sql($sql, array($object_sql->ad_id));
|
||||
|
||||
$sql="delete from attr_def where ad_id=$1";
|
||||
$res=$db->exec_sql($sql, array($object_sql->ad_id));
|
||||
|
||||
$object_sql=$this->get_table()->delete();
|
||||
$db->commit();
|
||||
} catch (Exception $ex) {
|
||||
$db->rollback();
|
||||
throw new Exception (_("Effacement bloqué : attribut utilisé"));
|
||||
|
|
|
|||
|
|
@ -146,7 +146,8 @@ class Card_Property
|
|||
return;
|
||||
} elseif ($fiche->id==0 && $fiche->fiche_def ==0 )
|
||||
{
|
||||
throw new Exception("CP147. Card category cannot be empty (fiche->set_fiche_def)",EXC_PARAM_VALUE);
|
||||
return;
|
||||
// throw new Exception("CP147. Card category cannot be empty (fiche->set_fiche_def)",EXC_PARAM_VALUE);
|
||||
}
|
||||
$sql="select *
|
||||
from
|
||||
|
|
|
|||
|
|
@ -244,7 +244,7 @@ class Document
|
|||
{
|
||||
if (mkdir($temp_dir)==false)
|
||||
{
|
||||
$msg=sprintf(_("Ne peut pas créer le répertoire %s", $temp_dir));
|
||||
$msg=sprintf("D221."._("Ne peut pas créer le répertoire %s", $temp_dir));
|
||||
record_log("D221".$msg);
|
||||
throw new Exception($msg);
|
||||
}
|
||||
|
|
@ -255,13 +255,13 @@ class Document
|
|||
// check if the opening is sucessfull
|
||||
if ($h===false)
|
||||
{
|
||||
$msg=sprintf(_("Ne peut pas ouvrir [%s] [%s]"), $p_dir, $p_file);
|
||||
$msg=sprintf("D232"._("Ne peut pas ouvrir [%s] [%s]"), $p_dir, $p_file);
|
||||
record_log("D232".$msg);
|
||||
throw new Exception($msg);
|
||||
}
|
||||
if ($output_file==false)
|
||||
{
|
||||
$msg=sprintf(_("Ne peut pas ouvrir [%s] [%s]"), $p_dir, $output_name);
|
||||
$msg=sprintf("D264."._("Ne peut pas ouvrir [%s] [%s]"), $p_dir, $output_name);
|
||||
record_log($msg);
|
||||
throw new Exception($msg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,162 +0,0 @@
|
|||
<?php
|
||||
|
||||
//This file is part of NOALYSS and is under GPL
|
||||
//see licence.txt
|
||||
/**
|
||||
* @brief Manage the table attr_def
|
||||
*
|
||||
*
|
||||
*/
|
||||
require_once NOALYSS_INCLUDE.'/lib/ac_common.php';
|
||||
require_once NOALYSS_INCLUDE."/database/attr_def_sql.class.php";
|
||||
|
||||
class Fiche_Attr extends Attr_Def_SQL
|
||||
{
|
||||
/* example private $variable=array("easy_name"=>column_name,"email"=>"column_name_email","val3"=>0); */
|
||||
|
||||
function __construct($p_cn, $p_id=0)
|
||||
{
|
||||
parent::__construct($p_cn, $p_id);
|
||||
}
|
||||
|
||||
public function get_parameter($p_string)
|
||||
{
|
||||
return $this->getp($p_string);
|
||||
}
|
||||
|
||||
public function set_parameter($p_string, $p_value)
|
||||
{
|
||||
$this->setp($p_string, $p_value);
|
||||
}
|
||||
|
||||
public function verify()
|
||||
{
|
||||
// Verify that the elt we want to add is correct
|
||||
/* verify only the datatype */
|
||||
if (strlen(trim($this->ad_text))==0)
|
||||
throw new Exception('La description ne peut pas être vide', 1);
|
||||
if (strlen(trim($this->ad_type))==0)
|
||||
throw new Exception('Le type ne peut pas être vide', 1);
|
||||
$this->ad_type=strtolower($this->ad_type);
|
||||
if (in_array($this->ad_type, array('date', 'text', 'numeric', 'zone', 'poste', 'card', 'select','check'))==false)
|
||||
throw new Exception('Le type doit être text, numeric,poste, card, select ou date', 1);
|
||||
if (trim($this->ad_size)==''||isNumber($this->ad_size)==0||$this->ad_size>22)
|
||||
{
|
||||
switch ($this->ad_type)
|
||||
{
|
||||
case 'text':
|
||||
$this->ad_size=22;
|
||||
break;
|
||||
case 'numeric':
|
||||
$this->ad_size=9;
|
||||
break;
|
||||
case 'date':
|
||||
$this->ad_size=8;
|
||||
break;
|
||||
case 'zone':
|
||||
$this->ad_size=22;
|
||||
break;
|
||||
|
||||
default:
|
||||
$this->ad_size=22;
|
||||
}
|
||||
}
|
||||
if ($this->ad_type=='numeric')
|
||||
{
|
||||
$this->ad_extra=(trim($this->ad_extra)=='')?'2':$this->ad_extra;
|
||||
if (isNumber($this->ad_extra)==0)
|
||||
throw new Exception("La précision doit être un chiffre");
|
||||
}
|
||||
if ($this->ad_type=='select')
|
||||
{
|
||||
if (trim($this->ad_extra)=="")
|
||||
throw new Exception("La requête SQL est vide ");
|
||||
if (preg_match('/^\h*select/i', $this->ad_extra)==0)
|
||||
throw new Exception("La requête SQL doit commencer par SELECT ");
|
||||
try
|
||||
{
|
||||
|
||||
$this->cn->exec_sql($this->ad_extra);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
record_log($e);
|
||||
throw new Exception("La requête SQL ".h($this->ad_extra)." est invalide ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update()
|
||||
{
|
||||
try
|
||||
{
|
||||
$this->verify();
|
||||
if ($this->ad_id<9000)
|
||||
return;
|
||||
/* please adapt */
|
||||
parent::update();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
record_log($e);
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
if ($this->ad_id<9000)
|
||||
return;
|
||||
$sql=$this->cn->exec_sql("delete from fiche_detail where ad_id=$1 ", array($this->ad_id));
|
||||
|
||||
$sql="delete from jnt_fic_attr where ad_id=$1";
|
||||
$res=$this->cn->exec_sql($sql, array($this->ad_id));
|
||||
|
||||
$sql="delete from attr_def where ad_id=$1";
|
||||
$res=$this->cn->exec_sql($sql, array($this->ad_id));
|
||||
}
|
||||
|
||||
/* !
|
||||
* @brief used with a usort function, to sort an array of Attribut on the attribut_id (ad_id)
|
||||
*/
|
||||
|
||||
static function sort_by_id($o1, $o2)
|
||||
{
|
||||
if ($o1->ad_id>$o2->ad_id)
|
||||
return 1;
|
||||
if ($o1->ad_id==$o2->ad_id)
|
||||
return 0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
|
||||
/* please adapt */
|
||||
if ($this->ad_id < 1)
|
||||
{
|
||||
$this->ad_id=-1;
|
||||
$this->insert();
|
||||
}
|
||||
else
|
||||
$this->update();
|
||||
}
|
||||
public function to_array($prefix="")
|
||||
{
|
||||
|
||||
$array=array();
|
||||
foreach ($this->name as $key=> $value)
|
||||
{
|
||||
$nkey=$prefix.$value;
|
||||
$array[$nkey]=$this->$value;
|
||||
//
|
||||
}
|
||||
return $array;
|
||||
}
|
||||
}
|
||||
|
||||
//Fiche_Attr::test_me();
|
||||
|
||||
|
||||
|
||||
|
|
@ -437,7 +437,6 @@ function noalyss_class_autoloader($class) {
|
|||
"dossier" => "class/dossier.class.php",
|
||||
"exercice" => "class/exercice.class.php",
|
||||
"extension" => "class/extension.class.php",
|
||||
"fiche_attr" => "class/fiche_attr.class.php",
|
||||
"fiche" => "class/fiche.class.php",
|
||||
"fiche_def" => "class/fiche_def.class.php",
|
||||
"fiche_def_ref" => "class/fiche_def_ref.class.php",
|
||||
|
|
|
|||
|
|
@ -40,12 +40,12 @@ class Attr_Def_SQL extends Table_Data_SQL
|
|||
* List of columns
|
||||
*/
|
||||
$this->name=array(
|
||||
"id"=>"ad_id"
|
||||
, "desc"=>"ad_text"
|
||||
, "type"=>"ad_type"
|
||||
, "size"=>"ad_size"
|
||||
, "extra"=>"ad_extra"
|
||||
, "search_followup"=>"ad_search_followup"
|
||||
"ad_id"=>"ad_id"
|
||||
, "ad_text"=>"ad_text"
|
||||
, "ad_type"=>"ad_type"
|
||||
, "ad_size"=>"ad_size"
|
||||
, "ad_extra"=>"ad_extra"
|
||||
, "ad_search_followup"=>"ad_search_followup"
|
||||
);
|
||||
/*
|
||||
* Type of columns
|
||||
|
|
|
|||
|
|
@ -88,7 +88,6 @@ class Card_PropertyTest extends TestCase
|
|||
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
return;
|
||||
require_once 'global.php';
|
||||
global $g_connection;
|
||||
$g_connection=Dossier::connect();
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ class DocumentTest extends TestCase
|
|||
$this->assertTrue ( $document->replace('CUST_NAME',$array) == 'Client 1','CUST_NAME');
|
||||
}
|
||||
/**
|
||||
* @testdox Document::generate(), Document::parseDocument(),Document::replace(); require unoconv -l in another session
|
||||
* @testdox Generate Document::generate(), Document::parseDocument(),Document::replace(); require unoconv -l in another session
|
||||
* @covers Document::generate(), Document::parseDocument(),Document::replace();
|
||||
*/
|
||||
function testGenerate()
|
||||
|
|
@ -136,12 +136,12 @@ class DocumentTest extends TestCase
|
|||
$document->md_id=$md_id;
|
||||
$cnt_before=$cn->get_value("select count(*) from document");
|
||||
$document->generate($array);
|
||||
var_dump($document);
|
||||
$this->assertEquals($document->d_filename ,'all-tags.odt','Generated File ');
|
||||
$cnt_after=$cn->get_value("select count(*) from document");
|
||||
$this->assertTrue ($cnt_after == $cnt_before+1,"One file generated");
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox test $_ENV['TMP']
|
||||
*/
|
||||
|
|
@ -155,11 +155,15 @@ class DocumentTest extends TestCase
|
|||
$document->ag_id=2;
|
||||
$document->md_id=$md_id;
|
||||
$cnt_before=$cn->get_value("select count(*) from document");
|
||||
$tEnv=$_ENV['TMP'];
|
||||
$_ENV['TMP']='/not.exist';
|
||||
$this->assertContains ('échoué',$document->generate($array));
|
||||
$_ENV['TMP']= $tEnv;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @testdox export PDF tests Document::export_pdf, Document::transform2pdf()
|
||||
* @testdox ExtractPdf export PDF tests Document::export_pdf, Document::transform2pdf()
|
||||
*
|
||||
*/
|
||||
function testExtractPdf()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue