42 if (IsNumber($p_database_id) ==
false || strlen($p_database_id??
"") > 10)
43 die(
"-->Dossier invalide [$p_database_id]");
44 $noalyss_user = (defined(
"noalyss_user")) ? noalyss_user : phpcompta_user;
45 $password = (defined(
"noalyss_password")) ? noalyss_password : phpcompta_password;
46 $port = (defined(
"noalyss_psql_port")) ? noalyss_psql_port : phpcompta_psql_port;
47 $host = (!defined(
"noalyss_psql_host")) ?
'127.0.0.1' : noalyss_psql_host;
48 if (defined(
"MULTI") && MULTI ==
"0") {
52 if ($p_database_id == 0) {
53 $l_dossier = sprintf(
"%saccount_repository", strtolower(
domaine));
55 $l_dossier = sprintf(
"%sdossier%d", strtolower(
domaine), $p_database_id);
57 $l_dossier = sprintf(
"%smod%d", strtolower(
domaine), $p_database_id);
58 }
else if (
$p_type ==
'template') {
59 $l_dossier =
'template1';
61 throw new Exception(
'Connection invalide');
65 parent::__construct($noalyss_user, $password, $l_dossier, $host, $port);
67 $this->
exec_sql(
'set search_path to public,pg_catalog;');
69 $this->
exec_sql(
'set search_path to public,comptaproc,pg_catalog;');
71 $this->
exec_sql(
'set DateStyle to ISO, MDY;');
85 $oid = $this->
upload(
'pj');
90 $ret = $this->
exec_sql(
"select jr_pj from jrn where jr_grpt_id=$seq");
91 if (pg_num_rows(
$ret) != 0) {
92 $r = pg_fetch_array(
$ret, 0);
93 $old_oid =
$r[
'jr_pj'];
94 if (strlen($old_oid??
"") != 0)
98 $this->
exec_sql(
"update jrn set jr_pj=$1 , jr_pj_name=$2,
99 jr_pj_type=$3 where jr_grpt_id=$4",
100 array($oid, $_FILES[
'pj'][
'name'], $_FILES[
'pj'][
'type'],
$seq));
131 echo
_(
'Base de donnée vide');
135 $succeed =
"<span style=\"font-size:18px;color:green\">✓</span>";
136 echo
'<ul style="list-type-style:square">';
137 for (
$i = 4;
$i <= $MaxVersion;
$i++) {
142 $this->
exec_sql(
'ALTER TABLE amortissement.amortissement_histo
143 ADD CONSTRAINT internal_fk FOREIGN KEY (jr_internal) REFERENCES jrn (jr_internal)
144 ON UPDATE CASCADE ON DELETE SET NULL');
147 echo
"<li>Patching " . $p_name .
148 " from the version " . $this->
get_version() .
" to $to ";
150 $this->
execute_script(NOALYSS_INCLUDE .
'/sql/patch/upgrade' .
$i .
'.sql');
153 if ( DEBUGNOALYSS == 0)
157 $sql =
"select jrn_def_id from jrn_def ";
162 $sql = sprintf(
"create sequence s_jrn_%d",
$row[
'jrn_def_id']);
170 $Res2 = $this->
exec_sql(
'select coalesce(max(jr_grpt_id),1) as l from jrn');
171 $Max2 = pg_num_rows($Res2);
173 $Row = pg_fetch_array($Res2, 0);
176 $this->
exec_sql(
"select setval('s_grpt',$M,true)");
181 $this->
execute_script(NOALYSS_INCLUDE .
'/sql/patch/upgrade17.sql');
182 $max = $this->
get_value(
'select last_value from s_jnt_fic_att_value');
187 if (
$i == 30 && $p_name ==
"mod") {
188 $a_seq = array(
's_jrn',
's_jrn_op',
's_centralized',
189 's_stock_goods',
'c_order',
's_central');
190 foreach ($a_seq as
$seq) {
191 $sql = sprintf(
"select setval('%s',1,false)",
$seq);
194 $sql =
"select jrn_def_id from jrn_def ";
199 $sql = sprintf(
"select setval('s_jrn_%d',1,false)",
$row[
'jrn_def_id']);
205 $res = $this->
exec_sql(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
208 $this->
exec_sql(
'update tmp_pcmn set pcm_type=find_pcm_type(pcm_val)');
211 $res = $this->
exec_sql(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
214 $this->
exec_sql(
"insert into parm_code values ('SUPPLIER',440,'Poste par défaut pour les fournisseurs')");
216 $this->
exec_sql(
"insert into parm_code values ('SUPPLIER',400,'Poste par défaut pour les fournisseurs')");
219 $country = $this->
get_value(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
226 $country = $this->
get_value(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
230 if (DEBUGNOALYSS == 0 )
248 $sys_name = sprintf(
"%sdossier%d", strtolower(
domaine),
$p_id);
251 $sys_name = sprintf(
"%smod%d", strtolower(
domaine),
$p_id);
255 throw new Exception(__FILE__ .
" format_name invalid type " .
$p_type . __LINE__);
echo_error($p_log, $p_line="", $p_message="")
log error into the /tmp/noalyss_error.log it doesn't work on windows
catch(Exception $exc) if(! $g_user->can_write_action($ag_id)) $r
_("actif, passif,charge,...")
This class allow you to connect to the postgresql database, execute sql, retrieve data.
alter_seq($p_name, $min)
alter the sequence value
$sql
last SQL stmt executed
get_value($p_sql, $p_array=null)
return the value of the sql, the sql will return only one value with the value
exec_sql($p_string, $p_array=null)
send a sql string to the database
lo_unlink($p_oid)
wrapper for the function pg_lo_unlink
execute_script($script)
Execute a sql script.
exist_table($p_name, $p_schema='public')
test if a table exist
contains the class for connecting to Noalyss
__construct($p_database_id=0, $p_type='dos')
constructor
format_name($p_id, $p_type)
return the name of the database with the domain name
get_version()
Get version of a database, the content of the table version.
apply_patch($p_name)
loop to apply all the path to a folder or a template Upgrade check if the folder $p_name needs to be ...