updates to M3 module

This commit is contained in:
Mark Gregory
2026-09-16 16:51:59 +01:00
parent ce06aa9fac
commit 0237b1dc2a
6 changed files with 99 additions and 69 deletions
+30 -27
View File
@@ -343,36 +343,39 @@ class Helper
} }
public static function getUserCOWHSPLT(){ public static function getUserCOWHSPLT(){
# Get Current USER $defaults = [
$loggedUser = strtoUpper(m3_user()); 'UserCO' => '',
// dump($loggedUser); 'UserWHS' => '',
$getUsers = DB::connection(config('m3.connection', 'pgsql'))->select("select R428US, R428ADMUSR, R428PWRUSR, R428CO, R428PL, R428WH, R42811A,R42821A from ICM428M where R428US='".$loggedUser."'"); 'UserPL' => '',
];
foreach ($getUsers as $key=>$user) { $loggedUser = strtoupper(trim((string) m3_user()));
if(trim($user->R428ADMUSR)=="Y") { if ($loggedUser === '') {
# Different logic from Qinclude version : this not an Array return $defaults;
$admin_users=trim($user->R428ADMUSR); }
}
if(trim($user->R428PWRUSR)=="Y") {
# Different logic from Qinclude version : this not an Array
$power_users=trim($user->R428PWRUSR);
}
if(trim($user->R42811A)=="C") {
$csr="Y";
}
if(trim($user->R42821A)=="Y") {
$execUser="Y";
}
$UserCO = $user->R428CO;
$UserWHS = $user->R428WH;
$UserPL = $user->R428PL;
$currentUser = [ try {
'UserCO' => $UserCO, if (!\Illuminate\Support\Facades\Schema::connection(config('m3.connection', 'pgsql'))->hasTable('icm428m')) {
'UserWHS' => $UserWHS, return $defaults;
'UserPL' => $UserPL, }
$user = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
->select('R428US', 'R428ADMUSR', 'R428PWRUSR', 'R428CO', 'R428PL', 'R428WH', 'R42811A', 'R42821A')
->where('R428US', $loggedUser)
->first();
if (!$user) {
return $defaults;
}
return [
'UserCO' => trim((string) ($user->R428CO ?? '')),
'UserWHS' => trim((string) ($user->R428WH ?? '')),
'UserPL' => trim((string) ($user->R428PL ?? '')),
]; ];
return $currentUser; } catch (\Throwable $e) {
\Illuminate\Support\Facades\Log::warning('M3 user context unavailable', ['exception' => $e->getMessage()]);
return $defaults;
} }
} }
@@ -17,10 +17,19 @@ class carrierMaintController extends Controller
public static function index(Request $request) { public static function index(Request $request) {
$currentUser = Helper::getUserCOWHSPLT(); $currentUser = Helper::getUserCOWHSPLT();
$UserCO = $currentUser['UserCO'] ?? ''; $UserCO = $currentUser['UserCO'] ?? '';
$ICM160M = DB::connection(config('m3.connection', 'pgsql'))->select(" $ICM160M = [];
select canum, canam, substr(CATPID,1,3) as TwoshipCarrierCode, substr(CATPID,4,1) as ParcelCarrierCode, caspr10A01, caspr1A01 $power_user = [];
from icm160m WHERE CACO='$UserCO'"); $schema = \Illuminate\Support\Facades\Schema::connection(config('m3.connection', 'pgsql'));
$power_user = DB::connection(config('m3.connection', 'pgsql'))->select("select R428PWRUSR, R428CO, R428PL, R428WH from ICM428M where R428US='".strtoUpper(m3_user())."'"); if ($schema->hasTable('icm160m')) {
$ICM160M = DB::connection(config('m3.connection', 'pgsql'))->select("
select canum, canam, substr(CATPID,1,3) as TwoshipCarrierCode, substr(CATPID,4,1) as ParcelCarrierCode, caspr10A01, caspr1A01
from icm160m WHERE CACO=?", [$UserCO]);
}
if ($schema->hasTable('icm428m')) {
$power_user = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
->select('R428PWRUSR', 'R428CO', 'R428PL', 'R428WH')
->where('R428US', strtoUpper(m3_user()))->get()->all();
}
return view('m3::liberty-theme.pages.carrierMaint', compact('ICM160M','power_user')); return view('m3::liberty-theme.pages.carrierMaint', compact('ICM160M','power_user'));
} }
@@ -14,6 +14,12 @@ use Log;
class execSummaryController extends Controller class execSummaryController extends Controller
{ {
public static function index(Request $request){ public static function index(Request $request){
$IC670M = collect();
$WHDDA = '';
$COMPANY = '110';
$PLANT = '144';
$WHS = '322';
try { try {
# Ajax Call # Ajax Call
if ($request->ajax()) { if ($request->ajax()) {
@@ -32,21 +32,25 @@ class userPickingStats4 extends Controller
#618 #618
# Get Logged User CO & WH # Get Logged User CO & WH
# Get Users from ICM428M # Get Users from ICM428M
$ICM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m') $co = '';
->select('R428US','R428CO', 'R428WH') $whs = '';
->where('R428US','=',strtoUpper(m3_user())) $ICM428M = [];
->first(); $schema = \Illuminate\Support\Facades\Schema::connection(config('m3.connection', 'pgsql'));
$co = $ICM428M->R428CO; if ($schema->hasTable('icm428m')) {
$whs = $ICM428M->R428WH; $profile = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
->select('R428US','R428CO', 'R428WH')
->where('R428US','=',strtoUpper(m3_user()))
->first();
$co = $profile->R428CO ?? '';
$whs = $profile->R428WH ?? '';
$ICM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
->selectRaw("R428US as userprf, (trim(R428FIRST) || ' ' || trim(R428FAMILY)) as name, R428EMPCDE as empno")
->where('R428STS', 'A')->where('R428EMPCDE', '!=', 0)
->where('R428CO', $co)->where('R428WH', $whs)->get()->all();
}
$user_array=array(); $user_array=array();
#$sqlstmt="SELECT R428US as userprf, R428FIRST, R428FAMILY, R428EMPCDE as empno FROM ICM428M where R428EMPCDE!=0";
$sqlstmt="SELECT R428US as userprf, (trim(R428FIRST) || ' ' || trim(R428FAMILY)) as name, R428EMPCDE as empno FROM ICM428M
where R428STS='A' and R428EMPCDE!=0 and R428CO='$co' and R428WH='$whs'";
$ICM428M = DB::connection(config('m3.connection', 'pgsql'))->select($sqlstmt);
// ->selectRaw("R428US, (trim(R428FIRST) || ' ' || trim(R428FAMILY)), R428EMPCDE ")
// ->where("R428EMPCDE!=0")
// ->get();
#while($row = odbc_fetch_object($result)) { #while($row = odbc_fetch_object($result)) {
$x=0; $x=0;
foreach($ICM428M as $key=>$row) { foreach($ICM428M as $key=>$row) {
@@ -17,31 +17,40 @@ class userPickingStats5 extends Controller
public static function index(Request $request){ public static function index(Request $request){
#618 #618
# Get Logged User CO & WH # Get Logged User CO & WH. Legacy M3 profile data may not yet exist in PostgreSQL.
# Get Users from ICM428M $co = '';
$ICM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m') $whs = '';
->select('R428US','R428CO', 'R428WH') $user_array = [];
->where('R428US','=',strtoUpper(m3_user())) try {
->first(); if (\Illuminate\Support\Facades\Schema::connection(config('m3.connection', 'pgsql'))->hasTable('icm428m')) {
$co = $ICM428M->R428CO; $profile = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
$whs = $ICM428M->R428WH; ->select('R428US','R428CO', 'R428WH')
->where('R428US', strtoupper((string) m3_user()))
->first();
$co = trim((string) ($profile->R428CO ?? ''));
$whs = trim((string) ($profile->R428WH ?? ''));
#@dd($request); if ($co !== '' && $whs !== '') {
#$user_array=Config::get('arrays.user_array'); $rows = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
$user_array=array(); ->selectRaw("R428US as userprf, (trim(R428FIRST) || ' ' || trim(R428FAMILY)) as name, R428EMPCDE as empno")
$sqlstmt="SELECT R428US as userprf, (trim(R428FIRST) || ' ' || trim(R428FAMILY)) as name, R428EMPCDE as empno FROM ICM428M ->where('R428EMPCDE', '!=', 0)
where R428EMPCDE!=0 and R428CO='$co' and R428WH='$whs'"; ->where('R428CO', $co)
$ICM428M = DB::connection(config('m3.connection', 'pgsql'))->select($sqlstmt); ->where('R428WH', $whs)
$x=0; ->get();
foreach($ICM428M as $key=>$row) { foreach ($rows as $row) {
// print_r($row); $user_array[] = [
$user_array[$x]['userprf']=trim($row->USERPRF); 'userprf' => trim((string) $row->userprf),
#$user_array[$x]['name']=trim($row->R428FIRST)+' '+trim($row->R428FAMILY); 'name' => trim((string) $row->name),
$user_array[$x]['name']=trim($row->NAME); 'empno' => $row->empno,
$user_array[$x]['empno']=$row->EMPNO; ];
$x++; }
array_multisort(array_column($user_array, 'name'), SORT_ASC, $user_array);
}
}
} catch (\Throwable $e) {
\Illuminate\Support\Facades\Log::warning('M3 picking user list unavailable', ['exception' => $e->getMessage()]);
$user_array = [];
} }
array_multisort(array_column($user_array, 'name'), SORT_ASC, $user_array);
// Filter by date // Filter by date
if (isset($request->dates)) { if (isset($request->dates)) {
@@ -263,7 +263,6 @@
@if (Route::has('m3.userPickingStats4'))<a href="{{ route('m3.userPickingStats4') }}" class="wms-sidebar-link wms-m3-submenu-link @if (request()->routeIs('m3.userPickingStats4')) is-active @endif"><i class="fa-solid fa-chart-column wms-sidebar-icon" aria-hidden="true"></i><span>{{ __('KPI1 Bar') }}</span></a>@endif @if (Route::has('m3.userPickingStats4'))<a href="{{ route('m3.userPickingStats4') }}" class="wms-sidebar-link wms-m3-submenu-link @if (request()->routeIs('m3.userPickingStats4')) is-active @endif"><i class="fa-solid fa-chart-column wms-sidebar-icon" aria-hidden="true"></i><span>{{ __('KPI1 Bar') }}</span></a>@endif
@if (Route::has('m3.userPickingStats5'))<a href="{{ route('m3.userPickingStats5') }}" class="wms-sidebar-link wms-m3-submenu-link @if (request()->routeIs('m3.userPickingStats5')) is-active @endif"><i class="fa-solid fa-chart-line wms-sidebar-icon" aria-hidden="true"></i><span>{{ __('KPI1 Line') }}</span></a>@endif @if (Route::has('m3.userPickingStats5'))<a href="{{ route('m3.userPickingStats5') }}" class="wms-sidebar-link wms-m3-submenu-link @if (request()->routeIs('m3.userPickingStats5')) is-active @endif"><i class="fa-solid fa-chart-line wms-sidebar-icon" aria-hidden="true"></i><span>{{ __('KPI1 Line') }}</span></a>@endif
@if (Route::has('m3.execsummary'))<a href="{{ route('m3.execsummary') }}" class="wms-sidebar-link wms-m3-submenu-link @if (request()->routeIs('m3.execsummary*')) is-active @endif"><i class="fa-solid fa-chart-simple wms-sidebar-icon" aria-hidden="true"></i><span>{{ __('OTTC') }}</span></a>@endif @if (Route::has('m3.execsummary'))<a href="{{ route('m3.execsummary') }}" class="wms-sidebar-link wms-m3-submenu-link @if (request()->routeIs('m3.execsummary*')) is-active @endif"><i class="fa-solid fa-chart-simple wms-sidebar-icon" aria-hidden="true"></i><span>{{ __('OTTC') }}</span></a>@endif
@if (Route::has('sentinel-integration.index'))<a href="{{ route('sentinel-integration.index') }}" class="wms-sidebar-link wms-m3-submenu-link"><i class="fa-solid fa-satellite-dish wms-sidebar-icon" aria-hidden="true"></i><span>{{ __('Sentinel Home') }}</span></a>@endif
</div> </div>
@endif @endif
@endif @endif