diff --git a/FAQ-fr.txt b/FAQ-fr.txt index ccd27538f..875f29892 100644 --- a/FAQ-fr.txt +++ b/FAQ-fr.txt @@ -22,18 +22,16 @@ 8. J'ai trouvé un tit bug, comment faire un patchs ?? 9. Comment faire de la doc 10. Comment contribuer ? - 11. Install.sh ne fonctionne pas - 12. l'erreur ERROR: CREATE USER: permission denied - 13. recevoir des erreurs de création - 14. Erreur objet n'existe pas - 15. Comment appliquer un patch ? - 15.1 Quel patch utiliser ? - 15.2 Comment appliquer le patch + 11. recevoir des erreurs de création + 12. Erreur objet n'existe pas + 13. Comment appliquer un patch ? + 13.1 Quel patch utiliser ? + 13.2 Comment appliquer le patch - 16. Les entêtes de facture - 17. Problèmes fréquents - 17.1 Impossible de se logguer - 17.2 J'ai le message d'erreur 'cannot find file ....' + 14. Les entêtes de facture + 15. Problèmes fréquents + 15.1 Impossible de se logguer + 15.2 J'ai le message d'erreur 'cannot find file ....' ______________________________________________________________________ @@ -64,7 +62,6 @@ En fait c'est phpcompta, au départ c'était wcompta, contraction de WebCompta mais malheureusement, c'est le nom d'un soft qui existait déjà, j'ai été obligé de changer vers phpcompta. - 3. Par où commence t'on et comment ? @@ -84,7 +81,7 @@ 4. Ou trouvez les patches - sur la page d'origine, malheureusement, il n'est pas encore possible + Sur la page d'origine, malheureusement, il n'est pas encore possible de téléchargez des fichiers sur Savannah On peut y arriver à partir de la page de savannah (Homepage) @@ -123,72 +120,41 @@ 8. J'ai trouvé un tit bug, comment faire un patchs ?? - Retirez la version du CVS que vous avez corrigée. Le numéro de - version c'est normalement r pour release p pour prelease suivit par le - numéros (ex r092 qui veut dire release 0.9.2) (regardez les branches - existantes dans le CVS de savannah http://savannah.nongnu.org/cgi- - bin/viewcvs/phpcompta/phpcompta/) Remplacez (version) par la version + Le plus simplement du monde : d'abord récupérez le projet avec cvs, + corrigez le problème que vous avez détectez; vous vous placez à la + racine du projet et vous tapez : - Exemple : - export CVS_RSH="ssh" - - cvs -z3 -r (version) -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/phpcompta - co phpcompta + cvs diff -u > patch-date-email + Pensez à d'abord effacer les fichiers inutiles, les , les core- + files... Vous pouvez envoyer le fichier résultat. Pensez à me dire si + c'est un patch relatif aux cv ou non. Mais testez-le avant. - Normalement un répertoire phpcompta va apparaitre, puis vous le copiez - cp -Rvp phpcompta phpcompta.orig + Pour tester les patch, - Appliquez éventuellement les patch puis corrigé les bugs, effacer les - fichiers inutiles, les , les corefiles... + Pour le tester, faite un cvs co dans un autre répertoire que celui où + vous avez développé votre patch, puis essayer votre patch - Puis enfin, pour prendre tout le répertoire (avec prudence) + patch -p0 < patch-(numéro de version)-votre-email - diff -Nru phpcompta phpcompta.orig > patch-(numéro de version)-votre-email + répertoire au-dessus de celui de phpcompta + + patch -p1 < patch-(numéro de version)-votre-email - - IMPORTANT : relire le patch-(numéro de version)-votre-email pour voir - si tout ok et le tester - - Pour le tester creer un répertoire appelé phpcompta n'importe où - ailleurs, reprenez la version d'origine, puis essayer patch -p0 < - patch-(numéro de version)-votre-email si vous êtes dans le répertoire - au-dessus de celui de phpcompta - - patch -p1 < patch-(numéro de version)-votre-email si vous êtes dans le répertoire courant de phpcompta - Si cela ne marche pas ce n'est pas bon - Pour un seul fichier, plus simple copiez le fichier de phpcompta.orig - dans le même répertoire que celui du fichier changé puis placez vous - dans le répertoire de au-dessus de celui de phpcompta ( cd .. ) . - remplacez (sous-directory) par le nom du répertoire ou se trouve le - fichier modifié. - - diff -u phpcompta/(sous-directory)/fichier - /phpcompta/(sous-directory)fichier.orig > patch-(numero de - version)-votre-email. - - - - Testez le: sauvez votre fichier modifié sous un autre nom, faites cp - -f fichier.orig fichier, puis testez avec la commande patch (voir - plus haut) mot de passe par défaut est phpcompta - 9. Comment faire de la doc Sous mandrake, ajouter les linuxdocs-tools avec la commande urpmi linuxdoc-tools, pour les autres, je ne sais pas :( Une fois, les linuxdoc tools installés il peut être nécessaire - d'installer d'autres outils comme jade, sgml,... - - Il faudra en tout cas ajouter les tetex-dvips, textex-xdvi, latex2html - + d'installer d'autres outils comme jade, sgml,... Il faudra en tout + cas ajouter les tetex-dvips, textex-xdvi, latex2html De toute façon, vous pouvez imprimer le guide, pour le trouver faites @@ -207,7 +173,8 @@ Ensuite, editez le fichier sgml, et surtout pensez à utilisez aspell -H --lang=fr_FR check FA-fr.sgml pour véifier l'orthographe. Pour le visionner, faites linuxdoc -B html FAQ.sgml soit linuxdoc -B rtf pour - avoir un fichier rtf... + avoir un fichier rtf... Puis faites un patch :-) ``Comment faire un + patch'' 10. Comment contribuer ? @@ -220,45 +187,25 @@ Cela m'évite de devoir chaque fois changer sur le site de phpcompta - 11. Install.sh ne fonctionne pas - - Il est important de suivre la procédure pour l'installation voir - INSTALL-fr (dans le répertoire doc) !! - - A. se connecter en tant que l'utilisateur Unix postgres et éxécuter la - commande createuser -d -a phpcompta puis exécuterinstall.sh en tant - que root. Il serait prudent de changer le propriétaire des fichiers - installer - - 12. l'erreur ERROR: CREATE USER: permission denied + 11. recevoir des erreurs de création - l'erreur ERROR: CREATE USER: permission denied - createuser: creation of user "phpcompta" failed + ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is + of type 'boolean' You will need to rewrite or cast the expression + ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is + of type 'boolean' You will need to rewrite or cast the expression + ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is + of type 'boolean' You will need to rewrite or cast the expression + ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is + of type 'boolean' You will need to rewrite or cast the expression - voir question précédente ``install.sh'' - - 13. recevoir des erreurs de création - - - - ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is - of type 'boolean' You will need to rewrite or cast the expression - ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is - of type 'boolean' You will need to rewrite or cast the expression - ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is - of type 'boolean' You will need to rewrite or cast the expression - ERROR: column "jrn_deb_max_line" is of type 'integer' but expression is - of type 'boolean' You will need to rewrite or cast the expression - - Vous avez utilisé une version instable ! Cela a été corrigé reprenez les fichiers du CVS - 14. Erreur objet n'existe pas + 12. Erreur objet n'existe pas @@ -275,10 +222,10 @@ Du à une commande drop sur un objet inexistant, n'y pretez pas atten- tion - 15. Comment appliquer un patch ? + 13. Comment appliquer un patch ? - 15.1. Quel patch utiliser ? + 13.1. Quel patch utiliser ? Dans certains cas, le dernier patch reprend les autres, il faudra lire la release note du patch pour savoir ce qu'il faut appliquer avant. @@ -289,7 +236,7 @@ exemple path-r092-1.tgz, est le premier patch pour la release 0.9.2 - 15.2. Comment appliquer le patch + 13.2. Comment appliquer le patch Après l'avoir télécharger, allez dans le répertoire au-dessus du répertoire qui installe PhpCompta, c'est-à-dire celui qui contient les @@ -301,25 +248,22 @@ - 16. Les entêtes de facture + 14. Les entêtes de facture Pourquoi les coordonnées de la société faisant la facture n'apparraissent pas Simplement parce que je n'ai pas eu le temps de le coder, pour l'instant, vous devrez uniquement utiliser des factures préimprimées + 15. Problèmes fréquents - - 17. Problèmes fréquents - - 17.1. Impossible de se logguer + 15.1. Impossible de se logguer Vous devez absolument avoir register_globale = on dans votre php.ini et redémarrez Apache voir php-setting ``Php'' - - 17.2. J'ai le message d'erreur 'cannot find file ....' + 15.2. J'ai le message d'erreur 'cannot find file ....' Dans votre php.ini, n'oubliez pas de mettre correctement le include_patch voir php-setting ``Php'' diff --git a/INSTALL-fr.txt b/INSTALL-fr.txt index b5e400211..9c8f4e155 100644 --- a/INSTALL-fr.txt +++ b/INSTALL-fr.txt @@ -27,8 +27,10 @@ 4.2 Configuration de PHP : Fichier php.ini 5. Installation de PhpCompta + 5.1 Première installation + 5.2 Mise à jour + 6. Conclusion - 7. Remarque ______________________________________________________________________ @@ -59,11 +61,15 @@ fonctionnent ./configure -with-tk --with-python --with-perl --prefix=/opt/psql732 + + 2.2. Configuration et démarrage de PostgreSql Comme d'habitude pour postgres, il faut tout d'abord définir, créer l'utilisateur postgres puis initialiser l'endroit où seront stocké vos données (variable env. PGDATA), exemple + + root#mkdir /data/psql root#chown postgres /data/psql root#su - postgres @@ -75,7 +81,9 @@ ne pas oublier d'ajouter dans le PATH, l'endroit où se trouve les binaires de postgres - ex: export PATH=$PATH:/opt/psql732/bin + ex: + export PATH=$PATH:/opt/psql732/bin + Il est impératif d'avoir l'option -i, sinon le server HTTP ne pourra @@ -92,12 +100,7 @@ Il vaut mieux remplacer 172.16.30.0 par l'adresse du server HTTP, dans le cas où vous utilisez un VirtualHost avec une adresse IP, c'est - cette adresse qu'il vous faudra mettre il faut aussi que l'utilisateur - qui installera ce programme existe pour postgres et puisse créer des - utilisateur et des bases de données la commande - - /opt/psql732/bin/createuser -a -d $USER - + cette adresse qu'il vous faudra mettre 2.3. Optimisation @@ -118,22 +121,13 @@ · Faites tourner régulièrement vacumdb -a -z grâce au crontab - · Dans php.ini, bien utiliser les permanent_connection ainsi que la - détection des liens brisés. Cela permettra à Apache d'utiliser des - connections existantes au lieu dans créer des nouvelles, l'autre - paramètre permet à Apache de détecter les connexions inutilisées. - - pgsql.allow_persistent = On - pgsql.auto_reset_persistent = On - - - · 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 · à compléter + 2.4. Pour la sécurité Vous pouvez ajouter la sécurité à votre server Postgresql en changeant @@ -162,15 +156,6 @@ N'oubliez pas de mettre ce fichier en mode 600 !!!! Pour executer sans demande de mot de passe host = localhost - 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 3. Apache @@ -202,6 +187,8 @@ Et si vous décidez d'avoir la même configuration que moi, mais ce n'est pas obligatoire + + < VirtualHost 172.16.30.150 > ServerName site ErrorLog phpcompta-error.log @@ -276,11 +263,17 @@ 5. Installation de PhpCompta - On suppose que postgresql est installé correctement Etape + 5.1. Première installation + + On suppose que postgresql est installé correctement + + + Etape · Se connecter en tant que postgres et taper les commandes - createuser -d phpcompta< + + createuser -d -P dany phpcompta createdb -O phpcompta phpcompta @@ -289,34 +282,28 @@ configurer Apache pour qu'il puisse accèder au sous-répertoire html. (voir plus haut la directive DocumentRoot) - · Vous devez vérifier que le chemin de psql et vous indiquez la bonne - valeur dans le fichier html/admin/variable.php + · Vous devez connecter sur http://votre_server/admin/setup.php + + 5.2. Mise à jour + + Etape + + · 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 6. Conclusion - Voilà maintenant, il vous suffit de faire de vous connecter sur - http://votre_server/admin/setup.php; cette page installera tout ce - qu'il faut, testera 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. + 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 !!!! - 7. Remarque - - - · Il faut créer le répertoire où seront mis l'application elle-même, - ici, les fichiers seront dans /home/httpd/compta, l'endroit est - défini dans setenv.sh. Créer ce répertoire, le propriétaire de - répertoire doit être le même que celui qui installera - l'application. Cet utiliserateur devra aussi avoir le privilège de - créer un utilisateur pour postgres (fonction createuser). - - · Adapter le fichiers setenv.sh selon vos besoins - diff --git a/html/central.php b/html/central.php index d7cd5d69e..5c9bcdfc5 100644 --- a/html/central.php +++ b/html/central.php @@ -56,7 +56,7 @@ echo '

Centralise


'; if ( isset ($_POST["central"] )) { //demande centralise - if ( $_POST["periode"] != "" ) { +if ( $_POST["periode"] != "" ) { $ret=Centralise($cn,$_POST["periode"]); if ($ret==NOERROR) { echo '

La période '.$_POST["periode"].' est centralisée

'; diff --git a/include/central_inc.php b/include/central_inc.php index 6db3fb058..b128a7a1e 100644 --- a/include/central_inc.php +++ b/include/central_inc.php @@ -36,7 +36,6 @@ * */ function Centralise($p_cn,$p_periode) { - $sql="insert into centralized( c_j_id, c_date , c_internal, @@ -69,6 +68,40 @@ $sql="insert into centralized( c_j_id, if ($Res==false) { rollback($p_cn); EndSql($p_cn); return ERROR;} $Res=ExecSql($p_cn,"update jrnx set j_centralized='t' where j_tech_per=".$p_periode); if ($Res==false) { rollback($p_cn); EndSql($p_cn); return ERROR;} +// Set correctly the number of operation id (jr_opid) for each journal +// get the existing jrn_def_id + $Res = ExecSql($p_cn,"select jrn_def_id from jrn_def"); + $MaxJrn=pg_NumRows($Res); + // for each jrn_def_id + for ( $i=0; $i < $MaxJrn;$i++) { + $row=pg_fetch_array($Res,$i); + // get the op related to that jrn_def_id + $sql=sprintf("select jr_id from jrn + where + jr_tech_per=%d + and jr_def_id = %d + order by jr_date,jr_grpt_id desc", + $p_periode, + $row['jrn_def_id'] + ); + + $Res2=ExecSql($p_cn,$sql); + $MaxLine=pg_NumRows($Res2); + for ($e=0;$e < $MaxLine;$e++) { + // each line is updated with a sequence + $line=pg_fetch_array($Res2,$e); + $jr_id=$line['jr_id']; + $sql=sprintf ("update jrn set + jr_opid = (select nextval('s_jrn_%d')) + where jr_id =%d", + $row['jrn_def_id'], + $jr_id); + $Ret=ExecSql($p_cn,$sql); + if ($Res==false) { rollback($p_cn); EndSql($p_cn); return ERROR;} + } + + } + Commit($p_cn); EndSql($p_cn); return NOERROR; diff --git a/include/constant.php b/include/constant.php index 03221a2b2..9b1540b40 100644 --- a/include/constant.php +++ b/include/constant.php @@ -23,7 +23,7 @@ // $Revision$ define ("phpcompta_password","dany"); -define ("DEBUG","false"); +define ("DEBUG","true"); // securite correspond a la table // action diff --git a/install.sh b/install.sh deleted file mode 100755 index d1bfedb85..000000000 --- a/install.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash -# -# -# $Revision$ -###################################################################### -# This file is part of PhpCompta. -# PhpCompta is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# PhpCompta is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with PhpCompta; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -. ./setenv.sh - -echo "The file install.log will be created with - the log of the installation, just check if - it finished with the message - installation ok" -# Output the log to install log -exec 3>install.log 2>&3 1>&3 -#set -xv - -version=5 - -VerifOutil() { - RESULT="Verif. $1" - A=`type $1 2> /dev/null` - if [ $? -ne 0 ]; then - echo $RESULT"...Failed" - exit - else - echo "$RESULT...Success" - fi -} - -#Verification des outil -echo "Verification des outil" -echo "----------------------" -VerifOutil "psql" -VerifOutil "createdb" -# Base de données -DB=`psql -l -U $OWNER ` -if [ $? -ne 0 ]; then - echo "problem avec Postgres" - exit -fi - -# Repository exist ? -REPO=`echo $DB|grep account_repository|wc -l` -if [ $REPO -eq 0 ]; then - echo "Creation de la base de donnee" - createdb -U $OWNER $OWNER - createdb -E latin1 -U $OWNER account_repository - - # Create the repository - PSQL="psql -U $OWNER account_repository" - $PSQL -e -f sql/account_repository.sql - - #create the template for Belgian accountancy - createdb -E latin1 -U $OWNER mod1 - PSQL="psql -U $OWNER mod1 " - $PSQL -e -f sql/mod-be.sql - - # Create the demo database - createdb -E latin1 -U $OWNER dossier1 - PSQL="psql -U $OWNER dossier1 " - $PSQL -e -f sql/demo.sql -# - -# if [ -w $PG_DATA/pg_hba.conf ]; then -# echo "host account_repository all 127.0.0.1 255.255.255.255 password" >> $PG_DATA/pg_hba.conf -# else -# echo "Error PG_DATA is not correct" -# exit 2 -# fi - -fi -# Test si la version de la db doit être mise à jour -A=`psql -U phpcompta -t -c 'select val from version;' account_repository ` - -OWNER=phpcompta - -DB=`psql -l -U phpcompta -t|awk '/mod/ {print $1} /dossier/ {print $1;}'` -for i in `echo $DB` -do - echo $i - while [ 1 ]; do - vers_db=`psql -U phpcompta -t -c 'select val from version;' $i ` - if [ "$version" -ne $vers_db ] ; then - ver_file="sql/update/"`echo $i |sed 's/[0-9]*//g'`$vers_db".sql" - ver_file=`echo $ver_file|tr ' ' '_'` - if [ -f $ver_file ]; then - echo "Applying patch for $i $ver_file" - psql -U $OWNER $i -f $ver_file - fi - else - echo "ok" - break - fi - done - -done -# Installation des sources -[ ! -d $COMPTA_HOME ] && mkdir $COMPTA_HOME -[ ! -d $COMPTA_HOME/html ] && mkdir $COMPTA_HOME/html -[ ! -d $COMPTA_HOME/html/image ] && mkdir $COMPTA_HOME/html/image -[ ! -d $COMPTA_HOME/include ] && mkdir $COMPTA_HOME/include -echo "Installing source" -cp -fr html/*.php $COMPTA_HOME/html -cp -fr include/*.php $COMPTA_HOME/include -cp -fr html/*.html $COMPTA_HOME/html -cp -f html/*.js $COMPTA_HOME/html -cp -fR addon $COMPTA_HOME/html -cp -fR html/image/* $COMPTA_HOME/html/image -echo "***************" -echo "Installation OK" -echo "***************" -exec 3<&- -