Works on product canvas and templates

!! WARNING : not stable !!
This commit is contained in:
Regis Houssin 2010-05-02 19:01:22 +00:00
parent 527e2ecb2e
commit 785351e0ee
5 changed files with 82 additions and 75 deletions

View File

@ -31,7 +31,7 @@ class ProductDefault extends Product
{ {
//! Numero d'erreur Plage 1280-1535 //! Numero d'erreur Plage 1280-1535
var $errno = 0; var $errno = 0;
//! Template container
var $tpl = array(); var $tpl = array();
/** /**
@ -44,6 +44,7 @@ class ProductDefault extends Product
$this->db = $DB; $this->db = $DB;
$this->id = $id ; $this->id = $id ;
$this->user = $user; $this->user = $user;
$this->smarty = 0;
$this->module = "produit"; $this->module = "produit";
$this->canvas = "default"; $this->canvas = "default";
$this->name = "default"; $this->name = "default";

View File

@ -21,13 +21,18 @@
<!-- BEGIN PHP TEMPLATE --> <!-- BEGIN PHP TEMPLATE -->
<?php echo $product->tpl['title']; ?>
<?php if ($mesg) { ?>
<br><div class="error"><?php echo $mesg; ?></div><br>
<?php } ?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>"> <input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>">
<input type="hidden" name="action" value="add"> <input type="hidden" name="action" value="add">
<input type="hidden" name="type" value="0">
<input type="hidden" name="canvas" value="<?php echo $_GET['canvas']; ?>"> <input type="hidden" name="canvas" value="<?php echo $_GET['canvas']; ?>">
<?php echo $product->tpl['title']; ?>
<table class="border" width="100%"> <table class="border" width="100%">
<tr> <tr>

View File

@ -41,13 +41,15 @@ class ProductService extends Product
*/ */
function ProductService($DB=0, $id=0, $user=0) function ProductService($DB=0, $id=0, $user=0)
{ {
$this->db = $DB; $this->db = $DB;
$this->id = $id ; $this->id = $id ;
$this->user = $user; $this->user = $user;
$this->module = "service"; $this->smarty = 0;
$this->canvas = "service"; $this->module = "service";
$this->name = "service"; $this->canvas = "service";
$this->definition = "Canvas des services"; $this->name = "service";
$this->definition = "Canvas des services";
$this->fieldListName = "product_service";
$this->next_prev_filter = "canvas='service'"; $this->next_prev_filter = "canvas='service'";
} }

View File

@ -23,9 +23,14 @@
<?php echo $product->tpl['title']; ?> <?php echo $product->tpl['title']; ?>
<?php if ($mesg) { ?>
<br><div class="error"><?php echo $mesg; ?></div><br>
<?php } ?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>"> <input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>">
<input type="hidden" name="action" value="add"> <input type="hidden" name="action" value="add">
<input type="hidden" name="type" value="1">
<input type="hidden" name="canvas" value="<?php echo $_GET['canvas']; ?>"> <input type="hidden" name="canvas" value="<?php echo $_GET['canvas']; ?>">
<table class="border" width="100%"> <table class="border" width="100%">

View File

@ -113,16 +113,16 @@ if ($_POST["action"] == 'add' && ($user->rights->produit->creer || $user->rights
{ {
$mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Label')).'</div>'; $mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Label')).'</div>';
$_GET["action"] = "create"; $_GET["action"] = "create";
$_GET["canvas"] = $product->canvas; $_GET["canvas"] = $_POST["canvas"];
$_GET["type"] = $_POST["type"]; $_GET["type"] = $_POST["type"];
$error++; $error++;
} }
if (empty($_POST["ref"])) if (empty($_POST["ref"]))
{ {
$mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Ref')).'</div>'; $mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Ref')).'</div>';
$_GET["action"] = "create"; $_GET["action"] = "create";
$_GET["canvas"] = $product->canvas; $_GET["canvas"] = $_POST["canvas"];
$_GET["type"] = $_POST["type"]; $_GET["type"] = $_POST["type"];
$error++; $error++;
} }
@ -134,10 +134,10 @@ if ($_POST["action"] == 'add' && ($user->rights->produit->creer || $user->rights
} }
else else
{ {
$mesg='<div class="error">'.$langs->trans('ErrorFieldRequired',$langs->transnoentities('Ref')).'</div>'; $mesg='<div class="error">'.$langs->trans('ErrorCanvasNotDefined').'</div>';
$_GET["action"] = "create"; $_GET["action"] = "create";
$_GET["canvas"] = $product->canvas; $_GET["canvas"] = $_POST["canvas"];
$_GET["type"] = $_POST["type"]; $_GET["type"] = $_POST["type"];
$error++; $error++;
} }
@ -153,27 +153,27 @@ if ($_POST["action"] == 'add' && ($user->rights->produit->creer || $user->rights
$product->tva_tx = $_POST["tva_tx"]; $product->tva_tx = $_POST["tva_tx"];
// local taxes. // local taxes.
$product->localtax1_tx = get_localtax($product->tva_tx,1); $product->localtax1_tx = get_localtax($product->tva_tx,1);
$product->localtax2_tx = get_localtax($product->tva_tx,2); $product->localtax2_tx = get_localtax($product->tva_tx,2);
$product->type = $_POST["type"]; $product->type = $_POST["type"];
$product->status = $_POST["statut"]; $product->status = $_POST["statut"];
$product->description = dol_htmlcleanlastbr($_POST["desc"]); $product->description = dol_htmlcleanlastbr($_POST["desc"]);
$product->note = dol_htmlcleanlastbr($_POST["note"]); $product->note = dol_htmlcleanlastbr($_POST["note"]);
$product->duration_value = $_POST["duration_value"]; $product->duration_value = $_POST["duration_value"];
$product->duration_unit = $_POST["duration_unit"]; $product->duration_unit = $_POST["duration_unit"];
$product->seuil_stock_alerte = $_POST["seuil_stock_alerte"]?$_POST["seuil_stock_alerte"]:0; $product->seuil_stock_alerte = $_POST["seuil_stock_alerte"]?$_POST["seuil_stock_alerte"]:0;
$product->canvas = $_POST["canvas"]; $product->canvas = $_POST["canvas"];
$product->weight = $_POST["weight"]; $product->weight = $_POST["weight"];
$product->weight_units = $_POST["weight_units"]; $product->weight_units = $_POST["weight_units"];
$product->length = $_POST["size"]; $product->length = $_POST["size"];
$product->length_units = $_POST["size_units"]; $product->length_units = $_POST["size_units"];
$product->surface = $_POST["surface"]; $product->surface = $_POST["surface"];
$product->surface_units = $_POST["surface_units"]; $product->surface_units = $_POST["surface_units"];
$product->volume = $_POST["volume"]; $product->volume = $_POST["volume"];
$product->volume_units = $_POST["volume_units"]; $product->volume_units = $_POST["volume_units"];
$product->finished = $_POST["finished"]; $product->finished = $_POST["finished"];
$product->hidden = $_POST["hidden"]=='yes'?1:0; $product->hidden = $_POST["hidden"]=='yes'?1:0;
// MultiPrix // MultiPrix
if($conf->global->PRODUIT_MULTIPRICES) if($conf->global->PRODUIT_MULTIPRICES)
@ -220,7 +220,13 @@ if ($_POST["action"] == 'update' && ($user->rights->produit->creer || $user->rig
} }
else else
{ {
$product = new Product($db); if (!empty($_POST["canvas"]) && file_exists('canvas/'.$product->canvas.'/product.'.$product->canvas.'.class.php'))
{
$classname = 'Product'.ucfirst($product->canvas);
include_once('canvas/'.$product->canvas.'/product.'.$product->canvas.'.class.php');
$product = new $classname($db);
}
if ($product->fetch($_POST["id"])) if ($product->fetch($_POST["id"]))
{ {
$product->ref = $_POST["ref"]; $product->ref = $_POST["ref"];
@ -263,19 +269,6 @@ if ($_POST["action"] == 'update' && ($user->rights->produit->creer || $user->rig
$_GET["id"] = $_POST["id"]; $_GET["id"] = $_POST["id"];
$mesg = $langs->trans("ErrorProductBadRefOrLabel"); $mesg = $langs->trans("ErrorProductBadRefOrLabel");
} }
// Specific product
if ($product->canvas <> '' && file_exists('canvas/'.$product->canvas.'/product.'.$product->canvas.'.class.php') )
{
$classname = 'Product'.ucfirst($product->canvas);
include_once('canvas/'.$product->canvas.'/product.'.$product->canvas.'.class.php');
$product = new $classname($db);
if ($product->FetchCanvas($_POST["id"]))
{
$product->UpdateCanvas($_POST);
}
}
} }
} }
} }
@ -632,14 +625,38 @@ if ($_GET["action"] == 'create' && ($user->rights->produit->creer || $user->righ
{ {
if (!empty($_GET["canvas"]) && file_exists(DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/product.'.$_GET["canvas"].'.class.php')) if (!empty($_GET["canvas"]) && file_exists(DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/product.'.$_GET["canvas"].'.class.php'))
{ {
$helpurl='';
if (isset($_GET["type"]) && $_GET["type"] == 0) $helpurl='EN:Module_Products|FR:Module_Produits|ES:M&oacute;dulo_Productos';
if (isset($_GET["type"]) && $_GET["type"] == 1) $helpurl='EN:Module_Services_En|FR:Module_Services|ES:M&oacute;dulo_Servicios';
llxHeader("",$helpurl,$langs->trans("CardProduct".$product->type));
if (! isset($product)) if (! isset($product))
{ {
$filecanvas = DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/product.'.$_GET["canvas"].'.class.php'; $filecanvas = DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/product.'.$_GET["canvas"].'.class.php';
$classname = 'Product'.ucfirst($_GET["canvas"]); $classname = 'Product'.ucfirst($_GET["canvas"]);
include_once($filecanvas); include_once($filecanvas);
$product = new $classname($db,0,$user); $product = new $classname($db,0,$user);
$template_dir = DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/tpl/';
if ($product->smarty)
{
$product->assign_smarty_values($smarty, 'create');
$smarty->template_dir = $template_dir;
//$tvaarray = load_tva($db,"tva_tx",$conf->defaulttx,$mysoc,'');
//$smarty->assign('tva_taux_value', $tvaarray['value']);
//$smarty->assign('tva_taux_libelle', $tvaarray['label']);
$smarty->display($_GET["canvas"].'-create.tpl');
}
else
{
$product->assign_values('create');
include($template_dir.'create.tpl.php');
}
} }
if ($_error == 1) if ($_error == 1)
@ -647,29 +664,6 @@ if ($_GET["action"] == 'create' && ($user->rights->produit->creer || $user->righ
$product = $e_product; $product = $e_product;
} }
} }
$helpurl='';
if (isset($_GET["type"]) && $_GET["type"] == 0)
{
$helpurl='EN:Module_Products|FR:Module_Produits|ES:M&oacute;dulo_Productos';
}
if (isset($_GET["type"]) && $_GET["type"] == 1)
{
$helpurl='EN:Module_Services_En|FR:Module_Services|ES:M&oacute;dulo_Servicios';
}
llxHeader("",$helpurl,$langs->trans("CardProduct".$product->type));
if ($mesg) print $mesg."\n";
if (!empty($_GET["canvas"]) && file_exists(DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/product.'.$_GET["canvas"].'.class.php'))
{
$template_dir = DOL_DOCUMENT_ROOT.'/product/canvas/'.$_GET["canvas"].'/tpl/';
$product->assign_values('create');
include($template_dir.'create.tpl.php');
}
} }
/** /**