diff --git a/doc/dev/Makefile b/doc/dev/Makefile index 4247768c948..bf229babbe0 100644 --- a/doc/dev/Makefile +++ b/doc/dev/Makefile @@ -43,7 +43,8 @@ all: $(DOC).pdf $(DOC).html $(DEBIANDOC2PS) $(OPTIONS) $< $(DOC).pdf: $(FRPAGES) - $(DEBIANDOC2PDF) $(OPTIONS) $(DOC).sgml +#$(DEBIANDOC2PDF) $(OPTIONS) $(DOC).sgml + linuxdoc --backend=latex -o pdf dolidev.sgml %.html: %.sgml $(FRPAGES) $(DEBIANDOC2HTML) $(HOPTIONS) $< @@ -52,4 +53,5 @@ put: $(RSYNC) $(ROPT) $(RSSH) dolibarr-dev.html rodolphe.quiedeville.org:/home/www/www.dolibarr.com/htdocs/documentation clean: - rm -f *pdf *ps \ No newline at end of file + rm -f *pdf *pslinuxdoc --backend=latex -o pdf dolidev.sgml + diff --git a/doc/user/dolibarr-user.pdf b/doc/user/dolibarr-user.pdf index ada42ecef46..37eada884b1 100644 Binary files a/doc/user/dolibarr-user.pdf and b/doc/user/dolibarr-user.pdf differ diff --git a/doc/user/dolibarr-user.txt b/doc/user/dolibarr-user.txt index b828ae8521c..a973d4b8622 100644 --- a/doc/user/dolibarr-user.txt +++ b/doc/user/dolibarr-user.txt @@ -16,27 +16,17 @@ Table des matières ------------------ - 1. Installation - 1.1. Récupérer les sources - 1.2. Pré-requis - 1.3. Base de données - 1.4. Apache - 1.5. Dolibarr + 1. Propositions commerciales + 1.1. Créer une proposition commerciale + 1.2. Modèles de proposition - 2. Mise à jour - 2.1. Mise à jour de la base de données + 2. Facturation + 2.1. Facture + 2.2. Paiements - 3. Propositions commerciales - 3.1. Créer une proposition commerciale - 3.2. Modèles de proposition - - 4. Facturation - 4.1. Facture - 4.2. Paiements - - 5. Produits - 5.1. Aspect général - 5.2. Spécificités des services + 3. Produits + 3.1. Aspect général + 3.2. Spécificités des services A. Fichier de conf Apache A.1. Fichier de config pour `Apache 1.3' + `mod_auth_mysql' @@ -47,114 +37,13 @@ Table des mati ------------------------------------------------------------------------------- -1. Installation ---------------- - - Installation de Dolibarr. Cette documentation est valable à partir de - la version 0.1.3 de Dolibarr. - - -1.1. Récupérer les sources --------------------------- - - Récupérer les sources sur http://rodolphe.quiedeville.org/ - (http://rodolphe.quiedeville.org/projets/dolibarr/dl/?M=D) - - Les sources se présentent sous la forme d'un fichier tar compressé - avec gzip. - - -1.2. Pré-requis ---------------- - - Liste des logiciels à installer pour faire fonctionner Dolibarr : - - * php4 - - * php4-mysql - - * php4-curl (pour la partie gestion des adhérents) - - * Apache - - * libapache-mod-auth-mysql - - -1.3. Base de données --------------------- - - 1- créer une base de données mysql appelée 'dolibarr' (vous pouvez - changer le nom, dans ce cas remplacer dans la suite des commandes - 'dolibarr' par le nom de votre base de données) - - `# mysqladmin create dolibarr' - - 2- charger la base en exécutant : - - `# mysql dolibarr < mysql/mysql.sql' - - -1.4. Apache ------------ - - Pour configurer Apache : un fichier httpd.conf.dist est fournit avec - les sources, vous pouvez vous en servir pour configurer votre serveur, - il est prévu pour que vous ayez juste à ajouter une régle Include dans - votre fichier principal `httpd.conf'. - - -1.5. Dolibarr -------------- - - Créer un répertoire appelé `document' dans le répertoire `htdocs' des - sources et affectez les droits d'écriture dans ce répertoire à - l'utilisateur exécutant le serveur web. - - Créer un fichier `conf/conf.php' et donnez les droits d'écriture dans - ce fichier à l'utilisateur exécutant le serveur web. - - Pour configurer Dolibarr accéder à la page /install.php, pour vous - logger utlisez le login admin avec le mot de passe admin. - - Une fois les valeurs enregistrés, si les controles sont correctes vous - n'avez qu'a cliquer sur le lien, 'phase finale de configuration'. - - -------------------------------------------------------------------------------- - - -2. Mise à jour --------------- - - Certaines action sont nécessaires lors de la mise à jour de Dolibarr - vers une version plus récente des sources. - - -2.1. Mise à jour de la base de données --------------------------------------- - - Il peut être nécessaire de faire des modifications sur la structure - et/ou les données contenues dans la base Mysql lors de la mise à jour - de Dolibarr. Pour cela des scripts sont fournis dans le répertoire - `mysql/migration/'. Il se présente sous la forme a.b.c-e.d.f.sql, les - trois premiers numéros indique la version de départ et les 3 suivants - la version que vous souhaitez atteindre. Si vous passez par exemple - de la version 0.1.3 à la version 0.1.6 il vous faudra appliquer les - patchs 0.1.3-0.1.4.sql, 0.1.4-0.1.5.sql et 0.1.5-0.1.6.sql si un patch - n'éxiste pas d'une version à une autre c'est qu'il n'y a pas eu de - modification de base. - - -------------------------------------------------------------------------------- - - -3. Propositions commerciales +1. Propositions commerciales ---------------------------- Propositions commerciales -3.1. Créer une proposition commerciale +1.1. Créer une proposition commerciale -------------------------------------- La création d'une proposition commerciale se fait à partir de la fiche @@ -162,7 +51,7 @@ Table des mati en haut à gauche sur la fiche, sous la barre de menu général. -3.2. Modèles de proposition +1.2. Modèles de proposition --------------------------- Dolibarr sait gérer plusieurs modèles de propositions. Vous pouvez @@ -174,23 +63,23 @@ Table des mati ------------------------------------------------------------------------------- -4. Facturation +2. Facturation -------------- Module de facturation. -4.1. Facture +2.1. Facture ------------ -4.1.1. Créer une facture +2.1.1. Créer une facture ------------------------ La création d'une facture se fait à partir de la fiche client dans la partie comptable. Le lien permettant cela se trouve en haut à gauche sur la fiche, sous la barre de menu générale. -4.1.2. Supprimer une facture +2.1.2. Supprimer une facture ---------------------------- Pour supprimer une facture il vous faut ouvrir la fiche de celle-ci. @@ -199,24 +88,24 @@ Table des mati toutes les données s'y afférant. Une facture supprimée ne peut pas être récupérée. -4.1.3. Modifier une facture +2.1.3. Modifier une facture --------------------------- Pour modifier une facture il vous faut ouvrir la fiche de celle-ci. Une facture ne peut être modifiée que si celle-ci est à l'état de brouillon. -4.1.4. Cycle de vie d'une facture +2.1.4. Cycle de vie d'une facture --------------------------------- -4.1.4.1. Brouillon +2.1.4.1. Brouillon ------------------ Lors de sa création une facture est considéré dans l'état de brouillon, dans cet état il n'st possible que de "Valider" ou de supprimer" une facture. -4.1.4.2. Validée +2.1.4.2. Validée ---------------- Une facture validée est une facture qui a été vérifiée par les @@ -227,31 +116,31 @@ Table des mati un paiement', 'Effectuer une relance', 'Classer comme payée' une fois l'intégralité des paiements étant égale au total TTC de la facture. -4.1.4.3. Payée +2.1.4.3. Payée -------------- L'état ultime de la facture qui nous remplit tous de joie. La seule action possible sur une facture payée est la consultation de celle-ci. -4.2. Paiements +2.2. Paiements -------------- -4.2.1. Création (émission) +2.2.1. Création (émission) -------------------------- La création d'un paiement s'effectue depuis la fiche de la facture correspondante. La création n'est possible que si et seulement si la facture n'est pas dans l'état 'Payée'. -4.2.2. Suppression +2.2.2. Suppression ------------------ La suppression d'un paiement s'effectue depuis la fiche de la facture correspondante. La suppression n'est possible que si et seulement si la facture n'est pas dans l'état 'Payée'. -4.2.3. Modification +2.2.3. Modification ------------------- La modification d'un paiement n'est pas possible vous devez pour cela @@ -261,7 +150,7 @@ Table des mati ------------------------------------------------------------------------------- -5. Produits +3. Produits ----------- Tout élément vendu dans Dolibarr est considéré comme un produit. Les @@ -272,14 +161,14 @@ Table des mati support inclue forcément une durée. -5.1. Aspect général +3.1. Aspect général ------------------- La création d'un produit s'effectue depuis le menu gauche de l'application, pour cela il vous faut être dans la section produit. -5.2. Spécificités des services +3.2. Spécificités des services ------------------------------ diff --git a/htdocs/comm/people.php3 b/htdocs/comm/people.php3 index 85b23b71abe..07784d6899c 100644 --- a/htdocs/comm/people.php3 +++ b/htdocs/comm/people.php3 @@ -31,7 +31,6 @@ if ($sortorder == "") if ($action == 'add') { - $email = trim($email); if (strlen(trim($name)) + strlen(trim($firstname)) > 0) @@ -66,6 +65,16 @@ if ($action == 'update') } } +if ($action == 'create_user') +{ + $nuser = new User($db); + $contact = new Contact($db); + $nuser->nom = $contact->nom; + $nuser->prenom = $contact->prenom; + $result = $contact->fetch($contactid); + $nuser->create_from_contact($contact); +} + /* * * @@ -78,15 +87,8 @@ if ($socid > 0) $sql = "SELECT s.idp, s.nom, ".$db->pdate("s.datec")." as dc, s.tel, s.fax, st.libelle as stcomm, s.fk_stcomm, s.url,s.cp,s.ville, s.note FROM llx_societe as s, c_stcomm as st "; $sql .= " WHERE s.fk_stcomm=st.id"; + $sql .= " AND s.idp = $socid"; - if ($to == 'next') - { - $sql .= " AND s.idp > $socid ORDER BY idp ASC LIMIT 1"; - } - else - { - $sql .= " AND s.idp = $socid"; - } $result = $db->query($sql); @@ -105,7 +107,7 @@ if ($socid > 0) if ($objsoc->note) { - print ""; + print '
'; print ""; print "
".nl2br($objsoc->note)."
"; } @@ -122,7 +124,7 @@ if ($socid > 0) print "PosteTel"; print "FaxEmail"; - $sql = "SELECT p.name, p.firstname, p.poste, p.phone, p.fax, p.email "; + $sql = "SELECT p.name, p.firstname, p.poste, p.phone, p.fax, p.email, p.fk_user "; $sql .= " FROM llx_socpeople as p WHERE p.fk_soc = $objsoc->idp"; if ($contactid) @@ -133,17 +135,11 @@ if ($socid > 0) $sql .= " ORDER by p.datec"; $result = $db->query($sql); $i = 0 ; $num = $db->num_rows(); $tag = True; + while ($i < $num) { $obj = $db->fetch_object( $i); - if ($tag) - { - print ""; - } - else - { - print ""; - } + print ""; print "$obj->firstname $obj->name"; print "$obj->poste "; print "$obj->phone "; @@ -153,6 +149,19 @@ if ($socid > 0) $i++; $tag = !$tag; } + if ($contactid) + { + if ($obj->fk_user) + { + print 'LoginFiche'; + } + else + { + print 'LoginPas de compte'; + print 'Créer un compte'; + } + } + print ""; @@ -267,15 +276,12 @@ if ($socid > 0) } print ""; - - - } else { print "Error"; } -$db->free(); + $db->close(); llxFooter("Dernière modification $Date$ révision $Revision$"); diff --git a/htdocs/compta/fiche.php3 b/htdocs/compta/fiche.php3 index 09e36ad6954..52eb26f72b2 100644 --- a/htdocs/compta/fiche.php3 +++ b/htdocs/compta/fiche.php3 @@ -34,9 +34,11 @@ if ($user->societe_id > 0) $socid = $user->societe_id; } +$user->getrights('facture'); + llxHeader(); -$db = new Db(); + if ($action=='add_action') { @@ -54,7 +56,6 @@ if ($action=='add_action') { $actioncomm->add($user); - $societe = new Societe($db); $societe->fetch($socid); } diff --git a/htdocs/compta/index.php3 b/htdocs/compta/index.php3 index f79786d8126..76b425f82b1 100644 --- a/htdocs/compta/index.php3 +++ b/htdocs/compta/index.php3 @@ -79,14 +79,48 @@ print ''; print '
'; +/* + * Propales à facturer + */ +if ($user->comm > 0 && $conf->commercial ) +{ + $sql = "SELECT p.rowid, p.ref, s.nom FROM llx_propal as p, llx_societe as s"; + $sql .= " WHERE p.fk_soc = s.idp AND p.fk_statut = 2"; + if ($socidp) + { + $sql .= " AND p.fk_soc = $socidp"; + } + + if ( $db->query($sql) ) + { + $num = $db->num_rows(); + if ($num) + { + $i = 0; + print ''; + print ""; + print ''; + print "\n"; + + while ($i < $num) + { + $var=!$var; + $obj = $db->fetch_object($i); + print ""; + $i++; + } + print "
'.translate("Propositions comm. à facturer").'
rowid\">$obj->ref".$obj->nom."

