2004-10-19 22:35:36 +02:00
< ? php
2003-06-20 16:30:08 +02:00
/* Copyright ( C ) 2001 - 2003 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2004-01-30 21:33:34 +01:00
* Copyright ( C ) 2004 Laurent Destailleur < eldy @ users . sourceforge . net >
2002-06-18 22:58:44 +02: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 .
*
2003-08-27 12:58:49 +02:00
* $Id $
* $Source $
*
2002-06-18 22:58:44 +02:00
*/
2004-10-10 19:10:04 +02:00
2004-12-05 18:53:17 +01:00
/**
\file htdocs / compta / sociales / index . php
2004-10-10 19:10:04 +02:00
\ingroup compta
\brief Ecran des charges sociales
\version $Revision $
*/
2003-09-11 22:18:51 +02:00
require ( " ./pre.inc.php " );
2002-06-18 22:58:44 +02:00
2004-05-02 18:01:35 +02:00
$user -> getrights ( 'facture' );
$user -> getrights ( 'compta' );
2004-06-27 20:16:53 +02:00
if ( ! $user -> admin && ! $user -> rights -> compta -> charges -> lire )
2004-05-02 18:01:35 +02:00
accessforbidden ();
2002-06-18 22:58:44 +02:00
llxHeader ();
2004-02-15 20:47:58 +01:00
2004-12-05 18:53:17 +01:00
$sortfield = isset ( $_GET [ " sortfield " ]) ? $_GET [ " sortfield " ] : $_POST [ " sortfield " ];
$sortorder = isset ( $_GET [ " sortorder " ]) ? $_GET [ " sortorder " ] : $_POST [ " sortorder " ];
$page = $_GET [ " page " ];
if ( $page < 0 ) {
$page = 0 ; }
$limit = $conf -> liste_limit ;
$offset = $limit * $page ;
if ( $sortfield == " " ) {
$sortfield = " c.id " ; }
if ( $sortorder == " " )
{
$sortorder = " DESC " ;
}
2002-06-18 22:58:44 +02:00
/*
2004-05-09 19:55:16 +02:00
* Ajout d ' une charge sociale
2002-06-18 22:58:44 +02:00
*/
2004-10-10 19:10:04 +02:00
if ( $_POST [ " action " ] == 'add' )
2003-06-20 16:30:08 +02:00
{
2004-06-11 15:33:23 +02:00
if ( ! $_POST [ " date " ] || ! $_POST [ " periode " ] || ! $_POST [ " amount " ]) {
$mesg = " <div class= \" error \" >Erreur: Tous les champs date et montant doivent etre renseign<67> s avec une valeur non vide.</div> " ;
}
else {
$sql = " INSERT INTO " . MAIN_DB_PREFIX . " chargesociales (fk_type, libelle, date_ech, periode, amount) " ;
$sql .= " VALUES ( " . $_POST [ " type " ] . " ,' " . addslashes ( $_POST [ " libelle " ]) . " ',' " . $_POST [ " date " ] . " ',' " . $_POST [ " periode " ] . " ',' " . $_POST [ " amount " ] . " '); " ;
if ( ! $db -> query ( $sql ) )
{
2004-10-10 19:10:04 +02:00
dolibarr_print_error ( $db );
2004-06-11 15:33:23 +02:00
}
else {
$mesg = " <div class= \" ok \" >La charge a <20> t<EFBFBD> ajout<75> e.</div> " ;
}
}
2002-06-18 22:58:44 +02:00
}
2004-05-09 19:55:16 +02:00
/*
* Suppression d ' une charge sociale
*/
2004-02-15 20:47:58 +01:00
if ( $_GET [ " action " ] == 'del' )
{
$sql = " DELETE FROM " . MAIN_DB_PREFIX . " chargesociales where rowid=' " . $_GET [ " id " ] . " ' " ;
if ( ! $db -> query ( $sql ) )
{
2004-10-10 19:10:04 +02:00
dolibarr_print_error ( $db );
2004-02-15 20:47:58 +01:00
}
}
2004-05-09 19:55:16 +02:00
2002-06-18 22:58:44 +02:00
/*
2004-02-15 20:47:58 +01:00
* Affichage liste et formulaire des charges .
2002-06-18 22:58:44 +02:00
*/
2004-06-11 15:53:52 +02:00
$year = $_GET [ " year " ];
$filtre = $_GET [ " filtre " ];
//if (! $year) { $year=date("Y", time()); }
2004-05-02 15:49:15 +02:00
2004-10-10 19:10:04 +02:00
print_fiche_titre ( " Charges sociales " ,( $year ? " <a href='index.php?year= " . ( $year - 1 ) . " '> " . img_previous () . " </a> " . $langs -> trans ( " Year " ) . " $year <a href='index.php?year= " . ( $year + 1 ) . " '> " . img_next () . " </a> " : " " ));
2004-06-11 15:53:52 +02:00
print " <br> \n " ;
2004-06-11 15:33:23 +02:00
2004-06-11 15:53:52 +02:00
if ( $mesg ) {
print " $mesg <br> " ;
}
2004-10-10 19:10:04 +02:00
print " <table class= \" noborder \" width= \" 100% \" > " ;
/*
* Forumalaire d 'ajout d' une charge
*
*/
if ( $user -> rights -> compta -> charges -> creer ) {
$var = ! $var ;
print " <tr class= \" liste_titre \" > " ;
print '<td>' ;
print ' ' ;
print '</td><td align="left">' ;
print $langs -> trans ( " DateDue " );
print '</td><td align="left">' ;
print $langs -> trans ( " Period " );
print '</td><td align="left">' ;
print $langs -> trans ( " Type " );
print '</td><td align="left">' ;
print $langs -> trans ( " Label " );
print '</td><td align="right">' ;
print $langs -> trans ( " Amount " );
print '</td><td align="center">' ;
print ' ' ;
print '</td>' ;
print " </tr> \n " ;
print '<form method="post" action="index.php">' ;
print '<tr ' . $bc [ $var ] . ' valign="top">' ;
print '<input type="hidden" name="action" value="add">' ;
print '<td> </td>' ;
print '<td><input type="text" size="8" name="date"><br>YYYYMMDD</td>' ;
print '<td><input type="text" size="8" name="periode"><br>YYYYMMDD</td>' ;
print '<td align="left"><select name="type">' ;
$sql = " SELECT c.id, c.libelle as type FROM " . MAIN_DB_PREFIX . " c_chargesociales as c " ;
$sql .= " ORDER BY lower(c.libelle) ASC " ;
if ( $db -> query ( $sql ) )
{
$num = $db -> num_rows ();
$i = 0 ;
while ( $i < $num )
{
2004-10-23 18:55:07 +02:00
$obj = $db -> fetch_object ();
2004-10-10 19:10:04 +02:00
print '<option value="' . $obj -> id . '">' . $obj -> type ;
$i ++ ;
}
}
print '</select>' ;
print '</td>' ;
print '<td align="left"><input type="text" size="34" name="libelle"></td>' ;
print '<td align="right"><input type="text" size="6" name="amount"></td>' ;
print '<td align="center"><input type="submit" value="' . $langs -> trans ( " Add " ) . '"></td>' ;
print '</tr>' ;
print '</form>' ;
print '<tr><td colspan="7"> </td></tr>' ;
}
2004-02-15 20:47:58 +01:00
print " <tr class= \" liste_titre \" > " ;
2004-12-05 18:53:17 +01:00
print_liste_field_titre ( $langs -> trans ( " Ref " ), " index.php " , " id " , " " , " " , " " , $sortfield );
print_liste_field_titre ( $langs -> trans ( " DateDue " ), " index.php " , " de " , " " , " " , " " , $sortfield );
print_liste_field_titre ( $langs -> trans ( " Period " ), " index.php " , " periode " , " " , " " , " " , $sortfield );
print_liste_field_titre ( $langs -> trans ( " Type " ), " index.php " , " type " , " " , " " , 'align="left"' , $sortfield );
print_liste_field_titre ( $langs -> trans ( " Label " ), " index.php " , " s.libelle " , " " , " " , 'align="left"' , $sortfield );
print_liste_field_titre ( $langs -> trans ( " Amount " ), " index.php " , " s.amount " , " " , " " , 'align="right"' , $sortfield );
print_liste_field_titre ( $langs -> trans ( " Status " ), " index.php " , " s.paye " , " " , " " , 'align="center"' , $sortfield );
2004-02-15 20:47:58 +01:00
print " </tr> \n " ;
2002-06-18 22:58:44 +02:00
2004-05-02 18:01:35 +02:00
$sql = " SELECT s.rowid as id, s.fk_type as type, c.libelle as type_lib, s.amount, " . $db -> pdate ( " s.date_ech " ) . " as de, s.date_pai, s.libelle, s.paye, " . $db -> pdate ( " s.periode " ) . " as periode, " . $db -> pdate ( " s.date_pai " ) . " as dp " ;
2004-01-30 21:33:34 +01:00
$sql .= " FROM " . MAIN_DB_PREFIX . " c_chargesociales as c, " . MAIN_DB_PREFIX . " chargesociales as s " ;
2002-06-18 22:58:44 +02:00
$sql .= " WHERE s.fk_type = c.id " ;
2003-06-20 16:30:08 +02:00
if ( $year > 0 )
{
2004-06-11 15:33:23 +02:00
$sql .= " AND ( " ;
// Si period renseign<67> on l'utilise comme critere de date, sinon on prend date <20> ch<63> ance,
// ceci afin d'etre compatible avec les cas ou la p<> riode n'etait pas obligatoire
$sql .= " (s.periode is not null and date_format(s.periode, '%Y') = $year ) " ;
$sql .= " or (s.periode is null and date_format(s.date_ech, '%Y') = $year ) " ;
$sql .= " ) " ;
2004-05-02 15:49:15 +02:00
}
if ( $filtre ) {
$filtre = ereg_replace ( " : " , " = " , $filtre );
$sql .= " AND $filtre " ;
2002-06-19 00:34:04 +02:00
}
2004-05-02 18:01:35 +02:00
if ( $_GET [ " sortfield " ]) {
$sql .= " ORDER BY " . $_GET [ " sortfield " ];
}
else {
$sql .= " ORDER BY lower(s.date_ech) " ;
}
if ( $_GET [ " sortorder " ]) {
$sql .= " " . $_GET [ " sortorder " ];
}
else {
$sql .= " DESC " ;
}
2002-06-18 22:58:44 +02:00
2003-06-20 16:30:08 +02:00
if ( $db -> query ( $sql ) )
{
2002-06-18 22:58:44 +02:00
$num = $db -> num_rows ();
$i = 0 ;
2003-06-20 16:30:08 +02:00
while ( $i < $num )
{
2004-10-23 18:55:07 +02:00
$obj = $db -> fetch_object ();
2004-05-02 15:49:15 +02:00
2003-06-20 16:30:08 +02:00
$var = ! $var ;
print " <tr $bc[$var] > " ;
2004-10-09 14:10:28 +02:00
print '<td width="80">' ;
print '<a href="charges.php?id=' . $obj -> id . '">' . img_file () . ' ' . $obj -> id . '</a>' ;
print '</td>' ;
2004-06-09 00:46:48 +02:00
print '<td width="110">' . dolibarr_print_date ( $obj -> de ) . '</td>' ;
2004-02-15 20:47:58 +01:00
print '<td>' ;
if ( $obj -> periode ) {
print '<a href="index.php?year=' . strftime ( " %Y " , $obj -> periode ) . '">' . strftime ( " %Y " , $obj -> periode ) . '</a>' ;
} else {
print ' ' ;
}
print '</td>' ;
2004-05-02 18:01:35 +02:00
print '<td>' . $obj -> type_lib . '</td><td>' . $obj -> libelle . '</td>' ;
2004-06-09 00:46:48 +02:00
print '<td align="right" width="100">' . price ( $obj -> amount ) . '</td>' ;
2003-06-20 16:30:08 +02:00
if ( $obj -> paye )
{
2004-10-09 14:10:28 +02:00
print '<td align="center" class="normal"><a class="payee" href="index.php?filtre=paye:1">Pay<61> </a></td>' ;
2003-06-20 16:30:08 +02:00
} else {
2004-07-30 12:32:27 +02:00
print '<td align="center"><a class="impayee" href="index.php?filtre=paye:0">Impay<61> </a></td>' ;
2003-06-20 16:30:08 +02:00
}
print '</tr>' ;
$i ++ ;
2002-06-18 23:12:32 +02:00
}
2003-06-20 16:30:08 +02:00
}
else
{
2004-10-09 14:10:28 +02:00
dolibarr_print_error ( $db );
2002-06-18 22:58:44 +02:00
}
2004-05-02 15:49:15 +02:00
2002-06-18 22:58:44 +02:00
print '</table>' ;
$db -> close ();
llxFooter ( " <em>Dernière modification $Date $ révision $Revision $ </em> " );
?>