1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/noalyss_ynh.git synced 2024-09-03 19:46:20 +02:00
noalyss_ynh/sources/include/ajax/ajax_history.php
dudjima 3a905a4a87 Update sources 7.01
Update files from sources with last update on noalyss.eu
2018-04-13 18:58:28 +02:00

231 lines
7.6 KiB
PHP

<?php
/*
* This file is part of NOALYSS.
*
* NOALYSS 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.
*
* NOALYSS 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 NOALYSS; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright Author Dany De Bontridder danydb@aevalys.eu
/*!\file
* \brief show the history of a card of an accounting
* for the card f_id is set and for an accounting : pcm_val
*/
if ( ! defined('ALLOWED')) die (_('Accès interdit'));
require_once NOALYSS_INCLUDE.'/lib/database.class.php';
require_once NOALYSS_INCLUDE.'/class/user.class.php';
require_once NOALYSS_INCLUDE.'/class/dossier.class.php';
require_once NOALYSS_INCLUDE.'/class/periode.class.php';
require_once NOALYSS_INCLUDE.'/lib/html_input.class.php';
require_once NOALYSS_INCLUDE.'/class/acc_account.class.php';
require_once NOALYSS_INCLUDE.'/class/exercice.class.php';
$div=$_REQUEST['div'];
mb_internal_encoding("UTF-8");
$http=new HttpInput();
/**
*if $_SESSION['g_user'] is not set : echo a warning
*/
/* security */
if ( $g_user->check_dossier(dossier::id(),true) == 'X' ) exit();
$from_div = (isset($_REQUEST['ajax'])) ? 1 : $div;
///////////////////////////////////////////////////////////////////////////
/* first detail for a card */
///////////////////////////////////////////////////////////////////////////
if ( isset($_GET['f_id']))
{
$exercice=new Exercice($cn);
$old='';
$f_id=$http->get('f_id',"number");
$fiche=new Fiche($cn,$f_id);
$year=$http->get("exercice","string","");
if ( $year == "") $year=$g_user->get_exercice();
if ( $year == "" )
{
$html=_("erreur aucune période par défaut, allez dans préférence pour en choisir une");
}
else
{
$per=new Periode($cn);
$limit_periode=$per->get_limit($year);
$array['from_periode']=$limit_periode[0]->first_day();
$array['to_periode']=$limit_periode[1]->last_day();
if (isset($_GET['ex']))
{
$ex=$http->get('ex','number');
$limit_periode=$per->get_limit($ex);
if ( $ex < $year)
$array['from_periode']=$limit_periode[0]->first_day();
else
$array['to_periode']=$limit_periode[1]->last_day();
}
/*
* Add button to select another year
*/
if ($exercice->count() > 1 )
{
$default=$http->get("ex","number",$year);
$dossier=dossier::id();
if ( $div != 'popup')
{
$obj="{op:'history',div:'$div',f_id:'".$_GET['f_id']."',gDossier:'$dossier',select:this,exercice:{$year}}";
$is=$exercice->select('p_exercice',$default,' onchange="update_history_card('.$obj.');"');
$old=_("Autre exercice")." ".$is->input();
}
else
{
$old='<form method="get" style="display:inline" action="popup.php">';
$is=$exercice->select('ex',$default,'onchange = "submit(this)"');
$old.=_("Autre exercice")." ".$is->input();
$old.=HtmlInput::hidden('div','popup');
$old.=HtmlInput::hidden('act',$_GET['act']);
$old.=HtmlInput::hidden('f_id',$_GET['f_id']);
$old.=HtmlInput::hidden('ajax',$_GET['ajax']);
$old.=HtmlInput::hidden('exercice',$year);
$old.=dossier::hidden();
$old.=HtmlInput::hidden('op','history');
$old.='</form>';
}
}
ob_start();
$result=$fiche->HtmlTable($array,0,$from_div);
$table=ob_get_contents();
ob_end_clean();
ob_start();
require_once NOALYSS_TEMPLATE.'/history_top.php';
$detail_card=HtmlInput::card_detail($fiche->strAttribut(ATTR_DEF_QUICKCODE),$fiche->getName());
echo h2( $fiche->getName().'['.$fiche->strAttribut(ATTR_DEF_QUICKCODE).']',' class="title" ');
echo '<p style="text-align:center;">'.$detail_card.'</p>';
if ( $result ==-1){
echo h2(_("Aucune opération pour l'exercice courant"),'class="error"');
} else {
echo $fiche->filter_history("tb".$div);
echo $table;
echo $fiche->button_csv($array['from_periode'],$array['to_periode']);
echo $fiche->button_pdf($array['from_periode'],$array['to_periode']);
}
echo $old;
$html=ob_get_contents();
ob_end_clean();
}
}
///////////////////////////////////////////////////////////////////////////
// for an account
///////////////////////////////////////////////////////////////////////////
if ( isset($_REQUEST['pcm_val']))
{
$poste=new Acc_Account_Ledger($cn,$_REQUEST['pcm_val']);
$poste->load();
$year=$http->get("exercice","string","");
if ( $year == "") $year=$g_user->get_exercice();
if ( $year == 0 )
{
$html=_("erreur aucune période par défaut, allez dans préférence pour en choisir une");
}
else
{
$exercice=new Exercice($cn);
$old='';
$per=new Periode($cn);
$limit_periode=$per->get_limit($year);
$array['from_periode']=$limit_periode[0]->first_day();
$array['to_periode']=$limit_periode[1]->last_day();
if (isset($_GET['ex']))
{
$ex=$http->get("ex","number");
$limit_periode=$per->get_limit($ex);
if ( $ex < $year)
$array['from_periode']=$limit_periode[0]->first_day();
else
$array['to_periode']=$limit_periode[1]->last_day();
}
/*
* Add button to select another year
*/
if ($exercice->count() > 1 )
{
$default=$http->get("ex","number",$year);
$dossier=dossier::id();
if ( $div != 'popup')
{
$obj="{op:'history',div:'$div',pcm_val:'".$_GET['pcm_val']."',gDossier:'$dossier',select:this,exercice:{$year}}";
$is=$exercice->select('p_exercice',$default,' onchange="update_history_account('.$obj.');"');
$old=_("Autre exercice")." ".$is->input();
}
else
{
$old='<form method="get" style="display:inline" action="popup.php">';
$is=$exercice->select('ex',$default,'onchange = "submit(this)"');
$old.=_("Autre exercice")." ".$is->input();
$old.=HtmlInput::hidden('div','popup');
$old.=HtmlInput::hidden('act',$_GET['act']);
$old.=HtmlInput::hidden('pcm_val',$_GET['pcm_val']);
$old.=HtmlInput::hidden('ajax',$_GET['ajax']);
$old.=dossier::hidden();
$old.=HtmlInput::hidden('op','history');
$old.='</form>';
}
}
ob_start();
$result=$poste->HtmlTable($array,0,$from_div);
$table=ob_get_contents();
ob_end_clean();
ob_start();
require_once NOALYSS_TEMPLATE.'/history_top.php';
echo h2( $poste->id." ".h($poste->label),' class="title" ');
if ( $result == -1)
{
echo h2(_("Aucune opération pour l'exercice courant"),'class="error"');
} else {
echo $poste->filter_history('tb'.$div);
echo $table;
echo $poste->button_csv($array['from_periode'],$array['to_periode']);
echo $poste->button_pdf($array['from_periode'],$array['to_periode']);
}
echo $old;
$html=ob_get_contents();
ob_end_clean();
}
}
$xml=escape_xml($html);
if (DEBUG && headers_sent()) {
echo $html;return;
}
header('Content-type: text/xml; charset=UTF-8');
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ctl>$div</ctl>
<code>$xml</code>
</data>
EOF;