Add Fiche print and export : a bug is still to be fixed
This commit is contained in:
parent
0cbec3f01b
commit
92ee337d1e
3 changed files with 282 additions and 17 deletions
66
html/fiche_csv.php
Normal file
66
html/fiche_csv.php
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
<?
|
||||
/*
|
||||
* This file is part of PhpCompta.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
/* $Revision$ */
|
||||
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
|
||||
header('Content-type: application/csv');
|
||||
header('Content-Disposition: attachment;filename="fiche.csv"',FALSE);
|
||||
include_once ("ac_common.php");
|
||||
include_once('class_fiche.php');
|
||||
include_once ("postgres.php");
|
||||
|
||||
|
||||
$cn=DbConnect($g_dossier);
|
||||
|
||||
|
||||
include ('class_user.php');
|
||||
$User=new cl_user($cn);
|
||||
$User->Check();
|
||||
if ( $g_UserProperty['use_admin'] == 0 ) {
|
||||
if (CheckAction($g_dossier,$g_user,FICHE_READ) == 0 )
|
||||
{
|
||||
/* Cannot Access */
|
||||
NoAccess();
|
||||
}
|
||||
}
|
||||
if ( isset ($_POST['fd_id'])) {
|
||||
$fiche_def=new fiche_def($cn,$_POST['fd_id']);
|
||||
$fiche=new fiche($cn);
|
||||
$e=$fiche->GetByType($fiche_def->id);
|
||||
// var_dump($e);
|
||||
$old=-1;
|
||||
foreach ($e as $detail) {
|
||||
if ($old == -1 ) {
|
||||
$old=$detail->id;
|
||||
|
||||
$fiche_def->GetAttribut();
|
||||
foreach ($fiche_def->attribut as $attribut)
|
||||
printf("%s\t",$attribut);
|
||||
printf("\n");
|
||||
}
|
||||
if ( $old != $detail->id) {
|
||||
$old=$detail->id;
|
||||
printf("\n");
|
||||
}
|
||||
printf ("%s\t",$detail->attribut_value);
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
exit;
|
||||
?>
|
||||
|
|
@ -18,42 +18,133 @@
|
|||
*/
|
||||
/* $Revision$ */
|
||||
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
|
||||
class fiche_def {
|
||||
var $cn; // database connection
|
||||
var $id; // id (fiche_def.fd_id
|
||||
var $label; // fiche_def.fd_label
|
||||
var $class_base; // fiche_def.fd_class_base
|
||||
var $fiche_def; // fiche_def.frd_id = fiche_def_ref.frd_id
|
||||
var $create_account; // fd_create_account: flag
|
||||
var $all;
|
||||
var $attribut; // get from attr_xxx tables
|
||||
function fiche_def($p_cn,$p_id = 0) {
|
||||
$this->cn=$p_cn;
|
||||
$this->id=$p_id;
|
||||
}
|
||||
|
||||
/* function GetAttribut
|
||||
**************************************************
|
||||
* Purpose : Get attribut of a fiche_def
|
||||
*
|
||||
* parm :
|
||||
* - none
|
||||
* gen :
|
||||
* - none
|
||||
* return:
|
||||
* none
|
||||
*/
|
||||
function GetAttribut() {
|
||||
$sql="select * from jnt_fic_attr ".
|
||||
" natural join attr_def where fd_id=".$this->id.
|
||||
" order by ad_id";
|
||||
|
||||
$Ret=ExecSql($this->cn,$sql);
|
||||
|
||||
if ( ($Max=pg_NumRows($Ret)) == 0 )
|
||||
return ;
|
||||
for ($i=0;$i < $Max;$i++) {
|
||||
$row=pg_fetch_array($Ret,$i);
|
||||
$this->attribut[$i]=$row['ad_text'];
|
||||
}
|
||||
}
|
||||
|
||||
/* function Get
|
||||
**************************************************
|
||||
* Purpose : Get attribut of the fiche_def
|
||||
*
|
||||
* parm :
|
||||
* - none
|
||||
* gen :
|
||||
* - none
|
||||
* return:
|
||||
* none
|
||||
*/
|
||||
function Get() {
|
||||
if ( $this->id == 0 )
|
||||
return 0;
|
||||
$sql="select * from fiche_def ".
|
||||
" where fd_id=".$this->id;
|
||||
$Ret=ExecSql($this->cn,$sql);
|
||||
if ( ($Max=pg_NumRows($Ret)) == 0 )
|
||||
return ;
|
||||
$row=pg_fetch_array($Ret,0);
|
||||
$this->label=$row['fd_label'];
|
||||
$this->class_base=$row['fd_class_base'];
|
||||
$this->fiche_def=$row['frd_id'];
|
||||
$this->create_account=$row['fd_create_account'];
|
||||
}
|
||||
/* function GetAll
|
||||
**************************************************
|
||||
* Purpose : Get all the fiche_def
|
||||
*
|
||||
* parm :
|
||||
* - none
|
||||
* gen :
|
||||
* - none
|
||||
* return: an array of fiche_def object
|
||||
*/
|
||||
function GetAll() {
|
||||
$sql="select * from fiche_def ";
|
||||
|
||||
$Ret=ExecSql($this->cn,$sql);
|
||||
if ( ($Max=pg_NumRows($Ret)) == 0 )
|
||||
return ;
|
||||
|
||||
for ( $i = 0; $i < $Max;$i++) {
|
||||
$row=pg_fetch_array($Ret,$i);
|
||||
$this->all[$i]=new fiche_def($this->cn,$row['fd_id']);
|
||||
$this->all[$i]->label=$row['fd_label'];
|
||||
$this->all[$i]->class_base=$row['fd_class_base'];
|
||||
$this->all[$i]->fiche_def=$row['frd_id'];
|
||||
$this->all[$i]->create_account=$row['fd_create_account'];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// class fiche
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
class fiche {
|
||||
var $cn;// database connection
|
||||
var $a_attribut; // array of attribut
|
||||
var $id; // fiche.f_id
|
||||
|
||||
var $fiche_def; // fd_id
|
||||
var $attribut_id; // .ad_id
|
||||
var $attribut_def; // ad_text
|
||||
var $attribut_value; // av_text
|
||||
function fiche($p_cn,$p_id=0) {
|
||||
$this->cn=$p_cn;
|
||||
$this->id=$p_id;
|
||||
$this->ad_id[0]='undefined';
|
||||
$this->jft_id[0]='undefined';
|
||||
$this->fd_id[0]='undefined';
|
||||
$this->description[0]='undefined';
|
||||
$this->libelle[0]='undefined';
|
||||
|
||||
}
|
||||
|
||||
function getAttribut() {
|
||||
if ( $p_id == 0){
|
||||
if ( $this->id == 0){
|
||||
return;
|
||||
}
|
||||
$sql="select *
|
||||
from jnt_fic_att_value
|
||||
natural join fiche
|
||||
natural join attr_value natural
|
||||
join attr_def where f_id=".$this->id;
|
||||
natural join attr_value
|
||||
left join attr_def on (attr_def.ad_id=attr_value) where f_id=".$this->id;
|
||||
$Ret=ExecSql($this->cn,$sql);
|
||||
if ( ($Max=pg_NumRows($Ret)) == 0 )
|
||||
return ;
|
||||
for ($i=0;$i<$Max;$i++) {
|
||||
$row=pg_fetch_array($Ret,$i);
|
||||
$this->ad_id[$i]=$row['ad_id'];
|
||||
$this->jft_id[$i]=$row['jft_id'];
|
||||
$this->fd_id[$i]=$row['fd_id'];
|
||||
$this->description[$i]=$row['av_text'];
|
||||
$this->libelle[$i]=$row['ad_text'];
|
||||
$this->fiche_def=$row['fd_id'];
|
||||
$this->attribut_id=$row['ad_id'];
|
||||
$this->attribut_value=$row['av_text'];
|
||||
$this->attribut_def=$row['ad_text'];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -63,6 +154,36 @@ class fiche {
|
|||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
function GetByType($p_fd_id) {
|
||||
$sql="select *
|
||||
from jnt_fic_att_value
|
||||
natural join fiche
|
||||
natural join attr_value natural
|
||||
join attr_def where fd_id=".$p_fd_id.
|
||||
" order by f_id,ad_id";
|
||||
$Ret=ExecSql($this->cn,$sql);
|
||||
if ( ($Max=pg_NumRows($Ret)) == 0 )
|
||||
return ;
|
||||
$all[0]=new fiche($this->cn);
|
||||
|
||||
for ($i=0;$i<$Max;$i++) {
|
||||
$row=pg_fetch_array($Ret,$i);
|
||||
$all[$i]=new fiche($this->cn,$row['f_id']);
|
||||
$all[$i]->fiche_def=$row['fd_id'];
|
||||
$all[$i]->attribut_id=$row['ad_id'];
|
||||
$all[$i]->attribut_value=$row['av_text'];
|
||||
$all[$i]->attribut_def=$row['ad_text'];
|
||||
|
||||
}
|
||||
return $all;
|
||||
}
|
||||
function ShowTable() {
|
||||
echo "<TR><TD> ".
|
||||
$this->id."</TD>".
|
||||
"<TR> <TD>".
|
||||
$this->attribut_value."</TD>".
|
||||
"<TR> <TD>".
|
||||
$this->attribut_def."</TD></TR>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
78
include/impress_fiche.php
Normal file
78
include/impress_fiche.php
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
<?
|
||||
/*
|
||||
* This file is part of PhpCompta.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
/* $Revision$ */
|
||||
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
|
||||
|
||||
include_once('postgres.php');
|
||||
include_once('class_fiche.php');
|
||||
include_once("class_widget.php");
|
||||
|
||||
$cn=DbConnect($g_dossier);
|
||||
$fiche_def=new fiche_def($cn);
|
||||
|
||||
|
||||
$fiche_def->GetAll();
|
||||
// var_dump($fiche);
|
||||
$i=0;
|
||||
foreach ($fiche_def->all as $l_fiche) {
|
||||
$a[$i]=array("user_impress.php?type=fiche&fd_id=".$l_fiche->id,$l_fiche->label);
|
||||
$i++;
|
||||
}
|
||||
echo ShowItem($a,'V');
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
if ( isset ($_GET['fd_id'])) {
|
||||
echo '<div class="u_redcontent">';
|
||||
$submit=new widget();
|
||||
$hid=new widget("hidden");
|
||||
$fiche_id=new widget("hidden");
|
||||
|
||||
echo '<form method="POST" ACTION="fiche_csv.php">'.
|
||||
$submit->Submit('bt_csv',"Export CSV").
|
||||
$hid->IOValue("type","fiche").
|
||||
$fiche_id->IOValue("fd_id",$_GET['fd_id']);
|
||||
|
||||
echo "</form>";
|
||||
|
||||
$fiche_def->id=$_GET['fd_id'];
|
||||
$fiche=new fiche($cn);
|
||||
$e=$fiche->GetByType($fiche_def->id);
|
||||
// var_dump($e);
|
||||
$old=-1;
|
||||
echo "<TABLE>";
|
||||
|
||||
foreach ($e as $detail) {
|
||||
if ($old == -1 ) {
|
||||
$old=$detail->id;
|
||||
echo "<TR>";
|
||||
$fiche_def->GetAttribut();
|
||||
foreach ($fiche_def->attribut as $attribut)
|
||||
echo "<TH>".$attribut."</TH>";
|
||||
echo "<TR></TR>";
|
||||
}
|
||||
if ( $old != $detail->id) {
|
||||
$old=$detail->id;
|
||||
echo "</TR><TR>";
|
||||
}
|
||||
echo "<TD>".$detail->attribut_value."</TD>";
|
||||
}
|
||||
|
||||
echo "</tr></TABLE>";
|
||||
echo "</div>";
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue