M3 Integration fixes
This commit is contained in:
@@ -39,6 +39,14 @@ class FillBOL2Controller extends Controller
|
||||
|
||||
}
|
||||
private function bolData(Request $request, Request $bOL): array
|
||||
{
|
||||
return array_merge(
|
||||
$this->bolPrimaryData($request, $bOL),
|
||||
$this->bolRemainingData()
|
||||
);
|
||||
}
|
||||
|
||||
private function bolPrimaryData(Request $request, Request $bOL): array
|
||||
{
|
||||
return [
|
||||
'bol_number' => $request->input('BOL_number') ?? '1234567890',
|
||||
@@ -138,7 +146,13 @@ Line 5',
|
||||
'LNITEMCLAS17' => '',
|
||||
'TYPEANDESCPTN.17' => '',
|
||||
'PKGTYPECOUNT17' => '',
|
||||
'LNITEMWT16' => '',
|
||||
];
|
||||
}
|
||||
|
||||
private function bolRemainingData(): array
|
||||
{
|
||||
return [
|
||||
'LNITEMWT16' => '',
|
||||
'CLASSORATE16' => '',
|
||||
'LNITEMCLAS16' => '',
|
||||
'TYPEANDESCPTN.16' => '',
|
||||
@@ -225,7 +239,7 @@ Line 5',
|
||||
'BILLTOADDR' => '',
|
||||
'NUMDROPS' => '',
|
||||
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -55,6 +55,14 @@ class FillBOLController extends Controller
|
||||
|
||||
}
|
||||
private static function bolFormData(Request $bOL): array
|
||||
{
|
||||
return array_merge(
|
||||
self::bolPrimaryFields($bOL),
|
||||
self::bolRemainingFields()
|
||||
);
|
||||
}
|
||||
|
||||
private static function bolPrimaryFields(Request $bOL): array
|
||||
{
|
||||
return [
|
||||
'DTESHIPED.1' => date('d/m/Y'),
|
||||
@@ -125,7 +133,13 @@ class FillBOLController extends Controller
|
||||
'LNITEMCLAS17' => '',
|
||||
'TYPEANDESCPTN.17' => '',
|
||||
'PKGTYPECOUNT17' => '',
|
||||
'LNITEMWT16' => '',
|
||||
];
|
||||
}
|
||||
|
||||
private static function bolRemainingFields(): array
|
||||
{
|
||||
return [
|
||||
'LNITEMWT16' => '',
|
||||
'CLASSORATE16' => '',
|
||||
'LNITEMCLAS16' => '',
|
||||
'TYPEANDESCPTN.16' => '',
|
||||
@@ -212,7 +226,7 @@ class FillBOLController extends Controller
|
||||
'BILLTOADDR' => '',
|
||||
'NUMDROPS' => '',
|
||||
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -155,211 +155,218 @@ class UtilitiesController extends Controller
|
||||
|
||||
try {
|
||||
Log::channel('LabelCron')->info('>>> Run GS1 Label creation Command...');
|
||||
|
||||
// Get the Calling User
|
||||
// $userId = 'TWOSHIP';
|
||||
// $sHUSER = isset($userId) ? $userId : (m3_user() !== '' ? Str::upper(trim(m3_user())) : '');
|
||||
|
||||
// Get Manifest Array
|
||||
$gSArray = $request->query();
|
||||
$sHUSER = trim((string) ($gSArray['User'] ?? ''));
|
||||
$gS1FileNameNoRoot = '';
|
||||
|
||||
$sHUSER = isset($gSArray['User']) ? trim($gSArray['User']) : '';
|
||||
|
||||
if ($sHUSER != '') {
|
||||
// Get User CO & WH from Table ICM428M
|
||||
$iCM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
|
||||
->select('R428US', 'R428CO', 'R428WH', 'R428PL')
|
||||
->where('R428US', '=', $sHUSER)
|
||||
->first();
|
||||
|
||||
$cOMPANY = isset($iCM428M->R428CO) ? $iCM428M->R428CO : ''; // Company
|
||||
$pLANT = isset($iCM428M->R428PL) ? $iCM428M->R428PL : ''; // Plant
|
||||
$wHS = isset($iCM428M->R428WH) ? $iCM428M->R428WH : ''; // WareHouse
|
||||
|
||||
$macpkr = $gSArray['Macpkr'];
|
||||
$packageType = trim($gSArray['packageType']); // 1 => Pallet , 0 => Carton
|
||||
$packageTypeDesc = $packageType == 1 ? 'Pallet' : 'Carton';
|
||||
$manufactID = '0826528'; // MAK : get ID from Nvent and save to Config File
|
||||
$total_length = 9;
|
||||
|
||||
$html = '
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
.border_btm {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
.border_rght {
|
||||
border-right: 1px solid;
|
||||
}
|
||||
|
||||
.margin_t {
|
||||
padding-top : 10px;
|
||||
}
|
||||
|
||||
.align_lft {
|
||||
text-align: left;
|
||||
}
|
||||
.align_center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@page { margin: 5px; }
|
||||
body { margin: 0px; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="font-family: Arial, sans-serif;">';
|
||||
|
||||
// Get number of Pallets
|
||||
$packageCount = count($gSArray['PackagesArray']);
|
||||
$packageNum = 1;
|
||||
|
||||
// Get GS1 Label MAX ID from ICM695M3 :
|
||||
$gS1SEQUENCESel = DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')->max('ID');
|
||||
$gS1SEQUENCE = isset($gS1SEQUENCESel) ? $gS1SEQUENCESel : 0;
|
||||
|
||||
// Loop PackagesArray : Build Table for PDF and Insert to ICM695m3
|
||||
foreach ($gSArray['PackagesArray'] as $value) {
|
||||
$table_style = $packageNum < $packageCount ? ' style="page-break-after: always;" ' : '';
|
||||
|
||||
$a2INTBOX = trim($value);
|
||||
|
||||
$gS1SEQUENCE++;
|
||||
$gS1SEQUENCEID = str_pad($gS1SEQUENCE, $total_length, '0', STR_PAD_LEFT);
|
||||
// Build GS1 18 Digits Code
|
||||
$gs1_128_bc_1 = '00' . $packageType . $manufactID . $gS1SEQUENCEID;
|
||||
|
||||
$checkDigit = self::gs1CheckDigit($gs1_128_bc_1);
|
||||
|
||||
// SSCC 18 Digits Code
|
||||
$gs1_128_bc = $gs1_128_bc_1 . $checkDigit;
|
||||
|
||||
$gs1_128_bc_desc = '(00)' . $packageType . $manufactID . $gS1SEQUENCEID . $checkDigit;
|
||||
|
||||
$data = [
|
||||
'ship_to' => $gSArray['Recipient_CompanyName'] . '<br>' . $gSArray['Recipient_Address1'] . '<br>' .
|
||||
$gSArray['Recipient_City'] . ',' . $gSArray['Recipient_State']
|
||||
. '<br>' . $gSArray['Recipient_PostalCode'],
|
||||
'from' => $gSArray['Sender_CompanyName'] . '<br>' . $gSArray['Sender_Address1'] . '<br>' .
|
||||
$gSArray['Sender_City'] . ',' . $gSArray['Sender_State']
|
||||
. '<br>' . $gSArray['Sender_PostalCode'],
|
||||
'ship_to_lbl' => '420' . $gSArray['Recipient_PostalCode'],
|
||||
'ship_to_desc' => '(420)' . $gSArray['Recipient_PostalCode'],
|
||||
'pro' => '190071217845706', // MAK : Check missing info with Brad
|
||||
'item_number' => '10000B',
|
||||
'upc' => '098506095310',
|
||||
'quantity' => '1',
|
||||
'serial_shipping_container' => $gs1_128_bc_desc,
|
||||
];
|
||||
|
||||
// Initialize barcode generator
|
||||
$generator = new BarcodeGeneratorPNG;
|
||||
|
||||
// Generate barcodes
|
||||
$shipToPostalCodeBarcode = $generator->getBarcode($data['ship_to_lbl'], $generator::TYPE_CODE_128);
|
||||
$serialShippingContainerBarcode = $generator->getBarcode($data['serial_shipping_container'], $generator::TYPE_CODE_128, 2, 50);
|
||||
|
||||
// HTML content for the label
|
||||
$html .= '
|
||||
<table ' . $table_style . '>
|
||||
<tr>
|
||||
<td colspan="2" class="border_btm border_rght align_lft">
|
||||
FROM:<br>' . $data['from'] . '
|
||||
</td>
|
||||
<td colspan="2" class="border_btm align_lft">
|
||||
SHIP TO:<br>' . $data['ship_to'] . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" class="border_btm border_rght margin_t align_center">
|
||||
<img src="data:image/png;base64,' . base64_encode($shipToPostalCodeBarcode) . '"> <br>
|
||||
' . $data['ship_to_desc'] . '
|
||||
</td>
|
||||
<td class="border_btm margin_t align_lft">
|
||||
Carrier: ' . $gSArray['CarrierName'] . ' <br>
|
||||
PRO #: ' . $gSArray['trackingno'] . ' <br>
|
||||
B/L #: ' . $gSArray['BOLnumber'] . ' <br>
|
||||
Ref : ' . $a2INTBOX . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" class="border_btm margin_t align_lft">
|
||||
PURCHASE ORDER: ' . $gSArray['ShipmentPONumber'] . ' <br>
|
||||
Vendor: ' . $manufactID . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" class="border_btm margin_t align_center">
|
||||
' . $packageTypeDesc . ' # : ' . $packageNum . ' of ' . $packageCount . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" style="text-align: center;" class="margin_t">
|
||||
<img src="data:image/png;base64,' . base64_encode($serialShippingContainerBarcode) . '"><br>
|
||||
' . $data['serial_shipping_container'] . '
|
||||
</td>
|
||||
</tr>
|
||||
</table>';
|
||||
|
||||
$packageNum++;
|
||||
|
||||
// Insert new Record to ICM695M3 $gs1_128_bc
|
||||
DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')
|
||||
->insert(['A2CO' => $cOMPANY, 'A2WHS' => $wHS, 'A2PLANT' => $pLANT, 'A2MACPKR' => $macpkr, 'A2GS1LABEL' => $gs1_128_bc, 'A2INTBOX' => $a2INTBOX]);
|
||||
|
||||
Log::channel('LabelCron')->info('<<< GS1-128...End of Label Creation for Mackpkr: ' . $macpkr);
|
||||
}
|
||||
|
||||
$html .= '</body> </html>';
|
||||
|
||||
ob_start();
|
||||
|
||||
// Initialize Dompdf
|
||||
$dompdf = new Dompdf;
|
||||
$dompdf->loadHtml($html);
|
||||
$dompdf->setPaper('a6', 'portrait');
|
||||
// Render the HTML as PDF
|
||||
$dompdf->render();
|
||||
|
||||
// Output the generated PDF to Browser
|
||||
// $dompdf->stream();
|
||||
|
||||
$pdfContent = $dompdf->output();
|
||||
|
||||
$labelsPath = Config::get('arrays.PdfPath'); // '/www/sentm3live/htdocs/labels/';
|
||||
// Put the PDF in labels/CarrierLabel
|
||||
$gSFolder = 'GSLabel';
|
||||
|
||||
$carrierFileName = $gSFolder . '_' . $macpkr . '_' . $cOMPANY . '_' . $wHS . '_' . $a2INTBOX;
|
||||
// LTL
|
||||
// if ($packageType=='1') {
|
||||
// $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS;
|
||||
// }
|
||||
// # small Packs
|
||||
// else{
|
||||
// $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS.'_'.$a2INTBOX;
|
||||
// }
|
||||
|
||||
$gS1FileName = $labelsPath . $gSFolder . '/' . $carrierFileName . '.pdf';
|
||||
$gS1FileNameNoRoot = $gSFolder . '/' . $carrierFileName;
|
||||
file_put_contents($gS1FileName, $pdfContent);
|
||||
ob_end_clean();
|
||||
if ($sHUSER !== '') {
|
||||
$gS1FileNameNoRoot = self::generateGS128ForUser($gSArray, $sHUSER);
|
||||
}
|
||||
|
||||
// # Insert new Record to ICM695M3 $gs1_128_bc
|
||||
// DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')
|
||||
// ->insert(['A2CO'=> $cOMPANY,'A2WHS'=> $wHS,'A2MACPKR'=> $macpkr,'A2GS1LABEL'=> $gs1_128_bc]);
|
||||
|
||||
return json_encode(['result' => 'success', 'GS1File' => $gS1FileNameNoRoot]);
|
||||
|
||||
} catch (\Throwable $th) {
|
||||
Log::channel('LabelCron')->error($th);
|
||||
|
||||
return json_encode(['result' => 'error', 'GS1File' => $th]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private static function generateGS128ForUser(array $gSArray, string $sHUSER): string
|
||||
{
|
||||
// Get User CO & WH from Table ICM428M
|
||||
$iCM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
|
||||
->select('R428US', 'R428CO', 'R428WH', 'R428PL')
|
||||
->where('R428US', '=', $sHUSER)
|
||||
->first();
|
||||
|
||||
$cOMPANY = isset($iCM428M->R428CO) ? $iCM428M->R428CO : ''; // Company
|
||||
$pLANT = isset($iCM428M->R428PL) ? $iCM428M->R428PL : ''; // Plant
|
||||
$wHS = isset($iCM428M->R428WH) ? $iCM428M->R428WH : ''; // WareHouse
|
||||
|
||||
$macpkr = $gSArray['Macpkr'];
|
||||
$packageType = trim($gSArray['packageType']); // 1 => Pallet , 0 => Carton
|
||||
$packageTypeDesc = $packageType == 1 ? 'Pallet' : 'Carton';
|
||||
$manufactID = '0826528'; // MAK : get ID from Nvent and save to Config File
|
||||
$total_length = 9;
|
||||
|
||||
$html = '
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
.border_btm {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
.border_rght {
|
||||
border-right: 1px solid;
|
||||
}
|
||||
|
||||
.margin_t {
|
||||
padding-top : 10px;
|
||||
}
|
||||
|
||||
.align_lft {
|
||||
text-align: left;
|
||||
}
|
||||
.align_center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@page { margin: 5px; }
|
||||
body { margin: 0px; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="font-family: Arial, sans-serif;">';
|
||||
|
||||
// Get number of Pallets
|
||||
$packageCount = count($gSArray['PackagesArray']);
|
||||
$packageNum = 1;
|
||||
|
||||
// Get GS1 Label MAX ID from ICM695M3 :
|
||||
$gS1SEQUENCESel = DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')->max('ID');
|
||||
$gS1SEQUENCE = isset($gS1SEQUENCESel) ? $gS1SEQUENCESel : 0;
|
||||
|
||||
// Loop PackagesArray : Build Table for PDF and Insert to ICM695m3
|
||||
foreach ($gSArray['PackagesArray'] as $value) {
|
||||
$table_style = $packageNum < $packageCount ? ' style="page-break-after: always;" ' : '';
|
||||
|
||||
$a2INTBOX = trim($value);
|
||||
|
||||
$gS1SEQUENCE++;
|
||||
$gS1SEQUENCEID = str_pad($gS1SEQUENCE, $total_length, '0', STR_PAD_LEFT);
|
||||
// Build GS1 18 Digits Code
|
||||
$gs1_128_bc_1 = '00' . $packageType . $manufactID . $gS1SEQUENCEID;
|
||||
|
||||
$checkDigit = self::gs1CheckDigit($gs1_128_bc_1);
|
||||
|
||||
// SSCC 18 Digits Code
|
||||
$gs1_128_bc = $gs1_128_bc_1 . $checkDigit;
|
||||
|
||||
$gs1_128_bc_desc = '(00)' . $packageType . $manufactID . $gS1SEQUENCEID . $checkDigit;
|
||||
|
||||
$data = [
|
||||
'ship_to' => $gSArray['Recipient_CompanyName'] . '<br>' . $gSArray['Recipient_Address1'] . '<br>' .
|
||||
$gSArray['Recipient_City'] . ',' . $gSArray['Recipient_State']
|
||||
. '<br>' . $gSArray['Recipient_PostalCode'],
|
||||
'from' => $gSArray['Sender_CompanyName'] . '<br>' . $gSArray['Sender_Address1'] . '<br>' .
|
||||
$gSArray['Sender_City'] . ',' . $gSArray['Sender_State']
|
||||
. '<br>' . $gSArray['Sender_PostalCode'],
|
||||
'ship_to_lbl' => '420' . $gSArray['Recipient_PostalCode'],
|
||||
'ship_to_desc' => '(420)' . $gSArray['Recipient_PostalCode'],
|
||||
'pro' => '190071217845706', // MAK : Check missing info with Brad
|
||||
'item_number' => '10000B',
|
||||
'upc' => '098506095310',
|
||||
'quantity' => '1',
|
||||
'serial_shipping_container' => $gs1_128_bc_desc,
|
||||
];
|
||||
|
||||
// Initialize barcode generator
|
||||
$generator = new BarcodeGeneratorPNG;
|
||||
|
||||
// Generate barcodes
|
||||
$shipToPostalCodeBarcode = $generator->getBarcode($data['ship_to_lbl'], $generator::TYPE_CODE_128);
|
||||
$serialShippingContainerBarcode = $generator->getBarcode($data['serial_shipping_container'], $generator::TYPE_CODE_128, 2, 50);
|
||||
|
||||
// HTML content for the label
|
||||
$html .= self::gs128LabelHtml(
|
||||
$data, $gSArray, $a2INTBOX, $manufactID, $packageTypeDesc,
|
||||
$packageNum, $packageCount, $table_style,
|
||||
$shipToPostalCodeBarcode, $serialShippingContainerBarcode
|
||||
);
|
||||
|
||||
$packageNum++;
|
||||
|
||||
// Insert new Record to ICM695M3 $gs1_128_bc
|
||||
DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')
|
||||
->insert(['A2CO' => $cOMPANY, 'A2WHS' => $wHS, 'A2PLANT' => $pLANT, 'A2MACPKR' => $macpkr, 'A2GS1LABEL' => $gs1_128_bc, 'A2INTBOX' => $a2INTBOX]);
|
||||
|
||||
Log::channel('LabelCron')->info('<<< GS1-128...End of Label Creation for Mackpkr: ' . $macpkr);
|
||||
}
|
||||
|
||||
$html .= '</body> </html>';
|
||||
|
||||
ob_start();
|
||||
|
||||
// Initialize Dompdf
|
||||
$dompdf = new Dompdf;
|
||||
$dompdf->loadHtml($html);
|
||||
$dompdf->setPaper('a6', 'portrait');
|
||||
// Render the HTML as PDF
|
||||
$dompdf->render();
|
||||
|
||||
// Output the generated PDF to Browser
|
||||
// $dompdf->stream();
|
||||
|
||||
$pdfContent = $dompdf->output();
|
||||
|
||||
$labelsPath = Config::get('arrays.PdfPath'); // '/www/sentm3live/htdocs/labels/';
|
||||
// Put the PDF in labels/CarrierLabel
|
||||
$gSFolder = 'GSLabel';
|
||||
|
||||
$carrierFileName = $gSFolder . '_' . $macpkr . '_' . $cOMPANY . '_' . $wHS . '_' . $a2INTBOX;
|
||||
// LTL
|
||||
// if ($packageType=='1') {
|
||||
// $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS;
|
||||
// }
|
||||
// # small Packs
|
||||
// else{
|
||||
// $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS.'_'.$a2INTBOX;
|
||||
// }
|
||||
|
||||
$gS1FileName = $labelsPath . $gSFolder . '/' . $carrierFileName . '.pdf';
|
||||
$gS1FileNameNoRoot = $gSFolder . '/' . $carrierFileName;
|
||||
file_put_contents($gS1FileName, $pdfContent);
|
||||
ob_end_clean();
|
||||
|
||||
return $gS1FileNameNoRoot;
|
||||
}
|
||||
|
||||
private static function gs128LabelHtml(
|
||||
array $data, array $gSArray, string $a2INTBOX, string $manufactID,
|
||||
string $packageTypeDesc, int $packageNum, int $packageCount, string $table_style,
|
||||
string $shipToPostalCodeBarcode, string $serialShippingContainerBarcode
|
||||
): string {
|
||||
return '
|
||||
<table ' . $table_style . '>
|
||||
<tr>
|
||||
<td colspan="2" class="border_btm border_rght align_lft">
|
||||
FROM:<br>' . $data['from'] . '
|
||||
</td>
|
||||
<td colspan="2" class="border_btm align_lft">
|
||||
SHIP TO:<br>' . $data['ship_to'] . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" class="border_btm border_rght margin_t align_center">
|
||||
<img src="data:image/png;base64,' . base64_encode($shipToPostalCodeBarcode) . '"> <br>
|
||||
' . $data['ship_to_desc'] . '
|
||||
</td>
|
||||
<td class="border_btm margin_t align_lft">
|
||||
Carrier: ' . $gSArray['CarrierName'] . ' <br>
|
||||
PRO #: ' . $gSArray['trackingno'] . ' <br>
|
||||
B/L #: ' . $gSArray['BOLnumber'] . ' <br>
|
||||
Ref : ' . $a2INTBOX . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" class="border_btm margin_t align_lft">
|
||||
PURCHASE ORDER: ' . $gSArray['ShipmentPONumber'] . ' <br>
|
||||
Vendor: ' . $manufactID . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" class="border_btm margin_t align_center">
|
||||
' . $packageTypeDesc . ' # : ' . $packageNum . ' of ' . $packageCount . '
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" style="text-align: center;" class="margin_t">
|
||||
<img src="data:image/png;base64,' . base64_encode($serialShippingContainerBarcode) . '"><br>
|
||||
' . $data['serial_shipping_container'] . '
|
||||
</td>
|
||||
</tr>
|
||||
</table>';
|
||||
}
|
||||
|
||||
private static function gs1CheckDigit(string $value): int
|
||||
{
|
||||
$digits = str_split($value);
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
align-items: center;
|
||||
background: linear-gradient(135deg, rgba(15, 118, 110, 0.14), rgba(37, 99, 235, 0.12));
|
||||
border-radius: 18px;
|
||||
color: #00100f;
|
||||
color: #000000;
|
||||
display: flex;
|
||||
font-size: 1.35rem;
|
||||
height: 56px;
|
||||
|
||||
@@ -4,10 +4,12 @@
|
||||
$isPlatformAdmin = $user !== null
|
||||
&& method_exists($user, 'isMpbaPlatformAdmin')
|
||||
&& $user->isMpbaPlatformAdmin();
|
||||
|
||||
$dashboardRoute = Route::has('platform.dashboard') && $isPlatformAdmin
|
||||
? 'platform.dashboard'
|
||||
: (Route::has('dashboard') ? 'dashboard' : null);
|
||||
@endphp
|
||||
|
||||
<header class="sticky top-0 z-40 border-b border-white/10 bg-[#111118]/95 backdrop-blur" role="banner">
|
||||
<div class="flex h-16 w-full items-center justify-between gap-3 px-3 sm:px-4 lg:px-6">
|
||||
<div class="flex min-w-0 items-center gap-3 lg:hidden">
|
||||
|
||||
Reference in New Issue
Block a user