pre-release
This commit is contained in:
parent
6e1cf10eaf
commit
a8e4795061
@ -43,7 +43,8 @@ all: $(DOC).pdf $(DOC).html
|
|||||||
$(DEBIANDOC2PS) $(OPTIONS) $<
|
$(DEBIANDOC2PS) $(OPTIONS) $<
|
||||||
|
|
||||||
$(DOC).pdf: $(FRPAGES)
|
$(DOC).pdf: $(FRPAGES)
|
||||||
$(DEBIANDOC2PDF) $(OPTIONS) $(DOC).sgml
|
#$(DEBIANDOC2PDF) $(OPTIONS) $(DOC).sgml
|
||||||
|
linuxdoc --backend=latex -o pdf dolidev.sgml
|
||||||
|
|
||||||
%.html: %.sgml $(FRPAGES)
|
%.html: %.sgml $(FRPAGES)
|
||||||
$(DEBIANDOC2HTML) $(HOPTIONS) $<
|
$(DEBIANDOC2HTML) $(HOPTIONS) $<
|
||||||
@ -52,4 +53,5 @@ put:
|
|||||||
$(RSYNC) $(ROPT) $(RSSH) dolibarr-dev.html rodolphe.quiedeville.org:/home/www/www.dolibarr.com/htdocs/documentation
|
$(RSYNC) $(ROPT) $(RSSH) dolibarr-dev.html rodolphe.quiedeville.org:/home/www/www.dolibarr.com/htdocs/documentation
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *pdf *ps
|
rm -f *pdf *pslinuxdoc --backend=latex -o pdf dolidev.sgml
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -16,27 +16,17 @@
|
|||||||
Table des matières
|
Table des matières
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
1. Installation
|
1. Propositions commerciales
|
||||||
1.1. Récupérer les sources
|
1.1. Créer une proposition commerciale
|
||||||
1.2. Pré-requis
|
1.2. Modèles de proposition
|
||||||
1.3. Base de données
|
|
||||||
1.4. Apache
|
|
||||||
1.5. Dolibarr
|
|
||||||
|
|
||||||
2. Mise à jour
|
2. Facturation
|
||||||
2.1. Mise à jour de la base de données
|
2.1. Facture
|
||||||
|
2.2. Paiements
|
||||||
|
|
||||||
3. Propositions commerciales
|
3. Produits
|
||||||
3.1. Créer une proposition commerciale
|
3.1. Aspect général
|
||||||
3.2. Modèles de proposition
|
3.2. Spécificités des services
|
||||||
|
|
||||||
4. Facturation
|
|
||||||
4.1. Facture
|
|
||||||
4.2. Paiements
|
|
||||||
|
|
||||||
5. Produits
|
|
||||||
5.1. Aspect général
|
|
||||||
5.2. Spécificités des services
|
|
||||||
|
|
||||||
A. Fichier de conf Apache
|
A. Fichier de conf Apache
|
||||||
A.1. Fichier de config pour `Apache 1.3' + `mod_auth_mysql'
|
A.1. Fichier de config pour `Apache 1.3' + `mod_auth_mysql'
|
||||||
@ -47,114 +37,13 @@ Table des mati
|
|||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
1. Installation
|
1. Propositions commerciales
|
||||||
---------------
|
|
||||||
|
|
||||||
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
|
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
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
|
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.
|
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
|
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.
|
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
|
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
|
partie comptable. Le lien permettant cela se trouve en haut à gauche
|
||||||
sur la fiche, sous la barre de menu générale.
|
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.
|
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
|
toutes les données s'y afférant. Une facture supprimée ne peut pas
|
||||||
être récupérée.
|
ê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.
|
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
|
Une facture ne peut être modifiée que si celle-ci est à l'état de
|
||||||
brouillon.
|
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
|
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
|
brouillon, dans cet état il n'st possible que de "Valider" ou de
|
||||||
supprimer" une facture.
|
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
|
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
|
un paiement', 'Effectuer une relance', 'Classer comme payée' une fois
|
||||||
l'intégralité des paiements étant égale au total TTC de la facture.
|
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
|
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.
|
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
|
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
|
correspondante. La création n'est possible que si et seulement si la
|
||||||
facture n'est pas dans l'état 'Payée'.
|
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
|
La suppression d'un paiement s'effectue depuis la fiche de la facture
|
||||||
correspondante. La suppression n'est possible que si et seulement si
|
correspondante. La suppression n'est possible que si et seulement si
|
||||||
la facture n'est pas dans l'état 'Payée'.
|
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
|
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
|
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.
|
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
|
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.
|
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
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,6 @@ if ($sortorder == "")
|
|||||||
|
|
||||||
if ($action == 'add')
|
if ($action == 'add')
|
||||||
{
|
{
|
||||||
|
|
||||||
$email = trim($email);
|
$email = trim($email);
|
||||||
|
|
||||||
if (strlen(trim($name)) + strlen(trim($firstname)) > 0)
|
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 = "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 .= " 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);
|
$result = $db->query($sql);
|
||||||
|
|
||||||
@ -105,7 +107,7 @@ if ($socid > 0)
|
|||||||
|
|
||||||
if ($objsoc->note)
|
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 "<tr><td>".nl2br($objsoc->note)."</td></tr>";
|
||||||
print "</table>";
|
print "</table>";
|
||||||
}
|
}
|
||||||
@ -122,7 +124,7 @@ if ($socid > 0)
|
|||||||
print "<td><b>Poste</b></td><td><b>Tel</b></td>";
|
print "<td><b>Poste</b></td><td><b>Tel</b></td>";
|
||||||
print "<td><b>Fax</b></td><td><b>Email</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";
|
$sql .= " FROM llx_socpeople as p WHERE p.fk_soc = $objsoc->idp";
|
||||||
|
|
||||||
if ($contactid)
|
if ($contactid)
|
||||||
@ -133,17 +135,11 @@ if ($socid > 0)
|
|||||||
$sql .= " ORDER by p.datec";
|
$sql .= " ORDER by p.datec";
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$i = 0 ; $num = $db->num_rows(); $tag = True;
|
$i = 0 ; $num = $db->num_rows(); $tag = True;
|
||||||
|
|
||||||
while ($i < $num)
|
while ($i < $num)
|
||||||
{
|
{
|
||||||
$obj = $db->fetch_object( $i);
|
$obj = $db->fetch_object( $i);
|
||||||
if ($tag)
|
print "<tr>";
|
||||||
{
|
|
||||||
print "<tr bgcolor=\"e0e0e0\">";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print "<tr>";
|
|
||||||
}
|
|
||||||
print "<td>$obj->firstname $obj->name</td>";
|
print "<td>$obj->firstname $obj->name</td>";
|
||||||
print "<td>$obj->poste </td>";
|
print "<td>$obj->poste </td>";
|
||||||
print "<td>$obj->phone </td>";
|
print "<td>$obj->phone </td>";
|
||||||
@ -153,6 +149,19 @@ if ($socid > 0)
|
|||||||
$i++;
|
$i++;
|
||||||
$tag = !$tag;
|
$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>";
|
print "</table>";
|
||||||
|
|
||||||
|
|
||||||
@ -267,15 +276,12 @@ if ($socid > 0)
|
|||||||
}
|
}
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print "Error";
|
print "Error";
|
||||||
}
|
}
|
||||||
$db->free();
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
||||||
llxFooter("<em>Dernière modification $Date$ révision $Revision$</em>");
|
llxFooter("<em>Dernière modification $Date$ révision $Revision$</em>");
|
||||||
|
|||||||
@ -34,9 +34,11 @@ if ($user->societe_id > 0)
|
|||||||
$socid = $user->societe_id;
|
$socid = $user->societe_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$user->getrights('facture');
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
$db = new Db();
|
|
||||||
|
|
||||||
|
|
||||||
if ($action=='add_action') {
|
if ($action=='add_action') {
|
||||||
@ -54,7 +56,6 @@ if ($action=='add_action') {
|
|||||||
|
|
||||||
$actioncomm->add($user);
|
$actioncomm->add($user);
|
||||||
|
|
||||||
|
|
||||||
$societe = new Societe($db);
|
$societe = new Societe($db);
|
||||||
$societe->fetch($socid);
|
$societe->fetch($socid);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,14 +79,48 @@ print '<TABLE border="0" width="100%" cellspacing="0" cellpadding="4">';
|
|||||||
|
|
||||||
print '<tr><td valign="top" width="33%">';
|
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)
|
if ($user->societe_id == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Charges a payer
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
$sql = "SELECT c.amount, cc.libelle";
|
$sql = "SELECT c.amount, cc.libelle";
|
||||||
$sql .= " FROM llx_chargesociales as c, c_chargesociales as cc";
|
$sql .= " FROM llx_chargesociales as c, c_chargesociales as cc";
|
||||||
$sql .= " WHERE c.fk_type = cc.id AND c.paye=0";
|
$sql .= " WHERE c.fk_type = cc.id AND c.paye=0";
|
||||||
@ -120,29 +154,6 @@ if ($user->societe_id == 0)
|
|||||||
print $db->error();
|
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
|
* Factures impayées
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -255,32 +255,34 @@ if ($propalid)
|
|||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
print "<p><TABLE border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"4\"><tr>";
|
if ($obj->statut <> 4)
|
||||||
|
|
||||||
|
|
||||||
if ($obj->statut == 2)
|
|
||||||
{
|
{
|
||||||
print '<td bgcolor="#e0e0e0" align="center" width="25%">';
|
print "<p><TABLE border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"4\"><tr>";
|
||||||
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>";
|
if ($obj->statut == 2)
|
||||||
print "<td align=\"center\" width=\"25%\">-</td>";
|
{
|
||||||
|
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>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
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 "<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>";
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -50,7 +50,7 @@ class Contact
|
|||||||
Function fetch($id)
|
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 .= " FROM llx_socpeople as c";
|
||||||
$sql .= " WHERE c.idp = $id";
|
$sql .= " WHERE c.idp = $id";
|
||||||
|
|
||||||
@ -65,11 +65,12 @@ class Contact
|
|||||||
$this->id = $obj->idp;
|
$this->id = $obj->idp;
|
||||||
$this->nom = $obj->name;
|
$this->nom = $obj->name;
|
||||||
$this->prenom = $obj->firstname;
|
$this->prenom = $obj->firstname;
|
||||||
|
$this->societeid = $obj->fk_soc;
|
||||||
$this->fullname = $this->prenom . ' ' . $this->nom;
|
$this->fullname = $this->prenom . ' ' . $this->nom;
|
||||||
|
|
||||||
$this->code = $obj->code;
|
$this->code = $obj->code;
|
||||||
$this->email = $obj->email;
|
$this->email = $obj->email;
|
||||||
|
$this->mail = $obj->email;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->free();
|
$this->db->free();
|
||||||
|
|||||||
@ -1038,7 +1038,7 @@ function _begindoc()
|
|||||||
{
|
{
|
||||||
//Start document
|
//Start document
|
||||||
$this->state=1;
|
$this->state=1;
|
||||||
$this->_out('%PDF-1.3');
|
$this->_out('%PDF-1.4');
|
||||||
}
|
}
|
||||||
|
|
||||||
function _putpages()
|
function _putpages()
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user