';
+
+ } else {
+ $Res=ExecSql($this->cn,"select p_id,to_char(p_start,'DD.MM.YYYY') as date_start,to_char(p_end,'DD.MM.YYYY') as date_end,status,p_exercice
+ from parm_periode join jrn_periode using (p_id) where jrn_def_id=".$this->jrn_def_id."
+ order by p_start,p_end");
+ $Max=pg_NumRows($Res);
+ $r=ExecSql($this->cn,'select jrn_Def_name from jrn_Def where jrn_Def_id='.
+ $this->jrn_def_id);
+ $jrn_name=pg_fetch_result($r,0,0);
+ echo '
';
+
+ }
+ }
+ function insert($p_date_start,$p_date_end,$p_exercice) {
+ if (isDate($p_date_start) == null ||
+ isDate($p_date_end) == null ||
+ strlen (trim($p_exercice)) == 0 ||
+ (string) $p_exercice != (string)(int) $p_exercice)
+ {
+ return 1;
+ }
+ $p_id=NextSequence($this->cn,'s_periode');
+ $sql=sprintf(" insert into parm_periode(p_id,p_start,p_end,p_closed,p_exercice)".
+ "values (%d,to_date('%s','DD.MM.YYYY'),to_date('%s','DD.MM.YYYY')".
+ ",'f','%s')",
+ $p_id,
+ $p_date_start,
+ $p_date_end,
+ $p_exercice);
+ try {
+ StartSql($this->cn);
+ $Res=ExecSql($this->cn,$sql);
+ $Res=ExecSql($this->cn,"insert into jrn_periode (jrn_def_id,p_id,status) ".
+ "select jrn_def_id,$p_id,'OP' from jrn_def");
+ Commit($this->cn);
+ } catch (Exception $e) {
+ Rollback($this->cn);
+ echo_debug(__FILE__.':'.__LINE__.'- Periode insert','Exception ',$e);
+ echo_debug(__FILE__.':'.__LINE__.'- Periode insert','Exception ',$e->getMessage());
+ return 1;
+ }
+ return 0;
+ }
+ static function test_me() {
+ $cn=DbConnect(dossier::id());
+ $obj=new Periode($cn);
+ $obj->set_jrn(1);
+ $obj->display_form_periode();
+ }
+}
diff --git a/contrib/document_test/facture-calc.ods b/contrib/document_test/facture-calc.ods
index 1061427b4..5c450090f 100644
Binary files a/contrib/document_test/facture-calc.ods and b/contrib/document_test/facture-calc.ods differ
diff --git a/scripts/add-db.sh b/dev/add-db.sh
similarity index 100%
rename from scripts/add-db.sh
rename to dev/add-db.sh
diff --git a/scripts/cleanup.sh b/dev/cleanup.sh
similarity index 96%
rename from scripts/cleanup.sh
rename to dev/cleanup.sh
index e31397a22..30f23db97 100755
--- a/scripts/cleanup.sh
+++ b/dev/cleanup.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# clean all phpcompta related DB.
-DOMAIN="beta_"
+DOMAIN="rel4102_"
export PGPASSWORD="dany"
export PGUSER="phpcompta"
export PGHOST=localhost
diff --git a/doc/.cvsignore b/doc/.cvsignore
deleted file mode 100644
index 25e1de385..000000000
--- a/doc/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.html
-*.pdf
-*.txt
diff --git a/doc/INSTALL-fr.sgml b/doc/INSTALL-fr.sgml
deleted file mode 100644
index c044b9a2b..000000000
--- a/doc/INSTALL-fr.sgml
+++ /dev/null
@@ -1,329 +0,0 @@
-
-
- PhpCompta Installation
-
-originally written by Dany De Bontridder
-
-$Revision$ $Date$
-
-Ce document décrit l'installation complète de PhpCompta et explique comment
-ont été installés les programmes dont PhpCompta dépend.
-PhpCompta ,
-site savannah
-
-
-
-Avertissement
-
Si vous installez sur Linux, l'installation d'apache, postgres et php doit se
-faire avec les "packages" standards
-fournis; ces "packages" sont largement suffisants. Les explications
-données ici sur l'installation de ces produits sont destinées à des
-utilisateurs avancés. En général vous pourrez l'installer assez facilement
-
-Il existe aussi un manuel d'installation exhaustif pour Debian, pleins d'informations utiles
-.
-
-
-
Si vous installez sous Windows, il est assez compliqué de recompiler.
-Il est préférable d'utiliser les programmes fournis sur
- et
-.
-
-
-
Cependant, les configurations des différents produits sont importantes
-et devraient être lues avant d'appeler à l'aide.
-
-
-Soit avec des binaires préparés, soit à partir du code source
-
-
Le plus simple est d'utiliser les binaires de votre distribution, ne
-compiler ces programmes que si vraiment vous devez le faire ou que vous préfèrez
-avoir la dernière version disponible.
-
-
-Si vous décidez de le compiler vous-même, les
-options suivantes fonctionnent
-
-./configure -with-tk --with-python --with-perl --prefix=/ou_vous_voulez
-
-
-
-Configuration et démarrage de PostgreSql
-Optimisation
-
Posgresql est une base de données très rapide, cependant, il vous faudra configurer
-pour pouvoir en bénéficier. Les paramètres par défaut sont prévus pour une machine qui n'a
-que 16 Mb de RAM... Donc, aller voir la documentation sur Postgresql.org, chapitre
-Run-time Configuration.
-
-
Les paramètres que vous pouvez utiliser si vous avez une machine d'au moins 256 Mb:
-
- Augmenter la zone mémoire pour les tri (dans postgres.conf) work_mem = 8192; cette
-zone mémoire est important car elle a trait à la mémoire utilisée pour les tris et les
-jointures! attention ce paramètre donne la consommation mémoire par session !
-
- Faites tourner régulièrement vacumdb -a -z grâce au crontab(une fois par jour)
- Dans postgres.conf, les shared_buffers: calculées en page de 8Kb,
-la valeur par défaut
-est de seulement 64, ce qui correspond à 512Kb, une meilleure valeur est 640
-
-
-
- Pour la sécurité
-
Vous pouvez ajouter la sécurité à votre server Postgresql en changeant
-dans pg_hba.conf. Mais avant de faire cela, ajoutez un mot de passe à
-vos utilisateurs avec la commande remplacer .1. par le nom de l'utilisateur
-et .2. par son mot de passe
-
-changement mot de passe
-alter user .1. password '.2.'
-
-
-
-Sécurité
-# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
-host all phpcompta 172.16.30.0 255.255.255.0 md5
-local all phpcompta 172.16.30.0 255.255.255.0 md5
-
-Ensuite soit vous utilisez la variable d'environnement PGPASSWORD qui contient
-votre mot de passe soit avec le fichier .pgpass dont la syntaxe est
-
- host:port:database:username:password
-
-N'oubliez pas de mettre ce fichier en mode 600 !!!! Pour executer sans demande
-de mot de passe host = localhost
-
-
-Le fichier httpd.conf doit au moins contenir.
-
-LoadModule php4_module modules/libphp4.so
-AddType application/x-httpd-php .php4 .php3 .php .phtml
-
-Et si vous décidez d'avoir la même configuration que moi, mais ce
-n'est pas obligatoire
-Il est possible d'utiliser les virtuals hosts ainsi
-
-<VirtualHost *>
- Servername ...
- DocumentRoot /var/www/acapulco/htdocs
- <Directory /var/www/acapulco/htdocs/phpcompta/html/>
- AddDefaultCharset iso-8859-1
- php_value include_path .:../../include:../include:addon
- php_flag magic_quotes_gpc off
- php_flag session.auto_start on
- php_value session.save_path /tmp
- php_value max_execution_time 120
- php_flag short_open_tag on
- php_flag session.use_trans_sid on
- </Directory>
-</VirtualHost>
-
-
-
-Actuellement, le répertoire html, contient un fichier .htaccess
-qui contient le nécessaire pour que les variables php soient
-correctes (voir ).
-
-
-Apache se démarre avec apachectl start
-
-
-Remarque : Pour plus d'information, voir le manuel d'Apache.
-
-
-
-
-
-PHP
-Installation de PHP 4.3.1
-
-Il doit être compilé le dernier !!!
-Si vous décidez de le compiler vous-même, les
-options suivantes fonctionnent
-
-./configure --prefix=/opt/php431 \
- --with-apxs2=/opt/http2/bin/apxs \
- --with-fastcgi \
- --with-zlib \
- --with-pgsql=/usr/local/psql \
- --with-mysql \
- --with-apache2=/software/httpd-2.0.44
-
-
-le répertoire /software/httpd-2.0.44 est le répertoire ou vous installer
-les sources d'apache
-
-
-
-Configuration de PHP : Fichier php.ini
-
-s'il n'existe pas, vous devez le créer, l'endroit
-où vous le trouverez dépend des options de compilation. Dans le cas,
-où vous avez compilé php de la même manière que moi, il se trouve
-dans /opt/php431/lib.
-Recopier simplement le fichier fourni à cet endroit.
-
-Sinon, adaptez votre fichier, il doit avoir au minimum les options
-suivantes
-
-
-magic_quotes_gpc = Off
-magic_quotes_runtime = Off
-magic_quotes_sybase = Off
-
-
-[Session]
-session.save_handler = files ; handler used to store/retrieve data
-session.save_path = /tmp ; argument passed to save_handler
- ; in the case of files, this is the
- ; path where data files are stored
-session.use_cookies = 1 ; whether to use cookies
-session.name = PHPSESSID
- ; name of the session
- ; is used as cookie name
-session.auto_start = 1 ; initialize session on request startup
-session.cookie_lifetime = 0 ; lifetime in seconds of cookie
- ; or if 0, until browser is restarted
-session.cookie_path = /tmp ; the path the cookie is valid for
-
-allow_call_time_pass_reference = on
-register_argc_argv = on
-session.bug_compat_42 = 1
-session.bug_compat_warn = 0
-session.use_trans_sid = 1
-include_path=".:../include:addon"
-
-
- configuration de .htaccess
-
-Installation de PhpCompta
-Première installation
-
-On suppose que postgresql est installé correctement
-
-
Etape
-
- Se connecter en tant que postgres et taper les commandes
-
-createuser -h localhost -d -P postgres phpcompta
-
-
-Décompacter le package dans le répertoire de votre choix, et configurer Apache pour qu'il
-puisse accèder au sous-répertoire html. (voir plus haut la directive DocumentRoot)
-Eventuellement changer dans constant.php votre domaine (voir manuel : Domaine)
-
-Vous devez vous connecter sur http://votre_server/admin/setup.php
-
-
-Mise à jour
-
Etape
-
- Faite un backup de toutes vos bases de données (cf pg_dumpall)
-Décompacter le package dans le répertoire de votre choix,
-et configurer Apache pour qu'il
-puisse accèder au sous-répertoire html. (voir plus haut la directive DocumentRoot)
-
-Vous devez connecter sur http://votre_server/admin/setup.php
-
-
-
-Conclusion
-
-En vous connectant à l'adresse
- http://votre_server/admin/setup.php; vous installerez
-tout ce qu'il faut, testerez votre installation et surtout met à jour
-les bases de données dans le cas d'une mise à jour. En cas de problème,
-signalez-le nous.
-
-
-IMPORTANT Vous devez effacer le répertoire html/admin après installation ou mise
-à jour !!!!
-
-
-
-
-
diff --git a/doc/Makefile b/doc/Makefile
index 0425f265e..1093b6500 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -2,26 +2,12 @@
# html, txt format
# $Revision$
-.PHONY: all html .pdf clean .txt devel
+.PHONY: clean devel
-all: manuel html INSTALL-fr.pdf INSTALL-fr.txt devel
+all: devel
devel:
cd developper && ./create_doc.sh
-html:
- linuxdoc -B html --charset=latin INSTALL-fr.sgml
-manuel:
- cp manuel-fr.pdf ../manuel-fr.pdf
-
-INSTALL-fr.pdf:INSTALL-fr.sgml
- linuxdoc -B latex --papersize=a4 --charset=latin --output=pdf INSTALL-fr.sgml
-
-INSTALL-fr.txt: INSTALL-fr.sgml
- linuxdoc -B txt --charset=latin INSTALL-fr.sgml
- cp INSTALL-fr.txt ..
clean:
rm -f *~
- rm -f FAQ-fr.txt FAQ-fr*.html FAQ-fr.pdf FAQ-fr.dvi FAQ-fr.tex
- rm -f manuel-fr.txt manuel-fr*.html manuel-fr.pdf manuel-fr.dvi manuel-fr.tex
- rm -f INSTALL-fr.txt INSTALL-fr*.html INSTALL-fr.pdf INSTALL-fr.dvi INSTALL-fr.tex
diff --git a/doc/developper/.cvsignore b/doc/developper/.cvsignore
deleted file mode 100644
index 067823c13..000000000
--- a/doc/developper/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-html/*
-latex/*
diff --git a/doc/developper/create_doc.sh b/doc/developper/create_doc.sh
index 280206662..5b722086a 100755
--- a/doc/developper/create_doc.sh
+++ b/doc/developper/create_doc.sh
@@ -1,3 +1,6 @@
doxygen
-postgresql_autodoc -d mod1
-postgresql_autodoc -d account_repository
+cd html; sed -i "s/utf-8/utf-8/g" *
+if [ ! -z "$PGUSER" ] ; then
+ postgresql_autodoc -u $PGUSER --password $PGPASSWORD -h localhost -d mod1
+ postgresql_autodoc -u $PGUSER --password $PGPASSWORD -h localhost -d account_repository
+fi
diff --git a/doc/developper/html/.htaccess b/doc/developper/html/.htaccess
new file mode 100644
index 000000000..f111ed173
--- /dev/null
+++ b/doc/developper/html/.htaccess
@@ -0,0 +1,2 @@
+AddDefaultCharset utf-8
+
diff --git a/doc/install_windows_fr.sxw b/doc/install_windows_fr.sxw
deleted file mode 100644
index 2b59c72a7..000000000
Binary files a/doc/install_windows_fr.sxw and /dev/null differ
diff --git a/doc/manuel-fr.odt b/doc/manuel-fr.odt
index 53a914af2..65391f05e 100644
Binary files a/doc/manuel-fr.odt and b/doc/manuel-fr.odt differ
diff --git a/doc/manuel-fr.pdf b/doc/manuel-fr.pdf
deleted file mode 100644
index c7ef46642..000000000
Binary files a/doc/manuel-fr.pdf and /dev/null differ
diff --git a/doc/manuel.odt b/doc/manuel.odt
deleted file mode 100644
index 53a914af2..000000000
Binary files a/doc/manuel.odt and /dev/null differ
diff --git a/doc/manuel_win2.odt b/doc/manuel_win2.odt
new file mode 100644
index 000000000..73d169c8a
Binary files /dev/null and b/doc/manuel_win2.odt differ
diff --git a/doc/testing-scenario.txt b/doc/testing-scenario.txt
deleted file mode 100644
index 5f50f29bc..000000000
--- a/doc/testing-scenario.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Testing of PhpCompta scenario
------------------------------
-For each month
-add invoice, card, expense
-
-print journal -> pdf, csv
-
-retrieve operation
-
-Upload piece
-
-create an user
-create an modele
-create an folder based on the last modele
-grant to user
-check security (what the user can do, check privilege)
-
-
diff --git a/html/.htaccess b/html/.htaccess
index 5893c3e8a..4a4ab8d17 100644
--- a/html/.htaccess
+++ b/html/.htaccess
@@ -6,6 +6,6 @@ php_value session.save_path /tmp
php_value max_execution_time 240
php_value memory_limit 12M
# for php 5 php_value upload_tmp_dir /tmp
-AddDefaultCharset latin1
+AddDefaultCharset utf-8
php_value session.use_trans_sid 1
-
+php_value error_reporting 10239
diff --git a/html/access.php b/html/access.php
index e69de29bb..ea5d27a87 100644
--- a/html/access.php
+++ b/html/access.php
@@ -0,0 +1,142 @@
+';
+echo menu_tool('access');
+echo '';
+echo '
';
+/*
+ * Todo list
+ */
+echo JS_PROTOTYPE;
+echo JS_TODO;
+if ( isset($_REQUEST['save_todo_list'])) {
+ /* Save the new elt */
+ $add_todo=new Todo_List($cn);
+ $add_todo->set_parameter('id',$_REQUEST['tl_id']);
+ $add_todo->set_parameter('title',$_REQUEST['p_title']);
+ $add_todo->set_parameter('desc',$_REQUEST['p_desc']);
+ $add_todo->set_parameter('date',$_REQUEST['p_date']);
+ $add_todo->save();
+}
+$todo=new Todo_List($cn);
+$array=$todo->load_all();
+echo '
';
-//-----------------------------------------------------
-//EXPORT
-////////////////////////////////////////////
-if ( isset ($_GET['export'])) {
- // if the year is not set, ask it
- // ask the exercice and do the export
- $periode=make_array($cn,"select distinct p_exercice,p_exercice from parm_periode order by p_exercice");
- echo '";
- exit(0);
-}
-//----------------------------------------------------- IMPORT
-////////////////////////////////////////////
-if ( isset ($_GET['import'])) {
- // show a form to upload the file
- // that form will parse the file, create an ods operation
- // and ask you to validate it
- // if no file is given
- if ( ! isset ($_REQUEST['p_submit']) ) {
-?>
-
-';
- $end=true;
- continue;
- }
- if ( $end ) {
- echo $line." ";
- continue;
- }
- // check if the first line contains the signature
- if ( $valid )
- {
- // skip blank line
- if (strlen (trim($line)) == 0 ) continue;
- // put the line into several array with the same index
- echo_debug('ecrit_ouv',__LINE__," line $line");
- list($sign,$poste,$label,$amount)=explode(";",$line);
- $asign[$idx]=$sign; $aposte[$idx]=$poste;$aamount[$idx]=$amount;
- $alabel[$idx]=$label;
- $idx++;
- }
- else
- {
- $valid = strpos($line, "OUVERTURE") !== false;
-
- }
- } // read the file
- // if valid is still false then there is nothing to do
- if ( ! $valid) { echo 'Aucun enregistrement valide'; return ;}
- // compose the array for the function FormODS
- $array_ods['e_comm']='Ecriture d\'ouverture';
- for ($i=0;$i<$idx;$i++) {
- $n="e_account$i";
- $array_ods[$n]=$aposte[$i];
- $n="e_account".$i."_type";
- $array_ods[$n]=$asign[$i];
- $n="e_account".$i."_amount";
- $array_ods[$n]=$aamount[$i];
- }
- // Check if all the poste exist
- // otherwise create it
- for ($i=0;$i<$idx;$i++)
- {
-
- $p=new Acc_Account_Ledger($cn,$aposte[$i]);
-
- // if the poste exists then check the next one
- if ( $p->load() == true ) continue;
- echo 'Attention creation de '.$p->id.' '.$alabel[$i].' ';
- $sql=sprintf("select account_add(%d,'%s')",
- $p->id,$alabel[$i]);
-
- ExecSql($cn,$sql);
- }
-
- // submit button in the form
- $submit='
- ';
- $r=FormODS($cn,$_POST['p_jrn'],$User->get_periode(),$submit,
- $array_ods,false,$idx,$p_saved=false);
-
- echo $r;
- echo "
On-line calculator
".JS_CALC_LINE."
";
-
- }
- }
- } // else -> a file is given
- }// if import
-// IF import and export are not set then the choice is proposed
-echo '