Contract_Item::showForItem PHP Метод

showForItem() статический публичный Метод

Print an HTML array of contract associated to an object
static public showForItem ( CommonDBTM $item, $withtemplate = '' ) : Nothing
$item CommonDBTM CommonDBTM object wanted
$withtemplate not used (to be deleted) (default '')
Результат Nothing (display)
    static function showForItem(CommonDBTM $item, $withtemplate = '')
    {
        global $DB, $CFG_GLPI;
        $itemtype = $item->getType();
        $ID = $item->fields['id'];
        if (!Contract::canView() || !$item->can($ID, READ)) {
            return false;
        }
        $canedit = $item->can($ID, UPDATE);
        $rand = mt_rand();
        $query = "SELECT `glpi_contracts_items`.*\n                FROM `glpi_contracts_items`,\n                     `glpi_contracts`\n                LEFT JOIN `glpi_entities` ON (`glpi_contracts`.`entities_id`=`glpi_entities`.`id`)\n                WHERE `glpi_contracts`.`id`=`glpi_contracts_items`.`contracts_id`\n                      AND `glpi_contracts_items`.`items_id` = '{$ID}'\n                      AND `glpi_contracts_items`.`itemtype` = '{$itemtype}'" . getEntitiesRestrictRequest(" AND", "glpi_contracts", '', '', true) . "\n                ORDER BY `glpi_contracts`.`name`";
        $result = $DB->query($query);
        $contracts = array();
        $used = array();
        if ($number = $DB->numrows($result)) {
            while ($data = $DB->fetch_assoc($result)) {
                $contracts[$data['id']] = $data;
                $used[$data['contracts_id']] = $data['contracts_id'];
            }
        }
        if ($canedit && $withtemplate != 2) {
            echo "<div class='firstbloc'>";
            echo "<form name='contractitem_form{$rand}' id='contractitem_form{$rand}' method='post'\n                action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
            echo "<input type='hidden' name='items_id' value='{$ID}'>";
            echo "<input type='hidden' name='itemtype' value='{$itemtype}'>";
            echo "<table class='tab_cadre_fixe'>";
            echo "<tr class='tab_bg_2'><th colspan='2'>" . __('Add a contract') . "</th></tr>";
            echo "<tr class='tab_bg_1'><td>";
            Contract::dropdown(array('entity' => $item->getEntityID(), 'used' => $used, 'expired' => false));
            echo "</td><td class='center'>";
            echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>";
            echo "</td></tr>";
            echo "</table>";
            Html::closeForm();
            echo "</div>";
        }
        echo "<div class='spaced'>";
        if ($withtemplate != 2) {
            if ($canedit && $number) {
                Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
                $massiveactionparams = array('num_displayed' => $number, 'container' => 'mass' . __CLASS__ . $rand);
                Html::showMassiveActions($massiveactionparams);
            }
        }
        echo "<table class='tab_cadre_fixehov'>";
        $header_begin = "<tr>";
        $header_top = '';
        $header_bottom = '';
        $header_end = '';
        if ($canedit && $number && $withtemplate != 2) {
            $header_top .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
            $header_top .= "</th>";
            $header_bottom .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
            $header_bottom .= "</th>";
        }
        $header_end .= "<th>" . __('Name') . "</th>";
        $header_end .= "<th>" . __('Entity') . "</th>";
        $header_end .= "<th>" . _x('phone', 'Number') . "</th>";
        $header_end .= "<th>" . __('Contract type') . "</th>";
        $header_end .= "<th>" . __('Supplier') . "</th>";
        $header_end .= "<th>" . __('Start date') . "</th>";
        $header_end .= "<th>" . __('Initial contract period') . "</th>";
        $header_end .= "</tr>";
        if ($number > 0) {
            echo $header_begin . $header_top . $header_end;
            Session::initNavigateListItems(__CLASS__, sprintf(__('%1$s = %2$s'), $item->getTypeName(1), $item->getName()));
            foreach ($contracts as $data) {
                $cID = $data["contracts_id"];
                Session::addToNavigateListItems(__CLASS__, $cID);
                $contracts[] = $cID;
                $assocID = $data["id"];
                $con = new Contract();
                $con->getFromDB($cID);
                echo "<tr class='tab_bg_1" . ($con->fields["is_deleted"] ? "_2" : "") . "'>";
                if ($canedit && $withtemplate != 2) {
                    echo "<td width='10'>";
                    Html::showMassiveActionCheckBox(__CLASS__, $data["id"]);
                    echo "</td>";
                }
                echo "<td class='center b'>";
                $name = $con->fields["name"];
                if ($_SESSION["glpiis_ids_visible"] || empty($con->fields["name"])) {
                    $name = sprintf(__('%1$s (%2$s)'), $name, $con->fields["id"]);
                }
                echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/contract.form.php?id={$cID}'>" . $name;
                echo "</a></td>";
                echo "<td class='center'>";
                echo Dropdown::getDropdownName("glpi_entities", $con->fields["entities_id"]) . "</td>";
                echo "<td class='center'>" . $con->fields["num"] . "</td>";
                echo "<td class='center'>";
                echo Dropdown::getDropdownName("glpi_contracttypes", $con->fields["contracttypes_id"]) . "</td>";
                echo "<td class='center'>" . $con->getSuppliersNames() . "</td>";
                echo "<td class='center'>" . Html::convDate($con->fields["begin_date"]) . "</td>";
                echo "<td class='center'>" . sprintf(__('%1$s %2$s'), $con->fields["duration"], _n('month', 'months', $con->fields["duration"]));
                if ($con->fields["begin_date"] != '' && !empty($con->fields["begin_date"])) {
                    echo " -> " . Infocom::getWarrantyExpir($con->fields["begin_date"], $con->fields["duration"], 0, true);
                }
                echo "</td>";
                echo "</tr>";
            }
            echo $header_begin . $header_bottom . $header_end;
            echo "</table>";
        } else {
            echo "<table class='tab_cadre_fixe'>";
            echo "<tr><th>" . __('No item found') . "</th></tr></table>";
        }
        echo "</table>";
        if ($canedit && $number && $withtemplate != 2) {
            $massiveactionparams['ontop'] = false;
            Html::showMassiveActions($massiveactionparams);
            Html::closeForm();
        }
        echo "</div>";
    }