diff --git a/include/ajax/ajax_card_attribute.php b/include/ajax/ajax_card_attribute.php index b0bd02e49..4f32622fc 100644 --- a/include/ajax/ajax_card_attribute.php +++ b/include/ajax/ajax_card_attribute.php @@ -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": diff --git a/include/card_attr.inc.php b/include/card_attr.inc.php index b4176d2be..2ddf49125 100644 --- a/include/card_attr.inc.php +++ b/include/card_attr.inc.php @@ -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"); diff --git a/include/class/card_attribut_mtable.class.php b/include/class/card_attribut_mtable.class.php index 8f052a85f..c731b5a0c 100644 --- a/include/class/card_attribut_mtable.class.php +++ b/include/class/card_attribut_mtable.class.php @@ -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é")); diff --git a/include/class/card_property.class.php b/include/class/card_property.class.php index f99b0812a..6e3cdb809 100644 --- a/include/class/card_property.class.php +++ b/include/class/card_property.class.php @@ -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 diff --git a/include/class/document.class.php b/include/class/document.class.php index 136ae7090..190d596a9 100644 --- a/include/class/document.class.php +++ b/include/class/document.class.php @@ -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); } diff --git a/include/class/fiche_attr.class.php b/include/class/fiche_attr.class.php deleted file mode 100644 index c424e38ab..000000000 --- a/include/class/fiche_attr.class.php +++ /dev/null @@ -1,162 +0,0 @@ -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(); - - - diff --git a/include/constant.php b/include/constant.php index 179779ebc..07c9dd957 100644 --- a/include/constant.php +++ b/include/constant.php @@ -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", diff --git a/include/database/attr_def_sql.class.php b/include/database/attr_def_sql.class.php index 758f53763..94cd45e19 100644 --- a/include/database/attr_def_sql.class.php +++ b/include/database/attr_def_sql.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 diff --git a/unit-test/include/class/card_property.Test.php b/unit-test/include/class/card_property.Test.php index 61a0610fa..449fffd4a 100644 --- a/unit-test/include/class/card_property.Test.php +++ b/unit-test/include/class/card_property.Test.php @@ -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(); diff --git a/unit-test/include/class/document.Test.php b/unit-test/include/class/document.Test.php index cb5b7ba80..9015d1552 100644 --- a/unit-test/include/class/document.Test.php +++ b/unit-test/include/class/document.Test.php @@ -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()