diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_page.php index 482208e8ab1dce80100a4b47f025316e212766d7..9e6d76ee6d84bdf3408fe6ad23e130f9a363bcdf 100644 --- a/dev/skeletons/skeleton_page.php +++ b/dev/skeletons/skeleton_page.php @@ -352,8 +352,9 @@ if ($id && (empty($action) || $action == 'view')) // Example 2 : Adding links to objects - // The class must extends CommonObject class to have this method available //$somethingshown=$form->showLinkedObjectBlock($object); + //$linktoelem = $form->showLinkToObjectBlock($object); + //if ($linktoelem) print '<br>'.$linktoelem; } diff --git a/htdocs/comm/askpricesupplier/card.php b/htdocs/comm/askpricesupplier/card.php index 939d874a0f250035ddcdb021aa6a79d87a000993..72654ac3da47415346a99233990b7aff9cebb704 100644 --- a/htdocs/comm/askpricesupplier/card.php +++ b/htdocs/comm/askpricesupplier/card.php @@ -1709,11 +1709,13 @@ if ($action == 'create') $somethingshown = $formfile->show_documents('askpricesupplier', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang); - /* - * Linked object block - */ + // Linked object block $somethingshown = $form->showLinkedObjectBlock($object); + // Show links to link elements + //$linktoelem = $form->showLinkToObjectBlock($object); + //if ($linktoelem) print '<br>'.$linktoelem; + print '</div><div class="fichehalfright"><div class="ficheaddleft">'; // List of actions on element diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index ccdcd8504933c4161463076a66316b5370156e25..f686109d0152838470a46485b5db7268f92e4c21 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -2307,11 +2307,14 @@ if ($action == 'create') $somethingshown = $formfile->show_documents('propal', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang); - /* - * Linked object block - */ + // Linked object block $somethingshown = $form->showLinkedObjectBlock($object); + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object); + if ($linktoelem) print '<br>'.$linktoelem; + + print '</div><div class="fichehalfright"><div class="ficheaddleft">'; // print '</td><td valign="top" width="50%">'; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 04ea05d3f5d08076b423d379096b074075388c93..84718e7dc894b3ede5c03ff55a6c62c24f270746 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2305,11 +2305,14 @@ if ($action == 'create' && $user->rights->commande->creer) $delallowed = $user->rights->commande->supprimer; $somethingshown = $formfile->show_documents('commande', $comref, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang); - /* - * Linked object block - */ + // Linked object block $somethingshown = $form->showLinkedObjectBlock($object); + // Show links to link elements + //$linktoelem = $form->showLinkToObjectBlock($object); + //if ($linktoelem) print '<br>'.$linktoelem; + + print '</div><div class="fichehalfright"><div class="ficheaddleft">'; // print '</td><td valign="top" width="50%">'; diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index a73a1de3607df6dca05d2d730c59e990e2536df7..041bb42633f7cf00d06b8b5e463d1202f7894e2b 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -3778,75 +3778,8 @@ if ($action == 'create') // Linked object block $somethingshown = $form->showLinkedObjectBlock($object); - $linktoelem=''; - - if (! empty($conf->commande->enabled)) - { - $linktoelem.=($linktoelem?' ':'').'<a href="#" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>'; - - print ' - <script type="text/javascript" language="javascript"> - jQuery(document).ready(function() { - jQuery("#linktoorder").click(function() { - jQuery("#orderlist").toggle(); - jQuery("#linktoorder").toggle(); - }); - }); - </script> - '; - - print '<div id="orderlist" style="display:none">'; - - $sql = "SELECT s.rowid as socid, s.nom as name, s.client, c.rowid, c.ref, c.ref_client, c.total_ht"; - $sql .= " FROM " . MAIN_DB_PREFIX . "societe as s"; - $sql .= ", " . MAIN_DB_PREFIX . "commande as c"; - $sql .= ' WHERE c.fk_soc = s.rowid AND c.fk_soc = ' . $soc->id . ''; - - $resqlorderlist = $db->query($sql); - if ($resqlorderlist) - { - $num = $db->num_rows($resqlorderlist); - $i = 0; - - print '<br><form action="" method="POST" name="LinkedOrder">'; - print '<table class="noborder">'; - print '<tr class="liste_titre">'; - print '<td class="nowrap"></td>'; - print '<td align="center">' . $langs->trans("Ref") . '</td>'; - print '<td align="left">' . $langs->trans("RefCustomer") . '</td>'; - print '<td align="left">' . $langs->trans("AmountHTShort") . '</td>'; - print '<td align="left">' . $langs->trans("Company") . '</td>'; - print '</tr>'; - while ($i < $num) - { - $objp = $db->fetch_object($resqlorderlist); - if ($objp->socid == $soc->id) { - $var = ! $var; - print '<tr ' . $bc [$var] . '>'; - print '<td aling="left">'; - print '<input type="radio" name="linkedOrder" value=' . $objp->rowid . '>'; - print '<td align="center">' . $objp->ref . '</td>'; - print '<td>' . $objp->ref_client . '</td>'; - print '<td>' . price($objp->total_ht) . '</td>'; - print '<td>' . $objp->name . '</td>'; - print '</td>'; - print '</tr>'; - } - - $i ++; - } - print '</table>'; - print '<div class="center"><input type="submit" class="button" value="' . $langs->trans('ToLink') . '"> <input type="submit" class="button" name="cancel" value="' . $langs->trans('Cancel') . '"></div>'; - print '</form>'; - $db->free($resqlorderlist); - } else { - dol_print_error($db); - } - - print '</div>'; - } - - // Show link to elements + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object,array('order')); if ($linktoelem) print '<br>'.$linktoelem; // Link for paypal payment diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index 3df24e4e667189ca777d7dd8e11a811011f2b6b6..6bf7dcaeacc0c08f7a70862cd714c681da09907b 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -1871,10 +1871,13 @@ else $somethingshown = $formfile->show_documents('contract', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang); - /* - * Linked object block - */ - $somethingshown=$form->showLinkedObjectBlock($object); + // Linked object block + $somethingshown = $form->showLinkedObjectBlock($object); + + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object); + if ($linktoelem) print '<br>'.$linktoelem; + print '</div><div class="fichehalfright"><div class="ficheaddleft">'; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index be0d2656ec2772753a68146d106b3f0a1834b0e8..cef6d9a0ae4364ab6344e553471d8a0a1892e661 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4712,6 +4712,159 @@ class Form } } + /** + * Show block with links to link to other objects. + * + * @param CommonObject $object Object we want to show links to + * @param Societe $thirdparty Object thirdparty + * @param array $restrictlinksto Restrict links to some elements, for exemple array('order') or array('supplier_order') + * @return int <0 if KO, >0 if OK + */ + function showLinkToObjectBlock($object, $restrictlinksto=array()) + { + global $conf, $langs, $hookmanager; + global $bc; + + $linktoelem=''; + + if (! is_object($object->thirdparty)) $object->fetch_thirdparty(); + + + if (((! is_array($restrictlinksto)) || in_array('order',$restrictlinksto)) + && ! empty($conf->commande->enabled)) + { + $linktoelem.=($linktoelem?' ':'').'<a href="#" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>'; + + print ' + <script type="text/javascript" language="javascript"> + jQuery(document).ready(function() { + jQuery("#linktoorder").click(function() { + jQuery("#orderlist").toggle(); + jQuery("#linktoorder").toggle(); + }); + }); + </script> + '; + + print '<div id="orderlist"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?' style="display:none"':'').'>'; + + $sql = "SELECT s.rowid as socid, s.nom as name, s.client, c.rowid, c.ref, c.ref_client, c.total_ht"; + $sql .= " FROM " . MAIN_DB_PREFIX . "societe as s"; + $sql .= ", " . MAIN_DB_PREFIX . "commande as c"; + $sql .= ' WHERE c.fk_soc = s.rowid AND c.fk_soc = ' . $object->thirdparty->id . ''; + + $resqlorderlist = $this->db->query($sql); + if ($resqlorderlist) + { + $num = $this->db->num_rows($resqlorderlist); + $i = 0; + + print '<br><form action="" method="POST" name="LinkedOrder">'; + print '<table class="noborder">'; + print '<tr class="liste_titre">'; + print '<td class="nowrap"></td>'; + print '<td align="center">' . $langs->trans("Ref") . '</td>'; + print '<td align="left">' . $langs->trans("RefCustomer") . '</td>'; + print '<td align="left">' . $langs->trans("AmountHTShort") . '</td>'; + print '<td align="left">' . $langs->trans("Company") . '</td>'; + print '</tr>'; + while ($i < $num) + { + $objp = $this->db->fetch_object($resqlorderlist); + + $var = ! $var; + print '<tr ' . $bc [$var] . '>'; + print '<td aling="left">'; + print '<input type="radio" name="linkedOrder" value=' . $objp->rowid . '>'; + print '<td align="center">' . $objp->ref . '</td>'; + print '<td>' . $objp->ref_client . '</td>'; + print '<td>' . price($objp->total_ht) . '</td>'; + print '<td>' . $objp->name . '</td>'; + print '</td>'; + print '</tr>'; + + $i ++; + } + print '</table>'; + print '<div class="center"><input type="submit" class="button" value="' . $langs->trans('ToLink') . '"> <input type="submit" class="button" name="cancel" value="' . $langs->trans('Cancel') . '"></div>'; + print '</form>'; + $this->db->free($resqlorderlist); + } else { + dol_print_error($this->db); + } + + print '</div>'; + } + + if (((! is_array($restrictlinksto)) || in_array('supplier_order',$restrictlinksto)) + && ! empty($conf->fournisseur->enabled)) + { + $linktoelem.=($linktoelem?' ':'').'<a href="#" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>'; + + print ' + <script type="text/javascript" language="javascript"> + jQuery(document).ready(function() { + jQuery("#linktoorder").click(function() { + jQuery("#orderlist").toggle(); + jQuery("#linktoorder").toggle(); + }); + }); + </script> + '; + + print '<div id="orderlist"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?' style="display:none"':'').'>'; + + $sql = "SELECT s.rowid as socid, s.nom as name, s.client, c.rowid, c.ref, c.ref_supplier, c.total_ht"; + $sql .= " FROM " . MAIN_DB_PREFIX . "societe as s"; + $sql .= ", " . MAIN_DB_PREFIX . "commande_fournisseur as c"; + $sql .= ' WHERE c.fk_soc = s.rowid AND c.fk_soc = ' . $object->thirdparty->id; + + $resqlorderlist = $this->db->query($sql); + if ($resqlorderlist) + { + $num = $this->db->num_rows($resqlorderlist); + $i = 0; + + print '<br><form action="" method="POST" name="LinkedOrder">'; + print '<table class="noborder">'; + print '<tr class="liste_titre">'; + print '<td class="nowrap"></td>'; + print '<td align="center">' . $langs->trans("Ref") . '</td>'; + print '<td align="left">' . $langs->trans("RefSupplier") . '</td>'; + print '<td align="left">' . $langs->trans("AmountHTShort") . '</td>'; + print '<td align="left">' . $langs->trans("Company") . '</td>'; + print '</tr>'; + while ($i < $num) { + $objp = $this->db->fetch_object($resqlorderlist); + if ($objp->socid == $societe->id) { + $var = ! $var; + print '<tr ' . $bc [$var] . '>'; + print '<td aling="left">'; + print '<input type="radio" name="linkedOrder" value=' . $objp->rowid . '>'; + print '<td align="center">' . $objp->ref . '</td>'; + print '<td>' . $objp->ref_supplier . '</td>'; + print '<td>' . price($objp->total_ht) . '</td>'; + print '<td>' . $objp->name . '</td>'; + print '</td>'; + print '</tr>'; + } + + $i ++; + } + print '</table>'; + print '<br><div class="center"><input type="submit" class="button" value="' . $langs->trans('ToLink') . '"> <input type="submit" class="button" name="cancel" value="' . $langs->trans('Cancel') . '"></div>'; + print '</form>'; + $this->db->free($resqlorderlist); + } else { + dol_print_error($this->db); + } + + print '</div>'; + } + + + return $linktoelem; + } /** * Return an html string with a select combo box to choose yes or no diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index 85380907bbfbd60dfbbe2aa56de90b5318bae37e..344e17166ad3808f6302dd5fdd1b870ad0a5793c 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -1502,12 +1502,12 @@ else if ($id || $ref) $somethingshown=$formfile->show_documents('expedition',$objectref,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'','','',$soc->default_lang); - /* - * Linked object block - */ - $somethingshown=$form->showLinkedObjectBlock($object); + // Linked object block + $somethingshown = $form->showLinkedObjectBlock($object); - if ($genallowed && ! $somethingshown) $somethingshown=1; + // Show links to link elements + //$linktoelem = $form->showLinkToObjectBlock($object); + //if ($linktoelem) print '<br>'.$linktoelem; print '</td><td valign="top" width="50%">'; diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index ad224ab9fe29349cbfe58e34d603aeb49d210c87..9b8e7d9a6a828d920194f84180f53aba6126e8de 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -1701,7 +1701,6 @@ else if ($id > 0 || ! empty($ref)) if ($action != 'presend') { print '<div class="fichecenter"><div class="fichehalfleft">'; - //print '<table width="100%"><tr><td width="50%" valign="top">'; /* * Built documents @@ -1719,12 +1718,14 @@ else if ($id > 0 || ! empty($ref)) //print "<br>\n"; $somethingshown=$formfile->show_documents('ficheinter',$filename,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'','','',$soc->default_lang); - /* - * Linked object block - */ - $somethingshown=$form->showLinkedObjectBlock($object); + // Linked object block + $somethingshown = $form->showLinkedObjectBlock($object); + + // Show links to link elements + //$linktoelem = $form->showLinkToObjectBlock($object); + //if ($linktoelem) print '<br>'.$linktoelem; + - //print '</td><td valign="top" width="50%">'; print '</div><div class="fichehalfright"><div class="ficheaddleft">'; // List of actions on element @@ -1733,7 +1734,6 @@ else if ($id > 0 || ! empty($ref)) $somethingshown=$formactions->showactions($object,'fichinter',$socid); print '</div></div></div>'; - //print "</td></tr></table>\n"; } diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 95442273495a7ac98d5c654567a67e4dc304f708..b56bba0c4a554731c693189dd1d32109c8513016 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -2763,10 +2763,13 @@ elseif (! empty($object->id)) print $formfile->showdocuments('commande_fournisseur',$comfournref,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,0,0,'','','',$object->thirdparty->default_lang); $somethingshown=$formfile->numoffiles; - /* - * Linked object block - */ - $somethingshown=$form->showLinkedObjectBlock($object); + // Linked object block + $somethingshown = $form->showLinkedObjectBlock($object); + + // Show links to link elements + //$linktoelem = $form->showLinkToObjectBlock($object); + //if ($linktoelem) print '<br>'.$linktoelem; + print '</div><div class="fichehalfright"><div class="ficheaddleft">'; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index e365f8a70706a43c2a8e0afaa75426285bfbb9c1..2491c6eaff66c892222a2c38844e6d1ef58c6edc 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2412,80 +2412,14 @@ else print $formfile->showdocuments('facture_fournisseur',$subdir,$filedir,$urlsource,$genallowed,$delallowed,$modelpdf,1,0,0,40,0,'','','',$societe->default_lang); $somethingshown=$formfile->numoffiles; - /* - * Linked object block - */ - $somethingshown=$form->showLinkedObjectBlock($object); - - $linktoelem=''; - - if (empty($somethingshown) && ! empty($conf->fournisseur->enabled)) - { - $linktoelem.=($linktoelem?' ':'').'<a href="#" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>'; - - print ' - <script type="text/javascript" language="javascript"> - jQuery(document).ready(function() { - jQuery("#linktoorder").click(function() { - jQuery("#orderlist").toggle(); - jQuery("#linktoorder").toggle(); - }); - }); - </script> - '; - - print '<div id="orderlist" style="display:none">'; - - $sql = "SELECT s.rowid as socid, s.nom as name, s.client, c.rowid, c.ref, c.ref_supplier, c.total_ht"; - $sql .= " FROM " . MAIN_DB_PREFIX . "societe as s"; - $sql .= ", " . MAIN_DB_PREFIX . "commande_fournisseur as c"; - $sql .= ' WHERE c.fk_soc = s.rowid AND c.fk_soc = ' . $societe->id; - - $resqlorderlist = $db->query($sql); - if ($resqlorderlist) { - $num = $db->num_rows($resqlorderlist); - $i = 0; - - print '<br><form action="" method="POST" name="LinkedOrder">'; - print '<table class="noborder">'; - print '<tr class="liste_titre">'; - print '<td class="nowrap"></td>'; - print '<td align="center">' . $langs->trans("Ref") . '</td>'; - print '<td align="left">' . $langs->trans("RefSupplier") . '</td>'; - print '<td align="left">' . $langs->trans("AmountHTShort") . '</td>'; - print '<td align="left">' . $langs->trans("Company") . '</td>'; - print '</tr>'; - while ($i < $num) { - $objp = $db->fetch_object($resqlorderlist); - if ($objp->socid == $societe->id) { - $var = ! $var; - print '<tr ' . $bc [$var] . '>'; - print '<td aling="left">'; - print '<input type="radio" name="linkedOrder" value=' . $objp->rowid . '>'; - print '<td align="center">' . $objp->ref . '</td>'; - print '<td>' . $objp->ref_supplier . '</td>'; - print '<td>' . price($objp->total_ht) . '</td>'; - print '<td>' . $objp->name . '</td>'; - print '</td>'; - print '</tr>'; - } - - $i ++; - } - print '</table>'; - print '<br><div class="center"><input type="submit" class="button" value="' . $langs->trans('ToLink') . '"> <input type="submit" class="button" name="cancel" value="' . $langs->trans('Cancel') . '"></div>'; - print '</form>'; - $db->free($resqlorderlist); - } else { - dol_print_error($db); - } - - print '</div>'; - } + // Linked object block + $somethingshown = $form->showLinkedObjectBlock($object); - // Show link to elements + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object,array('supplier_order')); if ($linktoelem) print '<br>'.$linktoelem; + print '</div><div class="fichehalfright"><div class="ficheaddleft">'; //print '</td><td valign="top" width="50%">'; //print '<br>'; diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php index 5e477d1926db9b1d96c79357ff083111e7d4e62e..7ea9920d65b2ac4225faf0f48c463f40f90f9a1e 100644 --- a/htdocs/livraison/card.php +++ b/htdocs/livraison/card.php @@ -788,10 +788,14 @@ else $shipment = new Expedition($db); $shipment->fetch($object->origin_id); - $somethingshown=$form->showLinkedObjectBlock($shipment); + // Linked object block + $somethingshown = $form->showLinkedObjectBlock($shipment); + + // Show links to link elements + //$linktoelem = $form->showLinkToObjectBlock($shipment); + //if ($linktoelem) print '<br>'.$linktoelem; } - if ($genallowed && ! $somethingshown) $somethingshown=1; print '</td><td valign="top" width="50%">';