Fix periode

This commit is contained in:
sparkyx 2008-01-10 23:12:20 +00:00
parent eb97359a22
commit f0a8ce67f6
5 changed files with 173 additions and 19 deletions

View file

@ -30,7 +30,7 @@
require_once("constant.php");
include_once ("postgres.php");
require_once('class_dossier.php');
html_page_start();
html_page_start($_SESSION['g_theme']);
$gDossier=dossier::id();

127
html/line_update.php Normal file
View file

@ -0,0 +1,127 @@
<?php
/*
* 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
*/
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
// $Revision$
/*! \file
* \brief Modify the "Plan Comptable"
*/
include_once ("ac_common.php");
require_once('class_dossier.php');
$gDossier=dossier::id();
include_once ("postgres.php");
include_once("check_priv.php");
/* Admin. Dossier */
$rep=DbConnect();
include_once ("class_user.php");
$User=new cl_user($rep);
$User->Check();
html_page_start($User->theme,"onLoad='window.focus();'");
$User->can_request(DbConnect($gDossier),MPCMN);
include ("user_menu.php");
/* Modif d'une ligne */
if ( isset ($_POST["update"] ) ) {
foreach ($_POST as $name => $element) {
echo_debug('line_update.php',__LINE__,"name $name $element");
}
echo JS_UPDATE_PCMN;
$cn=DbConnect($gDossier);
$p_val=trim($_POST["p_val"]);
$p_lib=FormatString($_POST["p_name"]);
$p_parent=trim($_POST["p_val_parent"]);
$old_line=trim($_POST["p_old"]);
// Check if p_parent and p_val are number
if ( ! is_numeric($p_val) || ! is_numeric($p_parent) ) {
// not number no update
echo '<script> alert(\' Valeurs invalides, pas de changement opéré;\');
</script>';
echo "<script>
window.close();
self.opener.RefreshMe();
</script>";
exit();
}
echo_debug('line_update.php',__LINE__,"Update old : $old_line News = $p_val $p_lib");
if ( strlen ($p_val) != 0 && strlen ($p_lib) != 0 && strlen($old_line)!=0 ) {
if (strlen ($p_val) == 1 ) {
$p_parent=0;
} else {
if ( strlen($p_parent)==0 ) {
$p_parent=substr($p_val,0,strlen($p_val)-1);
echo_debug('line_update.php',__LINE__,"Modif valeur = $p_val parent = $p_parent");
}
}
/* Parent existe */
$Ret=ExecSql($cn,"select pcm_val from tmp_pcmn where pcm_val=$p_parent");
if ( pg_NumRows($Ret) == 0 || $p_parent==$old_line ) {
echo '<SCRIPT> alert(" Ne peut pas modifier; aucune poste parent"); </SCRIPT>';
} else {
$Ret=ExecSql($cn,"update tmp_pcmn set pcm_val=$p_val, pcm_lib='$p_lib',pcm_val_parent=$p_parent where pcm_val=$old_line");
}
} else {
echo '<script> alert(\'Update Valeurs invalides\'); </script>';
}
echo "<script>
window.close();
self.opener.RefreshMe();
</script>";
}
?>
<FORM ACTION="line_update.php" METHOD="POST">
<TABLE>
<TR>
<?php
$l=$_GET['l'];
$p=$_GET['p'];
$n=$_GET['n'];
printf ('<TD>Numéro de classe </TD><TD><INPUT TYPE="TEXT" name="p_val" value="%s"></TD>',$l);
echo "</TR><TR>";
printf('<TD>Libellé </TD><TD><INPUT TYPE="TEXT" size="70" NAME="p_name" value="%s"></TD>',urldecode($n));
echo "</TR><TR>";
printf ('<TD>Classe Parent</TD><TD><INPUT TYPE="TEXT" name="p_val_parent" value="%s"></TD>',$p);
echo dossier::hidden();
?>
</TR>
</TABLE>
<TABLE>
<TR>
<TD><INPUT TYPE="Submit" VALUE="Sauve">
<INPUT TYPE="HIDDEN" name="update">
<?php printf ('<INPUT TYPE="HIDDEN" name="p_old" value="%s">',$l); ?>
</TD><TD><input type="button" Value="Retour sans sauver" onClick='window.close();'></TD></TR>
</TABLE>
</FORM>
<?php
html_page_stop();
?>

