'; $cn=Dossier::connect(); //----------------------------------------------------- // Periode //----------------------------------------------------- $http=new HttpInput(); $p_ledger_id=$http->request("jrn_def_id", "number", 0); ?> post("p_exercice_label"); $p_exercice=$http->post("p_exercice"); if (empty(trim($p_exercice_label))) { echo_warning(_("Libellé exercice ne peut pas être vide")); $err =1; } if ($err == 0 && $cn->get_value("select count(*) from parm_periode where p_exercice_label=$1 and p_exercice <>$2", [$p_exercice_label,$p_exercice]) > 0) { echo_warning(_("Le même libellé ne peut pas être utilisé pour 2 exercices")); $err=1; } if ($err == 0) { try { $cn->start(); /** * @todo * Rewrite : split table parm_periode into parm_periode and parm_exercice * disabling temporarily a trigger is not the right solution , * but make the trigger more flexible and less secure * is worst. The trigger is disable in a transaction means it is still enable * for other session. */ $cn->exec_sql("alter table parm_periode disable trigger parm_periode_check_periode_trg"); $cn->exec_sql("update parm_periode set p_exercice_label=$1 where p_exercice=$2", [$p_exercice_label,$p_exercice]); $cn->exec_sql("alter table parm_periode enable trigger parm_periode_check_periode_trg"); $cn->commit(); } catch (Exception $exc) { echo_warning( $exc->getMessage()); error_log($exc->getTraceAsString()); $cn->rollback(); } } } //-------------------------------------------------------------------- // Add an exercice // receive nb_exercice //-------------------------------------------------------------------- if (isset($_POST['add_exercice'])) { $obj=new Periode($cn); try { $p_exercice=$http->post("p_exercice", "number"); $p_exercice_label=$http->post("p_exercice_label", "string"); $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,$p_exercice_label); } catch (Exception $ex) { echo_warning($ex->getMessage()); } } //------------------------------------------------------------------- // Select a ledger or global //------------------------------------------------------------------- echo '
"; echo HtmlInput::button_action(_("Fermer les périodes sélectionnées"), $js_close_selected); /* * Display all the periode for all ledgers */ if ($p_ledger_id==0) { echo HtmlInput::button_action(_("Ajout exercice"), "\$('exercice_add').show()"); //------------------------------------------------------------------- // Add a new Exercice //------------------------------------------------------------------- echo ''; //------------------------------------------------------------------- // Add a new Periode //------------------------------------------------------------------- echo HtmlInput::button_action(_("Ajout période"), "\$('periode_add').show()"); echo ''; //------------------------------------------------------------------- // Change label of Exercice //------------------------------------------------------------------- echo HtmlInput::button_action(_("Modifie libellé exercice"), "\$('exercice_label_div').show()"); echo ''; //------------------------------------------------------------------- // List of Periode //------------------------------------------------------------------- $periode=new Parm_Periode_SQL($cn); Periode::display_periode_global("jsper"); } else { 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 ''; ?>