pre-release

This commit is contained in:
Rodolphe Quiedeville 2003-08-12 13:28:56 +00:00
parent 6e1cf10eaf
commit a8e4795061
10 changed files with 153 additions and 222 deletions

View File

@ -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
rm -f *pdf *pslinuxdoc --backend=latex -o pdf dolidev.sgml

Binary file not shown.

View File

@ -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
------------------------------

View File

@ -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 "<table border=0 width=\"100%\" cellspacing=0 bgcolor=#e0e0e0>";
print '<table border=0 width="100%" cellspacing="0">';
print "<tr><td>".nl2br($objsoc->note)."</td></tr>";
print "</table>";
}
@ -122,7 +124,7 @@ if ($socid > 0)
print "<td><b>Poste</b></td><td><b>Tel</b></td>";
print "<td><b>Fax</b></td><td><b>Email</b></td>";
$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 "<tr bgcolor=\"e0e0e0\">";
}
else
{
print "<tr>";
}
print "<tr>";
print "<td>$obj->firstname $obj->name</td>";
print "<td>$obj->poste&nbsp;</td>";
print "<td>$obj->phone&nbsp;</td>";
@ -153,6 +149,19 @@ if ($socid > 0)
$i++;
$tag = !$tag;
}
if ($contactid)
{
if ($obj->fk_user)
{
print '<tr><td>Login</td><td colspan="4"><a href="'.DOL_URL_ROOT.'/user/fiche.php3?id='.$obj->fk_user.'">Fiche</a></td></tr>';
}
else
{
print '<tr><td>Login</td><td colspan="3">Pas de compte</td>';
print '<td align="center"><a href="people.php3?contactid='.$contactid.'&socid='.$socid.'&action=create_user">Créer un compte</td></tr>';
}
}
print "</table>";
@ -267,15 +276,12 @@ if ($socid > 0)
}
print "</table>";
}
else
{
print "Error";
}
$db->free();
$db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");

View File

@ -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);
}

View File

@ -79,14 +79,48 @@ print '<TABLE border="0" width="100%" cellspacing="0" cellpadding="4">';
print '<tr><td valign="top" width="33%">';
/*
* 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 '<TABLE border="0" cellspacing="0" cellpadding="3" width="100%">';
print "<TR class=\"liste_titre\">";
print '<td colspan="2">'.translate("Propositions comm. à facturer").'</td>';
print "</TR>\n";
while ($i < $num)
{
$var=!$var;
$obj = $db->fetch_object($i);
print "<tr $bc[$var]><td><a href=\"propal.php3?propalid=$obj->rowid\">$obj->ref</a></td><td align=\"right\">".$obj->nom."</td></tr>";
$i++;
}
print "</table><br>";
}
}
}
/*
* 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 '<TABLE border="0" cellspacing="0" cellpadding="3" width="100%">';
print "<TR class=\"liste_titre\">";
print '<td colspan="2">'.translate("Propositions commerciales").'</td>';
print "</TR>\n";
$sql = "SELECT count(*) FROM llx_propal WHERE fk_statut = 2";
if ($socidp)
{
$sql .= " AND fk_soc = $socidp";
}
if (valeur($sql))
{
$var=!$var;
print "<tr $bc[$var]><td><a href=\"propal.php3?viewstatut=2\">A facturer</a></td><td align=\"right\">".valeur($sql)."</td></tr>";
}
print "</table><br>";
}
/*
* Factures impayées
*/

View File

@ -255,32 +255,34 @@ if ($propalid)
/*
* Actions
*/
print "<p><TABLE border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"4\"><tr>";
if ($obj->statut == 2)
{
print '<td bgcolor="#e0e0e0" align="center" width="25%">';
print "<a href=\"facture.php3?propalid=$propalid&action=create\">Emettre une facture</td>";
}
else
{
print '<td align="center" width="25%">-</td>';
}
print "<td align=\"center\" width=\"25%\">-</td>";
print "<td align=\"center\" width=\"25%\">-</td>";
if ($obj->statut == 2)
{
print "<td bgcolor=\"#e0e0e0\" align=\"center\" width=\"25%\">[<a href=\"$PHP_SELF?propalid=$propalid&action=setstatut&statut=4\">Facturée</a>]</td>";
}
else
{
if ($obj->statut <> 4)
{
print "<p><TABLE border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"4\"><tr>";
if ($obj->statut == 2)
{
print '<td bgcolor="#e0e0e0" align="center" width="25%">';
print "<a href=\"facture.php3?propalid=$propalid&action=create\">Emettre une facture</td>";
}
else
{
print '<td align="center" width="25%">-</td>';
}
print "<td align=\"center\" width=\"25%\">-</td>";
print "<td align=\"center\" width=\"25%\">-</td>";
if ($obj->statut == 2)
{
print "<td bgcolor=\"#e0e0e0\" align=\"center\" width=\"25%\">[<a href=\"$PHP_SELF?propalid=$propalid&action=setstatut&statut=4\">Facturée</a>]</td>";
}
else
{
print "<td align=\"center\" width=\"25%\">-</td>";
}
print "</tr></table>";
}
print "</tr></table>";
/*
*
*/

View File

@ -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();

View File

@ -1038,7 +1038,7 @@ function _begindoc()
{
//Start document
$this->state=1;
$this->_out('%PDF-1.3');
$this->_out('%PDF-1.4');
}
function _putpages()

View File

@ -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()."<br>".$sql;
return -1;
}
}
}
?>