$text_info .= '<br>'; } } } } if ($notshippable == 0) { $text_icon = img_picto('', 'object_sending'); $text_info = $langs->trans('Shippable') . '<br>' . $text_info; } else { $text_icon = img_picto('', 'error'); $text_info = $langs->trans('NonShippable') . '<br>' . $text_info; } } print '<td>'; if ($nbprod) { print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); } if ($warning) { print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders') . '<br>' . $text_warning, 2, 1, img_picto('', 'error'), '', 2); } print '</td>'; } // Warning late icon print '<td class="nobordernopadding nowrap">'; if ($generic_commande->hasDelay()) { print img_picto($langs->trans("Late"), "warning"); } if (!empty($objp->note_private)) { print ' <span class="note">'; print '<a href="' . DOL_URL_ROOT . '/commande/note.php?id=' . $objp->rowid . '">' . img_picto($langs->trans("ViewPrivateNote"), 'object_generic') . '</a>'; print '</span>';
print '<td>'; print '<a href="' . DOL_URL_ROOT . '/product/card.php?id=' . $line->fk_product . '">' . img_object($langs->trans("ShowProduct"), "product") . ' ' . $product->ref . '</a> - ' . $label; if ($line->description) { print nl2br($line->description); } print '</td>'; } else { print "<td>"; if ($line->fk_product_type == 1) { $text = img_object($langs->trans('Service'), 'service'); } else { $text = img_object($langs->trans('Product'), 'product'); } if (!empty($line->label)) { $text .= ' <strong>' . $line->label . '</strong>'; print $form->textwithtooltip($text, $line->description, 3, '', '', $i); } else { print $text . ' ' . nl2br($line->description); } print_date_range($lines[$i]->date_start, $lines[$i]->date_end); print "</td>\n"; } print '<td align="center">' . $line->qty . '</td>'; /* * */ print '<td align="center">'; $quantite_livree = $commande->livraisons[$line->id]; print $quantite_livree; print '</td>'; $quantite_commandee = $line->qty;
$defaultref = $modProject->getNextValue($soc,$project); } if (is_numeric($defaultref) && $defaultref <= 0) $defaultref=''; // Ref print '<tr><td><span class="fieldrequired">'.$langs->trans("Ref").'</span></td><td><input size="12" type="text" name="ref" value="'.($_POST["ref"]?$_POST["ref"]:$defaultref).'"></td></tr>'; // Label print '<tr><td><span class="fieldrequired">'.$langs->trans("Label").'</span></td><td><input size="30" type="text" name="title" value="'.$_POST["title"].'"></td></tr>'; // Customer print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>'; $text=$html->select_company(GETPOST("socid"),'socid','',1,1); $texthelp=$langs->trans("IfNeedToUseOhterObjectKeepEmpty"); print $html->textwithtooltip($text.' '.img_help(),$texthelp,1); print '</td></tr>'; // Public print '<tr><td>'.$langs->trans("Visibility").'</td><td>'; $array=array(0 => $langs->trans("PrivateProject"),1 => $langs->trans("SharedProject")); print $html->selectarray('public',$array,$project->public); print '</td></tr>'; // Date start print '<tr><td>'.$langs->trans("DateStart").'</td><td>'; print $html->select_date('','project'); print '</td></tr>'; // Date end print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
$var = !$var; print "<tr " . $bc[$var] . ">"; // Show product and description $type = isset($objp->product_type) ? $objp->product_type : $objp->fk_product_type; $product_static->fk_unit = $objp->fk_unit; if ($objp->fk_product > 0) { print '<td>'; print '<a name="' . $objp->rowid . '"></a>'; // ancre pour retourner sur la ligne // Show product and description $product_static->fetch($objp->fk_product); // We need all information later $text = $product_static->getNomUrl(1); $text .= ' - ' . (!empty($objp->custom_label) ? $objp->custom_label : $objp->product_label); $description = !empty($conf->global->PRODUIT_DESC_IN_FORM) ? '' : dol_htmlentitiesbr($objp->description); print $form->textwithtooltip($text, $description, 3, '', '', $i); // Show range print_date_range($db->jdate($objp->date_start), $db->jdate($objp->date_end)); // Add description in form if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { print !empty($objp->description) && $objp->description != $objp->product_label ? '<br>' . dol_htmlentitiesbr($objp->description) : ''; } print '</td>'; } else { print '<td>'; print '<a name="' . $objp->rowid . '"></a>'; // ancre pour retourner sur la ligne if ($type == 1) { $text = img_object($langs->trans('Service'), 'service'); } else { $text = img_object($langs->trans('Product'), 'product');
{ // Permission own by user if ($caneditperms) { print '<td align="center"><a href="perms.php?id='.$fuser->id.'&action=delrights&rights='.$obj->id.'#'.$objMod->getName().'">'.img_edit_remove($langs->trans("Remove")).'</a></td>'; } print '<td align="center" nowrap="nowrap">'; print img_tick(); print '</td>'; } else if (in_array($obj->id, $permsgroup)) { // Permission own by group if ($caneditperms) { print '<td align="center">'; print $form->textwithtooltip($langs->trans("Inherited"),$langs->trans("PermissionInheritedFromAGroup")); //print '<a href="'.DOL_URL_ROOT.'/user/fiche.php?id='.$fuser->id.'" title="'.$langs->trans("PermissionInheritedFromAGroup").'">'; print '</td>'; } print '<td align="center" nowrap="nowrap">'; print img_tick(); print '</td>'; } else { // Do not own permission if ($caneditperms) { print '<td align="center"><a href="perms.php?id='.$fuser->id.'&action=addrights&rights='.$obj->id.'#'.$objMod->getName().'">'.img_edit_add($langs->trans("Add")).'</a></td>'; } print '<td> </td>';
$valuetoshow = $langs->trans("UseLocalTax") . " 3"; $align = "center"; $sortable = 0; } if ($fieldlist[$field] == 'localtax2') { $valuetoshow = $langs->trans("Rate") . " 3"; } if ($fieldlist[$field] == 'organization') { $valuetoshow = $langs->trans("Organization"); } if ($fieldlist[$field] == 'lang') { $valuetoshow = $langs->trans("Language"); } if ($fieldlist[$field] == 'type') { if ($tabname[$id] == MAIN_DB_PREFIX . "c_paiement") { $valuetoshow = $form->textwithtooltip($langs->trans("Type"), $langs->trans("TypePaymentDesc"), 2, 1, img_help(1, '')); } else { $valuetoshow = $langs->trans("Type"); } } if ($fieldlist[$field] == 'code') { $valuetoshow = $langs->trans("Code"); } if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') { $valuetoshow = $langs->trans("Label"); if ($id != 25) { $valuetoshow .= "*"; } } if ($fieldlist[$field] == 'libelle_facture') { $valuetoshow = $langs->trans("LabelOnDocuments") . "*";
/** * Show an HTML header + a BODY + The top menu bar * * @param string $head Lines in the HEAD * @param string $title Title of web page * @param string $target Target to use in menu links (Example: '' or '_top') * @param int $disablejs Do not output links to js (Ex: qd fonction utilisee par sous formulaire Ajax) * @param int $disablehead Do not output head section * @param array $arrayofjs Array of js files to add in header * @param array $arrayofcss Array of css files to add in header * @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails) * @return void */ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '') { global $user, $conf, $langs, $db; global $dolibarr_main_authentication, $dolibarr_main_demo; global $hookmanager, $menumanager; // Instantiate hooks of thirdparty module $hookmanager->initHooks(array('toprightmenu')); $toprightmenu = ''; // For backward compatibility with old modules if (empty($conf->headerdone)) { top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); } print '<body id="mainbody">'; if ($conf->use_javascript_ajax) { if (empty($conf->dol_use_jmobile) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<script type="text/javascript"> jQuery(document).ready(function () { jQuery("body").layout(layoutSettings); }); var layoutSettings = { name: "mainlayout", defaults: { useStateCookie: true, size: "auto", resizable: false, //paneClass: "none", //resizerClass: "resizer", //togglerClass: "toggler", //buttonClass: "button", //contentSelector: ".content", //contentIgnoreSelector: "span", togglerTip_open: "Close This Pane", togglerTip_closed: "Open This Pane", resizerTip: "Resize This Pane", fxSpeed: "fast" }, west: { paneClass: "leftContent", //spacing_closed: 14, //togglerLength_closed: 14, //togglerAlign_closed: "auto", //togglerLength_open: 0, // effect defaults - overridden on some panes //slideTrigger_open: "mouseover", initClosed: ' . (empty($conf->dol_optimize_smallscreen) ? 'false' : 'true') . ', fxName: "drop", fxSpeed: "fast", fxSettings: { easing: "" } }, north: { paneClass: "none", resizerClass: "none", togglerClass: "none", spacing_open: 0, togglerLength_open: 0, togglerLength_closed: -1, slidable: false, fxName: "none", fxSpeed: "fast" }, center: { paneSelector: "#mainContent" } } </script>'; } // Wrapper to show tooltips print "\n" . '<script type="text/javascript"> jQuery(document).ready(function () { jQuery(".classfortooltip").tipTip({maxWidth: "' . dol_size(600, 'width') . 'px", edgeOffset: 10, delay: 50, fadeIn: 50, fadeOut: 50}); }); </script>'; } /* * Top menu */ print "\n" . '<!-- Start top horizontal -->' . "\n"; if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div class="ui-layout-north"> <!-- Begin top layout -->' . "\n"; } if (empty($conf->dol_hide_topmenu)) { print '<div class="side-nav-vert"><div id="id-top">'; // Show menu entries print '<div id="tmenu_tooltip' . (empty($conf->global->MAIN_MENU_INVERT) ? '' : 'invert') . '" class="tmenu">' . "\n"; $menumanager->atarget = $target; $menumanager->showmenu('top'); // This contains a \n print "</div>\n"; $form = new Form($db); // Define link to login card $appli = 'Dolibarr'; if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { $appli = $conf->global->MAIN_APPLICATION_TITLE; if (preg_match('/\\d\\.\\d/', $appli)) { if (!preg_match('/' . preg_quote(DOL_VERSION) . '/', $appli)) { $appli .= " (" . DOL_VERSION . ")"; } // If new title contains a version that is different than core } else { $appli .= " " . DOL_VERSION; } } else { $appli .= " " . DOL_VERSION; } if (!empty($conf->global->MAIN_FEATURES_LEVEL)) { $appli .= "<br>" . $langs->trans("LevelOfFeature") . ': ' . $conf->global->MAIN_FEATURES_LEVEL; } $logouttext = ''; $logouthtmltext = $appli . '<br>'; if ($_SESSION["dol_authmode"] != 'forceuser' && $_SESSION["dol_authmode"] != 'http') { $logouthtmltext .= $langs->trans("Logout") . '<br>'; $logouttext .= '<a href="' . DOL_URL_ROOT . '/user/logout.php">'; $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout.png', 'class="login"', 0, 0, 1); $logouttext .= '</a>'; } else { $logouthtmltext .= $langs->trans("NoLogoutProcessWithAuthMode", $_SESSION["dol_authmode"]); $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout.png', 'class="login"', 0, 0, 1); } print '<div class="login_block">' . "\n"; // Add login user link $toprightmenu .= '<div class="login_block_user">'; // User photo $toprightmenu .= '<div class="inline-block nowrap"><div class="inline-block login_block_elem" style="padding: 0px;">'; $toprightmenu .= $user->getPhotoUrl(16, 16, 'loginphoto'); $toprightmenu .= '</div></div>'; // Login name with tooltip $toprightmenu .= '<div class="inline-block nowrap"><div class="inline-block login_block_elem" style="padding: 0px;">'; $toprightmenu .= $user->getNomurl(0, '', true, 0, 11); $toprightmenu .= '</div></div>'; $toprightmenu .= '</div>'; $toprightmenu .= '<div class="login_block_other">'; // Execute hook printTopRightMenu (hooks should output string like '<div class="login"><a href="">mylink</a></div>') $parameters = array(); $result = $hookmanager->executeHooks('printTopRightMenu', $parameters); // Note that $action and $object may have been modified by some hooks if (is_numeric($result)) { if (empty($result)) { $toprightmenu .= $hookmanager->resPrint; } else { $toprightmenu = $hookmanager->resPrint; } // replace } else { $toprightmenu .= $result; } // For backward compatibility // Link to print main content area if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->browser->phone)) { $qs = $_SERVER["QUERY_STRING"]; $qs .= ($qs && $morequerystring ? '&' : '') . $morequerystring; $text = '<a href="' . $_SERVER["PHP_SELF"] . '?' . $qs . ($qs ? '&' : '') . 'optioncss=print" target="_blank">'; $text .= img_picto(":" . $langs->trans("PrintContentArea"), 'printer.png', 'class="printer"'); $text .= '</a>'; $toprightmenu .= $form->textwithtooltip('', $langs->trans("PrintContentArea"), 2, 1, $text, 'login_block_elem', 2); } // Logout link $toprightmenu .= $form->textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem', 2); $toprightmenu .= '</div>'; print $toprightmenu; print "</div>\n"; print '</div></div>'; unset($form); } if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print "</div><!-- End top layout -->\n"; } print '<div style="clear: both;"></div>'; print "<!-- End top horizontal menu -->\n\n"; if (empty($conf->dol_hide_leftmenu) && empty($conf->dol_use_jmobile) && empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div id="id-container">'; } }
$productstatic->type = $objp->ptype; $productstatic->ref = $objp->pref; $text = $productstatic->getNomUrl(1, '', 20); if ($objp->label) { $text .= ' - '; $productstatic->ref = $objp->label; $text .= $productstatic->getNomUrl(0, '', 16); } $description = $objp->description; // Add description in form if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { $text .= !empty($objp->description) && $objp->description != $objp->product_label ? '<br>' . dol_htmlentitiesbr($objp->description) : ''; $description = ''; // Already added into main visible desc } echo $form->textwithtooltip($text, $description, 3, '', '', $cursorline, 0, !empty($line->fk_parent_line) ? img_picto('', 'rightarrow') : ''); print '</td>'; } else { print '<td>' . dol_htmlentitiesbr($objp->description) . "</td>\n"; } // TVA print '<td align="center">' . vatrate($objp->tva_tx, '%', $objp->info_bits) . '</td>'; // Prix print '<td align="right">' . ($objp->subprice != '' ? price($objp->subprice) : '') . "</td>\n"; // Quantite print '<td align="center">' . $objp->qty . '</td>'; // Unit if ($conf->global->PRODUCT_USE_UNITS) { print '<td align="left">' . $langs->trans($object->lines[$cursorline - 1]->getLabelOfUnit()) . '</td>'; } // Remise
$var=!$var; print "<tr ".$bc[$var].'><td width=\"300\">=> price2num('."'1 234.56')</td><td>".price2num("1 234.56",'2')."</td>"; print "</tr>\n"; } $var=!$var; print '<tr '.$bc[$var].'><td width="300">=> price(1234.56)</td><td>'.price(1234.56).'</td>'; // Timezone $txt =$langs->trans("OSTZ").' (variable system TZ): '.($_ENV["TZ"]?$_ENV["TZ"]:$langs->trans("NotDefined")).'<br>'."\n"; $txt.=$langs->trans("PHPTZ").' (php.ini date.timezone): '.(ini_get("date.timezone")?ini_get("date.timezone"):$langs->trans("NotDefined")).''."\n"; // date.timezone must be in valued defined in http://fr3.php.net/manual/en/timezones.europe.php if (function_exists('date_default_timezone_get')) { $var=!$var; print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("CurrentTimeZone").'</td><td>'; // Timezone server PHP $a=date_default_timezone_get(); $a.=' ('.(-dol_mktime(0,0,0,1,1,1970)>0?'+':'').(-dol_mktime(0,0,0,1,1,1970)).')'; print $form->textwithtooltip($a,$txt,2,1,img_info('')); print '</td></tr>'."\n"; // value defined in http://fr3.php.net/manual/en/timezones.europe.php } else { $var=!$var; print '<tr '.$bc[$var].'><td width="300">'.$langs->trans("PHPServerOffsetWithGreenwich").'</td><td>'; $a=(-dol_mktime(0,0,0,1,1,1970)>0?'+':'').(-dol_mktime(0,0,0,1,1,1970)); print $form->textwithtooltip($a,$txt,2,1,img_info('')); print '</td></tr>'."\n"; } $var=!$var; print '<tr '.$bc[$var].'><td width="300">=> '.$langs->trans("CurrentHour").'</td><td>'.dol_print_date(dol_now(),'dayhour','tzserver').'</td></tr>'."\n"; $var=!$var; print '<tr '.$bc[$var].'><td width="300">=> dol_print_date(0,"dayhourtext")</td><td>'.dol_print_date(0,"dayhourtext").'</td>'; $var=!$var;
/** * Show an HTML header + a BODY + The top menu bar * * @param string $head Lines in the HEAD * @param string $title Title of web page * @param string $target Target to use in menu links (Example: '' or '_top') * @param int $disablejs Do not output links to js (Ex: qd fonction utilisee par sous formulaire Ajax) * @param int $disablehead Do not output head section * @param array $arrayofjs Array of js files to add in header * @param array $arrayofcss Array of css files to add in header * @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails) * @param string $helppagename Name of wiki page for help ('' by default). * Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage * For other external page: http://server/url * @return void */ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $helppagename = '') { global $user, $conf, $langs, $db; global $dolibarr_main_authentication, $dolibarr_main_demo; global $hookmanager, $menumanager; // Instantiate hooks of thirdparty module $hookmanager->initHooks(array('toprightmenu')); $toprightmenu = ''; // For backward compatibility with old modules if (empty($conf->headerdone)) { top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); } print '<body id="mainbody">' . "\n"; if ($conf->use_javascript_ajax) { if (empty($conf->dol_use_jmobile) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<script type="text/javascript"> jQuery(document).ready(function () { jQuery("body").layout(layoutSettings); }); var layoutSettings = { name: "mainlayout", defaults: { useStateCookie: true, size: "auto", resizable: false, //paneClass: "none", //resizerClass: "resizer", //togglerClass: "toggler", //buttonClass: "button", //contentSelector: ".content", //contentIgnoreSelector: "span", togglerTip_open: "Close This Pane", togglerTip_closed: "Open This Pane", resizerTip: "Resize This Pane", fxSpeed: "fast" }, west: { paneClass: "leftContent", //spacing_closed: 14, //togglerLength_closed: 14, //togglerAlign_closed: "auto", //togglerLength_open: 0, // effect defaults - overridden on some panes //slideTrigger_open: "mouseover", initClosed: ' . (empty($conf->dol_optimize_smallscreen) ? 'false' : 'true') . ', fxName: "drop", fxSpeed: "fast", fxSettings: { easing: "" } }, north: { paneClass: "none", resizerClass: "none", togglerClass: "none", spacing_open: 0, togglerLength_open: 0, togglerLength_closed: -1, slidable: false, fxName: "none", fxSpeed: "fast" }, center: { paneSelector: "#mainContent" } } </script>' . "\n"; } // Raven.js for client-side Sentry logging support if (array_key_exists('mod_syslog_sentry', $conf->loghandlers) && !empty($conf->global->SYSLOG_SENTRY_DSN)) { // Filter out secret key $dsn = parse_url($conf->global->SYSLOG_SENTRY_DSN); $public_dsn = $dsn['scheme'] . '://' . $dsn['user'] . '@' . $dsn['host'] . $dsn['path']; print '<script type="text/javascript">' . "\n"; print "Raven.config('" . $public_dsn . "').install()\n"; print "Raven.setUserContext({username: '******'})\n"; print "Raven.setTagsContext({version: '" . DOL_VERSION . "'})\n"; print "</script>\n"; } } /* * Top menu */ print "\n" . '<!-- Start top horizontal -->' . "\n"; if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div class="ui-layout-north"> <!-- Begin top layout -->' . "\n"; } if (empty($conf->dol_hide_topmenu)) { print '<div class="side-nav-vert"><div id="id-top">'; // Show menu entries print '<div id="tmenu_tooltip' . (empty($conf->global->MAIN_MENU_INVERT) ? '' : 'invert') . '" class="tmenu">' . "\n"; $menumanager->atarget = $target; $menumanager->showmenu('top'); // This contains a \n print "</div>\n"; //$form=new Form($db); // Define link to login card $appli = constant('DOL_APPLICATION_TITLE'); if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { $appli = $conf->global->MAIN_APPLICATION_TITLE; if (preg_match('/\\d\\.\\d/', $appli)) { if (!preg_match('/' . preg_quote(DOL_VERSION) . '/', $appli)) { $appli .= " (" . DOL_VERSION . ")"; } // If new title contains a version that is different than core } else { $appli .= " " . DOL_VERSION; } } else { $appli .= " " . DOL_VERSION; } if (!empty($conf->global->MAIN_FEATURES_LEVEL)) { $appli .= "<br>" . $langs->trans("LevelOfFeature") . ': ' . $conf->global->MAIN_FEATURES_LEVEL; } $logouttext = ''; $logouthtmltext = $appli . '<br>'; if ($_SESSION["dol_authmode"] != 'forceuser' && $_SESSION["dol_authmode"] != 'http') { $logouthtmltext .= $langs->trans("Logout") . '<br>'; $logouttext .= '<a href="' . DOL_URL_ROOT . '/user/logout.php">'; $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout_top.png', 'class="login"', 0, 0, 1); $logouttext .= '</a>'; } else { $logouthtmltext .= $langs->trans("NoLogoutProcessWithAuthMode", $_SESSION["dol_authmode"]); $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout_top.png', 'class="login"', 0, 0, 1); } print '<div class="login_block">' . "\n"; // Add login user link $toprightmenu .= '<div class="login_block_user">'; // Login name with photo and tooltip $mode = -1; $toprightmenu .= '<div class="inline-block nowrap"><div class="inline-block login_block_elem login_block_elem_name" style="padding: 0px;">'; $toprightmenu .= $user->getNomUrl($mode, '', true, 0, 11, 0, $user->firstname ? 'firstname' : -1, 'atoplogin'); $toprightmenu .= '</div></div>'; $toprightmenu .= '</div>'; $toprightmenu .= '<div class="login_block_other">'; // Execute hook printTopRightMenu (hooks should output string like '<div class="login"><a href="">mylink</a></div>') $parameters = array(); $result = $hookmanager->executeHooks('printTopRightMenu', $parameters); // Note that $action and $object may have been modified by some hooks if (is_numeric($result)) { if (empty($result)) { $toprightmenu .= $hookmanager->resPrint; } else { $toprightmenu = $hookmanager->resPrint; } // replace } else { $toprightmenu .= $result; } // For backward compatibility // Link to print main content area if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->browser->phone)) { $qs = $_SERVER["QUERY_STRING"]; $qs .= ($qs && $morequerystring ? '&' : '') . $morequerystring; $text = '<a href="' . $_SERVER["PHP_SELF"] . '?' . $qs . ($qs ? '&' : '') . 'optioncss=print" target="_blank">'; $text .= img_picto(":" . $langs->trans("PrintContentArea"), 'printer_top.png', 'class="printer"'); $text .= '</a>'; $toprightmenu .= Form::textwithtooltip('', $langs->trans("PrintContentArea"), 2, 1, $text, 'login_block_elem', 2); } // Link to Dolibarr wiki pages if (empty($conf->global->MAIN_HELP_DISABLELINK)) { $langs->load("help"); $helpbaseurl = ''; $helppage = ''; $mode = ''; if (empty($helppagename)) { $helppagename = 'EN:User_documentation|FR:Documentation_utilisateur|ES:Documentación_usuarios'; } // Get helpbaseurl, helppage and mode from helppagename and langs $arrayres = getHelpParamFor($helppagename, $langs); $helpbaseurl = $arrayres['helpbaseurl']; $helppage = $arrayres['helppage']; $mode = $arrayres['mode']; // Link to help pages if ($helpbaseurl && $helppage) { $text = ''; $title = ''; //$text.='<div id="blockvmenuhelpwiki" class="blockvmenuhelp">'; $title .= $langs->trans($mode == 'wiki' ? 'GoToWikiHelpPage' : 'GoToHelpPage'); if ($mode == 'wiki') { $title .= ' - ' . $langs->trans("PageWiki") . ' "' . dol_escape_htmltag(strtr($helppage, '_', ' ')) . '"'; } $text .= '<a class="help" target="_blank" href="'; if ($mode == 'wiki') { $text .= sprintf($helpbaseurl, urlencode(html_entity_decode($helppage))); } else { $text .= sprintf($helpbaseurl, $helppage); } $text .= '">'; $text .= img_picto('', 'helpdoc_top') . ' '; //$toprightmenu.=$langs->trans($mode == 'wiki' ? 'OnlineHelp': 'Help'); //if ($mode == 'wiki') $text.=' ('.dol_trunc(strtr($helppage,'_',' '),8).')'; $text .= '</a>'; //$toprightmenu.='</div>'."\n"; $toprightmenu .= Form::textwithtooltip('', $title, 2, 1, $text, 'login_block_elem', 2); } } // Logout link $toprightmenu .= Form::textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem', 2); $toprightmenu .= '</div>'; print $toprightmenu; print "</div>\n"; print '</div></div>'; //unset($form); } if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print "</div><!-- End top layout -->\n"; } print '<div style="clear: both;"></div>'; print "<!-- End top horizontal menu -->\n\n"; if (empty($conf->dol_hide_leftmenu) && empty($conf->dol_use_jmobile) && empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div id="id-container">'; } }
// date.timezone must be in valued defined in http://fr3.php.net/manual/en/timezones.europe.php $txt .= $langs->trans("Dolibarr constant MAIN_SERVER_TZ") . ': ' . (empty($conf->global->MAIN_SERVER_TZ) ? $langs->trans("NotDefined") : $conf->global->MAIN_SERVER_TZ); //$txt.=$langs->trans("YouCanEditPHPTZ"); // deprecated $var = !$var; print '<tr ' . $bc[$var] . '><td width="300">' . $langs->trans("CurrentTimeZone") . '</td><td>'; // Timezone server PHP $a = getServerTimeZoneInt('now'); $b = getServerTimeZoneInt('winter'); $c = getServerTimeZoneInt('summer'); $daylight = is_numeric($c) && is_numeric($b) ? round($c - $b) : 'unknown'; //print $a." ".$b." ".$c." ".$daylight; $val = ($a >= 0 ? '+' : '') . $a; $val .= ' (' . ($a === 'unknown' ? 'unknown' : ($a >= 0 ? '+' : '') . $a * 3600) . ')'; $val .= ' ' . getServerTimeZoneString(); $val .= ' ' . $langs->trans("DaylingSavingTime") . ': ' . ($daylight === 'unknown' ? 'unknown' : ($a == $c ? yn($daylight) : yn(0) . ($daylight ? ' (' . $langs->trans('YesInSummer') . ')' : ''))); print $form->textwithtooltip($val, $txt, 2, 1, img_info('')); print '</td></tr>' . "\n"; // value defined in http://fr3.php.net/manual/en/timezones.europe.php $var = !$var; print '<tr ' . $bc[$var] . '><td width="300"> => ' . $langs->trans("CurrentHour") . '</td><td>' . dol_print_date(dol_now(), 'dayhour', 'tzserver') . '</td></tr>' . "\n"; $var = !$var; print '<tr ' . $bc[$var] . '><td width="300"> => dol_print_date(0,"dayhourtext")</td><td>' . dol_print_date(0, "dayhourtext") . '</td>'; $var = !$var; print '<tr ' . $bc[$var] . '><td width="300"> => dol_get_first_day(1970,1,false)</td><td>' . dol_get_first_day(1970, 1, false) . ' (=> dol_print_date() or idate() of this value = ' . dol_print_date(dol_get_first_day(1970, 1, false), 'dayhour') . ')</td>'; $var = !$var; print '<tr ' . $bc[$var] . '><td width="300"> => dol_get_first_day(1970,1,true)</td><td>' . dol_get_first_day(1970, 1, true) . ' (=> dol_print_date() or idate() of this value = ' . dol_print_date(dol_get_first_day(1970, 1, true), 'dayhour') . ')</td>'; // Database timezone if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') { $var = !$var; print '<tr ' . $bc[$var] . '><td width="300">' . $langs->trans("MySQLTimeZone") . ' (database)</td><td>'; // Timezone server base
echo ($txt ? ' - ' : '') . $langs->transnoentities("DiscountFromCreditNote", $discount->getNomUrl(0)); } elseif ($objp->description == '(DEPOSIT)' && $objp->fk_remise_except > 0) { $discount = new DiscountAbsolute($db); $discount->fetch($objp->fk_remise_except); echo ($txt ? ' - ' : '') . $langs->transnoentities("DiscountFromDeposit", $discount->getNomUrl(0)); // Add date of deposit if (!empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) { echo ' (' . dol_print_date($discount->datec) . ')'; } } else { echo ($txt ? ' - ' : '') . dol_htmlentitiesbr($objp->description); } } } else { if ($objp->fk_product > 0) { echo $form->textwithtooltip($text, $description, 3, '', '', $i, 0, ''); // Show range echo get_date_range($objp->date_start, $objp->date_end); // Add description in form if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { print !empty($objp->description) && $objp->description != $objp->product_label ? '<br>' . dol_htmlentitiesbr($objp->description) : ''; } } else { //if (! empty($objp->fk_parent_line)) echo img_picto('', 'rightarrow'); if ($type == 1) { $text = img_object($langs->trans('Service'), 'service'); } else { $text = img_object($langs->trans('Product'), 'product'); } if (!empty($objp->label)) { $text .= ' <strong>' . $objp->label . '</strong>';
/** * Show an HTML header + a BODY + The top menu bar * * @param string $head Lines in the HEAD * @param string $title Title of web page * @param string $target Target to use in menu links (Example: '' or '_top') * @param int $disablejs Do not output links to js (Ex: qd fonction utilisee par sous formulaire Ajax) * @param int $disablehead Do not output head section * @param array $arrayofjs Array of js files to add in header * @param array $arrayofcss Array of css files to add in header * @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails) * @return void */ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '') { global $user, $conf, $langs, $db; global $dolibarr_main_authentication, $dolibarr_main_demo; global $hookmanager, $menumanager; // Instantiate hooks of thirdparty module $hookmanager->initHooks(array('toprightmenu')); $toprightmenu = ''; // For backward compatibility with old modules if (empty($conf->headerdone)) { top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); } print '<body id="mainbody">'; if ($conf->use_javascript_ajax) { if (empty($conf->dol_use_jmobile) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<script type="text/javascript"> jQuery(document).ready(function () { jQuery("body").layout(layoutSettings); }); var layoutSettings = { name: "mainlayout", defaults: { useStateCookie: true, size: "auto", resizable: false, //paneClass: "none", //resizerClass: "resizer", //togglerClass: "toggler", //buttonClass: "button", //contentSelector: ".content", //contentIgnoreSelector: "span", togglerTip_open: "Close This Pane", togglerTip_closed: "Open This Pane", resizerTip: "Resize This Pane", fxSpeed: "fast" }, west: { paneClass: "leftContent", //spacing_closed: 14, //togglerLength_closed: 14, //togglerAlign_closed: "auto", //togglerLength_open: 0, // effect defaults - overridden on some panes //slideTrigger_open: "mouseover", initClosed: ' . (empty($conf->dol_optimize_smallscreen) ? 'false' : 'true') . ', fxName: "drop", fxSpeed: "fast", fxSettings: { easing: "" } }, north: { paneClass: "none", resizerClass: "none", togglerClass: "none", spacing_open: 0, togglerLength_open: 0, togglerLength_closed: -1, slidable: false, fxName: "none", fxSpeed: "fast" }, center: { paneSelector: "#mainContent" } } </script>'; } // Wrapper to show tooltips print "\n" . '<script type="text/javascript"> jQuery(document).ready(function () { jQuery(function() { jQuery(".classfortooltip").tipTip({maxWidth: "' . dol_size(600, 'width') . 'px", edgeOffset: 10, delay: 50, fadeIn: 50, fadeOut: 50}); }); }); </script>'; } /* * Top menu */ print "\n" . '<!-- Start top horizontal -->' . "\n"; if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div class="ui-layout-north"> <!-- Begin top layout -->' . "\n"; } if (empty($conf->dol_hide_topmenu)) { // Show menu entries print '<div id="tmenu_tooltip' . (empty($conf->global->MAIN_MENU_INVERT) ? '' : 'invert') . '" class="tmenu">' . "\n"; $menumanager->atarget = $target; $menumanager->showmenu('top'); // This contains a \n print "</div>\n"; $form = new Form($db); // Define link to login card $loginhtmltext = ''; $logintext = ''; if ($user->societe_id) { $thirdpartystatic = new Societe($db); $thirdpartystatic->fetch($user->societe_id); $companylink = ' (' . $thirdpartystatic->getNomUrl('', '') . ')'; $company = ' (' . $langs->trans("Company") . ': ' . $thirdpartystatic->name . ')'; } $logintext = '<div class="login"><a href="' . DOL_URL_ROOT . '/user/card.php?id=' . $user->id . '"'; $logintext .= $target ? ' target="' . $target . '"' : ''; $logintext .= '>' . $user->login . '</a>'; if ($user->societe_id) { $logintext .= $companylink; } $logintext .= '</div>'; $loginhtmltext .= '<u>' . $langs->trans("User") . '</u>'; $loginhtmltext .= '<br><b>' . $langs->trans("Name") . '</b>: ' . $user->getFullName($langs); $loginhtmltext .= '<br><b>' . $langs->trans("Login") . '</b>: ' . $user->login; $loginhtmltext .= '<br><b>' . $langs->trans("EMail") . '</b>: ' . $user->email; $loginhtmltext .= '<br><b>' . $langs->trans("Administrator") . '</b>: ' . yn($user->admin); $type = $user->societe_id ? $langs->trans("External") . $company : $langs->trans("Internal"); $loginhtmltext .= '<br><b>' . $langs->trans("Type") . '</b>: ' . $type; $loginhtmltext .= '<br><b>' . $langs->trans("IPAddress") . '</b>: ' . $_SERVER["REMOTE_ADDR"]; $loginhtmltext .= '<br>'; $loginhtmltext .= '<br><u>' . $langs->trans("Connection") . '</u>'; if (!empty($conf->global->MAIN_MODULE_MULTICOMPANY)) { $loginhtmltext .= '<br><b>' . $langs->trans("ConnectedOnMultiCompany") . '</b>: ' . $conf->entity . ' (user entity ' . $user->entity . ')'; } $loginhtmltext .= '<br><b>' . $langs->trans("AuthenticationMode") . '</b>: ' . $_SESSION["dol_authmode"] . (empty($dolibarr_main_demo) ? '' : ' (demo)'); $loginhtmltext .= '<br><b>' . $langs->trans("ConnectedSince") . '</b>: ' . dol_print_date($user->datelastlogin, "dayhour"); $loginhtmltext .= '<br><b>' . $langs->trans("PreviousConnexion") . '</b>: ' . dol_print_date($user->datepreviouslogin, "dayhour"); $loginhtmltext .= '<br><b>' . $langs->trans("CurrentTheme") . '</b>: ' . $conf->theme; $loginhtmltext .= '<br><b>' . $langs->trans("CurrentMenuManager") . '</b>: ' . $menumanager->name; $s = picto_from_langcode($langs->getDefaultLang()); $loginhtmltext .= '<br><b>' . $langs->trans("CurrentUserLanguage") . '</b>: ' . ($s ? $s . ' ' : '') . $langs->getDefaultLang(); $loginhtmltext .= '<br><b>' . $langs->trans("Browser") . '</b>: ' . $conf->browser->name . ($conf->browser->version ? ' ' . $conf->browser->version : '') . ' (' . $_SERVER['HTTP_USER_AGENT'] . ')'; if (!empty($conf->browser->phone)) { $loginhtmltext .= '<br><b>' . $langs->trans("Phone") . '</b>: ' . $conf->browser->phone; } if (!empty($_SESSION["disablemodules"])) { $loginhtmltext .= '<br><b>' . $langs->trans("DisabledModules") . '</b>: <br>' . join(', ', explode(',', $_SESSION["disablemodules"])); } $appli = 'Dolibarr'; if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { $appli = $conf->global->MAIN_APPLICATION_TITLE; if (preg_match('/\\d\\.\\d/', $appli)) { if (!preg_match('/' . preg_quote(DOL_VERSION) . '/', $appli)) { $appli .= " (" . DOL_VERSION . ")"; } // If new title contains a version that is different than core } else { $appli .= " " . DOL_VERSION; } } else { $appli .= " " . DOL_VERSION; } if (!empty($conf->global->MAIN_FEATURES_LEVEL)) { $appli .= "<br>" . $langs->trans("LevelOfFeature") . ': ' . $conf->global->MAIN_FEATURES_LEVEL; } $logouttext = ''; $logouthtmltext = $appli . '<br>'; if ($_SESSION["dol_authmode"] != 'forceuser' && $_SESSION["dol_authmode"] != 'http') { $logouthtmltext .= $langs->trans("Logout") . '<br>'; $logouttext .= '<a href="' . DOL_URL_ROOT . '/user/logout.php">'; $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout.png', 'class="login"', 0, 0, 1); $logouttext .= '</a>'; } else { $logouthtmltext .= $langs->trans("NoLogoutProcessWithAuthMode", $_SESSION["dol_authmode"]); $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout.png', 'class="login"', 0, 0, 1); } print '<div class="login_block">' . "\n"; $toprightmenu .= '<div class="login_block_user">'; // Add login user link $toprightmenu .= $form->textwithtooltip('', $loginhtmltext, 2, 1, $logintext, 'login_block_elem2', 2); // This include div class="login" $toprightmenu .= '</div>'; $toprightmenu .= '<div class="login_block_other">'; // Execute hook printTopRightMenu (hooks should output string like '<div class="login"><a href="">mylink</a></div>') $parameters = array(); $result = $hookmanager->executeHooks('printTopRightMenu', $parameters); // Note that $action and $object may have been modified by some hooks if (is_numeric($result)) { if (empty($result)) { $toprightmenu .= $hookmanager->resPrint; } else { $toprightmenu = $hookmanager->resPrint; } // replace } else { $toprightmenu .= $result; } // For backward compatibility // Logout link $toprightmenu .= $form->textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem', 2); // Link to print main content area if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->browser->phone)) { $qs = $_SERVER["QUERY_STRING"]; $qs .= ($qs && $morequerystring ? '&' : '') . $morequerystring; $text = '<a href="' . $_SERVER["PHP_SELF"] . '?' . $qs . ($qs ? '&' : '') . 'optioncss=print" target="_blank">'; $text .= img_picto(":" . $langs->trans("PrintContentArea"), 'printer.png', 'class="printer"'); $text .= '</a>'; $toprightmenu .= $form->textwithtooltip('', $langs->trans("PrintContentArea"), 2, 1, $text, 'login_block_elem', 2); } $toprightmenu .= '</div>'; print $toprightmenu; print "</div>\n"; unset($form); } if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print "</div><!-- End top layout -->\n"; } print '<div style="clear: both;"></div>'; print "<!-- End top horizontal menu -->\n\n"; if (empty($conf->dol_hide_leftmenu) && empty($conf->dol_use_jmobile) && empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div id="id-container">'; } }
print '<tr><td>' . $langs->trans('AmountVAT') . '</td><td>' . price($object->total_tva, 1, $langs, 0, -1, -1, $conf->currency) . '</td><td colspan="2" align="left">'; if (GETPOST('calculationrule')) { $calculationrule = GETPOST('calculationrule', 'alpha'); } else { $calculationrule = empty($conf->global->MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND) ? 'totalofround' : 'roundoftotal'; } if ($calculationrule == 'totalofround') { $calculationrulenum = 1; } else { $calculationrulenum = 2; } $s = $langs->trans("ReCalculate") . ' '; $s .= '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=calculate&calculationrule=totalofround">' . $langs->trans("Mode1") . '</a>'; $s .= ' / '; $s .= '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=calculate&calculationrule=roundoftotal">' . $langs->trans("Mode2") . '</a>'; print $form->textwithtooltip($s, $langs->trans("CalculationRuleDesc", $calculationrulenum) . '<br>' . $langs->trans("CalculationRuleDescSupplier"), 2, 1, img_picto('', 'help')); print '</td></tr>'; // Amount Local Taxes //TODO: Place into a function to control showing by country or study better option if ($societe->localtax1_assuj == "1") { print '<tr><td>' . $langs->transcountry("AmountLT1", $societe->country_code) . '</td>'; print '<td colspan="3">' . price($object->total_localtax1, 1, $langs, 0, -1, -1, $conf->currency) . '</td>'; print '</tr>'; } if ($societe->localtax2_assuj == "1") { print '<tr><td>' . $langs->transcountry("AmountLT2", $societe->country_code) . '</td>'; print '<td colspan="3">' . price($object->total_localtax2, 1, $langs, 0, -1, -1, $conf->currency) . '</td>'; print '</tr>'; } print '<tr><td>' . $langs->trans('AmountTTC') . '</td><td colspan="3">' . price($object->total_ttc, 1, $langs, 0, -1, -1, $conf->currency) . '</td></tr>'; // Project
$type = 1; } // Edit line if ($action != 'edit_line' || $_GET['rowid'] != $line->id) { print '<tr id="row-' . $line->id . '" ' . $bc[$var] . '>'; // Show product and description print '<td>'; if ($line->fk_product > 0) { print '<a name="' . $line->id . '"></a>'; // ancre pour retourner sur la ligne $product_static = new ProductFournisseur($db); $product_static->fetch_opt($line->fk_product); $text = $product_static->getNomUrl(1, 'supplier'); $text .= ' - ' . $product_static->libelle; $description = $conf->global->PRODUIT_DESC_IN_FORM ? '' : dol_htmlentitiesbr($line->description); print $form->textwithtooltip($text, $description, 3, '', '', $i); // Show range print_date_range($date_start, $date_end); // Add description in form if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { print $line->description && $line->description != $product_static->libelle ? '<br>' . dol_htmlentitiesbr($line->description) : ''; } } // Description - Editor wysiwyg if (!$line->fk_product) { if ($type == 1) { $text = img_object($langs->trans('Service'), 'service'); } else { $text = img_object($langs->trans('Product'), 'product'); } print $text . ' ' . nl2br($line->description);
print '</td></tr>'; // Desired stock print '<tr><td>' . $form->editfieldkey("DesiredStock", 'desiredstock', $product->desiredstock, $product, $user->rights->produit->creer) . '</td><td colspan="2">'; print $form->editfieldval("DesiredStock", 'desiredstock', $product->desiredstock, $product, $user->rights->produit->creer); print '</td></tr>'; // Real stock $product->load_stock(); $text_stock_options = ''; $text_stock_options .= !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) ? $langs->trans("DeStockOnShipment") . '<br>' : ''; $text_stock_options .= !empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) ? $langs->trans("DeStockOnValidateOrder") . '<br>' : ''; $text_stock_options .= !empty($conf->global->STOCK_CALCULATE_ON_BILL) ? $langs->trans("DeStockOnBill") . '<br>' : ''; $text_stock_options .= !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) ? $langs->trans("ReStockOnBill") . '<br>' : ''; $text_stock_options .= !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) ? $langs->trans("ReStockOnValidateOrder") . '<br>' : ''; $text_stock_options .= !empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) ? $langs->trans("ReStockOnDispatchOrder") . '<br>' : ''; print '<tr><td>'; print $form->textwithtooltip($langs->trans("PhysicalStock"), $text_stock_options, 2, 1, img_picto('', 'info'), '', 2); print '</td>'; print '<td>' . $product->stock_reel; if ($product->seuil_stock_alerte && $product->stock_reel < $product->seuil_stock_alerte) { print ' ' . img_warning($langs->trans("StockLowerThanLimit")); } print '</td>'; print '</tr>'; // Calculating a theorical value print '<tr><td>' . $langs->trans("VirtualStock") . '</td>'; print "<td>" . (empty($product->stock_theorique) ? 0 : $product->stock_theorique); if ($product->stock_theorique < $product->seuil_stock_alerte) { print ' ' . img_warning($langs->trans("StockLowerThanLimit")); } print '</td>'; print '</tr>';
if ($fieldlist[$field] == 'source') { $valuetoshow = $langs->trans("Contact"); } if ($fieldlist[$field] == 'price') { $valuetoshow = $langs->trans("PriceUHT"); } if ($fieldlist[$field] == 'taux') { if ($tabname[$id] != MAIN_DB_PREFIX . "c_revenuestamp") { $valuetoshow = $langs->trans("Rate"); } else { $valuetoshow = $langs->trans("Amount"); } $align = 'right'; } if ($fieldlist[$field] == 'localtax1_type') { $valuetoshow = $form->textwithtooltip($langs->trans("UseLocalTax") . " 2", $langs->trans("LocalTaxDesc"), 2, 1, img_help(1, '')); $align = "center"; $sortable = 0; } if ($fieldlist[$field] == 'localtax1') { $valuetoshow = $langs->trans("Rate") . " 2"; } if ($fieldlist[$field] == 'localtax2_type') { $valuetoshow = $form->textwithtooltip($langs->trans("UseLocalTax") . " 3", $langs->trans("LocalTaxDesc"), 2, 1, img_help(1, '')); $align = "center"; $sortable = 0; } if ($fieldlist[$field] == 'localtax2') { $valuetoshow = $langs->trans("Rate") . " 3"; } if ($fieldlist[$field] == 'organization') {
print "<tr " . $bc[$var] . ">\n"; // Product label if ($line->fk_product > 0) { $product->fetch($line->fk_product); $product->load_stock(); print '<td>'; print '<a name="' . $line->rowid . '"></a>'; // ancre pour retourner sur la ligne // Show product and description $product_static->type = $line->fk_product_type; $product_static->id = $line->fk_product; $product_static->ref = $line->ref; $text = $product_static->getNomUrl(1); $text .= ' - ' . (!empty($line->label) ? $line->label : $line->product_label); $description = $conf->global->PRODUIT_DESC_IN_FORM ? '' : dol_htmlentitiesbr($line->desc); print $form->textwithtooltip($text, $description, 3, '', '', $i); // Show range print_date_range($db->jdate($line->date_start), $db->jdate($line->date_end)); // Add description in form if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { print $line->desc && $line->desc != $line->product_label ? '<br>' . dol_htmlentitiesbr($line->desc) : ''; } print '</td>'; } else { print "<td>"; if ($type == 1) { $text = img_object($langs->trans('Service'), 'service'); } else { $text = img_object($langs->trans('Product'), 'product'); } if (!empty($line->label)) {
print '<td align="right">' . price2num($objp->stockqty, 5) . '</td>'; // PMP value print '<td align="right">'; if (price2num($objp->estimatedvalue, 'MT')) { print price(price2num($objp->estimatedvalue, 'MT'), 1); } else { print ''; } print '</td>'; // Selling value print '<td align="right">'; if (empty($conf->global->PRODUIT_MULTIPRICES)) { print price(price2num($objp->sellvalue, 'MT'), 1); } else { $htmltext = $langs->trans("OptionMULTIPRICESIsOn"); print $form->textwithtooltip($langs->trans("Variable"), $htmltext); } print '</td>'; // Status print '<td align="right">' . $entrepot->LibStatut($objp->statut, 5) . '</td>'; print '<td></td>'; print "</tr>\n"; $var = !$var; $i++; } if ($totalnboflines - $offset <= $limit) { print '<tr class="liste_total">'; print '<td colspan="2" align="right">' . $langs->trans("Total") . '</td>'; print '<td align="right">' . price2num($totalStock, 5) . '</td>'; print '<td align="right">' . price(price2num($total, 'MT'), 1, $langs, 0, 0, -1, $conf->currency) . '</td>'; print '<td align="right">';
$defaultref = ''; } // Ref print '<tr><td><span class="fieldrequired">' . $langs->trans("Ref") . '</span></td><td><input size="12" type="text" name="ref" value="' . ($_POST["ref"] ? $_POST["ref"] : $defaultref) . '"></td></tr>'; // Label print '<tr><td><span class="fieldrequired">' . $langs->trans("Label") . '</span></td><td><input size="40" type="text" name="title" value="' . GETPOST("title") . '"></td></tr>'; // Thirdparty print '<tr><td>' . $langs->trans("ThirdParty") . '</td><td>'; $filteronlist = ''; if (!empty($conf->global->PROJECT_FILTER_FOR_THIRDPARTY_LIST)) { $filteronlist = $conf->global->PROJECT_FILTER_FOR_THIRDPARTY_LIST; } $text = $form->select_thirdparty_list(GETPOST('socid', 'int'), 'socid', $filteronlist, 1, 1); if (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) && empty($conf->dol_use_jmobile)) { $texthelp = $langs->trans("IfNeedToUseOhterObjectKeepEmpty"); print $form->textwithtooltip($text . ' ' . img_help(), $texthelp, 1); } else { print $text; } print ' <a href="' . DOL_URL_ROOT . '/societe/soc.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '">' . $langs->trans("AddThirdParty") . '</a>'; print '</td></tr>'; // Status if ($status != '') { print '<tr><td>' . $langs->trans("Status") . '</td><td>'; print '<input type="hidden" name="status" value="' . $status . '">'; print $object->LibStatut($status, 4); print '</td></tr>'; } // Public print '<tr><td>' . $langs->trans("Visibility") . '</td><td>'; $array = array(0 => $langs->trans("PrivateProject"), 1 => $langs->trans("SharedProject"));
$text_info .= ' ' . $langs->trans('SupplierOrder') . ' : ' . $stock_order_supplier . '<br>'; } else { $text_info .= '<br>'; } } } if ($notshippable == 0) { $text_icon = img_picto('', 'object_sending'); $text_info = $langs->trans('Shippable') . '<br>' . $text_info; } else { $text_icon = img_picto('', 'error'); $text_info = $langs->trans('NonShippable') . '<br>' . $text_info; } if ($nbprod > 0) { print '<td>'; print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); print '</td>'; } } // warning late icon print '<td style="min-width: 20px" class="nobordernopadding nowrap">'; if ($objp->fk_statut > 0 && $objp->fk_statut < 3 && max($db->jdate($objp->date_commande), $db->jdate($objp->date_delivery)) < $now - $conf->commande->client->warning_delay) { print img_picto($langs->trans("Late"), "warning"); } if (!empty($objp->note_private)) { print ' <span class="note">'; print '<a href="' . DOL_URL_ROOT . '/commande/note.php?id=' . $objp->rowid . '">' . img_picto($langs->trans("ViewPrivateNote"), 'object_generic') . '</a>'; print '</span>'; } print '</td>'; print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
if ($delivery->lines[$i]->fk_product > 0) { $product = new Product($db); $product->fetch($delivery->lines[$i]->fk_product); print '<td>'; // Affiche ligne produit $text = '<a href="'.DOL_URL_ROOT.'/product/fiche.php?id='.$delivery->lines[$i]->fk_product.'">'; if ($delivery->lines[$i]->fk_product_type==1) $text.= img_object($langs->trans('ShowService'),'service'); else $text.= img_object($langs->trans('ShowProduct'),'product'); $text.= ' '.$delivery->lines[$i]->ref.'</a>'; $text.= ' - '.$delivery->lines[$i]->label; $description=($conf->global->PRODUIT_DESC_IN_FORM?'':dol_htmlentitiesbr($delivery->lines[$i]->description)); //print $description; print $html->textwithtooltip($text,$description,3,'','',$i); print_date_range($delivery->lines[$i]->date_start,$delivery->lines[$i]->date_end); if ($conf->global->PRODUIT_DESC_IN_FORM) { print ($delivery->lines[$i]->description && $delivery->lines[$i]->description!=$delivery->lines[$i]->label)?'<br>'.dol_htmlentitiesbr($delivery->lines[$i]->description):''; } } else { print "<td>"; if ($delivery->lines[$i]->fk_product_type==1) $text = img_object($langs->trans('Service'),'service'); else $text = img_object($langs->trans('Product'),'product'); print $text.' '.nl2br($delivery->lines[$i]->description); print_date_range($objp->date_start,$objp->date_end); print "</td>\n"; }
/** * Show an HTML header + a BODY + The top menu bar * @param head Lines in the HEAD * @param title Title of web page * @param target Target to use in menu links * @param disablejs Do not output links to js (Ex: qd fonction utilisee par sous formulaire Ajax) * @param disablehead Do not output head section * @param arrayofjs Array of js files to add in header * @param arrayofcss Array of css files to add in header * @param morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails) */ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '') { global $user, $conf, $langs, $db, $dolibarr_main_authentication; $html = new Form($db); if (!$conf->top_menu) { $conf->top_menu = 'eldy_backoffice.php'; } // For backward compatibility with old modules if (empty($conf->headerdone)) { top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); } print '<body id="mainbody">'; if ($conf->use_javascript_ajax) { if ($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) { print '<script type="text/javascript"> jQuery(document).ready(function () { jQuery("body").layout( layoutSettings ); }); var layoutSettings = { name: "mainlayout", defaults: { useStateCookie: true, size: "auto", resizable: false, //paneClass: "none", //resizerClass: "resizer", //togglerClass: "toggler", //buttonClass: "button", //contentSelector: ".content", //contentIgnoreSelector: "span", togglerTip_open: "Close This Pane", togglerTip_closed: "Open This Pane", resizerTip: "Resize This Pane" }, west: { paneClass: "leftContent", spacing_closed: 14, togglerLength_closed: 14, togglerAlign_closed: "top", //togglerLength_open: 0, // effect defaults - overridden on some panes //slideTrigger_open: "mouseover", //initClosed: true, fxName: "drop", fxSpeed: "normal", fxSettings: { easing: "" } }, north: { paneClass: "none", resizerClass: "none", togglerClass: "none", spacing_open: 0, togglerLength_open: 0, togglerLength_closed: -1, slidable: false, fxName: "none" }, center: { paneSelector: "#mainContent" } } </script>'; } if (!empty($conf->global->MAIN_MENU_USE_JQUERY_ACCORDION)) { print "\n" . '<script type="text/javascript"> jQuery(document).ready(function () { jQuery( ".vmenu" ).accordion({ autoHeight: false, event: "mouseover", //collapsible: true, //active: 2, header: "> .blockvmenupair > .menu_titre" }); }); </script>'; } // Wrapper to show tooltips print "\n" . '<script type="text/javascript"> jQuery(document).ready(function () { jQuery(function() { $(".classfortooltip").tipTip({maxWidth: "600px", edgeOffset: 10, delay: 50, fadeIn: 50, fadeOut: 50}); }); }); </script>'; } /* * Top menu */ $top_menu = isset($conf->browser->phone) ? $conf->smart_menu : $conf->top_menu; if (GETPOST('menu')) { $top_menu = GETPOST('menu'); } // menu=eldy_backoffice.php // Load the top menu manager $result = dol_include_once("/includes/menus/standard/" . $top_menu); if (!$result) { $top_menu = 'eldy_backoffice.php'; include_once DOL_DOCUMENT_ROOT . "/includes/menus/standard/" . $top_menu; } print "\n" . '<!-- Start top horizontal menu ' . $top_menu . ' -->' . "\n"; if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) { print '<div class="ui-layout-north"> <!-- Begin top layout -->' . "\n"; } print '<div id="tmenu_tooltip" class="tmenu">' . "\n"; // Show menu $menutop = new MenuTop($db); $menutop->atarget = $target; $menutop->showmenu(); // This contains a \n print "</div>\n"; // Link to login card $loginhtmltext = ''; $logintext = ''; if ($user->societe_id) { $thirdpartystatic = new Societe($db); $thirdpartystatic->fetch($user->societe_id); $companylink = ' (' . $thirdpartystatic->getNomUrl('', '') . ')'; $company = ' (' . $langs->trans("Company") . ': ' . $thirdpartystatic->name . ')'; } $logintext = '<div class="login"><a href="' . DOL_URL_ROOT . '/user/fiche.php?id=' . $user->id . '"'; $logintext .= $menutop->atarget ? ' target="' . $menutop->atarget . '"' : ''; $logintext .= '>' . $user->login . '</a>'; if ($user->societe_id) { $logintext .= $companylink; } $logintext .= '</div>'; $loginhtmltext .= '<u>' . $langs->trans("User") . '</u>'; $loginhtmltext .= '<br><b>' . $langs->trans("Name") . '</b>: ' . $user->getFullName($langs); $loginhtmltext .= '<br><b>' . $langs->trans("Login") . '</b>: ' . $user->login; $loginhtmltext .= '<br><b>' . $langs->trans("Administrator") . '</b>: ' . yn($user->admin); $type = $user->societe_id ? $langs->trans("External") . $company : $langs->trans("Internal"); $loginhtmltext .= '<br><b>' . $langs->trans("Type") . '</b>: ' . $type; $loginhtmltext .= '<br><b>' . $langs->trans("IPAddress") . '</b>: ' . $_SERVER["REMOTE_ADDR"]; $loginhtmltext .= '<br>'; $loginhtmltext .= '<br><u>' . $langs->trans("Connection") . '</u>'; if ($conf->global->MAIN_MODULE_MULTICOMPANY) { $loginhtmltext .= '<br><b>' . $langs->trans("ConnectedOnMultiCompany") . '</b>: ' . $conf->entity . ' (user entity ' . $user->entity . ')'; } $loginhtmltext .= '<br><b>' . $langs->trans("ConnectedSince") . '</b>: ' . dol_print_date($user->datelastlogin, "dayhour"); $loginhtmltext .= '<br><b>' . $langs->trans("PreviousConnexion") . '</b>: ' . dol_print_date($user->datepreviouslogin, "dayhour"); $loginhtmltext .= '<br><b>' . $langs->trans("AuthenticationMode") . '</b>: ' . $_SESSION["dol_authmode"]; $loginhtmltext .= '<br><b>' . $langs->trans("CurrentTheme") . '</b>: ' . $conf->theme; $s = picto_from_langcode($langs->getDefaultLang()); $loginhtmltext .= '<br><b>' . $langs->trans("CurrentUserLanguage") . '</b>: ' . ($s ? $s . ' ' : '') . $langs->getDefaultLang(); $loginhtmltext .= '<br><b>' . $langs->trans("Browser") . '</b>: ' . $conf->browser->name . ' (' . $_SERVER['HTTP_USER_AGENT'] . ')'; if (!empty($conf->browser->phone)) { $loginhtmltext .= '<br><b>' . $langs->trans("Phone") . '</b>: ' . $conf->browser->phone; } if (!empty($_SESSION["disablemodules"])) { $loginhtmltext .= '<br><b>' . $langs->trans("DisabledModules") . '</b>: <br>' . join(', ', explode(',', $_SESSION["disablemodules"])); } // Link info $logouthtmltext = ''; $logouttext = ''; $logouthtmltext = $langs->trans("Logout") . '<br>'; //$logouthtmltext.="<br>"; if ($_SESSION["dol_authmode"] != 'forceuser' && $_SESSION["dol_authmode"] != 'http') { $logouttext .= '<a href="' . DOL_URL_ROOT . '/user/logout.php"'; $logouttext .= $menutop->atarget ? ' target="' . $menutop->atarget . '"' : ''; $logouttext .= '>'; $logouttext .= '<img class="login" border="0" width="14" height="14" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/logout.png"'; $logouttext .= ' alt="' . dol_escape_htmltag($langs->trans("Logout")) . '" title=""'; $logouttext .= '>'; $logouttext .= '</a>'; } else { $logouttext .= '<img class="login" border="0" width="14" height="14" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/logout.png"'; $logouttext .= ' alt="' . dol_escape_htmltag($langs->trans("Logout")) . '" title=""'; $logouttext .= '>'; } print '<div class="login_block">' . "\n"; print '<table class="nobordernopadding" summary=""><tr>'; print $html->textwithtooltip('', $loginhtmltext, 2, 1, $logintext, '', 1); // Select entity if (!empty($conf->global->MAIN_MODULE_MULTICOMPANY)) { if ($user->admin && !$user->entity) { $res = @dol_include_once('/multicompany/class/actions_multicompany.class.php'); if ($res) { $mc = new ActionsMulticompany($db); $mc->showInfo($conf->entity); } } } print $html->textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, '', 1); // Link to print main content area if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->browser->phone)) { $qs = $_SERVER["QUERY_STRING"] . ($_SERVER["QUERY_STRING"] ? '&' : '') . $morequerystring; $text = '<a href="' . $_SERVER["PHP_SELF"] . '?' . $qs . ($qs ? '&' : '') . 'optioncss=print" target="_blank">'; $text .= '<img class="printer" border="0" width="14" height="14" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/printer.png"'; $text .= ' title="" alt="">'; $text .= '</a>'; print $html->textwithtooltip('', $langs->trans("PrintContentArea"), 2, 1, $text, '', 1); } print '</tr></table>' . "\n"; print "</div>\n"; if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) { print "</div><!-- End top layout -->\n"; } print "<!-- End top horizontal menu -->\n"; if (!$conf->use_javascript_ajax || !$conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) { print '<table width="100%" class="notopnoleftnoright" summary="leftmenutable" id="undertopmenu"><tr>'; } }