diff --git a/htdocs/fourn/product/index.php b/htdocs/fourn/product/index.php new file mode 100644 index 00000000000..0c3c35faa1c --- /dev/null +++ b/htdocs/fourn/product/index.php @@ -0,0 +1,154 @@ + + * Copyright (C) 2004-2005 Laurent Destailleur + * + * 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$ + * + */ + +/*! + \file htdocs/product/index.php + \ingroup product + \brief Page accueil des produits et services + \version $Revision$ +*/ + +require("./pre.inc.php"); + +if (!$user->rights->produit->lire) accessforbidden(); + +/* + * Affichage page accueil + * + */ + +llxHeader("","",$langs->trans("ProductsAndServices")); + +print_titre($langs->trans("ProductsAndServicesArea")); + +print ''; + +print '
'; + +/* + * Zone recherche produit/service + */ +print '
'; +print ''; +print "\n"; +print ''; +print "'; +print "'; +print "
'.$langs->trans("Search").'
"; +print $langs->trans("Ref").' :
"; +print $langs->trans("Label").' :

\n"; + +/* + * Nombre de produits et/ou services + */ +$prodser = array(); +$sql = "SELECT count(*), fk_product_type FROM ".MAIN_DB_PREFIX."product as p GROUP BY fk_product_type"; +if ($db->query($sql)) +{ + $num = $db->num_rows(); + $i = 0; + while ($i < $num) + { + $row = $db->fetch_row($i); + $prodser[$row[1]] = $row[0]; + $i++; + } + $db->free(); +} + +print ''; +print ''; +if ($conf->produit->enabled) +{ + print ""; + print ''; + print ""; +} +if ($conf->service->enabled) +{ + print ""; + print ''; + print ""; +} +print '
'.$langs->trans("Statistics").'
'.$langs->trans("Products").''.round($prodser[0]).'
'.$langs->trans("Services").''.round($prodser[1]).'
'; + +print '
'; + + +/* + * Derniers produits/services en vente + */ +$sql = "SELECT p.rowid, p.label, p.price, p.ref, p.fk_product_type"; +$sql .= " FROM ".MAIN_DB_PREFIX."product as p "; +$sql .= " WHERE p.fk_product_type=0"; +$sql .= " ORDER BY p.datec DESC "; +$sql .= $db->plimit(15 ,0); + +$resql = $db->query($sql) ; + +if ($resql) +{ + $num = $db->num_rows($resql); + + $i = 0; + + $typeprodser[0]=$langs->trans("Product"); + $typeprodser[1]=$langs->trans("Service"); + + if ($num > 0) + { + print ''; + + print ''; + + $var=True; + while ($i < $num) + { + $objp = $db->fetch_object($resql); + $var=!$var; + print ""; + print "\n"; + print ""; + print ""; + print "\n"; + $i++; + } + $db->free($resql); + + print "
'.$langs->trans("LastProducts").'
rowid\">"; + if ($objp->fk_product_type) print img_object($langs->trans("ShowService"),"service"); + else print img_object($langs->trans("ShowProduct"),"product"); + print " rowid\">$objp->ref$objp->label".$typeprodser[$objp->fk_product_type]."
"; + } +} +else +{ + dolibarr_print_error(); +} + +print '
'; + +$db->close(); + +llxFooter("Dernière modification $Date$ révision $Revision$"); +?> diff --git a/htdocs/fourn/product/liste.php b/htdocs/fourn/product/liste.php new file mode 100644 index 00000000000..a524e45627d --- /dev/null +++ b/htdocs/fourn/product/liste.php @@ -0,0 +1,225 @@ + + * Copyright (C) 2004-2005 Laurent Destailleur + * + * 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$ + * + */ + +/** + \file htdocs/fourn/product/liste.php + \ingroup produit + \brief Page liste des produits ou services + \version $Revision$ +*/ + +require("./pre.inc.php"); + +$langs->load("products"); + +$user->getrights('produit'); + +if (!$user->rights->produit->lire) accessforbidden(); + +$sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"]; +$snom=isset($_GET["snom"])?$_GET["snom"]:$_POST["snom"]; + +$type=isset($_GET["type"])?$_GET["type"]:$_POST["type"]; + +$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="p.ref"; +if (! $sortorder) $sortorder="DESC"; + +if ($_POST["button_removefilter"] == $langs->trans("RemoveFilter")) { + $sref=""; + $snom=""; +} + +/* + * Mode Liste + * + */ + +$title=$langs->trans("ProductsAndServices"); + +$sql = "SELECT p.rowid, p.label, p.price, p.ref, p.fk_product_type"; +$sql .= " FROM ".MAIN_DB_PREFIX."product as p"; + +if ($_GET["fourn_id"] > 0) +{ + $fourn_id = $_GET["fourn_id"]; + $sql .= ", ".MAIN_DB_PREFIX."product_fournisseur as pf"; +} + +if ($_POST["mode"] == 'search') +{ + $sql .= " WHERE p.ref like '%".$_POST["sall"]."%'"; + $sql .= " OR p.label like '%".$_POST["sall"]."%'"; +} +else +{ + $sql .= " WHERE 1=1"; + if (isset($_GET["type"]) || isset($_POST["type"])) + { + $sql .= " AND p.fk_product_type = ".(isset($_GET["type"])?$_GET["type"]:$_POST["type"]); + } + if ($sref) + { + $sql .= " AND p.ref like '%".$sref."%'"; + } + if ($snom) + { + $sql .= " AND p.label like '%".$snom."%'"; + } + if (isset($_GET["envente"]) && strlen($_GET["envente"]) > 0) + { + $sql .= " AND p.envente = ".$_GET["envente"]; + } + else + { + $sql .= " AND p.envente = 1"; + } +} + +if ($fourn_id > 0) +{ + $sql .= " AND p.rowid = pf.fk_product AND pf.fk_soc = $fourn_id"; +} + +$sql .= " ORDER BY $sortfield $sortorder "; +$sql .= $db->plimit($limit + 1 ,$offset); +$result = $db->query($sql) ; + +if ($result) +{ + $num = $db->num_rows(); + + $i = 0; + + if ($num == 1 && (isset($_POST["sall"]) or $snom or $sref)) + { + $objp = $db->fetch_object($i); + Header("Location: fiche.php?id=$objp->rowid"); + } + + if (isset($_GET["envente"]) || isset($_POST["envente"])) { + $envente = (isset($_GET["envente"])?$_GET["envente"]:$_POST["envente"]); + } + else { + $envente=1; + } + + if (! $envente) + { + if (isset($_GET["type"]) || isset($_POST["type"])) { + $type=isset($_GET["type"])?$_GET["type"]:$_POST["type"]; + if ($type) { $texte = $langs->trans("ServicesNotOnSell"); } + else { $texte = $langs->trans("ProductsNotOnSell"); } + } else { + $texte = $langs->trans("ProductsAndServicesNotOnSell"); + } + } + else + { + if (isset($_POST["type"]) || isset($_GET["type"])) { + if ($type) { $texte = $langs->trans("ServicesOnSell"); } + else { $texte = $langs->trans("ProductsOnSell"); } + } else { + $texte = $langs->trans("ProductsAndServicesOnSell"); + } + } + + llxHeader("","",$texte); + + if ($sref || $snom || $_POST["sall"] || $_POST["search"]) + { + print_barre_liste($texte, $page, "liste.php", "&sref=".$sref."&snom=".$snom."&envente=".$_POST["envente"], $sortfield, $sortorder,'',$num); + } + else + { + print_barre_liste($texte, $page, "liste.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":""), $sortfield, $sortorder,'',$num); + } + + print ''; + + // Lignes des titres + print ""; + print_liste_field_titre($langs->trans("Ref"),"liste.php", "p.ref","&envente=$envente".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","","",$sortfield); + print_liste_field_titre($langs->trans("Label"),"liste.php", "p.label","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","","",$sortfield); + print_liste_field_titre($langs->trans("SellingPrice"),"liste.php", "p.price","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","",'align="right"',$sortfield); + print "\n"; + + // Lignes des champs de filtre + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + + $var=True; + while ($i < min($num,$limit)) + { + $objp = $db->fetch_object( $i); + $var=!$var; + print "\n"; + print "\n"; + print ''; + print "\n"; + $i++; + } + $db->free(); + + print "
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print '  '; + print '
"; + print "rowid\">"; + if ($objp->fk_product_type) print img_object($langs->trans("ShowService"),"service"); + else print img_object($langs->trans("ShowProduct"),"product"); + print " "; + print "rowid\">$objp->ref$objp->label'.price($objp->price).'
"; + +} +else +{ + dolibarr_print_error($db); +} + + +$db->close(); + +llxFooter("Dernière modification $Date$ révision $Revision$"); +?>