From f0a8ce67f621db13da618f4a4b91338723eed427 Mon Sep 17 00:00:00 2001 From: sparkyx Date: Thu, 10 Jan 2008 23:12:20 +0000 Subject: [PATCH] Fix periode --- html/budget.php | 2 +- html/line_update.php | 127 ++++++++++++++++++++++++++++++++++++++ include/class_periode.php | 33 ++++++++++ include/dossier.inc.php | 6 +- include/periode.inc.php | 24 +++---- 5 files changed, 173 insertions(+), 19 deletions(-) create mode 100644 html/line_update.php diff --git a/html/budget.php b/html/budget.php index d94387b5a..f07ea12bb 100644 --- a/html/budget.php +++ b/html/budget.php @@ -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(); diff --git a/html/line_update.php b/html/line_update.php new file mode 100644 index 000000000..a413f1136 --- /dev/null +++ b/html/line_update.php @@ -0,0 +1,127 @@ +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 ''; + echo ""; + 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 ''; + } 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 ''; + } + + echo ""; + +} + +?> +
+ + +Numéro de classe ',$l); +echo ""; +printf('',urldecode($n)); +echo ""; +printf ('',$p); +echo dossier::hidden(); +?> + +
Libellé
Classe Parent
+ + + +
+ +',$l); ?> +
+
+ + + diff --git a/include/class_periode.php b/include/class_periode.php index db614b077..95fbbba0b 100644 --- a/include/class_periode.php +++ b/include/class_periode.php @@ -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); diff --git a/include/dossier.inc.php b/include/dossier.inc.php index 7c6ba08cd..61f6859e2 100644 --- a/include/dossier.inc.php +++ b/include/dossier.inc.php @@ -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 diff --git a/include/periode.inc.php b/include/periode.inc.php index 6e89f24b2..f923bf781 100644 --- a/include/periode.inc.php +++ b/include/periode.inc.php @@ -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 "

Valeurs invalides

"; - 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 "

Valeurs invalides

"; - 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"; }