"; + } + } +} + +/* + * Charges a payer + * + */ if ($user->societe_id == 0) { - - - /* - * Charges a payer - * - */ + $sql = "SELECT c.amount, cc.libelle"; $sql .= " FROM llx_chargesociales as c, c_chargesociales as cc"; $sql .= " WHERE c.fk_type = cc.id AND c.paye=0"; @@ -120,29 +154,6 @@ if ($user->societe_id == 0) print $db->error(); } } -/* - * Propales à facturer - */ -if ($user->comm > 0 && $conf->commercial ) -{ - print ''; - print ""; - print ''; - print "\n"; - - $sql = "SELECT count(*) FROM llx_propal WHERE fk_statut = 2"; - if ($socidp) - { - $sql .= " AND fk_soc = $socidp"; - } - if (valeur($sql)) - { - $var=!$var; - print ""; - } - - print "
'.translate("Propositions commerciales").'
A facturer".valeur($sql)."

"; -} /* * Factures impayées */ diff --git a/htdocs/compta/propal.php3 b/htdocs/compta/propal.php3 index 512b690ed48..76f599597a1 100644 --- a/htdocs/compta/propal.php3 +++ b/htdocs/compta/propal.php3 @@ -255,32 +255,34 @@ if ($propalid) /* * Actions */ - print "

