2003-03-11 16:27:34 +01:00
< ? PHP
2004-07-20 10:31:06 +02:00
/* Copyright ( C ) 2003 - 2004 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2004-08-08 22:37:19 +02:00
* Copyright ( C ) 2004 Laurent Destailleur < eldy @ users . sourceforge . net >
2003-03-11 16:27:34 +01:00
*
* This program 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 .
*
* This program 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 this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*
* $Id $
* $Source $
*/
2004-08-15 17:04:24 +02:00
/*! \file htdocs / admin / facture . php
\ingroup facture
\brief Page d ' administration / configuration du module Facture
\version $Revision $
*/
2003-03-11 16:27:34 +01:00
require ( " ./pre.inc.php " );
2003-03-11 17:01:45 +01:00
if ( ! $user -> admin )
2004-02-15 17:49:08 +01:00
accessforbidden ();
2004-07-20 10:31:06 +02:00
$facture_addon_var = FACTURE_ADDON ;
$facture_addon_var_pdf = FACTURE_ADDON_PDF ;
2003-05-13 21:08:04 +02:00
$facture_rib_number_var = FACTURE_RIB_NUMBER ;
2004-02-02 23:03:12 +01:00
$facture_chq_number_var = FACTURE_CHQ_NUMBER ;
2004-07-20 10:31:06 +02:00
$facture_tva_option = FACTURE_TVAOPTION ;
2003-03-11 16:27:34 +01:00
2004-07-25 15:12:15 +02:00
$typeconst = array ( 'yesno' , 'texte' , 'chaine' );
2004-07-20 10:31:06 +02:00
if ( $_GET [ " action " ] == 'set' )
2003-03-11 16:27:34 +01:00
{
2004-07-26 15:42:44 +02:00
if ( dolibarr_set_const ( $db , " FACTURE_ADDON " , $_GET [ " value " ]))
$facture_addon_var = $_GET [ " value " ];
}
if ( $_GET [ " action " ] == 'dateforce' )
{
dolibarr_set_const ( $db , " FAC_FORCE_DATE_VALIDATION " , $_GET [ " value " ]);
Header ( " Location: facture.php " );
2003-03-11 16:27:34 +01:00
}
2004-07-20 10:31:06 +02:00
if ( $_POST [ " action " ] == 'setribchq' )
2003-05-13 21:08:04 +02:00
{
2004-07-20 10:31:06 +02:00
if ( dolibarr_set_const ( $db , " FACTURE_RIB_NUMBER " , $_POST [ " rib " ])) $facture_rib_number_var = $_POST [ " rib " ];
if ( dolibarr_set_const ( $db , " FACTURE_CHQ_NUMBER " , $_POST [ " chq " ])) $facture_chq_number_var = $_POST [ " chq " ];
2003-05-13 21:08:04 +02:00
}
2004-07-20 10:31:06 +02:00
if ( $_GET [ " action " ] == 'setpdf' )
2003-04-13 16:25:45 +02:00
{
2004-07-20 10:31:06 +02:00
if ( dolibarr_set_const ( $db , " FACTURE_ADDON_PDF " , $_GET [ " value " ])) $facture_addon_var_pdf = $_GET [ " value " ];
2003-04-13 16:25:45 +02:00
}
2004-07-20 10:31:06 +02:00
if ( $_POST [ " action " ] == 'settvaoption' )
2004-02-08 18:00:18 +01:00
{
2004-07-20 10:31:06 +02:00
if ( dolibarr_set_const ( $db , " FACTURE_TVAOPTION " , $_POST [ " optiontva " ])) $facture_tva_option = $_POST [ " optiontva " ];
2004-02-08 18:00:18 +01:00
}
2004-07-25 15:12:15 +02:00
if ( $_POST [ " action " ] == 'update' || $_POST [ " action " ] == 'add' )
{
if ( ! dolibarr_set_const ( $db , $_POST [ " constname " ], $_POST [ " constvalue " ], $typeconst [ $_POST [ " consttype " ]], 0 , isset ( $_POST [ " constnote " ]) ? $_POST [ " constnote " ] : '' ));
{
print $db -> error ();
}
}
if ( $_GET [ " action " ] == 'delete' )
{
2004-07-26 15:42:44 +02:00
if ( ! dolibarr_del_const ( $db , $_GET [ " rowid " ]));
{
print $db -> error ();
}
2004-07-25 15:12:15 +02:00
}
2004-07-26 15:42:44 +02:00
llxHeader ( '' , 'Fiche commande' , 'FactureConfiguration' );
2004-02-08 18:00:18 +01:00
2003-03-11 16:27:34 +01:00
$dir = " ../includes/modules/facture/ " ;
2004-02-21 00:40:13 +01:00
print_titre ( " Configuration du module Factures " );
2004-07-25 15:12:15 +02:00
2004-02-27 23:53:39 +01:00
/*
* Module num<EFBFBD> rotation
*/
2004-02-21 00:40:13 +01:00
print " <br> " ;
2004-02-11 21:12:58 +01:00
print_titre ( " Module de num<75> rotation des factures " );
2003-03-11 16:27:34 +01:00
2004-07-25 15:12:15 +02:00
print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">' ;
print '<tr class="liste_titre">' ;
2004-07-25 17:31:16 +02:00
print '<td>' . $langs -> trans ( " Name " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Description " ) . '</td>' ;
2004-08-15 17:39:06 +02:00
print '<td>' . $langs -> trans ( " Example " ) . '</td>' ;
2004-07-25 17:31:16 +02:00
print '<td align="center" width="60">' . $langs -> trans ( " Activated " ) . '</td>' ;
2004-02-08 18:00:18 +01:00
print '<td width="80"> </td>' ;
2004-07-25 15:12:15 +02:00
print " </tr> \n " ;
2003-03-11 16:27:34 +01:00
clearstatcache ();
$handle = opendir ( $dir );
2004-02-15 17:49:08 +01:00
$var = True ;
2003-03-11 16:27:34 +01:00
while (( $file = readdir ( $handle )) !== false )
{
2003-03-11 16:37:30 +01:00
if ( is_dir ( $dir . $file ) && substr ( $file , 0 , 1 ) <> '.' && substr ( $file , 0 , 3 ) <> 'CVS' )
2003-03-11 16:27:34 +01:00
{
2004-07-26 15:42:44 +02:00
$var = ! $var ;
2004-02-15 17:49:08 +01:00
print '<tr ' . $bc [ $var ] . '><td width=\"100\">' ;
2003-03-11 16:27:34 +01:00
echo " $file " ;
print " </td><td> \n " ;
2004-08-15 17:04:24 +02:00
$filebis = $file . " / " . $file . " .modules.php " ;
2004-08-15 17:39:06 +02:00
// Chargement de la classe de num<75> rotation
2004-08-15 19:56:27 +02:00
$classname = " mod_facture_ " . $file ;
2004-08-15 17:04:24 +02:00
require_once ( $dir . $filebis );
2003-03-11 16:27:34 +01:00
2004-08-15 17:04:24 +02:00
$obj = new $classname ( $db );
2004-08-15 19:56:27 +02:00
print $obj -> info ();
2003-03-11 16:27:34 +01:00
2004-08-15 17:39:06 +02:00
print '</td>' ;
2003-03-11 16:27:34 +01:00
2004-08-15 17:39:06 +02:00
// Affiche example
print '<td>' . $obj -> getExample () . '</td>' ;
print '<td align="center">' ;
2003-03-11 16:27:34 +01:00
if ( $facture_addon_var == " $file " )
{
2003-06-24 16:36:32 +02:00
print '<img src="' . DOL_URL_ROOT . '/theme/' . $conf -> theme . '/img/tick.png" border="0"></a>' ;
2004-02-08 18:00:18 +01:00
print '</td><td align="center">' ;
print ' ' ;
2003-03-11 16:27:34 +01:00
}
else
{
2004-02-08 18:00:18 +01:00
print ' ' ;
print '</td><td align="center">' ;
2004-07-25 17:31:16 +02:00
print '<a href="facture.php?action=set&value=' . $file . '">' . $langs -> trans ( " Activate " ) . '</a>' ;
2003-03-11 16:27:34 +01:00
}
2004-02-08 18:00:18 +01:00
print " </td></tr> \n " ;
2003-03-11 16:27:34 +01:00
}
}
closedir ( $handle );
print '</table>' ;
2004-02-27 23:53:39 +01:00
2004-07-26 15:42:44 +02:00
print " <br> " ;
print_titre ( " Date des factures " );
print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">' ;
print '<tr class="liste_titre">' ;
print '<td>' . $langs -> trans ( " Description " ) . '</td>' ;
print '<td align="center" width="60">' . $langs -> trans ( " Activated " ) . '</td>' ;
print '<td width="80"> </td>' ;
print " </tr> \n " ;
print '<tr ' . $bc [ $var ] . '><td>' ;
echo " Forcer la d<> finition de la date des factures lors de la validation " ;
print '</td><td width="60" align="center">' ;
if ( defined ( " FAC_FORCE_DATE_VALIDATION " ) && FAC_FORCE_DATE_VALIDATION == " 1 " )
{
print '<img src="' . DOL_URL_ROOT . '/theme/' . $conf -> theme . '/img/tick.png" border="0"></a>' ;
print '</td><td align="center">' ;
print '<a href="facture.php?action=dateforce&value=0">' . $langs -> trans ( " D<EFBFBD> sactiver " ) . '</a>' ;
}
else
{
print ' ' ;
print '</td><td align="center">' ;
print '<a href="facture.php?action=dateforce&value=1">' . $langs -> trans ( " Activate " ) . '</a>' ;
}
print " </td></tr> \n " ;
print '</table>' ;
2003-04-13 16:25:45 +02:00
/*
2004-02-27 23:53:39 +01:00
* PDF
2003-04-13 16:25:45 +02:00
*/
2004-02-27 23:53:39 +01:00
print '<br>' ;
2003-04-13 16:25:45 +02:00
print_titre ( " Mod<EFBFBD> les de facture pdf " );
2004-07-25 15:12:15 +02:00
print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">' ;
2004-02-15 17:49:08 +01:00
print '<tr class="liste_titre">' ;
2004-07-25 17:31:16 +02:00
print '<td>' . $langs -> trans ( " Name " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Description " ) . '</td>' ;
print '<td align="center" width="60">' . $langs -> trans ( " Activated " ) . '</td>' ;
2004-02-08 18:00:18 +01:00
print '<td width="80"> </td>' ;
2004-02-15 17:49:08 +01:00
print " </tr> \n " ;
2003-04-13 16:25:45 +02:00
clearstatcache ();
$handle = opendir ( $dir );
2004-02-15 17:49:08 +01:00
$var = True ;
2003-04-13 16:25:45 +02:00
while (( $file = readdir ( $handle )) !== false )
{
if ( substr ( $file , strlen ( $file ) - 12 ) == '.modules.php' && substr ( $file , 0 , 4 ) == 'pdf_' )
{
2004-02-15 17:49:08 +01:00
$var = ! $var ;
2003-04-13 16:25:45 +02:00
$name = substr ( $file , 4 , strlen ( $file ) - 16 );
$classname = substr ( $file , 0 , strlen ( $file ) - 12 );
2004-02-15 17:49:08 +01:00
print '<tr ' . $bc [ $var ] . '><td width=\"100\">' ;
2003-04-13 16:25:45 +02:00
echo " $name " ;
print " </td><td> \n " ;
require_once ( $dir . $file );
2004-08-08 22:37:19 +02:00
$obj = new $classname ( $db );
2003-04-13 16:25:45 +02:00
print $obj -> description ;
print '</td><td align="center">' ;
2003-04-13 16:32:45 +02:00
if ( $facture_addon_var_pdf == " $name " )
2003-04-13 16:25:45 +02:00
{
2003-06-24 16:36:32 +02:00
print '<img src="' . DOL_URL_ROOT . '/theme/' . $conf -> theme . '/img/tick.png" border="0"></a>' ;
2004-02-08 18:00:18 +01:00
print '</td><td align="center">' ;
print ' ' ;
2003-04-13 16:25:45 +02:00
}
else
{
2004-02-08 18:00:18 +01:00
print ' ' ;
print '</td><td align="center">' ;
2004-07-25 17:31:16 +02:00
print '<a href="facture.php?action=setpdf&value=' . $name . '">' . $langs -> trans ( " Activate " ) . '</a>' ;
2003-04-13 16:25:45 +02:00
}
2004-02-08 18:00:18 +01:00
print " </td></tr> \n " ;
2003-04-13 16:25:45 +02:00
}
}
closedir ( $handle );
print '</table>' ;
2003-03-11 16:27:34 +01:00
2003-05-13 21:08:04 +02:00
/*
2004-02-27 23:53:39 +01:00
* Modes de r<EFBFBD> glement
2003-05-13 21:08:04 +02:00
*
*/
2004-02-27 23:53:39 +01:00
print '<br>' ;
2004-02-02 23:03:12 +01:00
print_titre ( " Mode de r<> glement <20> afficher sur les factures " );
2003-05-13 21:08:04 +02:00
2004-07-25 15:12:15 +02:00
print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">' ;
$var = True ;
2004-02-02 23:03:12 +01:00
2004-07-20 10:31:06 +02:00
print '<form action="facture.php" method="post">' ;
2004-02-02 23:03:12 +01:00
print '<input type="hidden" name="action" value="setribchq">' ;
print '<tr class="liste_titre">' ;
2004-02-08 18:00:18 +01:00
print '<td>Mode r<> glement <20> proposer</td>' ;
2004-07-25 17:31:16 +02:00
print '<td align="right"><input type="submit" value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
2004-02-02 23:03:12 +01:00
print " </tr> \n " ;
2004-07-25 15:12:15 +02:00
$var =! $var ;
print '<tr ' . $bc [ $var ] . '>' ;
2004-02-08 18:00:18 +01:00
print " <td>Proposer paiement par RIB sur le compte</td> " ;
2004-02-22 21:50:22 +01:00
print " <td> " ;
2004-02-27 23:53:39 +01:00
$sql = " SELECT rowid, label FROM " . MAIN_DB_PREFIX . " bank_account where clos = 0 " ;
2003-05-13 21:08:04 +02:00
if ( $db -> query ( $sql ))
{
2004-07-20 10:31:06 +02:00
$num = $db -> num_rows ();
$i = 0 ;
if ( $num > 0 ) {
print " <select name= \" rib \" > " ;
print '<option value="0">Ne pas afficher</option>' ;
while ( $i < $num )
{
$var =! $var ;
$row = $db -> fetch_row ( $i );
if ( $facture_rib_number_var == $row [ 0 ])
{
print '<option value="' . $row [ 0 ] . '" selected>' . $row [ 1 ] . '</option>' ;
}
else
{
print '<option value="' . $row [ 0 ] . '">' . $row [ 1 ] . '</option>' ;
}
2004-02-22 21:50:22 +01:00
$i ++ ;
2004-07-20 10:31:06 +02:00
}
print " </select> " ;
} else {
print " <i>Aucun compte bancaire actif cr<63> <72> </i> " ;
}
2003-05-13 21:08:04 +02:00
}
2004-02-22 21:50:22 +01:00
print " </td></tr> " ;
2004-07-25 15:12:15 +02:00
$var =! $var ;
print '<tr ' . $bc [ $var ] . '>' ;
2004-02-08 18:00:18 +01:00
print " <td>Proposer paiement par ch<63> que <20> l'ordre et adresse du titulaire du compte</td> " ;
2004-02-22 21:50:22 +01:00
print " <td> " ;
2004-02-27 23:53:39 +01:00
$sql = " SELECT rowid, label FROM " . MAIN_DB_PREFIX . " bank_account where clos = 0 " ;
2004-02-15 17:49:08 +01:00
$var = True ;
2004-02-02 23:03:12 +01:00
if ( $db -> query ( $sql ))
{
$num = $db -> num_rows ();
$i = 0 ;
2004-07-20 10:31:06 +02:00
if ( $num > 0 )
{
print " <select name= \" chq \" > " ;
print '<option value="0">Ne pas afficher</option>' ;
while ( $i < $num )
2004-02-22 21:50:22 +01:00
{
$var =! $var ;
$row = $db -> fetch_row ( $i );
2004-07-20 10:31:06 +02:00
2004-02-22 21:50:22 +01:00
if ( $facture_chq_number_var == $row [ 0 ])
2004-07-20 10:31:06 +02:00
{
print '<option value="' . $row [ 0 ] . '" selected>' . $row [ 1 ] . '</option>' ;
}
2004-02-22 21:50:22 +01:00
else
2004-07-20 10:31:06 +02:00
{
print '<option value="' . $row [ 0 ] . '">' . $row [ 1 ] . '</option>' ;
}
2004-02-22 21:50:22 +01:00
$i ++ ;
}
2004-07-20 10:31:06 +02:00
print " </select> " ;
} else {
print " <i>Aucun compte bancaire actif cr<63> <72> </i> " ;
}
2004-02-02 23:03:12 +01:00
}
2004-02-22 21:50:22 +01:00
print " </td></tr> " ;
2003-05-13 21:08:04 +02:00
print " </form> " ;
2004-02-02 23:03:12 +01:00
print " </table> " ;
2003-06-22 14:16:11 +02:00
2004-02-08 18:00:18 +01:00
/*
2004-02-27 23:53:39 +01:00
* Options fiscale
2004-02-08 18:00:18 +01:00
*/
2004-02-27 23:53:39 +01:00
print '<br>' ;
2004-02-08 18:00:18 +01:00
print_titre ( " Options fiscales de facturation de la TVA " );
2004-07-25 15:12:15 +02:00
print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">' ;
2004-07-20 10:31:06 +02:00
print '<form action="facture.php" method="post">' ;
2004-02-08 18:00:18 +01:00
print '<input type="hidden" name="action" value="settvaoption">' ;
2004-02-27 23:53:39 +01:00
print '<tr class="liste_titre">' ;
2004-02-08 18:00:18 +01:00
print '<td>Option</td><td>Description</td>' ;
2004-07-25 17:31:16 +02:00
print '<td align="right"><input type="submit" value="' . $langs -> trans ( " Modify " ) . '"></td>' ;
2004-02-27 23:53:39 +01:00
print " </tr> \n " ;
2004-07-25 15:12:15 +02:00
$var = True ;
$var =! $var ;
print " <tr " . $bc [ $var ] . " ><td width= \" 140 \" ><input type= \" radio \" name= \" optiontva \" value= \" reel \" " . ( $facture_tva_option != " franchise " ? " checked " : " " ) . " > Option r<> el</td> " ;
2004-02-08 18:00:18 +01:00
print " <td colspan= \" 2 \" >L'option 'r<> el' est la plus courante. Elle est <20> destination des entreprises et professions lib<69> rales. \n Chaque produits/service vendu est soumis <20> la TVA (Dolibarr propose le taux standard par d<> faut <20> la cr<63> ation d'une facture). Cette derni<6E> re est r<> cup<75> r<EFBFBD> e l'ann<6E> e suivante suite <20> la d<> claration TVA pour les produits/services achet<65> s et est revers<72> e <20> l'<27> tat pour les produits/services vendus.</td></tr> \n " ;
2004-07-25 15:12:15 +02:00
$var =! $var ;
print " <tr " . $bc [ $var ] . " ><td width= \" 140 \" ><input type= \" radio \" name= \" optiontva \" value= \" franchise \" " . ( $facture_tva_option == " franchise " ? " checked " : " " ) . " > Option franchise</td> " ;
2004-02-11 21:17:50 +01:00
print " <td colspan= \" 2 \" >L'option 'franchise' est utilis<69> e par les particuliers ou professions lib<69> rales <20> titre occasionnel avec de petits chiffres d'affaires. \n Chaque produits/service vendu est soumis <20> une TVA de 0 (Dolibarr propose le taux 0 par d<> faut <20> la cr<63> ation d'une facture cliente). Il n'y a pas de d<> claration ou r<> cup<75> ration de TVA, et les factures qui g<> rent l'option affichent la mention obligatoire \" TVA non applicable - art-293B du CGI \" .</td></tr> \n " ;
2004-02-08 18:00:18 +01:00
print " </form> " ;
print " </table> " ;
2004-07-25 15:12:15 +02:00
$db -> close ();
2003-06-22 14:16:11 +02:00
llxFooter ( " <em>Dernière modification $Date $ révision $Revision $ </em> " );
2003-03-11 16:27:34 +01:00
?>