diff --git a/html/ajax_misc.php b/html/ajax_misc.php
index bc8830d35..8dbd3112d 100644
--- a/html/ajax_misc.php
+++ b/html/ajax_misc.php
@@ -53,7 +53,7 @@ foreach ($var as $v)
}
}
if ( $cont != 0 ) exit();
-extract($_GET );
+extract($_REQUEST );
set_language();
$cn=new Database($gDossier);
@@ -442,4 +442,10 @@ EOF;
case 'mod_doc':
require_once('modify_mod_document.inc.php');
break;
+case 'input_per':
+ require_once('modify_periode.inc.php');
+ break;
+case 'save_per':
+ require_once('modify_periode.inc.php');
+ break;
}
diff --git a/html/js/scripts.js b/html/js/scripts.js
index bb439c761..4bc638d4c 100644
--- a/html/js/scripts.js
+++ b/html/js/scripts.js
@@ -859,11 +859,90 @@ function show_calc()
shtml+='
Taper une formule (ex 20*5.1) puis enter
';
-var obj={id:
- sid,html:
- shtml,drag:
- true,style:'position:absolute;display:block;top:30px;left:150px;width:250px;border:1px solid black;background-color:#99b1df;font-size:12;padding: 2 2 2 2;'
- };
+var obj={id:sid,html:shtml,
+ drag:true,style:'position:absolute;display:block;top:30px;left:150px;width:250px;border:1px solid black;background-color:#99b1df;font-size:12;padding: 2 2 2 2;'
+ };
add_div(obj);
this.document.getElementById('inp').focus();
}
+function display_periode(p_dossier,p_id)
+{
+
+ try
+ {
+ var queryString="gDossier="+p_dossier+"&op=input_per"+"&p_id="+p_id;
+ var popup={'id': 'mod_periode','cssclass':'op_detail','html':loading(),'style':'position:fixed;top:45%;left:45%',
+ 'drag':true};
+ if ( ! $('mod_periode') ) {
+ add_div(popup);
+ }
+ var action = new Ajax.Request(
+ "ajax_misc.php" ,
+ { method:'get',
+ parameters:queryString,
+ onFailure:ajax_misc_failure,
+ onSuccess:success_display_periode
+ }
+ );
+ }
+ catch (e)
+ {
+ alert("display_periode "+e.message);
+ }
+
+}
+function success_display_periode(req)
+{ try
+ {
+
+ var answer=req.responseXML;
+ var html=answer.getElementsByTagName('data');
+
+ if ( html.length == 0 )
+ {
+ var rec=req.responseText;
+ alert ('erreur :'+rec);
+ }
+
+ var code_html=getNodeText(html[0]);
+ code_html=unescape_xml(code_html);
+
+ $('mod_periode').innerHTML=code_html;
+ }
+ catch (e)
+ {
+ alert("success_display_periode".e.message);
+ }
+ try
+ {
+ code_html.evalScripts();
+ }
+ catch(e)
+ {
+ alert("success_display_periode Impossible executer script de la reponse\n"+e.message);
+ }
+
+}
+function save_periode(obj)
+{
+ try
+ {
+ var queryString="?"+$(obj).serialize()+"&op=save_per";
+
+ var action = new Ajax.Request(
+ "ajax_misc.php" ,
+ { method:'post',
+ parameters:queryString,
+ onFailure:ajax_misc_failure,
+ onSuccess:success_display_periode
+ }
+ );
+
+ }
+ catch (e)
+ {
+ alert("display_periode "+e.message);
+ }
+
+ return false;
+}
\ No newline at end of file
diff --git a/include/class_html_input.php b/include/class_html_input.php
index 7ade1266c..aff77935d 100755
--- a/include/class_html_input.php
+++ b/include/class_html_input.php
@@ -372,4 +372,11 @@ class HtmlInput
ob_clean();
return $r;
}
+ static function display_periode($p_id)
+ {
+ $r=sprintf('Modifier',
+ dossier::id(),
+ $p_id);
+ return $r;
+ }
}
diff --git a/include/class_periode.php b/include/class_periode.php
index 615dcbe9d..5ddd0af13 100644
--- a/include/class_periode.php
+++ b/include/class_periode.php
@@ -133,16 +133,8 @@ class Periode
$this->cn->exec_sql("update jrn_periode set status='OP' ".
" where jrn_def_id=".$this->jrn_def_id." and ".
" p_id = ".$this->p_id);
- /* if all ledgers have this periode open then synchro with
- the table parm_periode
- */
- $nJrn=$this->cn->count_sql( "select * from jrn_periode where ".
- " p_id=".$this->p_id);
- $nJrnPeriode=$this->cn->count_sql( "select * from jrn_periode where ".
- " p_id=".$this->p_id." and status='OP'");
-
- if ( $nJrnPeriode==$nJrn)
- $this->cn->exec_sql("update parm_periode set p_closed=false where p_id=".$this->p_id);
+ /* if one ledger is open then the periode is open */
+ $this->cn->exec_sql("update parm_periode set p_closed=false where p_id=".$this->p_id);
return;
}
@@ -244,12 +236,22 @@ class Periode
{
$closed='';
$closed.=' Cloturer | ';
- $change='';
+
+ if ($l_line['count_op'] == 0 )
+ {
+ $change=HtmlInput::display_periode($l_line['p_id']);
+ }
+ else
+ {
+ $change="Non modifiable";
+ }
+ $change=td($change);
+ /*
$change.=' Changer | ";
-
+ */
$reopen=td("");
diff --git a/include/modify_periode.inc.php b/include/modify_periode.inc.php
new file mode 100644
index 000000000..633176d5c
--- /dev/null
+++ b/include/modify_periode.inc.php
@@ -0,0 +1,104 @@
+check_action(PARPER) == 0 )
+ {
+ $html='Accès interdit
';
+ $err=1;
+ }
+ else
+ {
+ switch ($op)
+ {
+ case 'input_per':
+ $per=new Periode($cn,$_GET['p_id']);
+ $per->load();
+ $limit=$per->get_date_limit($_GET['p_id']);
+
+ $p_start=new IDate('p_start');
+ $p_start->value=$limit['p_start'];
+ $p_end = new IDate('p_end');
+ $p_end->value = $limit['p_end'];
+ $p_exercice=new INum('p_exercice');
+ $p_exercice->value=$per->p_exercice;
+
+ $html=' Modifier les dates de début et fin de période
';
+ $html.='Cela pourrait avoir un impact sur les opérations déjà existantes
';
+ $html.='