diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 822c43f3370..6c586ffe9b7 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4513,22 +4513,25 @@ class Form * @param string $morecss Add more class to css styles * @param int $callurlonselect If set to 1, some code is added so an url return by the ajax is called when value is selected. * @param string $placeholder String to use as placeholder - * @return string HTML select string. + * @param string $acceptdelayedhtml 1 if caller request to have html delayed content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect) + * @return string HTML select string */ - static function selectArrayAjax($htmlname, $url, $id='', $moreparam='', $moreparamtourl='', $disabled=0, $minimumInputLength=1, $morecss='', $callurlonselect=0, $placeholder='') + static function selectArrayAjax($htmlname, $url, $id='', $moreparam='', $moreparamtourl='', $disabled=0, $minimumInputLength=1, $morecss='', $callurlonselect=0, $placeholder='', $acceptdelayedhtml=0) { global $langs; + global $delayedhtmlcontent; - $out = ''; - $tmpplugin='select2'; - $out.=' + + $out=''; + + $outdelayed=' '; + }); + '; - - $out.=''; - + if ($acceptdelayedhtml) + { + $delayedhtmlcontent.=$outdelayed; + } + else + { + $out.=$outdelayed; + } return $out; } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 8943ca95821..354ecb7b611 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -931,7 +931,7 @@ if (! function_exists("llxHeader")) } if (empty($conf->dol_hide_leftmenu)) { - left_menu('', $help_url, '', '', 1, $title); + left_menu('', $help_url, '', '', 1, $title, 1); } // main area @@ -1401,13 +1401,6 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a ' . "\n"; } - // Wrapper to show tooltips - print '' . "\n"; - // Raven.js for client-side Sentry logging support if (array_key_exists('mod_syslog_sentry', $conf->loghandlers) && ! empty($conf->global->SYSLOG_SENTRY_DSN)) { @@ -1539,9 +1532,10 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a * @param array $menu_array_after Table of menu entries to show after entries of menu handler * @param int $leftmenuwithoutmainarea Must be set to 1. 0 by default for backward compatibility with old modules. * @param string $title Title of web page + * @param string $acceptdelayedhtml 1 if caller request to have html delayed content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect) * @return void */ -function left_menu($menu_array_before, $helppagename='', $notused='', $menu_array_after='', $leftmenuwithoutmainarea=0, $title='') +function left_menu($menu_array_before, $helppagename='', $notused='', $menu_array_after='', $leftmenuwithoutmainarea=0, $title='', $acceptdelayedhtml=0) { global $user, $conf, $langs, $db, $form; global $hookmanager, $menumanager; @@ -1563,7 +1557,7 @@ function left_menu($menu_array_before, $helppagename='', $notused='', $menu_arra { if (! is_object($form)) $form=new Form($db); $selected=-1; - $searchform.=$form->selectArrayAjax('searchselectcombo', DOL_URL_ROOT.'/core/ajax/selectsearchbox.php', $selected, '', '', 0, 1, 'vmenusearchselectcombo', 1, $langs->trans("Search")); + $searchform.=$form->selectArrayAjax('searchselectcombo', DOL_URL_ROOT.'/core/ajax/selectsearchbox.php', $selected, '', '', 0, 1, 'vmenusearchselectcombo', 1, $langs->trans("Search"), 1); } else { @@ -1770,7 +1764,6 @@ function left_menu($menu_array_before, $helppagename='', $notused='', $menu_arra print "\n"; print ''."\n"; - if (empty($leftmenuwithoutmainarea)) main_area($title); } @@ -1892,6 +1885,7 @@ if (! function_exists("llxFooter")) /** * Show HTML footer * Close div /DIV data-role=page + /DIV class=fiche + /DIV /DIV main layout + /BODY + /HTML. + * If global var $delayedhtmlcontent was filled, we output it just before closing the body. * * @param string $comment A text to add as HTML comment into HTML generated page * @param string $zone 'private' (for private pages) or 'public' (for public pages) @@ -1900,7 +1894,8 @@ if (! function_exists("llxFooter")) function llxFooter($comment='',$zone='private') { global $conf, $langs; - + global $delayedhtmlcontent; + // Global html output events ($mesgs, $errors, $warnings) dol_htmloutput_events(); @@ -1937,6 +1932,18 @@ if (! function_exists("llxFooter")) //var_dump($langs); // Uncommment to see the property _tab_loaded to see which language file were loaded if (empty($conf->dol_hide_leftmenu) && empty($conf->dol_use_jmobile) && empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print ' '."\n"; // End div container + + if (! empty($delayedhtmlcontent)) print $delayedhtmlcontent; + + // Wrapper to show tooltips + print "\n\n"; + print '' . "\n"; + + print "\n"; print "\n"; } diff --git a/htdocs/margin/tabs/productMargins.php b/htdocs/margin/tabs/productMargins.php index 3b952b099ef..b409d0c752f 100644 --- a/htdocs/margin/tabs/productMargins.php +++ b/htdocs/margin/tabs/productMargins.php @@ -91,7 +91,7 @@ if ($id > 0 || ! empty($ref)) print ''; // Total Margin - print ''; diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index ba4dc432d36..3b653f9d919 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2207,7 +2207,7 @@ class Product extends CommonObject $sql.= " FROM ".MAIN_DB_PREFIX."facturedet as d, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= " WHERE f.rowid = d.fk_facture"; - $sql.= " AND d.fk_product =".$this->id; + if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id; $sql.= " AND f.fk_soc = s.rowid"; $sql.= " AND f.entity IN (".getEntity('facture', 1).")"; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; @@ -2236,7 +2236,7 @@ class Product extends CommonObject $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn_det as d, ".MAIN_DB_PREFIX."facture_fourn as f, ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= " WHERE f.rowid = d.fk_facture_fourn"; - $sql.= " AND d.fk_product =".$this->id; + if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id; $sql.= " AND f.fk_soc = s.rowid"; $sql.= " AND f.entity IN (".getEntity('facture_fourn', 1).")"; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; @@ -2265,7 +2265,7 @@ class Product extends CommonObject $sql.= " FROM ".MAIN_DB_PREFIX."propaldet as d, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= " WHERE p.rowid = d.fk_propal"; - $sql.= " AND d.fk_product =".$this->id; + if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id; $sql.= " AND p.fk_soc = s.rowid"; $sql.= " AND p.entity IN (".getEntity('propal', 1).")"; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; @@ -2292,7 +2292,7 @@ class Product extends CommonObject $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as d, ".MAIN_DB_PREFIX."commande as c, ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= " WHERE c.rowid = d.fk_commande"; - $sql.= " AND d.fk_product =".$this->id; + if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id; $sql.= " AND c.fk_soc = s.rowid"; $sql.= " AND c.entity IN (".getEntity('commande', 1).")"; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; @@ -2319,7 +2319,7 @@ class Product extends CommonObject $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as d, ".MAIN_DB_PREFIX."commande_fournisseur as c, ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= " WHERE c.rowid = d.fk_commande"; - $sql.= " AND d.fk_product =".$this->id; + if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id; $sql.= " AND c.fk_soc = s.rowid"; $sql.= " AND c.entity IN (".getEntity('commande_fournisseur', 1).")"; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; diff --git a/htdocs/product/document.php b/htdocs/product/document.php index 93a5c21862d..ecb3d12bb52 100644 --- a/htdocs/product/document.php +++ b/htdocs/product/document.php @@ -202,7 +202,7 @@ if ($object->id) print '
'; print '
'.$langs->trans("TotalMargin").''; + print '
'.$langs->trans("TotalMargin").''; print ''; // set by jquery (see below) print '
'; - print ''; + print ''; print ''; print '
'.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
'.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
'.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
'; diff --git a/htdocs/product/stats/card.php b/htdocs/product/stats/card.php index 5fe6d5a4be3..4203705cfee 100644 --- a/htdocs/product/stats/card.php +++ b/htdocs/product/stats/card.php @@ -38,7 +38,7 @@ $langs->load("products"); $langs->load("bills"); $langs->load("other"); -$id = GETPOST('id','int'); +$id = GETPOST('id','int'); // For this page, id can also be 'all' $ref = GETPOST('ref'); $mode = (GETPOST('mode') ? GETPOST('mode') : 'byunit'); $error = 0; @@ -56,16 +56,24 @@ $result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','', /* * View */ + $form = new Form($db); -if (! empty($id) || ! empty($ref)) +if (! empty($id) || ! empty($ref) || GETPOST('id') == 'all') { $object = new Product($db); - $result = $object->fetch($id,$ref); - - llxHeader("","",$langs->trans("CardProduct".$object->type)); - - if ($result) + if (! empty($id) || ! empty($ref)) + { + $result = $object->fetch($id,$ref); + llxHeader("",$langs->trans("CardProduct".$object->type)); + } + else + { + llxHeader("",$langs->trans("ProductStatistics")); + } + + + if ($result && (! empty($id) || ! empty($ref))) { $head=product_prepare_head($object); $titre=$langs->trans("CardProduct".$object->type); @@ -73,37 +81,18 @@ if (! empty($id) || ! empty($ref)) dol_fiche_head($head, 'stats', $titre, 0, $picto); - print ''; - - // Reference - print ''; - print ''; - print ''; - - // Label - print ''; - - // Status (to sell) - print ''; - - // Status (to buy) - print ''; - - print '
'.$langs->trans("Ref").''; - print $form->showrefnav($object,'ref','',1,'ref'); - print '
'.$langs->trans("Label").''.$object->label.'
'.$langs->trans("Status").' ('.$langs->trans("Sell").')'; - print $object->getLibStatut(2,0); - print '
'.$langs->trans("Status").' ('.$langs->trans("Buy").')'; - print $object->getLibStatut(2,1); - print '
'; - + dol_banner_tab($object, 'ref', '', ($user->societe_id?0:1), 'ref'); + dol_fiche_end(); - - + } + + + if ($result) + { // Choice of stats if (! empty($conf->dol_use_jmobile)) print "\n".'
'."\n"; - if ($mode == 'bynumber') print ''; + if ($mode == 'bynumber') print 'id).'&mode=byunit">'; else print img_picto('','tick').' '; print $langs->trans("StatsByNumberOfUnits"); if ($mode == 'bynumber') print ''; @@ -111,7 +100,7 @@ if (! empty($id) || ! empty($ref)) if (! empty($conf->dol_use_jmobile)) print '
'."\n".'
'."\n"; else print '   /   '; - if ($mode == 'byunit') print ''; + if ($mode == 'byunit') print 'id).'&mode=bynumber">'; else print img_picto('','tick').' '; print $langs->trans("StatsByNumberOfEntities"); if ($mode == 'byunit') print ''; @@ -237,13 +226,13 @@ if (! empty($id) || ! empty($ref)) if ($graphfiles[$key]['output'] && ! $px->isGraphKo()) { if (file_exists($dir."/".$graphfiles[$key]['file']) && filemtime($dir."/".$graphfiles[$key]['file'])) print ''.$langs->trans("GeneratedOn",dol_print_date(filemtime($dir."/".$graphfiles[$key]['file']),"dayhour")).''; - else print ''.$langs->trans("GeneratedOn",dol_print_date(dol_now()),"dayhour").''; + else print ''.$langs->trans("GeneratedOn",dol_print_date(dol_now(),"dayhour")).''; } else { print ''.($mesg?''.$mesg.'':$langs->trans("ChartNotGenerated")).''; } - print ''.img_picto($langs->trans("ReCalculate"),'refresh').''; + print 'id).'&action=recalcul&mode='.$mode.'">'.img_picto($langs->trans("ReCalculate"),'refresh').''; print ''; print ''; diff --git a/htdocs/product/stats/commande.php b/htdocs/product/stats/commande.php index cdf571d7c75..69334976141 100644 --- a/htdocs/product/stats/commande.php +++ b/htdocs/product/stats/commande.php @@ -81,6 +81,8 @@ if ($id > 0 || ! empty($ref)) $product = new Product($db); $result = $product->fetch($id, $ref); + $object = $product; + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -97,34 +99,22 @@ if ($id > 0 || ! empty($ref)) $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - print ''; - - // Reference - print ''; - print ''; - print ''; - - // Libelle - print ''; - print ''; - - // Status (to sell) - print ''; - - // Status (to buy) - print ''; + dol_banner_tab($object, 'ref', '', ($user->societe_id?0:1), 'ref'); + + print '
'; + + print '
'; + print '
'.$langs->trans("Ref").''; - print $form->showrefnav($product,'ref','',1,'ref'); - print '
'.$langs->trans("Label").''.$product->label.'
'.$langs->trans("Status").' ('.$langs->trans("Sell").')'; - print $product->getLibStatut(2,0); - print '
'.$langs->trans("Status").' ('.$langs->trans("Buy").')'; - print $product->getLibStatut(2,1); - print '
'; show_stats_for_company($product,$socid); print "
"; - print '
'; + print '
'; + print '
'; + + dol_fiche_end(); + if ($user->rights->commande->lire) { diff --git a/htdocs/product/stats/commande_fournisseur.php b/htdocs/product/stats/commande_fournisseur.php index ef5352892c6..83f0912b3ee 100644 --- a/htdocs/product/stats/commande_fournisseur.php +++ b/htdocs/product/stats/commande_fournisseur.php @@ -86,16 +86,17 @@ if ($id > 0 || ! empty($ref)) { $product = new Product($db); $result = $product->fetch($id, $ref); - $parameters = array ( - 'id' => $id - ); + $object = $product; + + $parameters = array ('id' => $id); $reshook = $hookmanager->executeHooks('doActions', $parameters, $product, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); llxHeader("", "", $langs->trans("CardProduct" . $product->type)); - if ($result > 0) { + if ($result > 0) + { $head = product_prepare_head($product); $titre = $langs->trans("CardProduct" . $product->type); $picto = ($product->type == Product::TYPE_SERVICE ? 'service' : 'product'); @@ -105,34 +106,22 @@ if ($id > 0 || ! empty($ref)) { if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - print ''; - - // Reference - print ''; - print ''; - print ''; - - // Libelle - print ''; - print ''; - - // Status (to sell) - print ''; - - // Status (to buy) - print ''; + dol_banner_tab($object, 'ref', '', ($user->societe_id?0:1), 'ref'); + + print '
'; + + print '
'; + print '
' . $langs->trans("Ref") . ''; - print $form->showrefnav($product, 'ref', '', 1, 'ref'); - print '
' . $langs->trans("Label") . '' . $product->label . '
' . $langs->trans("Status") . ' (' . $langs->trans("Sell") . ')'; - print $product->getLibStatut(2, 0); - print '
' . $langs->trans("Status") . ' (' . $langs->trans("Buy") . ')'; - print $product->getLibStatut(2, 1); - print '
'; show_stats_for_company($product, $socid); print "
"; - print ''; + print ''; + print '
'; + + dol_fiche_end(); + if ($user->rights->fournisseur->commande->lire) { diff --git a/htdocs/product/stats/contrat.php b/htdocs/product/stats/contrat.php index 9d4d7d53abc..c2e6b25f7ab 100644 --- a/htdocs/product/stats/contrat.php +++ b/htdocs/product/stats/contrat.php @@ -71,6 +71,8 @@ if ($id > 0 || ! empty($ref)) $product = new Product($db); $result = $product->fetch($id, $ref); + $object = $product; + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -87,34 +89,22 @@ if ($id > 0 || ! empty($ref)) $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - print ''; + dol_banner_tab($object, 'ref', '', ($user->societe_id?0:1), 'ref'); + + print '
'; + + print '
'; + print '
'; - // Reference - print ''; - print ''; - print ''; - - // Libelle - print ''; - print ''; - - // Status (to sell) - print ''; - - // Status (to buy) - print ''; - - show_stats_for_company($product,$socid); + show_stats_for_company($product,$socid); print "
'.$langs->trans("Ref").''; - print $form->showrefnav($product,'ref','',1,'ref'); - print '
'.$langs->trans("Label").''.$product->label.'
'.$langs->trans("Status").' ('.$langs->trans("Sell").')'; - print $product->getLibStatut(2,0); - print '
'.$langs->trans("Status").' ('.$langs->trans("Buy").')'; - print $product->getLibStatut(2,1); - print '
"; - print ''; + print ''; + print '
'; + + dol_fiche_end(); + $now=dol_now(); diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php index da39d5d67c1..590830702bb 100644 --- a/htdocs/product/stats/facture.php +++ b/htdocs/product/stats/facture.php @@ -81,7 +81,9 @@ if ($id > 0 || ! empty($ref)) { $product = new Product($db); $result = $product->fetch($id, $ref); - + + $object = $product; + $parameters=array('id'=>$id); $reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -98,34 +100,21 @@ if ($id > 0 || ! empty($ref)) $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - print ''; - - // Reference - print ''; - print ''; - print ''; - - // Libelle - print ''; - print ''; - - // Status (to sell) - print ''; - - // Status (to buy) - print ''; + dol_banner_tab($object, 'ref', '', ($user->societe_id?0:1), 'ref'); + + print '
'; + + print '
'; + print '
'.$langs->trans("Ref").''; - print $form->showrefnav($product,'ref','',1,'ref'); - print '
'.$langs->trans("Label").''.$product->label.'
'.$langs->trans("Status").' ('.$langs->trans("Sell").')'; - print $product->getLibStatut(2,0); - print '
'.$langs->trans("Status").' ('.$langs->trans("Buy").')'; - print $product->getLibStatut(2,1); - print '
'; show_stats_for_company($product,$socid); print "
"; - print ''; + print ''; + print '
'; + + dol_fiche_end(); if ($user->rights->facture->lire) diff --git a/htdocs/product/stats/facture_fournisseur.php b/htdocs/product/stats/facture_fournisseur.php index 3d5cbcbe455..27e5495a771 100644 --- a/htdocs/product/stats/facture_fournisseur.php +++ b/htdocs/product/stats/facture_fournisseur.php @@ -83,6 +83,8 @@ if ($id > 0 || ! empty($ref)) $product = new Product($db); $result = $product->fetch($id, $ref); + $object = $product; + $parameters = array('id' => $id); $reshook = $hookmanager->executeHooks('doActions', $parameters, $product, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -99,34 +101,22 @@ if ($id > 0 || ! empty($ref)) $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $product, $action); // Note that $action and $object may have been modified by hook if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - print ''; - - // Reference - print ''; - print ''; - print ''; - - // Libelle - print ''; - print ''; - - // Status (to sell) - print ''; - - // Status (to buy) - print ''; + dol_banner_tab($object, 'ref', '', ($user->societe_id?0:1), 'ref'); + + print '
'; + + print '
'; + print '
' . $langs->trans("Ref") . ''; - print $form->showrefnav($product, 'ref', '', 1, 'ref'); - print '
' . $langs->trans("Label") . '' . $product->label . '
' . $langs->trans("Status") . ' (' . $langs->trans("Sell") . ')'; - print $product->getLibStatut(2, 0); - print '
' . $langs->trans("Status") . ' (' . $langs->trans("Buy") . ')'; - print $product->getLibStatut(2, 1); - print '
'; show_stats_for_company($product, $socid); print "
"; - print ''; + print ''; + print '
'; + + dol_fiche_end(); + if ($user->rights->fournisseur->facture->lire) { diff --git a/htdocs/product/stats/propal.php b/htdocs/product/stats/propal.php index 44101d72e52..2fa69740e8b 100644 --- a/htdocs/product/stats/propal.php +++ b/htdocs/product/stats/propal.php @@ -81,6 +81,8 @@ if ($id > 0 || ! empty($ref)) $product = new Product($db); $result = $product->fetch($id, $ref); + $object = $product; + $parameters = array ('id' => $id); $reshook = $hookmanager->executeHooks('doActions', $parameters, $product, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -97,34 +99,22 @@ if ($id > 0 || ! empty($ref)) $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $product, $action); // Note that $action and $object may have been modified by hook if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - print ''; - - // Reference - print ''; - print ''; - print ''; - - // Libelle - print ''; - print ''; - - // Status (to sell) - print ''; - - // Status (to buy) - print ''; + dol_banner_tab($object, 'ref', '', ($user->societe_id?0:1), 'ref'); + + print '
'; + + print '
'; + print '
' . $langs->trans("Ref") . ''; - print $form->showrefnav($product, 'ref', '', 1, 'ref'); - print '
' . $langs->trans("Label") . '' . $product->label . '
' . $langs->trans("Status") . ' (' . $langs->trans("Sell") . ')'; - print $product->getLibStatut(2, 0); - print '
' . $langs->trans("Status") . ' (' . $langs->trans("Buy") . ')'; - print $product->getLibStatut(2, 1); - print '
'; show_stats_for_company($product, $socid); print "
"; - print ''; + print ''; + print '
'; + + dol_fiche_end(); + if ($user->rights->propale->lire) { diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index c37424e548b..093a364752c 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -399,14 +399,15 @@ if ($id > 0 || $ref) print '
'; print ''; - if ($conf->productbatch->enabled) { - print ''; } // PMP - print ''; + print ''; print ''; diff --git a/htdocs/public/test/test_forms.php b/htdocs/public/test/test_forms.php index f1c00f94acf..7fec8e895b6 100644 --- a/htdocs/public/test/test_forms.php +++ b/htdocs/public/test/test_forms.php @@ -68,7 +68,6 @@ print "Test 4d: a select with ajax refresh and with onchange call of url
\n"; $selected=-1; print $form->selectArrayAjax('testselectc', DOL_URL_ROOT.'/core/ajax/selectsearchbox.php', $selected, 'style="min-width: 250px;"', '', 0, 1, '', 1); - print '

'."\n"; // Test5a: form->select_thirdparty
'.$langs->trans("ManageLotSerial").''; + if ($conf->productbatch->enabled) + { + print '
'.$langs->trans("ManageLotSerial").''; print $object->getLibStatut(0,2); print '
'.$langs->trans("AverageUnitPricePMP").'
'.$langs->trans("AverageUnitPricePMP").''; if ($object->pmp > 0) print price($object->pmp).' '.$langs->trans("HT"); print '