View file

@ -23,6 +23,9 @@
/*!\file
* \brief For the periode table parm_periode and jrn_periode
*/
require_once ('ac_common.php');
require_once ('debug.php');
require_once ('postgres.php');
class Periode {
var $cn; /*!< database connection */
var $jrn_def_id; /*!< the jr, 0 means all the ledger*/
@ -229,6 +232,36 @@ class Periode {
}
}
function insert($p_date_start,$p_date_end,$p_exercice) {
if (isDate($p_date_start) == null ||
isDate($p_date_end) == null ||
strlen (trim($p_exercice)) == 0 ||
(string) $p_exercice != (string)(int) $p_exercice)
{
return 1;
}
$p_id=NextSequence($this->cn,'s_periode');
$sql=sprintf(" insert into parm_periode(p_id,p_start,p_end,p_closed,p_exercice)".
"values (%d,to_date('%s','DD.MM.YYYY'),to_date('%s','DD.MM.YYYY')".
",'f','%s')",
$p_id,
$p_date_start,
$p_date_end,
$p_exercice);
try {
StartSql($this->cn);
$Res=ExecSql($this->cn,$sql);
$Res=ExecSql($this->cn,"insert into jrn_periode (jrn_def_id,p_id,status) ".
"select jrn_def_id,$p_id,'OP' from jrn_def");
Commit($this->cn);
} catch (Exception $e) {
Rollback($this->cn);
echo_debug(__FILE__.':'.__LINE__.'- Periode insert','Exception ',$e);
echo_debug(__FILE__.':'.__LINE__.'- Periode insert','Exception ',$e->getMessage());
return 1;
}
return 0;
}
static function test_me() {
$cn=DbConnect(dossier::id());
$obj=new Periode($cn);

View file

@ -112,7 +112,11 @@ if ( isset ($_POST["DATABASE"]) ) {
values (to_date('31-12-%s','DD-MM-YYYY'),to_date('31-12-%s','DD-MM-YYYY'),'%s')",
$year,$year,$year);
$Res=ExecSql($cn,$sql);
$sql=" insert into jrn_periode(p_id,jrn_def_id,status) ".
"select p_id,jrn_def_id, 'OP'".
" from parm_periode cross join jrn_def";
$Res=ExecSql($cn,$sql);
}
} // if $l_id != 0

View file

@ -20,6 +20,7 @@
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
/*! \file
*/
$gDossier=dossier::id();
require_once ('class_widget.php');
require_once("preference.php");
require_once ('class_periode.php');
@ -58,7 +59,7 @@ if ( isset ($_POST["conf_chg_per"] ) ) {
(string) $p_exercice != (string)(int) $p_exercice)
{
echo "<H2 class=\"error\"> Valeurs invalides</H2>";
ShowPeriode($cn);
// ShowPeriode($cn);
return;
}
$Res=ExecSql($cn," update parm_periode ".
@ -72,24 +73,13 @@ if ( isset ($_POST["conf_chg_per"] ) ) {
}
if ( isset ($_POST["add_per"] )) {
foreach($_POST as $key=>$element)
${"$key"}=$element;
if (isDate($p_date_start) == null ||
isDate($p_date_end) == null ||
strlen (trim($p_exercice)) == 0 ||
(string) $p_exercice != (string)(int) $p_exercice)
{
extract($_POST);
$obj=new Periode($cn);
if ( $obj->insert($p_date_start,$p_date_end,$p_exercice) == 1 ){
echo "<H2 class=\"error\"> Valeurs invalides</H2>";
ShowPeriode($cn);
// ShowPeriode($cn);
return;
}
$Res=ExecSql($cn,sprintf(" insert into parm_periode(p_start,p_end,p_closed,p_exercice)".
"values (to_date('%s','DD.MM.YYYY'),to_date('%s','DD.MM.YYYY')".
",'f','%s')",
$p_date_start,
$p_date_end,
$p_exercice));
}
$choose="yes";
}