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;');
76 return "DatabaseCore[db=" . var_export($this->
db,true)
77 .
", ret=" .var_export( $this->ret,true)
78 .
", is_open=" . $this->is_open
79 .
", sql=" . $this->sql
80 .
", array=" . var_export($this->array,true)
112 echo
_(
'Base de donnée vide');
116 $succeed =
"<span style=\"font-size:18px;color:green\">✓</span>";
117 echo
'<ul style="list-type-style:square">';
118 for (
$i = 4;
$i <= $MaxVersion;
$i++) {
123 $this->
exec_sql(
'ALTER TABLE amortissement.amortissement_histo
124 ADD CONSTRAINT internal_fk FOREIGN KEY (jr_internal) REFERENCES jrn (jr_internal)
125 ON UPDATE CASCADE ON DELETE SET NULL');
128 echo
"<li>Patching " . $p_name .
129 " from the version " . $this->
get_version() .
" to $to ";
131 $this->
execute_script(NOALYSS_INCLUDE .
'/sql/patch/upgrade' .
$i .
'.sql');
134 if ( DEBUGNOALYSS == 0)
138 $sql =
"select jrn_def_id from jrn_def ";
143 $sql = sprintf(
"create sequence s_jrn_%d",
$row[
'jrn_def_id']);
151 $Res2 = $this->
exec_sql(
'select coalesce(max(jr_grpt_id),1) as l from jrn');
152 $Max2 = pg_num_rows($Res2);
154 $Row = pg_fetch_array($Res2, 0);
157 $this->
exec_sql(
"select setval('s_grpt',$M,true)");
162 $this->
execute_script(NOALYSS_INCLUDE .
'/sql/patch/upgrade17.sql');
163 $max = $this->
get_value(
'select last_value from s_jnt_fic_att_value');
168 if (
$i == 30 && $p_name ==
"mod") {
169 $a_seq = array(
's_jrn',
's_jrn_op',
's_centralized',
170 's_stock_goods',
'c_order',
's_central');
171 foreach ($a_seq as
$seq) {
172 $sql = sprintf(
"select setval('%s',1,false)",
$seq);
175 $sql =
"select jrn_def_id from jrn_def ";
180 $sql = sprintf(
"select setval('s_jrn_%d',1,false)",
$row[
'jrn_def_id']);
186 $res = $this->
exec_sql(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
189 $this->
exec_sql(
'update tmp_pcmn set pcm_type=find_pcm_type(pcm_val)');
192 $res = $this->
exec_sql(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
195 $this->
exec_sql(
"insert into parm_code values ('SUPPLIER',440,'Poste par défaut pour les fournisseurs')");
197 $this->
exec_sql(
"insert into parm_code values ('SUPPLIER',400,'Poste par défaut pour les fournisseurs')");
200 $country = $this->
get_value(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
207 $country = $this->
get_value(
"select pr_value from parameter where pr_id='MY_COUNTRY'");
211 if (DEBUGNOALYSS == 0 )
229 $sys_name = sprintf(
"%sdossier%d", strtolower(
domaine),
$p_id);
232 $sys_name = sprintf(
"%smod%d", strtolower(
domaine),
$p_id);
236 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
_("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
execute_script($script)
Execute a sql script.
exist_schema($p_name)
test if a schema exists
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 ...