ContractCost::showForContract PHP Method

showForContract() static public method

Print the contract costs
static public showForContract ( Contract $contract, $withtemplate = '' ) : Nothing
$contract Contract Contract object
$withtemplate boolean Template or basic item (default '')
return Nothing (call to classes members)
    static function showForContract(Contract $contract, $withtemplate = '')
    {
        global $DB, $CFG_GLPI;
        $ID = $contract->fields['id'];
        if (!$contract->getFromDB($ID) || !$contract->can($ID, READ)) {
            return false;
        }
        $canedit = $contract->can($ID, UPDATE);
        echo "<div class='center'>";
        $query = "SELECT *\n                FROM `glpi_contractcosts`\n                WHERE `contracts_id` = '{$ID}'\n                ORDER BY `begin_date`";
        $rand = mt_rand();
        if ($canedit) {
            echo "<div id='viewcost" . $ID . "_{$rand}'></div>\n";
            echo "<script type='text/javascript' >\n";
            echo "function viewAddCost" . $ID . "_{$rand}() {\n";
            $params = array('type' => __CLASS__, 'parenttype' => 'Contract', 'contracts_id' => $ID, 'id' => -1);
            Ajax::updateItemJsCode("viewcost" . $ID . "_{$rand}", $CFG_GLPI["root_doc"] . "/ajax/viewsubitem.php", $params);
            echo "};";
            echo "</script>\n";
            echo "<div class='center firstbloc'>" . "<a class='vsubmit' href='javascript:viewAddCost" . $ID . "_{$rand}();'>";
            echo __('Add a new cost') . "</a></div>\n";
        }
        if ($result = $DB->query($query)) {
            echo "<table class='tab_cadre_fixehov'>";
            echo "<tr><th colspan='5'>" . self::getTypeName($DB->numrows($result)) . "</th></tr>";
            if ($DB->numrows($result)) {
                echo "<tr><th>" . __('Name') . "</th>";
                echo "<th>" . __('Begin date') . "</th>";
                echo "<th>" . __('End date') . "</th>";
                echo "<th>" . __('Budget') . "</th>";
                echo "<th>" . __('Cost') . "</th>";
                echo "</tr>";
                Session::initNavigateListItems(__CLASS__, sprintf(__('%1$s = %2$s'), Contract::getTypeName(1), $contract->getName()));
                $total = 0;
                while ($data = $DB->fetch_assoc($result)) {
                    echo "<tr class='tab_bg_2' " . ($canedit ? "style='cursor:pointer' onClick=\"viewEditCost" . $data['contracts_id'] . "_" . $data['id'] . "_{$rand}();\"" : '') . ">";
                    $name = empty($data['name']) ? sprintf(__('%1$s (%2$s)'), $data['name'], $data['id']) : $data['name'];
                    echo "<td>";
                    printf(__('%1$s %2$s'), $name, Html::showToolTip($data['comment'], array('display' => false)));
                    if ($canedit) {
                        echo "\n<script type='text/javascript' >\n";
                        echo "function viewEditCost" . $data['contracts_id'] . "_" . $data["id"] . "_{$rand}() {\n";
                        $params = array('type' => __CLASS__, 'parenttype' => 'Contract', 'contracts_id' => $data["contracts_id"], 'id' => $data["id"]);
                        Ajax::updateItemJsCode("viewcost" . $ID . "_{$rand}", $CFG_GLPI["root_doc"] . "/ajax/viewsubitem.php", $params);
                        echo "};";
                        echo "</script>\n";
                    }
                    echo "</td>";
                    echo "<td>" . Html::convDate($data['begin_date']) . "</td>";
                    echo "<td>" . Html::convDate($data['end_date']) . "</td>";
                    echo "<td>" . Dropdown::getDropdownName('glpi_budgets', $data['budgets_id']) . "</td>";
                    echo "<td class='numeric'>" . Html::formatNumber($data['cost']) . "</td>";
                    $total += $data['cost'];
                    echo "</tr>";
                    Session::addToNavigateListItems(__CLASS__, $data['id']);
                }
                echo "<tr class='b noHover'><td colspan='3'>&nbsp;</td>";
                echo "<td class='right'>" . __('Total cost') . '</td>';
                echo "<td class='numeric'>" . Html::formatNumber($total) . '</td></tr>';
            } else {
                echo "<tr><th colspan='5'>" . __('No item found') . "</th></tr>";
            }
            echo "</table>";
        }
        echo "</div><br>";
    }