$date_to = fCRUD::getSearchValue('date_to'); /** * Default action - show report of consumable installation */ if ($action == 'list') { // Set the users to be sortable by name or email, defaulting to name $sort = fCRUD::getSortColumn(array('events.date', 'models.name', 'printers.name', 'consumables.name', 'events.cost')); // Set the sorting to default to ascending $dir = fCRUD::getSortDirection('desc'); // Redirect the user if one of the values was loaded from the session fCRUD::redirectWithLoadedValues(); // Determine search parameters $sql_where = ''; if ($printer_id) { $printer = new Printer($printer_id); $sql_where .= ' AND events.printer_id = ' . $db->escape('integer', $printer_id); } if ($date_from) { $sql_where .= ' AND DATE(events.date) >= ' . $db->escape('date', $date_from); } if ($date_to) { $sql_where .= ' AND DATE(events.date) <= ' . $db->escape('date', $date_to); } // Get recordset object from tables $sql = "SELECT\n\t\t\t\tCAST(CONCAT(manufacturers.name, ' ', models.name) AS CHAR) AS model,\n\t\t\t\tprinters.name AS printer_name,\n\t\t\t\tprinters.ipaddress,\n\t\t\t\tconsumables.name AS consumable_name,\n\t\t\t\tconsumables.col_c, consumables.col_y, consumables.col_m, consumables.col_k,\n\t\t\t\tconsumables.chargeback,\n\t\t\t\tevents.*\n\t\t\tFROM events\n\t\t\tLEFT JOIN consumables ON events.consumable_id = consumables.id\n\t\t\tLEFT JOIN printers ON events.printer_id = printers.id\n\t\t\tLEFT JOIN models ON printers.model_id = models.id\n\t\t\tLEFT JOIN manufacturers ON models.manufacturer_id = manufacturers.id\n\t\t\tWHERE 1 = 1\n\t\t\t{$sql_where}\n\t\t\tORDER BY {$sort} {$dir}"; $events = $db->query($sql)->asObjects(); // Get list of printers for dropdown box $printers = Printer::getSimple($db); // Include page to show table include 'views/reports/index.php'; }