Start debug the variant module

This commit is contained in:
Laurent Destailleur 2017-04-07 11:01:12 +02:00
parent 216bce608d
commit ea44e14b60
8 changed files with 143 additions and 104 deletions

View File

@ -233,7 +233,6 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
if ( $resql )
{
$var = false;
$num = $db->num_rows($resql);
print '<table class="noborder" width="100%">';
@ -248,7 +247,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
while ($i < $num)
{
$obj = $db->fetch_object($resql);
print '<tr '.$bc[$var].'><td class="nowrap">';
print '<tr class="oddeven"><td class="nowrap">';
$facturesupplierstatic->ref=$obj->ref;
$facturesupplierstatic->id=$obj->rowid;
$facturesupplierstatic->total_ht=$obj->total_ht;
@ -269,7 +268,6 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
print '</tr>';
$tot_ttc+=$obj->total_ttc;
$i++;
$var=!$var;
}
print '<tr class="liste_total"><td align="left">'.$langs->trans("Total").'</td>';
@ -278,7 +276,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
}
else
{
print '<tr '.$bc[$var].'><td colspan="3" class="opacitymedium">'.$langs->trans("NoInvoice").'</td></tr>';
print '<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans("NoInvoice").'</td></tr>';
}
print "</table><br>";
$db->free($resql);
@ -768,6 +766,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
$num = $db->num_rows($resql);
$i = 0;
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("BillsCustomersUnpaid",$num).' <a href="'.DOL_URL_ROOT.'/compta/facture/list.php?search_status=1"><span class="badge">'.$num.'</span></a></th>';
print '<th align="right">'.$langs->trans("DateDue").'</th>';
@ -848,7 +847,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) $colspan++;
print '<tr '.$bc[$var].'><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoInvoice").'</td></tr>';
}
print '</table><br>';
print '</table></div><br>';
$db->free($resql);
}
else
@ -890,6 +889,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
$var=false;
$num = $db->num_rows($resql);
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("BillsSuppliersUnpaid",$num).' <a href="'.DOL_URL_ROOT.'/fourn/facture/impayees.php"><span class="badge">'.$num.'</span></a></th>';
print '<th align="right">'.$langs->trans("DateDue").'</th>';
@ -948,7 +948,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) $colspan++;
print '<tr '.$bc[$var].'><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoInvoice").'</td></tr>';
}
print '</table><br>';
print '</table></div><br>';
}
else
{

View File

@ -593,6 +593,7 @@ class FormFile
$out.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
$out.= load_fiche_titre($titletoshow, '', '');
$out.= '<div class="div-table-responsive-no-min">';
$out.= '<table class="liste formdoc noborder" summary="listofdocumentstable" width="100%">';
$out.= '<tr class="liste_titre">';
@ -802,6 +803,7 @@ class FormFile
{
// Affiche pied du tableau
$out.= "</table>\n";
$out.= "</div>\n";
if ($genallowed)
{
if (empty($noform)) $out.= '</form>'."\n";

View File

@ -287,6 +287,9 @@ HideProductCombinations=Hide products variant in the products selector
ProductCombination=Variant
NewProductCombination=New variant
EditProductCombination=Editing variant
NewProductCombinations=New variants
EditProductCombinations=Editing variants
SelectCombination=Select combination
ProductCombinationGenerator=Variants generator
Features=Features
PriceImpact=Price impact

View File

@ -2015,6 +2015,7 @@ if (! empty($conf->global->PRODUCT_ADD_FORM_ADD_TO) && $object->id && ($action =
/*
* Documents generes
*/
if ($action != 'edit' && $action != 'delete')
{
print '<div class="fichecenter"><div class="fichehalfleft">';

View File

@ -3559,6 +3559,11 @@ class Product extends CommonObject
if ($status == 0) return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
if ($status == 1) return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')),'statut4', 'class="pictostatus"');
}
if ($mode == 6)
{
if ($status == 0) return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
if ($status == 1) return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')),'statut4', 'class="pictostatus"');
}
return $langs->trans('Unknown');
}

View File

@ -130,26 +130,26 @@ print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</th></tr>';
if (! empty($conf->product->enabled))
{
$statProducts = "<tr ".$bc[0].">";
$statProducts = '<tr class="oddeven">';
$statProducts.= '<td><a href="list.php?type=0&amp;tosell=0&amp;tobuy=0">'.$langs->trans("ProductsNotOnSell").'</a></td><td align="right">'.round($prodser[0][0]).'</td>';
$statProducts.= "</tr>";
$statProducts.= "<tr ".$bc[1].">";
$statProducts.= '<tr class="oddeven">';
$statProducts.= '<td><a href="list.php?type=0">'.$langs->trans("ProductsOnSell").'</a></td><td align="right">'.round($prodser[0][1]).'</td>';
$statProducts.= "</tr>";
$statProducts.= "<tr ".$bc[0].">";
$statProducts.= '<tr class="oddeven">';
$statProducts.= '<td><a href="list.php?type=0&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ProductsOnSellAndOnBuy").'</a></td><td align="right">'.round($prodser[0][2]).'</td>';
$statProducts.= "</tr>";
}
if (! empty($conf->service->enabled))
{
$statServices = "<tr ".$bc[1].">";
$statServices = '<tr class="oddeven">';
$statServices.= '<td><a href="list.php?type=1&amp;tosell=0&amp;tobuy=0">'.$langs->trans("ServicesNotOnSell").'</a></td><td align="right">'.round($prodser[1][0]).'</td>';
$statServices.= "</tr>";
$statServices.= "<tr ".$bc[0].">";
$statServices.= '<tr class="oddeven">';
$statServices.= '<td><a href="list.php?type=1">'.$langs->trans("ServicesOnSell").'</a></td><td align="right">'.round($prodser[1][1]).'</td>';
$statServices.= "</tr>";
$statServices.= "<tr ".$bc[1].">";
$statServices.= '<tr class="oddeven">';
$statServices.= '<td><a href="list.php?type=1&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ServicesOnSellAndOnBuy").'</a></td><td align="right">'.round($prodser[1][2]).'</td>';
$statServices.= "</tr>";
@ -325,10 +325,10 @@ if ($result)
print '</td>';
}
print '<td align="right" class="nowrap">';
print $product_static->LibStatut($objp->tosell,5,0);
print $product_static->LibStatut($objp->tosell,3,0);
print "</td>";
print '<td align="right" class="nowrap">';
print $product_static->LibStatut($objp->tobuy,5,1);
print $product_static->LibStatut($objp->tobuy,3,1);
print "</td>";
print "</tr>\n";
$i++;

View File

@ -36,6 +36,7 @@ $price_impact = (float) GETPOST('price_impact');
$price_impact_percent = (bool) GETPOST('price_impact_percent');
$form = new Form($db);
$action = GETPOST('action');
$cancel = GETPOST('cancel');
// Security check
$fieldvalue = (! empty($id) ? $id : $ref);
@ -57,6 +58,10 @@ if ($id > 0 || $ref)
* Actions
*/
if ($cancel) {
$action='';
}
if (! $object->isProduct()) {
header('Location: '.dol_buildpath('/product/card.php?id='.$object->id, 2));
exit();
@ -107,7 +112,7 @@ if ($_POST) {
$db->begin();
if (!$prodcomb->fetchByProductCombination2ValuePairs($id, $sanit_features)) {
if (ProductCombination::createProductCombination($product, $sanit_features, array(), $price_impact_percent, $price_impact, $weight_impact)) {
if (ProductCombination::createProductCombination($object, $sanit_features, array(), $price_impact_percent, $price_impact, $weight_impact)) {
$db->commit();
setEventMessage($langs->trans('RecordSaved'));
header('Location: '.dol_buildpath('/variants/combinations.php?id='.$id, 2));
@ -175,7 +180,7 @@ if ($_POST) {
setEventMessage($langs->trans('RecordSaved'));
}
} else {
} elseif ($valueid > 0) {
if ($prodcomb->fetch($valueid) < 0) {
dol_print_error($db, $langs->trans('ErrorRecordNotFound'));
@ -256,6 +261,9 @@ if ($action === 'confirm_deletecombination') {
* View
*/
$form = new Form($db);
if (! empty($id) || ! empty($ref)) {
llxHeader("", "", $langs->trans("CardProduct".$object->type));
@ -342,6 +350,7 @@ if (! empty($id) || ! empty($ref)) {
var select = jQuery("select#features");
select.empty();
jQuery("form#combinationform input[type=hidden]").detach();
jQuery.each(variants_selected.index, function (key, val) {
@ -359,11 +368,12 @@ if (! empty($id) || ! empty($ref)) {
jQuery(document).ready(function() {
jQuery("select#attribute").change(function () {
console.log("Change of field attribute");
console.log("Change of field variant attribute");
var select = jQuery("select#value");
if (!jQuery(this).val().length || jQuery(this).val() == '-1') {
select.empty();
select.append('<option value="-1">&nbsp;</option>');
return;
}
@ -373,22 +383,27 @@ if (! empty($id) || ! empty($ref)) {
id: jQuery(this).val()
}, function(data) {
if (data.error) {
jQuery("select#value").empty();
select.empty();
select.append('<option value="-1">&nbsp;</option>');
return alert(data.error);
}
select.empty();
/* console.log(data.length); */
select.append('<option value="-1">&nbsp;</option>');
jQuery(data).each(function (key, val) {
keyforoption = val.id
valforoption = val.value
jQuery("select#value").append('<option value="' + keyforoption + '">' + valforoption + '</option>');
select.append('<option value="' + keyforoption + '">' + valforoption + '</option>');
});
});
});
/* Click on button Add combination
@FIXME Not compatible with all browsers.
*/
jQuery("#addfeature").click(function () {
console.log("Click on add");
var selectedattr = jQuery("select[name=attribute] option:selected");
var selectedvalu = jQuery("select[name=value] option:selected");
@ -438,54 +453,69 @@ if (! empty($id) || ! empty($ref)) {
<?php
}
print '<form method="post" id="combinationform">';
print '<form method="post" id="combinationform">';
print '<input type="hidden" name="id" value="'.dol_escape_htmltag($id).'">';
print dol_fiche_head();
?>
<table class="border" style="width: 100%">
<?php if ($action == 'add') { ?>
<!-- Variant -->
<tr>
<td class="titlefieldcreate fieldrequired"><label for="attribute"><?php echo $langs->trans('ProductAttribute') ?></label></td>
<td colspan="2"><select class="flat minwidth100" id="attribute" name="attribute">
<td><select class="flat minwidth100" id="attribute" name="attribute">
<option value="-1">&nbsp;</option>
<?php foreach ($prodattr_all as $attr): ?>
<option value="<?php echo $attr->id ?>"><?php echo $attr->label ?></option>
<?php endforeach ?>
</select></td>
</tr>
<!-- Value -->
<tr>
<td class="fieldrequired"><label for="value"><?php echo $langs->trans('Value') ?></label></td>
<td colspan="2">
<td>
<select class="flat minwidth100" id="value" name="value">
<option value="-1">&nbsp;</option>
</select>
</td>
</tr>
<?php } ?>
<tr>
<td class="titlefieldcreate fieldrequired"><label for="features"><?php echo $langs->trans('Features') ?></label></td>
<td><select multiple style="width: 100%" id="features">
<td></td><td>
<a href="#" class="button" id="addfeature"><?php echo $langs->trans("SelectCombination"); ?></a>
</td>
</tr>
</table>
<hr>
<?php }
?>
<table class="border" style="width: 100%">
<tr>
<td class="titlefieldcreate fieldrequired tdtop"><label for="features"><?php echo $langs->trans('Variant') ?></label></td>
<td class="valignmiddle">
<div class="inline-block valignmiddle quatrevingtpercent">
<select multiple class="centpercent" id="features">
<?php
foreach ($productCombination2ValuePairs1 as $pc2v): ?>
<option value="<?php echo $pc2v->fk_prod_attr ?>:<?php echo $pc2v->fk_prod_attr_val ?>"><?php echo dol_htmlentities($pc2v) ?></option>
<?php endforeach ?>
</select></td>
</select></div>
<div class="inline-block valignmiddle">
<a href="#" class="inline-block valignmiddle button" id="delfeature"><?php echo img_edit_remove() ?></a>
</div>
</td>
<td>
<?php if ($action == 'add'): ?>
<a href="#" class="button" id="addfeature"><?php echo img_edit_add() ?></a><br><br>
<a href="#" class="button" id="delfeature"><?php echo img_edit_remove() ?></a>
<?php endif; ?>
</td>
</tr>
<tr>
<td><label for="price_impact"><?php echo $langs->trans('PriceImpact') ?></label></td>
<td colspan="2"><input type="text" id="price_impact" name="price_impact" value="<?php echo price($price_impact) ?>">
<td><input type="text" id="price_impact" name="price_impact" value="<?php echo price($price_impact) ?>">
<input type="checkbox" id="price_impact_percent" name="price_impact_percent" <?php echo $price_impact_percent ? ' checked' : '' ?>> <label for="price_impact_percent"><?php echo $langs->trans('PercentageVariation') ?></label></td>
</tr>
<tr>
<td><label for="weight_impact"><?php echo $langs->trans('WeightImpact') ?></label></td>
<td colspan="2"><input type="text" id="weight_impact" name="weight_impact" value="<?php echo price($weight_impact) ?>"></td>
<td><input type="text" id="weight_impact" name="weight_impact" value="<?php echo price($weight_impact) ?>"></td>
</tr>
</table>
@ -494,8 +524,10 @@ if (! empty($id) || ! empty($ref)) {
?>
<div style="text-align: center">
<input type="submit" value="<?php echo $action == 'add' ? $langs->trans('Create') : $langs->trans('Save') ?>" class="button"></div>
<input type="submit" value="<?php echo $action == 'add' ? $langs->trans('Create') : $langs->trans('Save') ?>" class="button">
&nbsp;
<input type="submit" name="cancel" value="<?php echo $langs->trans('Cancel'); ?>" class="button">
</div>
<?php foreach ($productCombination2ValuePairs1 as $pc2v): ?>
<input type="hidden" name="features[]" value="<?php echo $pc2v->fk_prod_attr.':'.$pc2v->fk_prod_attr_val ?>">
@ -509,7 +541,6 @@ if (! empty($id) || ! empty($ref)) {
if ($action === 'delete') {
if ($prodcomb->fetch($valueid) > 0) {
$form = new Form($db);
$prodstatic->fetch($prodcomb->fk_product_child);
print $form->formconfirm(
@ -524,8 +555,6 @@ if (! empty($id) || ! empty($ref)) {
}
} elseif ($action === 'copy') {
$form = new Form($db);
print $form->formconfirm(
'combinations.php?id='.$id,
$langs->trans('CloneCombinationsProduct'),
@ -570,50 +599,64 @@ if (! empty($id) || ! empty($ref)) {
});
</script>
<form method="post">
<label for="bulk_action"><?php echo $langs->trans('BulkActions') ?></label>
<select id="bulk_action" name="bulk_action" class="flat">
<option value="not_buy"><?php echo $langs->trans('ProductStatusNotOnBuy') ?></option>
<option value="not_sell"><?php echo $langs->trans('ProductStatusNotOnSell') ?></option>
<option value="on_buy"><?php echo $langs->trans('ProductStatusOnBuy') ?></option>
<option value="on_sell"><?php echo $langs->trans('ProductStatusOnSell') ?></option>
<option value="delete"><?php echo $langs->trans('Delete') ?></option>
</select>
<input type="hidden" name="action" value="bulk_actions">
<input type="submit" value="<?php echo $langs->trans("Apply") ?>" class="button">
<br>
<br>
<?php }
// Buttons
print '<div class="tabsAction">';
print ' <div class="inline-block divButAction">';
if ($productCombinations) {
print '<a href="combinations.php?id='.$id.'&action=copy" class="butAction">'.$langs->trans('Copy').'</a>';
}
print '<a href="combinations.php?id='.$id.'&action=add" class="butAction">'.$langs->trans('NewProductCombination').'</a>';
print '<a href="generator.php?id='.$id.'" class="butAction">'.$langs->trans('ProductCombinationGenerator').'</a>';
if (empty($conf->dol_optimize_smallscreen) && $conf->use_javascript_ajax) // Bugged page. Too much useless javascript.
{
print '<a href="generator.php?id='.$id.'" class="butAction">'.$langs->trans('ProductCombinationGenerator').'</a>';
}
print ' </div>';
print '</div>';
print '<form method="post">';
$aaa='';
if (count($productCombinations))
{
$aaa = '<label for="bulk_action">'.$langs->trans('BulkActions').'</label>';
$aaa .= '<select id="bulk_action" name="bulk_action" class="flat">';
$aaa .= ' <option value="not_buy">'.$langs->trans('ProductStatusNotOnBuy').'</option>';
$aaa .= ' <option value="not_sell">'.$langs->trans('ProductStatusNotOnSell').'</option>';
$aaa .= ' <option value="on_buy">'.$langs->trans('ProductStatusOnBuy').'</option>';
$aaa .= ' <option value="on_sell">'.$langs->trans('ProductStatusOnSell').'</option>';
$aaa .= ' <option value="delete">'.$langs->trans('Delete').'</option>';
$aaa .= '</select>';
$aaa .= '<input type="hidden" name="action" value="bulk_actions">';
$aaa .= '<input type="submit" value="'.dol_escape_htmltag($langs->trans("Apply")).'" class="button">';
}
$title = $langs->trans("ProductCombinations");
print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $aaa, 0);
print '<div class="div-table-responsive">';
?>
<table class="liste">
<tr class="liste_titre">
<th class="liste_titre">
<th class="liste_titre"><?php echo $langs->trans('Product') ?></th>
<th class="liste_titre"><?php echo $langs->trans('Combination') ?></th>
<th class="liste_titre right"><?php echo $langs->trans('PriceImpact') ?></th>
<th class="liste_titre right"><?php echo $langs->trans('WeightImpact') ?></th>
<th class="liste_titre center"><?php echo $langs->trans('OnSell') ?></th>
<th class="liste_titre center"><?php echo $langs->trans('OnBuy') ?></th>
<th class="liste_titre"></th>
<th class="liste_titre center">
<?php if ($productCombinations): ?>
<input type="checkbox" name="select_all">
<?php endif ?>
</th>
<th class="liste_titre"><?php echo $langs->trans('Product') ?></th>
<th class="liste_titre"><?php echo $langs->trans('Combination') ?></th>
<th class="liste_titre" style="text-align: center"><?php echo $langs->trans('PriceImpact') ?></th>
<th class="liste_titre" style="text-align: center"><?php echo $langs->trans('WeightImpact') ?></th>
<th class="liste_titre" style="text-align: center;"><?php echo $langs->trans('OnSell') ?></th>
<th class="liste_titre" style="text-align: center;"><?php echo $langs->trans('OnBuy') ?></th>
<th class="liste_titre"></th>
</tr>
<?php
@ -622,8 +665,7 @@ if (! empty($id) || ! empty($ref)) {
foreach ($productCombinations as $currcomb) {
$prodstatic->fetch($currcomb->fk_product_child);
?>
<tr <?php echo $bc[!$var] ?>>
<td><input type="checkbox" name="select[<?php echo $prodstatic->id ?>]"></td>
<tr class="oddeven">
<td><?php echo $prodstatic->getNomUrl(1) ?></td>
<td>
<?php
@ -639,17 +681,17 @@ if (! empty($id) || ! empty($ref)) {
}
} ?>
</td>
<td style="text-align: right"><?php echo ($currcomb->variation_price >= 0 ? '+' : '').price($currcomb->variation_price).($currcomb->variation_price_percentage ? ' %' : '') ?></td>
<td style="text-align: right"><?php echo ($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuring_units_string($prodstatic->weight_units, 'weight') ?></td>
<td class="right"><?php echo ($currcomb->variation_price >= 0 ? '+' : '').price($currcomb->variation_price).($currcomb->variation_price_percentage ? ' %' : '') ?></td>
<td class="right"><?php echo ($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuring_units_string($prodstatic->weight_units, 'weight') ?></td>
<td style="text-align: center;"><?php echo $prodstatic->getLibStatut(2, 0) ?></td>
<td style="text-align: center;"><?php echo $prodstatic->getLibStatut(2, 1) ?></td>
<td style="text-align: right">
<a href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=edit&valueid='.$currcomb->id, 2) ?>"><?php echo img_edit() ?></a>
<a href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=delete&valueid='.$currcomb->id, 2) ?>"><?php echo img_delete() ?></a>
<td class="right">
<a class="paddingleft paddingright" href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=edit&valueid='.$currcomb->id, 2) ?>"><?php echo img_edit() ?></a>
<a class="paddingleft paddingright" href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=delete&valueid='.$currcomb->id, 2) ?>"><?php echo img_delete() ?></a>
</td>
<td class="center"><input type="checkbox" name="select[<?php echo $prodstatic->id ?>]"></td>
</tr>
<?php
$var = !$var;
}
}
else
@ -659,12 +701,12 @@ if (! empty($id) || ! empty($ref)) {
?>
</table>
<?php if ($productCombinations): ?>
</form>
<?php endif ?>
<?php
print '</div>';
print '</form>';
}
}
llxFooter();
$db->close();

View File

@ -130,6 +130,8 @@ if ($_POST) {
}
}
/*
* View
*/
@ -140,37 +142,21 @@ if (! empty($id) || ! empty($ref)) {
llxHeader("", "", $langs->trans("CardProduct".$object->type));
if ($result) {
$head = product_prepare_head($object);
$titre = $langs->trans("CardProduct".$object->type);
$picto = ($object->type == Product::TYPE_SERVICE ? 'service' : 'product');
if ($result > 0)
{
$showbarcode=empty($conf->barcode->enabled)?0:1;
if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->barcode->lire_advance)) $showbarcode=0;
$head=product_prepare_head($object);
$titre=$langs->trans("CardProduct".$object->type);
$picto=($object->type== Product::TYPE_SERVICE?'service':'product');
dol_fiche_head($head, 'combinations', $titre, 0, $picto);
print '<table class="border" width="100%">';
// Reference
print '<tr>';
print '<td width="30%">'.$langs->trans("Ref").'</td><td colspan="3">';
print $form->showrefnav($object, 'id', '', 0);
print '</td>';
print '</tr>';
// Label
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$object->label.'</td></tr>';
// Status (to sell)
print '<tr><td>'.$langs->trans("Status").' ('.$langs->trans("Sell").')</td><td>';
print $object->getLibStatut(2, 0);
print '</td></tr>';
// Status (to buy)
print '<tr><td>'.$langs->trans("Status").' ('.$langs->trans("Buy").')</td><td>';
print $object->getLibStatut(2, 1);
print '</td></tr>';
print '</table>';
$linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php?type='.$object->type.'">'.$langs->trans("BackToList").'</a>';
$object->next_prev_filter=" fk_product_type = ".$object->type;
dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', '', '', '', 0, '', '', 1);
dol_fiche_end();
}