',
+ $obj->getp("p_id"),
+ $obj->getp("p_start"),
+ $obj->getp("p_exercice"),
+ $obj->getp("p_id"), $class);
+ /**
+ * Display a checkbox to select several month to close
+ */
+ if ($obj->getp("p_closed")=="f")
+ {
+ $checkbox=new ICheckBox("sel_per_close[]");
+ $checkbox->set_attribute("per_id", $obj->getp("p_id"));
+ $checkbox->value=$obj->getp("p_id");
+ echo "| ".$checkbox->input()." | ";
+ }
+ else
+ {
+ echo td("");
+ }
+ echo td(format_date($obj->getp("p_start"), "YYYY-MM-DD", "DD.MM.YYYY"));
+ echo td(format_date($obj->getp("p_end"), "YYYY-MM-DD", "DD.MM.YYYY"));
+ echo td($obj->getp("p_exercice"));
+ $nb_operation=$periode->count_operation();
+ echo td($nb_operation);
+ $closed=$obj->getp('p_closed');
+ $status=($closed=='t')?_("Fermée"):_("Ouvert");
+ echo td($status);
+
+ // if no operation then this periode can be removed or updated
+ if ($nb_operation==0)
+ {
+ // Updatable
+ $js=sprintf("%s.box_display('%d')", $p_js, $obj->p_id);
+ echo "";
+ echo HtmlInput::image_click("crayon-mod-b24.png", $js, _("Effacer"));
+ echo " | ";
+ //removable
+ $js=sprintf("%s.remove('%d')", $p_js, $obj->p_id);
+ echo "";
+ echo HtmlInput::image_click("trash-24.gif", $js, _("Effacer"));
+ echo " | ";
+ }
+ else
+ {
+ echo td(""), td("");
+ }
+
+ /// Can close if open
+ echo "";
+ if ($obj->getp("p_closed")=='f')
+ {
+ $javascript=sprintf("%s.close_periode('%d')", $p_js, $obj->p_id);
+ echo HtmlInput::anchor_action(_("Fermeture"), $javascript, NULL,
+ "line");
+ }
+ else
+ {
+ $javascript=sprintf("%s.open_periode('%d')", $p_js, $obj->p_id);
+ echo HtmlInput::anchor_action(_("Réouverture"), $javascript, NULL,
+ "line");
+ }
+ echo " | ";
+ echo "
";
+ }
+
+ /**
+ * @brief display a form (method POST) to input a new exercice
+ * variable in the FORM
+ * - p_exercice
+ * - p_year
+ * - nb_month
+ * - from_month
+ * - day_opening
+ * - day_closing
+ */
+ static function form_exercice_add()
+ {
+ $cn=Dossier::connect();
+ $exercice=new INum('p_exercice');
+ $exercice->prec=0;
+ $exercice->value=$cn->get_value('select max(p_exercice::float)+1 from parm_periode');
+ $year=new INum('p_year');
+ $year->prec=0;
+ $year->value=$exercice->value;
+ $nb_month=new INum('nb_month');
+ $nb_month->prec=0;
+ $nb_month->value=12;
+ $from=new ISelect('from_month');
+ $amonth=array();
+ $month=[_('Janvier'), _('Février'), _('Mars'), _('Avril'),
+ _('Mai'), _('Juin'), _('Juillet'), _('Août'), _('Septembre'),
+ _('Octobre'), _('Novembre'), _('Décembre')];
+ for ($i=1; $i<13; $i++)
+ {
+ $strMonth=$month[($i-1)];
+ $amonth[]=array("value"=>$i, "label"=>$strMonth);
+ }
+ $from->value=$amonth;
+ $day_opening=new ICheckBox("day_opening");
+ $day_closing=new ICheckBox("day_closing");
+ $day_closing->value=1;
+ $day_opening->value=1;
+ $day_closing->set_check(1);
+ require_once NOALYSS_TEMPLATE.'/periode_add_exercice.php';
+ }
+ function delete() {
+ $this->cn->exec_sql("delete from parm_periode where p_id=$1",[$this->p_id]);
+ }
+ /**
+ * Verify before delete that the month is not used
+ * @exception Exception code 1 if periode used
+ */
+ function verify_delete() {
+ try {
+ if ( $this->cn->get_value("select count(*) from jrn where jr_tech_per =$1 ",[$this->p_id]) > 0) {
+ throw new Exception(_("Effacement impossible"), 1);
+ }
+ } catch (Exception $ex) {
+ throw $ex;
+ }
+ }
+ /**
+ * @brief Display a form for the input of a new periode
+ */
+ static function form_periode_add($p_js_var)
+ {
+ $cn=Dossier::connect();
+ $p_exercice=new ISelect('p_exercice');
+ $p_exercice->value=$cn->make_array("select distinct p_exercice,p_exercice from parm_periode order by 1 desc");
+ $title=_('Ajout période');
+ $title_par=""._('On ne peut ajouter une période que sur un exercice qui existe déjà').
+ "
";
+
+ $p_start=new IDate('p_start');
+ $p_end=new IDate('p_end');
+
+ $html='';
+ $html.=HtmlInput::title_box($title, 'periode_add','hide');
+ $html.=$title_par;
+ $html.='';
$cn=Dossier::connect();
//-----------------------------------------------------
// Periode
//-----------------------------------------------------
-$action="";
-if ( isset($_REQUEST['action']))
- $action=$_REQUEST['action'];
-$choose=(isset ($_GET['choose']))?$_GET['choose']:"no";
+require_once NOALYSS_INCLUDE."/class/periode.class.php";
+require_once NOALYSS_INCLUDE."/class/periode_ledger.class.php";
+$http=new HttpInput();
-if ($choose=='Valider') $choose='yes';
+$p_ledger_id=$http->request("jrn_def_id", "number", 0);
+?>
+
+';
+echo dossier::hidden();
+$sel_jrn=$cn->make_array("select jrn_def_id, jrn_def_name from ".
+ " jrn_def order by jrn_def_name");
+$sel_jrn[]=array('value'=>0, 'label'=>_('Global : periode pour tous les journaux'));
+$wSel=new ISelect();
+$wSel->value=$sel_jrn;
+$wSel->name='jrn_def_id';
+$wSel->selected=$p_ledger_id;
+echo _("Choisissez global ou uniquement le journal à fermer").$wSel->input();
+echo HtmlInput::submit('choose', 'Valider');
+echo HtmlInput::hidden('ac', $_REQUEST['ac']);
+echo "";
+// display a filter by exercice
+echo _("Montrer l'exercice");
+$max_exercice=$cn->get_value("select max(p_exercice) from parm_periode");
+$p_exercice=$http->request("p_exercice","string",$max_exercice);
+Periode::filter_exercice($p_exercice);
-}
+$js_close_selected="jsper.close_selected()";
+echo HtmlInput::button_action(_("Fermer les périodes sélectionnées"),
+ $js_close_selected);
+//--------------------------------------------------------------------
+// Add an exercice
+// receive nb_exercice
+//--------------------------------------------------------------------
if (isset($_POST['add_exercice']))
- {
+{
$obj=new Periode($cn);
- $exercice=$cn->get_value('select max(p_exercice::float)+1 from parm_periode');
- if ( $obj->insert_exercice($exercice,$_POST['nb_exercice']) == 1 )
+ try
{
- alert(_('Valeurs invalides'));
+ $p_exercice=$http->post("p_exercice", "number");
+ $p_year=$http->post("p_year", "number");
+ $nb_month=$http->post("nb_month", "number");
+ $from_month=$http->post("from_month", "number");
+ $day_opening=$http->post("day_opening", "string", 0);
+ $day_closing=$http->post("day_closing", "string", 0);
+ $exercice=new Periode($cn);
+ $exercice->insert_exercice($p_exercice, $p_year, $from_month, $nb_month,
+ $day_opening, $day_closing);
}
-
- $choose="yes";
- }
+ catch (Exception $ex)
+ {
+ echo_warning($ex->getMessage());
+ }
+}
/*
- * Close selected periode
- */
-if ( isset($_POST['close_per']) )
+ * Display all the periode for all ledgers
+ */
+if ($p_ledger_id==0)
{
- if (isset($_POST['sel_per_close'] ) ) {
- $a_per_to_close=$_POST['sel_per_close'];
- for ($i=0;$i < count($a_per_to_close);$i++) {
- $per=new Periode($cn);
- $jrn_def_id=(isset($_GET['jrn_def_id']))?$_GET['jrn_def_id']:0;
- $per->jrn_def_id=$jrn_def_id;
- $per->set_periode($a_per_to_close[$i]);
- $per->close();
-
- }
- }
- $choose="yes";
-}
+ echo HtmlInput::button_action(_("Ajout exercice"),
+ "\$('exercice_add').show()");
+//-------------------------------------------------------------------
+// Add a new Exercice
+//-------------------------------------------------------------------
+ echo '
';
+ Periode::form_exercice_add();
+ echo '
';
+//-------------------------------------------------------------------
+// Add a new Periode
+//-------------------------------------------------------------------
+ echo HtmlInput::button_action(_("Ajout période"), "\$('periode_add').show()");
+ echo '
';
+ Periode::form_periode_add("jsper");
+ echo '
';
-
-if ( $action== "delete_per" )
-{
- $p_per=$_GET["p_per"];
-// Check if the periode is not used
- if ( $cn->count_sql("select * from jrnx where j_tech_per=$p_per") != 0 )
- {
- alert(_(' Désolé mais cette période est utilisée'));
- }
- else
- {
- $count=$cn->get_value("select count(*) from parm_periode;");
- if ( $count > 1 ) {
- $Res=$cn->exec_sql("delete from parm_periode where p_id=$p_per");
- } else
- {
- alert(_('Désolé mais vous devez avoir au moins une période'));
- }
- }
- $choose="yes";
-}
-if ( $action == 'reopen')
- {
- $jrn_def_id=(isset($_GET['jrn_def_id']))?$_GET['jrn_def_id']:0;
- $per=new Periode($cn);
- $jrn_def_id=(isset($_GET['jrn_def_id']))?$_GET['jrn_def_id']:0;
- $per->set_jrn($jrn_def_id);
- $per->set_periode($_GET['p_per']);
- $per->reopen();
-
- $choose="yes";
- }
-if ( $choose=="yes" )
-{
- echo '
';
- echo HtmlInput::button_anchor(_('Autre Journal ?'),'?choose=no&ac='.$_REQUEST['ac'].'&gDossier='.dossier::id());
- echo '
';
- $per=new Periode($cn);
- $jrn=(isset($_GET['jrn_def_id']))?$_GET['jrn_def_id']:0;
- $per->set_jrn($jrn);
-
- $per->display_form_periode();
- $nb_exercice=new ISelect("nb_exercice");
- $nb_exercice->value=array(
- array('value'=>12,'label'=>_("12 périodes)")),
- array('value'=>13,'label'=>_("13 périodes"))
- );
-
- require_once NOALYSS_TEMPLATE.'/periode_add_exercice.php';
+//-------------------------------------------------------------------
+// List of Periode
+//-------------------------------------------------------------------
+ $periode=new Parm_Periode_SQL($cn);
+ Periode::display_periode_global("jsper");
}
else
{
- echo '
";
- echo '
'._("Pour ajouter, effacer ou modifier une période, il faut choisir global").'
';
+ echo '
'._("Pour ajouter, effacer ou modifier une période, il faut choisir global").'
';
+ $ledger=new Acc_Ledger($cn, $p_ledger_id);
+ echo h2($ledger->get_name());
+
+ $periode_ledger=new Periode_Ledger_Table(0);
+ $ret=$periode_ledger->get_resource_periode_ledger($p_ledger_id);
+ $periode_ledger->display_table($ret, "jsper");
}
+
echo '
';
?>
+
diff --git a/include/template/periode_add_exercice.php b/include/template/periode_add_exercice.php
index bab22985c..0d139d817 100644
--- a/include/template/periode_add_exercice.php
+++ b/include/template/periode_add_exercice.php
@@ -1,26 +1,104 @@