New-OMIS/app/Helpers/BibClass.php
2024-04-04 13:25:46 +05:45

195 lines
7.4 KiB
PHP

<?php
namespace App\Helpers;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class BibClass
{
static function createSelect($HTMLLabel, $tableName, $valueField, $displayField, $condition = "", $defaultValue = "", $HTMLName = "", $HTMLId = "", $HTMLClass = "", $HTMLRequired = "")
{
$tableName = strtolower($tableName);
$query = "SELECT $valueField, $displayField FROM $tableName";
if ($condition != "") {
$query .= " WHERE $condition";
}
$results = DB::select(DB::raw($query));
?>
<label for="<?php echo $HTMLId; ?>" class="form-label col-form-label"> <?php echo label($HTMLLabel); ?> </label>
<select class="form-select <?php echo $HTMLClass ?>" name="<?php echo $HTMLName; ?>" data-search="true" id="<?php echo $HTMLId; ?>" aria-label="Default select example" <?php echo ($HTMLRequired) ? "Required" : ""; ?>>
<option value=""><?php label("Select Option"); ?></option>
<?php foreach ($results as $item) { ?>
<option value="<?php echo $item->$valueField ?>" <?php echo $item->$valueField == $defaultValue ? 'selected' : '' ?>><?php echo $item->$displayField ?></option>
<?php } ?>
</select>
<p id='error_<?php echo $HTMLName; ?>' class='text-danger custom-error'></p>
<?php
}
static function lookupField($tableName, $field, $refField, $refValue)
{
$tableName = strtolower($tableName);
$t = "select $field from $tableName where $refField = '$refValue'";
$Value = DB::select($t);
if (!empty($Value)) {
return $Value[0]->$field;
} else {
return "Not Found in Table";
}
}
static function getRow($tableName, $condition = "1")
{
$tableName = strtolower($tableName);
$t = "select * from $tableName where $condition";
$Value = DB::select($t);
return (empty($Value) ? "Not Found" : $Value[0]);
}
static function getRowByQuery($query)
{
$Value = DB::select($query);
return (empty($Value) ? false : $Value[0]);
}
static function getTableByQuery($query)
{
$Value = DB::select($query);
return (empty($Value) ? false : $Value);
}
static function updateRow($tableName, $fieldName, $fieldValue, $referenceField, $referenceValue)
{
$tableName = strtolower($tableName);
$t = "update $tableName set $fieldName='$fieldValue' where $referenceField=$referenceValue";
return DB::select($t);
}
public static function pre($array)
{
echo "<pre>";
print_r($array);
echo "</pre>";
}
public static function addButton($path, $text)
{
?>
<a href="<?php echo url($path); ?>" class="btn btn-primary btn-sm pull-right">
<em class="icon ni ni-plus"></em><span><?php echo $text; ?></span>
</a>
<?php
}
public static function addRowActions($pk)
{
echo "<ul class=\"d-flex flex-wrap\">
<li><a href=\"#\" type=\"button\" class=\"btn btn-color-success btn-hover-success btn-icon btn-soft\" ><em class=\"icon ni ni-eye\"></em></a></li>
<li><a href=\"form2.php\" type=\"button\" class=\"btn btn-color-primary btn-hover-primary btn-icon btn-soft\" data-bs-toggle=\"tooltip\" data-bs-placement=\"top\" data-bs-custom-class=\"custom-tooltip\" title=\"Edit\"> <em class=\"icon ni ni-edit\"></em></a></li>
<li><button type=\"button\" class=\"btn btn-color-danger btn-hover-danger btn-icon btn-soft\"><em class=\"icon ni ni-trash\"></em></button></li>
</ul>";
BibClass::addButton("edit/$pk", 'Edit');
BibClass::addButton("view/$pk", 'View');
BibClass::addButton("destroy/$pk", 'Delete');
}
public static function getController()
{
$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $action) = explode('@', $controllerAction);
print_r($controller);
}
public static function createSidebarMenu($link, $name, $target = "")
{
?>
<li class="nk-menu-item"><a href="<?php echo $link; ?>" class="nk-menu-link" <?php echo ($target != "") ? "target=\"_blank\"" : ""; ?>><span class="nk-menu-text"><?php echo $name; ?></span></a></li>
<?php
}
public static function dataTable($TableRows, $TableName)
{
$TableName = strtolower($TableName);
$Table_pk = str_replace("tbl_", "", $TableName) . "_id";
$TableCols = array_keys((array)$TableRows[0]);
//BibClass::pre($TableCols);
?>
<table class="datatable-init table" data-nk-container="table-responsive table-border">
<thead>
<tr>
<?php foreach ($TableCols as $TableCol) : //echo $TableCol;
?>
<?php switch ($TableCol) {
case $Table_pk:
case 'created_by':
case 'created_on':
case 'remarks':
case 'status':
case 'created_at':
case 'updated_at':
break;
default:
?>
<th class="text-nowrap"><span class="overline-title"><?php echo label($TableCol); ?></span>
</th>
<?php
}
?>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php foreach ($TableRows as $TableRow) : ?>
<tr>
<?php foreach ($TableCols as $TableCol) : //echo $TableCol;
?>
<?php switch ($TableCol) {
case $Table_pk:
case 'created_by':
case 'created_on':
case 'remarks':
case 'status':
case 'created_at':
case 'updated_at':
break;
default:
?>
<th class="text-nowrap"><span class="overline-title"><?php echo $TableRow->$TableCol; ?></span>
</th>
<?php
}
?>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php
}
public static function tableEntryForm($tableName)
{
$tableName = strtolower($tableName);
$Table_pk = str_replace("tbl_", "", $tableName) . "_id";
$tableFields = DB::select("describe " . $tableName);
foreach ($tableFields as $tableField) {
$tableField = $tableField->Field;
switch ($tableField) {
case $Table_pk:
case 'status':
case 'created_at':
case 'updated_at':
break;
default:
createInput("text", $tableField, $tableField, $tableField, "", "", "");
}
}
}
}