"; - - - if ($obj->statut == 2) - { - print '"; - } - else - { - print ''; - } - - print ""; - print ""; - - - if ($obj->statut == 2) - { - print ""; - } - else - { + if ($obj->statut <> 4) + { + print "

'; - print "Emettre une facture---[Facturée]
"; + + if ($obj->statut == 2) + { + print '"; + } + else + { + print ''; + } + print ""; + print ""; + + + if ($obj->statut == 2) + { + print ""; + } + else + { + print ""; + } + print "
'; + print "Emettre une facture---[Facturée]-
"; } - print "

"; /* * */ diff --git a/htdocs/contact.class.php3 b/htdocs/contact.class.php3 index e2ab336fa08..ad74c3c37dc 100644 --- a/htdocs/contact.class.php3 +++ b/htdocs/contact.class.php3 @@ -50,7 +50,7 @@ class Contact Function fetch($id) { - $sql = "SELECT c.idp, c.idp, c.name, c.firstname"; + $sql = "SELECT c.idp, c.fk_soc, c.name, c.firstname, c.email"; $sql .= " FROM llx_socpeople as c"; $sql .= " WHERE c.idp = $id"; @@ -65,11 +65,12 @@ class Contact $this->id = $obj->idp; $this->nom = $obj->name; $this->prenom = $obj->firstname; - + $this->societeid = $obj->fk_soc; $this->fullname = $this->prenom . ' ' . $this->nom; $this->code = $obj->code; $this->email = $obj->email; + $this->mail = $obj->email; } $this->db->free(); diff --git a/htdocs/includes/fpdf/fpdf.php b/htdocs/includes/fpdf/fpdf.php index b89837263ec..ad321cd95c7 100755 --- a/htdocs/includes/fpdf/fpdf.php +++ b/htdocs/includes/fpdf/fpdf.php @@ -1038,7 +1038,7 @@ function _begindoc() { //Start document $this->state=1; - $this->_out('%PDF-1.3'); + $this->_out('%PDF-1.4'); } function _putpages() diff --git a/htdocs/tva.class.php3 b/htdocs/tva.class.php3 index e2005932761..d3377e62567 100644 --- a/htdocs/tva.class.php3 +++ b/htdocs/tva.class.php3 @@ -175,7 +175,26 @@ class Tva /* * */ + Function add_payement($datep, $datev, $amount) + { + $sql = "INSERT INTO llx_tva (datep, datev, amount) "; + $sql .= " VALUES ('".$this->db->idate($datep)."',"; + $sql .= "'".$this->db->idate($datev)."'," . ereg_replace(",",".",$amount) .")"; + $result = $this->db->query($sql); + + if ($result) + { + return 1; + } + else + { + print $this->db->error()."
".$sql; + return -1; + } + + + } } ?>