[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dolibarr-dev] encore un patch
From: |
Franky Van Liedekerke |
Subject: |
[Dolibarr-dev] encore un patch |
Date: |
Wed, 31 Jan 2007 14:33:50 +0100 |
User-agent: |
Thunderbird 1.5.0.9 (X11/20061219) |
Hi,
voici encore un patch, avec:
- isproduct() et isservice() fonctions dans product.class.php et
l'utiliser partout
- contrôle qu'on peut pas créer un loop pour des sous-produits
(sousproduits/fiche.php)
- "bug" 18800
- contrôle d'accession dans document.php (la manière est toujours
discutable, mais cela fonctionne)
- contrôle d'accession dans commande.fiche.php
- dans commande/fiche.php il-y-a le code
$action = '';
D'après-moi, cela n'est pas correcte, mais je laisse ça à vous (j'ai
corrigé cela dans le patch, mais peut-être ce n'est pas correcte)
- meilleure contrôle dans compta/facture.php, sinon on a un erreur sql
sur l'écran au lieu de "access denied"
Franky
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/adherents/adherent.class.php
/var/www/localhost/htdocs/dolibarr/htdocs/adherents/adherent.class.php
--- orig/dolibarr/htdocs/adherents/adherent.class.php 2007-01-16
23:02:36.000000000 +0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/adherents/adherent.class.php
2007-01-24 10:26:26.000000000 +0100
@@ -157,7 +158,7 @@
$this->nom,
$infos,
$infos,
- "http://".$_SERVER["SERVER_NAME"]."/",
+ DOL_MAIN_URL_ROOT,
$this->societe,
$this->adresse,
$this->cp,
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/comm/propal.php
/var/www/localhost/htdocs/dolibarr/htdocs/comm/propal.php
--- orig/dolibarr/htdocs/comm/propal.php 2007-01-29 12:04:23.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/comm/propal.php 2007-01-31
13:51:03.000000000 +0100
@@ -54,7 +55,6 @@
$year=isset($_GET["year"])?$_GET["year"]:"";
$month=isset($_GET["month"])?$_GET["month"]:"";
-
// Sécurité accés client
$socid='';
if ($_GET["socid"]) { $socid=$_GET["socid"]; }
@@ -102,6 +102,7 @@
$form=new Form($db);
+
/******************************************************************************/
/* Actions
*/
/******************************************************************************/
@@ -316,9 +317,12 @@
{
$propal = new Propal($db);
$propal->fetch($_GET['propalid']);
+ // prevent browser refresh from closing proposal several times
+ if ($propal->statut==1) {
$propal->cloture($user, $_POST['statut'], $_POST['note']);
}
}
+}
/*
* Envoi de la propale par mail
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/commande/fiche.php
/var/www/localhost/htdocs/dolibarr/htdocs/commande/fiche.php
--- orig/dolibarr/htdocs/commande/fiche.php 2007-01-29 12:04:23.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/commande/fiche.php
2007-01-27 10:08:15.000000000 +0100
@@ -57,10 +58,20 @@
$socid=0;
if ($user->societe_id > 0)
{
- $action = '';
+ unset($_GET["action"]);
+ unset($_POST["action"]);
+ unset($_REQUEST["action"]);
$socid = $user->societe_id;
}
+if ($user->societe_id >0 && isset($_GET["id"]) && $_GET["id"]>0) {
+ $commande = new Commande($db);
+ $commande->fetch((int)$_GET['id']);
+ if ($user->societe_id != $commande->socid) {
+ accessforbidden();
+ }
+}
+
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/compta/facture.php
/var/www/localhost/htdocs/dolibarr/htdocs/compta/facture.php
--- orig/dolibarr/htdocs/compta/facture.php 2007-01-29 12:04:23.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/compta/facture.php
2007-01-24 16:51:19.000000000 +0100
@@ -1608,8 +1609,10 @@
if ($mesg) print $mesg.'<br>';
$fac = New Facture($db);
- if ( $fac->fetch($_GET['facid'], $user->societe_id) > 0)
+ if ($fac->fetch($_GET['facid']))
{
+ if ($user->societe_id>0 &&
$user->societe_id!=$fac->socid) accessforbidden('',0);
+
$soc = new Societe($db, $fac->socid);
$soc->fetch($fac->socid);
$absolute_discount=$soc->getCurrentDiscount();
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/document.php
/var/www/localhost/htdocs/dolibarr/htdocs/document.php
--- orig/dolibarr/htdocs/document.php 2007-01-07 21:40:36.000000000 +0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/document.php 2007-01-24
16:32:07.000000000 +0100
@@ -31,9 +31,12 @@
require_once("main.inc.php");
-
-// C'est un wrapper, donc header vierge
-function llxHeader() { }
+function llxHeader() {
+ global $user,$langs;
+ top_menu($head, $title);
+ $menu = new Menu();
+ left_menu($menu->liste);
+}
$action = $_GET["action"];
@@ -54,6 +57,8 @@
//Suppression de la chaine de caractère ../ dans $original_file
$original_file = str_replace("../","/", "$original_file");
+# find the subdirectory name as the reference
+$refname=basename(dirname($original_file)."/");
$accessallowed=0;
if ($modulepart)
@@ -101,6 +106,7 @@
{
$accessallowed=1;
}
+
$original_file=$conf->propal->dir_output.'/'.$original_file;
}
// Wrapping pour les commandes
@@ -290,6 +296,18 @@
}
+// basic protection
+// I hope all tables have the same name as $modulepart
+// and also the columns "fk_soc" and "ref"
+$sql = "SELECT fk_soc FROM ".MAIN_DB_PREFIX."$modulepart WHERE ref='$refname'";
+$resql = $db->query($sql);
+if ($resql) {
+ $obj = $db->fetch_object($resql);
+ $num=$db->num_rows($resql);
+ if ($num>0 && $user->societe_id>0 && $user->societe_id != $obj->fk_soc)
+ $accessallowed=0;
+}
+
// Limite accès si droits non corrects
if (! $accessallowed)
{
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php
/var/www/localhost/htdocs/dolibarr/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php
--- orig/dolibarr/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php
2006-12-24 02:42:10.000000000 +0100
+++
/var/www/localhost/htdocs/dolibarr/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php
2007-01-24 10:26:26.000000000 +0100
@@ -231,10 +232,10 @@
if ($prodser->ref)
{
$prefix_prodserv = "";
- if($prodser->type == 0)
- $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
- if($prodser->type == 1)
+ if($prodser->isservice())
$prefix_prodserv =
$outputlangs->transnoentities("Service")." ";
+ else
+ $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
$libelleproduitservice=$prefix_prodserv.$prodser->ref." -
".$libelleproduitservice;
}
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/includes/boxes/box_produits.php
/var/www/localhost/htdocs/dolibarr/htdocs/includes/boxes/box_produits.php
--- orig/dolibarr/htdocs/includes/boxes/box_produits.php 2006-06-18
03:34:16.000000000 +0200
+++ /var/www/localhost/htdocs/dolibarr/htdocs/includes/boxes/box_produits.php
2007-01-24 10:26:26.000000000 +0100
@@ -107,7 +108,7 @@
$this->info_box_contents[$i][0] = array(
'align' => 'left',
- 'logo' =>
($objp->fk_product_type?'object_service':'object_product'),
+ 'logo' =>
($objp->fk_product_type==1?'object_service':'object_product'),
'text' => $objp->label,
'url' =>
DOL_URL_ROOT."/product/fiche.php?id=".$objp->rowid);
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/includes/boxes/box_services_vendus.php
/var/www/localhost/htdocs/dolibarr/htdocs/includes/boxes/box_services_vendus.php
--- orig/dolibarr/htdocs/includes/boxes/box_services_vendus.php 2006-06-18
03:34:16.000000000 +0200
+++
/var/www/localhost/htdocs/dolibarr/htdocs/includes/boxes/box_services_vendus.php
2007-01-24 10:26:26.000000000 +0100
@@ -117,7 +118,7 @@
}
$this->info_box_contents[$i][0] = array('align' => 'left',
- 'logo' =>
($objp->fk_product_type?'object_service':'object_product'),
+ 'logo' =>
($objp->fk_product_type==1?'object_service':'object_product'),
'text' => $objp->label,
'maxlength' => 16,
'url' =>
DOL_URL_ROOT."/contrat/fiche.php?id=".$objp->rowid);
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/includes/modules/commande/pdf_einstein.modules.php
/var/www/localhost/htdocs/dolibarr/htdocs/includes/modules/commande/pdf_einstein.modules.php
--- orig/dolibarr/htdocs/includes/modules/commande/pdf_einstein.modules.php
2006-12-16 17:38:10.000000000 +0100
+++
/var/www/localhost/htdocs/dolibarr/htdocs/includes/modules/commande/pdf_einstein.modules.php
2007-01-24 10:26:26.000000000 +0100
@@ -238,10 +239,10 @@
if ($prodser->ref)
{
$prefix_prodserv = "";
- if($prodser->type == 0)
- $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
- if($prodser->type == 1)
+ if($prodser->isservice())
$prefix_prodserv =
$outputlangs->transnoentities("Service")." ";
+ else
+ $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
$libelleproduitservice=$prefix_prodserv.$prodser->ref." -
".$libelleproduitservice;
}
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/includes/modules/facture/pdf_crabe.modules.php
/var/www/localhost/htdocs/dolibarr/htdocs/includes/modules/facture/pdf_crabe.modules.php
--- orig/dolibarr/htdocs/includes/modules/facture/pdf_crabe.modules.php
2006-12-24 22:43:28.000000000 +0100
+++
/var/www/localhost/htdocs/dolibarr/htdocs/includes/modules/facture/pdf_crabe.modules.php
2007-01-24 10:26:26.000000000 +0100
@@ -232,10 +233,10 @@
if ($prodser->ref)
{
$prefix_prodserv = "";
- if($prodser->type == 0)
- $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
- if($prodser->type == 1)
+ if($prodser->isservice())
$prefix_prodserv =
$outputlangs->transnoentities("Service")." ";
+ else
+ $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
$libelleproduitservice=$prefix_prodserv.$prodser->ref." -
".$libelleproduitservice;
}
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
/var/www/localhost/htdocs/dolibarr/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
--- orig/dolibarr/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
2006-12-24 22:43:00.000000000 +0100
+++
/var/www/localhost/htdocs/dolibarr/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
2007-01-24 10:26:26.000000000 +0100
@@ -230,10 +231,10 @@
if ($prodser->ref)
{
$prefix_prodserv = "";
- if($prodser->type == 0)
- $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
- if($prodser->type == 1)
+
if($prodser->isservice())
$prefix_prodserv =
$outputlangs->transnoentities("Service")." ";
+ else
+ $prefix_prodserv =
$outputlangs->transnoentities("Product")." ";
$libelleproduitservice=$prefix_prodserv.$prodser->ref." -
".$libelleproduitservice;
}
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/lib/functions.inc.php
/var/www/localhost/htdocs/dolibarr/htdocs/lib/functions.inc.php
--- orig/dolibarr/htdocs/lib/functions.inc.php 2007-01-21 23:31:20.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/lib/functions.inc.php
2007-01-24 15:39:16.000000000 +0100
@@ -1242,12 +1242,12 @@
\param message Force error message
\remarks L'appel a cette fonction termine le code.
*/
-function accessforbidden($message='')
+function accessforbidden($message='',$printheader=1)
{
global $user, $langs;
$langs->load("other");
- llxHeader();
+ if ($printheader) llxHeader();
print '<div class="error">';
if (! $message) print $langs->trans("ErrorForbidden");
else print $message;
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/lib/product.lib.php
/var/www/localhost/htdocs/dolibarr/htdocs/lib/product.lib.php
--- orig/dolibarr/htdocs/lib/product.lib.php 2007-01-02 16:30:33.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/lib/product.lib.php
2007-01-24 10:26:26.000000000 +0100
@@ -57,7 +58,7 @@
$h++;
}
- if($product->type == 0)
+ if($product->isproduct())
{
if ($user->rights->barcode->lire)
{
@@ -113,7 +114,7 @@
$head[$h][2] = 'documents';
$h++;
- if($product->type == 0) // Si produit stockable
+ if($product->isproduct()) // Si produit stockable
{
if ($conf->stock->enabled)
{
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/master.inc.php
/var/www/localhost/htdocs/dolibarr/htdocs/master.inc.php
--- orig/dolibarr/htdocs/master.inc.php 2006-12-11 22:22:30.000000000 +0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/master.inc.php 2007-01-24
10:26:26.000000000 +0100
@@ -75,6 +76,7 @@
define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root);
define('DOL_DATA_ROOT', $dolibarr_main_data_root);
+define('DOL_MAIN_URL_ROOT', $dolibarr_main_url_root);
$uri=eregi_replace('^http(s?)://','',$dolibarr_main_url_root);
$pos = strstr ($uri, '/'); // $pos contient alors url sans nom domaine
if ($pos == '/') $pos = ''; // si $pos vaut /, on le met a ''
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/barcode.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/barcode.php
--- orig/dolibarr/htdocs/product/barcode.php 2007-01-02 16:23:19.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/barcode.php
2007-01-24 10:26:26.000000000 +0100
@@ -40,9 +41,6 @@
if (!$user->rights->barcode->lire)
accessforbidden();
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
/*
* Affiche historique prix
*/
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/product/canvas/product.livre.class.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/canvas/product.livre.class.php
--- orig/dolibarr/htdocs/product/canvas/product.livre.class.php 2007-01-29
12:04:25.000000000 +0100
+++
/var/www/localhost/htdocs/dolibarr/htdocs/product/canvas/product.livre.class.php
2007-01-29 14:01:34.000000000 +0100
@@ -447,7 +447,7 @@
*/
function LoadListDatas($limit, $offset, $sortfield, $sortorder)
{
- $sql = 'SELECT p.rowid, p.ref, p.label, pl.px_feuillet as price,
p.fk_product_type,';
+ $sql = 'SELECT p.rowid, p.ref, p.label, pl.px_feuillet as price, ';
$sql.= ' p.duration, p.envente as statut, p.stock_loc';
$sql.= ',pl.pages';
$sql.= ',SUM(fd.qty) as ventes';
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/fournisseurs.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/fournisseurs.php
--- orig/dolibarr/htdocs/product/fournisseurs.php 2007-01-02
16:27:51.000000000 +0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/fournisseurs.php
2007-01-24 14:34:34.000000000 +0100
@@ -46,10 +47,6 @@
if (! $user->rights->produit->lire) accessforbidden();
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
-
/*
* Actions
*/
@@ -276,9 +273,10 @@
print '<br>';
+ if ($user->rights->fournisseur->lire) {
// Titre liste des fournisseurs
print '<table class="noborder" width="100%">';
- if ($product->type == 0) $nblignefour=4;
+ if ($product->isproduct()) $nblignefour=4;
else $nblignefour=4;
print '<tr class="liste_titre"><td valign="top">';
print $langs->trans("Suppliers").'</td>';
@@ -297,6 +295,7 @@
$sql.= " WHERE pf.fk_soc = s.idp AND pf.fk_product = ".$product->id;
$sql.= " ORDER BY lower(s.nom), pfp.quantity";
+ $resql="";
$resql=$db->query($sql);
if ($resql)
{
@@ -355,6 +354,7 @@
}
}
}
+}
else
{
print $langs->trans("ErrorUnknown");
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/index.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/index.php
--- orig/dolibarr/htdocs/product/index.php 2007-01-29 12:04:25.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/index.php 2007-01-24
10:26:26.000000000 +0100
@@ -161,7 +162,10 @@
else print img_object($langs->trans("ShowProduct"),"product");
print "</a> <a
href=\"fiche.php?id=$objp->rowid\">$objp->ref</a></td>\n";
print '<td>'.dolibarr_trunc($objp->label,40).'</td>';
- print
'<td>'.$staticproduct->typeprodser[$objp->fk_product_type]."</td>";
+ print "<td>";
+ if ($objp->type==1) print $langs->trans("ShowService");
+ else print $langs->trans("ShowProduct");
+ print "</td>";
print '<td align="right" nowrap="nowrap">';
print $staticproduct->LibStatut($objp->envente,5);
print "</td>";
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/liste.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/liste.php
--- orig/dolibarr/htdocs/product/liste.php 2007-01-29 12:04:25.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/liste.php 2007-01-24
10:26:26.000000000 +0100
@@ -87,8 +88,7 @@
if (isset($_GET["type"]) || isset($_POST["type"]))
{
- $type=isset($_GET["type"])?$_GET["type"]:$_POST["type"];
- if ($type) { $texte = $langs->trans("Services"); }
+ if ($type==1) { $texte = $langs->trans("Services"); }
else { $texte = $langs->trans("Products"); }
} else {
$texte = $langs->trans("ProductsAndServices");
@@ -116,9 +116,14 @@
{
$sql .= " AND (p.ref like '%".addslashes($sall)."%' OR p.label like
'%".addslashes($sall)."%' OR p.description like '%".addslashes($sall)."%' OR
p.note like '%".addslashes($sall)."%')";
}
+# if the type is not 1, we show all products (type = 0,2,3)
if (strlen($_GET["type"]) || strlen($_POST["type"]))
{
- $sql .= " AND p.fk_product_type =
".(strlen($_GET["type"])?$_GET["type"]:$_POST["type"]);
+ if ($type==1) {
+ $sql .= " AND p.fk_product_type = '1'";
+ } else {
+ $sql .= " AND p.fk_product_type <> '1'";
+ }
}
if ($sref)
{
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/photos.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/photos.php
--- orig/dolibarr/htdocs/product/photos.php 2007-01-02 16:27:51.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/photos.php
2007-01-24 10:26:26.000000000 +0100
@@ -45,10 +46,6 @@
if (!$user->rights->produit->lire) accessforbidden();
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
-
/*
* Actions
*/
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/popuprop.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/popuprop.php
--- orig/dolibarr/htdocs/product/popuprop.php 2007-01-29 12:04:25.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/popuprop.php
2007-01-24 10:26:26.000000000 +0100
@@ -116,7 +117,10 @@
else print img_object($langs->trans("ShowProduct"),"product");
print " ";
print $objp->ref.'</a></td>';
- print '<td>'.$staticproduct->typeprodser[$objp->fk_product_type].'</td>';
+ print '<td>';
+ if ($objp->type==1) print $langs->trans("ShowService");
+ else print $langs->trans("ShowProduct");
+ print '</td>';
print '<td>'.$objp->label.'</td>';
print '<td align="right">'.$objp->c.'</td>';
print "</tr>\n";
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/price.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/price.php
--- orig/dolibarr/htdocs/product/price.php 2007-01-05 13:37:52.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/price.php 2007-01-24
10:26:26.000000000 +0100
@@ -42,9 +43,6 @@
if (!$user->rights->produit->lire)
accessforbidden();
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
$html = new Form($db);
/*
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/reassort.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/reassort.php
--- orig/dolibarr/htdocs/product/reassort.php 2007-01-29 12:04:25.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/reassort.php
2007-01-24 10:26:26.000000000 +0100
@@ -101,9 +102,11 @@
{
$sql .= " AND (p.ref like '%".addslashes($sall)."%' OR p.label like
'%".addslashes($sall)."%' OR p.description like '%".addslashes($sall)."%' OR
p.note like '%".addslashes($sall)."%')";
}
-if (strlen($_GET["type"]) || strlen($_POST["type"]))
+if ($type==1)
{
- $sql .= " AND p.fk_product_type =
".(strlen($_GET["type"])?$_GET["type"]:$_POST["type"]);
+ $sql .= " AND p.fk_product_type = '1';
+} else
+ $sql .= " AND p.fk_product_type <> '1';
}
if ($sref)
{
@@ -154,8 +157,7 @@
if (isset($_GET["type"]) || isset($_POST["type"]))
{
- $type=isset($_GET["type"])?$_GET["type"]:$_POST["type"];
- if ($type) { $texte = $langs->trans("Services"); }
+ if ($type==1) { $texte = $langs->trans("Services"); }
else { $texte = $langs->trans("Products"); }
} else {
$texte = $langs->trans("ProductsAndServices");
@@ -189,7 +191,7 @@
print_liste_field_titre($langs->trans("Ref"),"reassort.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"),"reassort.php",
"p.label","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","","",$sortfield);
print_liste_field_titre($langs->trans("StockAvailable"),"reassort.php",
"p.stock_dispo","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","",'align="right"',$sortfield);
- if ($conf->service->enabled && $type != 0)
print_liste_field_titre($langs->trans("Duration"),"reassort.php",
"p.duration","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","",'align="center"',$sortfield);
+ if ($conf->service->enabled && $type == 1)
print_liste_field_titre($langs->trans("Duration"),"reassort.php",
"p.duration","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","",'align="center"',$sortfield);
print_liste_field_titre($langs->trans("StockInstant"),"reassort.php",
"stock","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","",'align="right"',$sortfield);
print_liste_field_titre($langs->trans("Status"),"reassort.php",
"p.envente","&envente=$envente&".(isset($type)?"&type=$type":"")."&fourn_id=$fourn_id&snom=$snom&sref=$sref","",'align="right"',$sortfield);
print "</tr>\n";
@@ -206,7 +208,7 @@
print '<td class="liste_titre" valign="right">';
print '<input class="flat" type="text" name="snom" value="'.$snom.'">';
print '</td>';
- if ($conf->service->enabled && $type != 0)
+ if ($conf->service->enabled && $type == 1)
{
print '<td class="liste_titre">';
print ' ';
@@ -265,7 +267,7 @@
print '<a
href="fiche.php?id='.$objp->rowid.'">'.$objp->ref.'</a></td>';
print '<td>'.$objp->label.'</td>';
- if ($conf->service->enabled && $type != 0)
+ if ($conf->service->enabled && $type == 1)
{
print '<td align="center">';
if (eregi('([0-9]+)y',$objp->duration,$regs)) print $regs[1].'
'.$langs->trans("DurationYear");
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/product/sousproduits/fiche.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/sousproduits/fiche.php
--- orig/dolibarr/htdocs/product/sousproduits/fiche.php 2007-01-02
16:27:51.000000000 +0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/sousproduits/fiche.php
2007-01-24 10:26:26.000000000 +0100
@@ -59,8 +60,6 @@
if (!$user->rights->produit->lire) accessforbidden();
$html = new Form($db);
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
// Action association d'un sousproduit
if ($action == 'add_prod' &&
@@ -102,7 +101,8 @@
// action recherche des produits par mot-clé et/ou par catégorie
if($action == 'search' )
{
- $sql = 'SELECT p.rowid, p.ref, p.label, p.price, p.fk_product_type';
+ #$sql = 'SELECT p.rowid, p.ref, p.label, p.price, p.fk_product_type';
+ $sql = 'SELECT p.rowid, p.ref, p.label, p.price';
$sql.= ' FROM '.MAIN_DB_PREFIX.'product as p';
if($conf->categorie->enabled && $catMere != -1)
{
@@ -160,8 +160,8 @@
print "<tr>";
$nblignes=6;
- if ($product->type == 0 && $conf->stock->enabled) $nblignes++;
- if ($product->type == 1) $nblignes++;
+ if ($product->isproduct() && $conf->stock->enabled) $nblignes++;
+ if ($product->isservice()) $nblignes++;
// Reference
print '<td width="15%">'.$langs->trans("Ref").'</td><td>';
@@ -220,7 +220,11 @@
if (($action == 'edit' || $action == 'search' || $action == 're-edit') &&
$user->rights->produit->creer)
{
- print_fiche_titre($langs->trans('EditAssociate').'
'.$types[$product->type].' : '.$product->ref, "");
+ if ($product->isservice()) {
+ print_fiche_titre($langs->trans('EditAssociate').'
'.$langs->trans('Service').' : '.$product->ref, "");
+ } else {
+ print_fiche_titre($langs->trans('EditAssociate').'
'.$langs->trans('Product').' : '.$product->ref, "");
+ }
if ($mesg) {
print '<br><div class="error">'.$mesg.'</div><br>';
@@ -231,8 +235,8 @@
print "<tr>";
$nblignes=6;
- if ($product->type == 0 && $conf->stock->enabled) $nblignes++;
- if ($product->type == 1) $nblignes++;
+ if ($product->isproduct() && $conf->stock->enabled) $nblignes++;
+ if ($product->isservice()) $nblignes++;
// Reference
print '<td width="15%">'.$langs->trans("Ref").'</td><td>';
@@ -294,6 +298,25 @@
$objp =
$db->fetch_object($resql);
if($objp->rowid != $id)
{
+ // check if a product is not already a parent product of this one
+ $prod_arbo=new Product($db,$objp->rowid);
+ if ($prod_arbo->type==2 || $prod_arbo->type==3) {
+ $is_pere=0;
+ $prod_arbo->get_sousproduits_arbo ();
+ // associations sousproduits
+ $prods_arbo = $prod_arbo->get_arbo_each_prod();
+ if(sizeof($prods_arbo) > 0) {
+ foreach($prods_arbo as $key => $value) {
+ if ($value[1]==$id) {
+ $is_pere=1;
+ }
+ }
+ }
+ if ($is_pere==1) {
+ $i++;
+ continue;
+ }
+ }
print "\n<tr>";
print
'<td>'.$objp->ref.'</td>';
print
'<td>'.$objp->label.'</td>';
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/stats/fiche.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/stats/fiche.php
--- orig/dolibarr/htdocs/product/stats/fiche.php 2007-01-14
14:56:56.000000000 +0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/stats/fiche.php
2007-01-24 10:26:26.000000000 +0100
@@ -39,9 +40,6 @@
$langs->load("products");
$langs->load("bills");
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
if ($user->societe_id > 0)
{
$action = '';
@@ -104,7 +102,7 @@
print '</td></tr>';
// Stock
- if ($product->type == 0 && $conf->stock->enabled)
+ if ($product->isproduct() && $conf->stock->enabled)
{
print '<tr><td>'.$langs->trans("Stock").'</td>';
if ($product->no_stock)
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/stats/index.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/stats/index.php
--- orig/dolibarr/htdocs/product/stats/index.php 2006-08-19
01:16:40.000000000 +0200
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/stats/index.php
2007-01-24 10:26:26.000000000 +0100
@@ -47,7 +48,7 @@
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON
cp.fk_product = p.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cp.fk_categorie
= c.rowid";
}
-$sql .= " WHERE p.fk_product_type = 0";
+$sql .= " WHERE p.fk_product_type <> 1";
if ($conf->categorie->enabled && !$user->rights->categorie->voir)
{
$sql.= ' AND IFNULL(c.visible,1)=1';
@@ -65,7 +66,7 @@
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON
cp.fk_product = p.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cp.fk_categorie
= c.rowid";
}
-$sql .= " WHERE p.envente = 0 AND p.fk_product_type = 0";
+$sql .= " WHERE p.envente = 0 AND p.fk_product_type <> '1'";
if ($conf->categorie->enabled && !$user->rights->categorie->voir)
{
$sql.= ' AND IFNULL(c.visible,1)=1';
@@ -111,7 +112,7 @@
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON
cp.fk_product = p.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON
cp.fk_categorie = c.rowid";
}
- $sql .= " WHERE p.fk_product_type = 1";
+ $sql .= " WHERE p.fk_product_type = '1'";
if ($conf->categorie->enabled && !$user->rights->categorie->voir)
{
$sql.= ' AND IFNULL(c.visible,1)=1';
@@ -129,7 +130,7 @@
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON
cp.fk_product = p.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON
cp.fk_categorie = c.rowid";
}
- $sql .= " WHERE p.envente = 0 AND p.fk_product_type = 1";
+ $sql .= " WHERE p.envente = 0 AND p.fk_product_type = '1'";
if ($conf->categorie->enabled && !$user->rights->categorie->voir)
{
$sql.= ' AND IFNULL(c.visible,1)=1';
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright
orig/dolibarr/htdocs/product/stock/product.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/stock/product.php
--- orig/dolibarr/htdocs/product/stock/product.php 2007-01-02
16:55:20.000000000 +0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/stock/product.php
2007-01-24 10:26:26.000000000 +0100
@@ -41,16 +42,12 @@
$user->getrights('produit');
$mesg = '';
-if (! $user->rights->produit->lire || ! $product->type == 0 || !
$conf->stock->enabled)
+if (! $user->rights->produit->lire || ! $product->type == 0 || !
$conf->stock->enabled)
{
accessforbidden();
}
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
-
if ($_POST["action"] == "create_stock")
{
$product = new Product($db);
@@ -231,7 +228,9 @@
print '<option value="0">'.$langs->trans("Add").'</option>';
print '<option value="1">'.$langs->trans("Delete").'</option>';
print '</select></td>';
- print '<td width="20%">'.$langs->trans("NumberOfUnit").'</td><td
width="20%"><input class="flat" name="nbpiece" size="10" value=""></td></tr>';
+ print '<td width="20%">'.$langs->trans("NumberOfUnit").'</td><td
width="20%"><input class="flat" name="nbpiece" size="10" value=""></td>';
+
+ print '</tr>';
print '<tr><td colspan="5" align="center"><input type="submit"
class="button" value="'.$langs->trans('Save').'"> ';
print '<input type="submit" class="button" name="cancel"
value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>';
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/traduction.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/traduction.php
--- orig/dolibarr/htdocs/product/traduction.php 2007-01-02 16:22:22.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/traduction.php
2007-01-24 10:26:26.000000000 +0100
@@ -40,9 +41,6 @@
if (!$user->rights->produit->lire)
accessforbidden();
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
/*
* Actions
*/
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product/fiche.php
/var/www/localhost/htdocs/dolibarr/htdocs/product/fiche.php
--- orig/dolibarr/htdocs/product/fiche.php 2007-01-14 14:56:56.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product/fiche.php 2007-01-31
14:19:57.000000000 +0100
@@ -44,9 +44,6 @@
if (!$user->rights->produit->lire) accessforbidden();
-$types[0] = $langs->trans("Product");
-$types[1] = $langs->trans("Service");
-
/*
*
*/
@@ -436,8 +433,8 @@
print '<input type="hidden" name="action" value="add">';
print '<input type="hidden" name="type" value="'.$_GET["type"].'">'."\n";
- if ($_GET["type"]==0) { $title=$langs->trans("NewProduct"); }
- if ($_GET["type"]==1) { $title=$langs->trans("NewService"); }
+ if ($_GET["type"]==1) $title=$langs->trans("NewService");
+ else $title=$langs->trans("NewProduct");
print_fiche_titre($title);
print '<table class="border" width="100%">';
@@ -484,7 +481,7 @@
print '</select>';
print '</td></tr>';
- if ($_GET["type"] == 0 && $conf->stock->enabled)
+ if ($_GET["type"] != 1 && $conf->stock->enabled)
{
print '<tr><td>Seuil stock</td><td>';
print '<input name="seuil_stock_alerte" size="4" value="0">';
@@ -657,8 +654,8 @@
$nblignes=6;
- if ($product->type == 0 && $conf->stock->enabled) $nblignes++;
- if ($product->type == 1) $nblignes++;
+ if ($product->isproduct() && $conf->stock->enabled) $nblignes++;
+ if ($product->isservice()) $nblignes++;
if ($product->is_photo_available($conf->produit->dir_output))
{
// Photo
@@ -734,7 +731,7 @@
print
'<tr><td>'.$langs->trans("VATRate").'</td><td>'.$product->tva_tx.'%</td></tr>';
// Stock
- if ($product->type == 0 && $conf->stock->enabled)
+ if ($product->isproduct() && $conf->stock->enabled)
{
print '<tr><td>'.$langs->trans("Stock").'</td>';
if ($product->no_stock)
@@ -759,7 +756,7 @@
print '<tr><td
valign="top">'.$langs->trans("Description").'</td><td>'.nl2br($product->description).'</td></tr>';
// Durée
- if ($product->type == 1)
+ if ($product->isservice())
{
print
'<tr><td>'.$langs->trans("Duration").'</td><td>'.$product->duration_value.' ';
if ($product->duration_value > 1)
@@ -798,7 +795,11 @@
*/
if ($_GET["action"] == 'edit' && $user->rights->produit->creer)
{
- print_fiche_titre($langs->trans('Edit').' '.$types[$product->type].' :
'.$product->ref, "");
+ if ($product->isservice()) {
+ print_fiche_titre($langs->trans('Edit').'
'.$langs->trans('Service').' : '.$product->ref, "");
+ } else {
+ print_fiche_titre($langs->trans('Edit').'
'.$langs->trans('Product').' : '.$product->ref, "");
+ }
if ($mesg) {
print '<br><div class="error">'.$mesg.'</div><br>';
@@ -831,7 +832,7 @@
print '<option value="0"
selected="true">'.$langs->trans("NotOnSell").'</option>';
}
print '</td></tr>';
- if ($product->type == 0 && $conf->stock->enabled)
+ if ($product->isproduct() && $conf->stock->enabled)
{
print "<tr>".'<td>Seuil stock</td><td colspan="2">';
print '<input name="seuil_stock_alerte" size="4"
value="'.$product->seuil_stock_alerte.'">';
@@ -860,7 +861,7 @@
print "</td></tr>";
print "\n";
- if ($product->type == 1)
+ if ($product->isservice())
{
print '<tr><td>'.$langs->trans("Duration").'</td><td
colspan="2"><input name="duration_value" size="3" maxlength="5"
value="'.$product->duration_value.'">';
print ' ';
@@ -939,14 +940,14 @@
}
/*
- if ($product->type == 0 && $user->rights->commande->creer)
+ if ($product->isproduct() && $user->rights->commande->creer)
{
$langs->load('orders');
print '<a class="tabAction"
href="fiche.php?action=fastappro&id='.$product->id.'">';
print $langs->trans("CreateCustomerOrder").'</a>';
}
- if ($product->type == 0 && $user->rights->fournisseur->commande->creer)
+ if ($product->isproduct() && $user->rights->fournisseur->commande->creer)
{
$langs->load('orders');
print '<a class="tabAction"
href="fiche.php?action=fastappro&id='.$product->id.'">';
diff -wur --ignore-matching-lines='$Id:' --ignore-matching-lines='$Revision:'
--ignore-matching-lines=Copyright orig/dolibarr/htdocs/product.class.php
/var/www/localhost/htdocs/dolibarr/htdocs/product.class.php
--- orig/dolibarr/htdocs/product.class.php 2007-01-29 12:04:23.000000000
+0100
+++ /var/www/localhost/htdocs/dolibarr/htdocs/product.class.php 2007-01-31
14:11:30.000000000 +0100
@@ -2524,5 +2524,22 @@
{
}
+
+ function isproduct() {
+ if ($this->type != 1) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+
+ function isservice() {
+ if ($this->type==1) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+
}
?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dolibarr-dev] encore un patch,
Franky Van Liedekerke <=