M3 Integration fixes

This commit is contained in:
Mark Gregory
2026-09-21 14:27:26 +01:00
parent bcbdd24f15
commit 4108354935
25 changed files with 182 additions and 162 deletions
@@ -295,7 +295,7 @@ class CloseShipment extends Controller
->orderBy('AYINTBOX')
->get();
foreach ($iCM695M1JOINTMP as $key => $ICM695M1JOINR) {
foreach ($iCM695M1JOINTMP as $ICM695M1JOINR) {
$a4SHIPVIA = isset($ICM695M1JOINR->A4SHIPVIA) ? trim(str_replace('&', '_', $ICM695M1JOINR->A4SHIPVIA)) : '';
$sHIPTYPE = trim($ICM695M1JOINR->A4SHIPTYPE);
@@ -18,6 +18,10 @@ class OrderLinesOfClosedOrder extends Controller
public static function index(Request $request)
{
$iC670M = $iCM688M2 = [];
$wHDDA = '';
$cOMPANY = '110';
$pLANT = '144';
$wHS = '322';
$rEPORTDATEDisp = today()->format('Ymd');
$allReportsUrls = [];
try {
@@ -237,7 +241,7 @@ class OrderLinesOfClosedOrder extends Controller
private static function userWarehouseContext(string $defaultCompany = '', string $defaultPlant = '', string $defaultWarehouse = ''): array
{
$user = trim((string) m3User());
$user = trim((string) m3_user());
if ($user === '') {
return [$defaultCompany, $defaultPlant, $defaultWarehouse];
}
@@ -21,7 +21,7 @@ class UserControlController extends Controller
$connection = config('m3.connection', 'pgsql');
$profile = null;
if (Schema::connection($connection)->hasTable('icm428m')) {
$profile = DB::connection($connection)->table('icm428m')->where('R428US', strtoupper(m3User()))->first();
$profile = DB::connection($connection)->table('icm428m')->where('R428US', strtoupper(m3_user()))->first();
}
$co = $profile->R428CO ?? '';
$whs = $profile->R428WH ?? '';
@@ -87,14 +87,14 @@ class UserControlController extends Controller
}
$conn->setOptions(['persistent' => false, 'stateless' => true, 'debug' => true, 'debugLogFile' => '/www/sentm3test/htdocs/M3/storage/logs/toolkit_debug.log']);
// Add LIB
// $result = $conn->clCommand('ADDLIBLE LIB(MPDAT10)');
// $result = $conn->CLCommand('ADDLIBLE LIB(MPDAT10)');
// define several input/output params
$params = [];
$params[] = $conn->addParameterChar('in', 10, 'User profile', 'E#iUsrPrf', $request->R428US);
$params[] = $conn->addParameterChar('in', 20, 'First name', 'FIRST', $request->R428FIRST);
$params[] = $conn->addParameterChar('in', 30, 'Family name', 'FAMILY', $request->R428FAMILY);
// # $result = $conn->pgmCall(Config::get('eproconf.misc.PGM1'), Config::get('eproconf.misc.libname4'), $params, array(), array());
$result = $conn->pgmCall('ICMUSRPRF', 'EWOBJ', $params, [], []);
$params[] = $conn->AddParameterChar('in', 10, 'User profile', 'E#iUsrPrf', $request->R428US);
$params[] = $conn->AddParameterChar('in', 20, 'First name', 'FIRST', $request->R428FIRST);
$params[] = $conn->AddParameterChar('in', 30, 'Family name', 'FAMILY', $request->R428FAMILY);
// # $result = $conn->PgmCall(Config::get('eproconf.misc.PGM1'), Config::get('eproconf.misc.libname4'), $params, array(), array());
$result = $conn->PgmCall('ICMUSRPRF', 'EWOBJ', $params, [], []);
if (! $result) {
return 'error profile2';
@@ -175,15 +175,15 @@ class UserControlController extends Controller
}
// Add LIB
// $result = $conn->clCommand('ADDLIBLE LIB(MPDAT10)');
// $result = $conn->CLCommand('ADDLIBLE LIB(MPDAT10)');
// define several input/output params
$params = [];
// AddParameterChar($io, $size, $comment, $varName, $value, $varying, $dimension)
// Add Warehouse Param
$params[] = $conn->addParameterChar('in', 10, 'userid', 'USERID', $request->USERID);
$params[] = $conn->addParameterChar('in', 1, 'action', 'ACTION', $request->ACTION);
$params[] = $conn->AddParameterChar('in', 10, 'userid', 'USERID', $request->USERID);
$params[] = $conn->AddParameterChar('in', 1, 'action', 'ACTION', $request->ACTION);
// AddParameterPackDec($io, $length, $scale, $comment, $varName, $value,$dimension)
// Add Delivery Note Param
@@ -193,10 +193,10 @@ class UserControlController extends Controller
// Config::get('eproconf.misc.PGM1'), Config::get('eproconf.misc.libname4')
// ICM700C EWOBJTST ICM700C ICM700CSBM
$result = $conn->pgmCall('ICMCHGPRF', 'EWOBJ', $params, [], []);
$result = $conn->PgmCall('ICMCHGPRF', 'EWOBJ', $params, [], []);
if (! $result) {
echo "<script>alert($pGMERRORS);</script>";
echo "<script>alert(" . json_encode($conn->getErrorMsg()) . ");</script>";
return 'error';
}
@@ -236,11 +236,11 @@ class UserControlController extends Controller
return self::programBridgeConnectionError($e);
}
$result = $conn->clCommand('QSYS/CHGUSRPRF USRPRF(' . $request->R428US_PWD . ') PASSWORD(' . $request->NEW_PASSWORD . ') STATUS(*ENABLED) PWDEXP(*NO)');
$result = $conn->CLCommand('QSYS/CHGUSRPRF USRPRF(' . $request->R428US_PWD . ') PASSWORD(' . $request->NEW_PASSWORD . ') STATUS(*ENABLED) PWDEXP(*NO)');
if (! $result) {
dump($pGMERRORS);
echo "<script>alert($pGMERRORS);</script>";
dump($conn->getErrorMsg());
echo "<script>alert(" . json_encode($conn->getErrorMsg()) . ");</script>";
return 'error pwd';
}
@@ -29,34 +29,25 @@ class UtilitiesController extends Controller
} catch (\Throwable $e) {
// Determine reason for failure.
// Probably database authentication error or invalid or unreachable database.
$code = $e->getCode();
Log::error('Unable to connect to the program bridge.', ['exception' => $e]);
switch ($code) {
case 8001:
// "Authorization failure on distributed database connection attempt"
// Usually means a wrong DB2 user or password
break;
case 42705:
break;
default:
break;
}
return response()->json(['error' => 'Program bridge connection failed.'], 503);
}
$conn->setOptions(['persistent' => false, 'stateless' => true, 'debug' => true, 'debugLogFile' => '/www/sentustesx/htdocs/storage/logs/toolkit_debug.log']);
// Add LIB
// $result = $conn->clCommand('ADDLIBLE LIB(MPDAT10)');
// $result = $conn->CLCommand('ADDLIBLE LIB(MPDAT10)');
// define several input/output params
$params = [];
// AddParameterChar($io, $size, $comment, $varName, $value, $varying, $dimension)
// Add Warehouse Param
$params[] = $conn->addParameterChar('in', 3, 'eqNumber', '', '111');
$params[] = $conn->AddParameterChar('in', 3, 'eqNumber', '', '111');
// AddParameterPackDec($io, $length, $scale, $comment, $varName, $value,$dimension)
// Add Delivery Note Param
$params[] = $conn->addParameterPackDec('in', 11, 0, 'ParamIn', '', '00000087125');
$params[] = $conn->AddParameterPackDec('in', 11, 0, 'ParamIn', '', '00000087125');
// Start Time Tracking
$start = microtime(true);
@@ -65,15 +56,15 @@ class UtilitiesController extends Controller
// Config::get('eproconf.misc.PGM1'), Config::get('eproconf.misc.libname4')
// ICM700C EWOBJTST ICM700C ICM700CSBM
$result = $conn->pgmCall('ICM700CSBM', 'EWOBJTST', $params, [], []);
$result = $conn->PgmCall('ICM700CSBM', 'EWOBJTST', $params, [], []);
if ($result) {
if (! $result) {
}
// Successful Call
else {
dump($result);
}
if ($pGMERRORS != '') {
dump($pGMERRORS);
}
// Get Execution Time
$time = microtime(true) - $start;
dump($time);
@@ -170,7 +161,7 @@ class UtilitiesController extends Controller
// Get the Calling User
// $userId = 'TWOSHIP';
// $sHUSER = isset($userId) ? $userId : (m3User() !== '' ? Str::upper(trim(m3User())) : '');
// $sHUSER = isset($userId) ? $userId : (m3_user() !== '' ? Str::upper(trim(m3_user())) : '');
// Get Manifest Array
$gSArray = $request->query();
@@ -2224,7 +2224,6 @@ div.table-responsive > table > tbody > tr:last-child > td{
opacity: 1;
}
.form-control::file-selector-button, .dataTable-input::file-selector-button {
padding: 0.375rem 0.75rem;
margin: -0.375rem -0.75rem;
-webkit-margin-end: 0.75rem;
margin-inline-end: 0.75rem;
@@ -3632,7 +3631,6 @@ textarea.form-control-lg {
.dropend .dropdown-toggle::after {
display: inline-block;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid transparent;
border-right: 0;
@@ -3652,7 +3650,6 @@ textarea.form-control-lg {
margin-right: 0.125rem;
}
.dropstart .dropdown-toggle::after {
display: inline-block;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
@@ -3661,7 +3658,6 @@ textarea.form-control-lg {
.dropstart .dropdown-toggle::before {
display: inline-block;
margin-right: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid transparent;
border-right: 0.3em solid;
@@ -20,7 +20,8 @@ Sentinel Doc Archive
</div>
<label for="recipient-name" class="col-sm-1 col-form-label">Warehouse:</label>
<div class="col-sm-2">
<select class="form-select" id="WHDDA" tabindex="-1" disabled>
<label for="WHDDA" class="visually-hidden">Warehouse</label>
<select class="form-select" id="WHDDA" aria-label="WHDD" tabindex="-1" disabled>
@foreach ($IC670M as $key => $IC670MR)
@php $currentWHDDA = trim($IC670MR->WDCO).trim($IC670MR->WDPL).trim($IC670MR->WDWHS); @endphp
<option value="{{ $currentWHDDA }}"
@@ -28,7 +28,8 @@ Solon Sentinel Portal
<div class="row mb-3">
<label for="inputWhs" class="col-sm-2 col-form-label">Warehouse</label>
<div class="col-sm-10">
<select name="whs" class="form-control">
<label for="exec_whs" class="visually-hidden">Warehouse</label>
<select id="exec_whs" aria-label="Whs" name="whs" class="form-control">
<option value="*ALL">*ALL</option>
@foreach($whs_array as $key)
<option value={{$key}}
@@ -26,7 +26,8 @@ Solon Sentinel Portal - Daily User Efficiency
<div class="row mb-3">
<label for="inputUser" class="col-sm-2 col-form-label">User</label>
<div class="col-sm-10">
<select name="user" class="form-select">
<label for="picking_user" class="visually-hidden">User</label>
<select id="picking_user" aria-label="User" name="user" class="form-select">
<option value="" selected> </option>
@foreach($user_array as $key=>$val)
<option value={{$val['userprf']}}
@@ -28,7 +28,8 @@ Solon Sentinel Portal - userPickingStats v4
<div class="row mb-3">
<label for="inputUser" class="col-sm-2 col-form-label">User</label>
<div class="col-sm-10">
<select name="user" class="form-control">
<label for="picking_user_old" class="visually-hidden">User</label>
<select id="picking_user_old" aria-label="User" name="user" class="form-control">
<option value="" selected> </option>
@foreach($user_array as $key=>$val)
<option value={{$val['userprf']}}
@@ -26,7 +26,8 @@ Solon Sentinel Portal - Graph User Efficiency
<div class="row mb-3">
<label for="inputUser" class="col-sm-2 col-form-label">User</label>
<div class="col-sm-10">
<select name="user" class="form-select">
<label for="picking_user5" class="visually-hidden">User</label>
<select id="picking_user5" aria-label="User" name="user" class="form-select">
@foreach($user_array as $key=>$val)
<option value={{$val['userprf']}}
@if($val['userprf']==$user) selected @endif
@@ -15,7 +15,8 @@ Sentinel Doc Archive
<div class="mb-2 row">
<label for="date" class="col-sm-1 col-form-label">Select Year and Month</label>
<div class="col-sm-1">
<select name="date_in_yr" id="date_in_yr">
<label for="date_in_yr" class="visually-hidden">Year</label>
<select aria-label="Date In Yr" name="date_in_yr" id="date_in_yr">
@for($x=date('Y',strtotime(date('Y').'- 5 years'));$x<date('Y');$x++)
<option value={{$x}}>{{$x}}</option>
@endfor
@@ -4,57 +4,60 @@
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Add</h5>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal"></button>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="table-responsive" id="M3DeliveryAddData">
<input type="hidden" id="addAVCO" name="addAVCO" value="{{$power_user->R428CO}}">
<input type="hidden" id="addAVPLANT" name="addAVPLANT" value="{{$power_user->R428PL}}">
<input type="hidden" id="addAVWHS" name="addAVWHS" value="{{$power_user->R428WH}}">
<div class="sonar-form-layout">
<div>
</div>
<div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Delivery Method</b></div> <!-- ALPHA -->
<div class="col text-right">
<table role="presentation" class="table table-condensed" >
<thead>
</thead>
<tbody>
<tr>
<td><b>Delivery Method</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="addAVDELMETH" class="visually-hidden">addAVDELMETH</label>
<input type="text" maxlength="4" length="4" class="myinput" name="addAVDELMETH" id="addAVDELMETH">
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Ship Via</b></div> <!-- ALPHA -->
<div class="col text-right">
<select id="addAVSHPVIA" name="addAVSHPVIA">
</td>
</tr>
<tr>
<td><b>Ship Via</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="addAVSHPVIA" class="visually-hidden">addAVSHPVIA</label>
<select aria-label="Addavshpvia" id="addAVSHPVIA" name="addAVSHPVIA">
<option value="">Select Ship Via</option>
@foreach($shipvia as $key=>$val)
<option value="{{$val->AXCODE}}">{{$val->AXCODE}} - {{$val->AXDESC}}</option>
@endforeach
</select>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Sentinel Route</b></div> <!-- ALPHA -->
<div class="col text-right">
<select id="addAVSHSRT" name="addAVSHSRT">
</td>
</tr>
<tr>
<td><b>Sentinel Route</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="addAVSHSRT" class="visually-hidden">addAVSHSRT</label>
<select aria-label="Addavshsrt" id="addAVSHSRT" name="addAVSHSRT">
<option value=" "></option>
<option value="GR">GR</option>
<option value="PU">PU</option>
</select>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>International Code</b></div> <!-- ALPHA -->
<div class="col text-right">
<select id="addAVSHORCL" name="addAVSHORCL">
</td>
</tr>
<tr>
<td><b>International Code</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="addAVSHORCL" class="visually-hidden">addAVSHORCL</label>
<select aria-label="Addavshorcl" id="addAVSHORCL" name="addAVSHORCL">
<option value=" " selected></option>
<option value="Y">002 - International</option>
</select>
</div>
</div>
</td>
</tr>
</div>
</div>
</tbody>
</table>
</div>
</div>
<div class="modal-footer">
@@ -4,62 +4,65 @@
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Edit</h5>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal"></button>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="table-responsive" id="M3DeliveryEditData">
<input type="hidden" id="AVCO" name="AVCO" value="{{$power_user->R428CO}}">
<input type="hidden" id="AVPLANT" name="AVPLANT" value="{{$power_user->R428PL}}">
<input type="hidden" id="AVWHS" name="AVWHS" value="{{$power_user->R428WH}}">
<div class="sonar-form-layout">
<div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Delivery Method</b></div> <!-- ALPHA -->
<div class="col text-right">
<table role="presentation" class="table table-condensed">
<tbody>
<tr>
<td><b>Delivery Method</b></td> <!-- ALPHA -->
<td class="text-right">
<input type="hidden" name="OLD_AVDELMETH" id="OLD_AVDELMETH">
<label for="AVDELMETH" class="visually-hidden">AVDELMETH</label>
<input type="text" maxlength="4" length="4" class="myinput" name="AVDELMETH" id="AVDELMETH" readonly>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Ship Via</b></div> <!-- ALPHA -->
<div class="col text-right">
</td>
</tr>
<tr>
<td><b>Ship Via</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="OLD_AVSHPVIA" class="visually-hidden">OLD AVSHPVIA</label>
<input type="hidden" name="OLD_AVSHPVIA" id="OLD_AVSHPVIA">
<select id="AVSHPVIA" name="AVSHPVIA">
<label for="AVSHPVIA" class="visually-hidden">AVSHPVIA</label>
<select aria-label="Avshpvia" id="AVSHPVIA" name="AVSHPVIA">
<option value="">Select Ship Via</option>
@foreach($shipvia as $key=>$val)
<option value="{{$val->AXCODE}}">{{$val->AXCODE}} - {{$val->AXDESC}}</option>
@endforeach
</select>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Sentinel Route</b></div> <!-- ALPHA -->
<div class="col text-right">
</td>
</tr>
<tr>
<td><b>Sentinel Route</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="OLD_AVSHSRT" class="visually-hidden">OLD AVSHSRT</label>
<input type="hidden" name="OLD_AVSHSRT" id="OLD_AVSHSRT">
<select id="AVSHSRT" name="AVSHSRT">
<label for="AVSHSRT" class="visually-hidden">AVSHSRT</label>
<select aria-label="Avshsrt" id="AVSHSRT" name="AVSHSRT">
<option value=" "></option>
<option value="GR">GR</option>
<option value="PU">PU</option>
</select>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>International Code</b></div> <!-- ALPHA -->
<div class="col text-right">
</td>
</tr>
<tr>
<td><b>International Code</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="OLD_AVSHORCL" class="visually-hidden">OLD AVSHORCL</label>
<input type="hidden" name="OLD_AVSHORCL" id="OLD_AVSHORCL">
<select id="AVSHORCL" name="AVSHORCL">
<label for="AVSHORCL" class="visually-hidden">AVSHORCL</label>
<select aria-label="Avshorcl" id="AVSHORCL" name="AVSHORCL">
<option value=" " selected></option>
<option value="Y">002 - International</option>
</select>
</div>
</div>
</td>
</tr>
</div>
</div>
</tbody>
</table>
</div>
</div>
<div class="modal-footer">
@@ -4,19 +4,20 @@
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">ERP/TMS Part Data Add</h5>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal"></button>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="table-responsive" id="qtyAddData">
<div class="sonar-form-layout">
<div>
</div>
<div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><label for="AT9DPW" class="col-form-label"><b>Div-Plt-Whs:</b></label></div>
<div class="col">
<table role="presentation" class="table table-condensed" >
<thead>
</thead>
<tbody>
<tr>
<td><label for="AT9DPW" class="col-form-label"><b>Div-Plt-Whs:</b></label></td>
<td>
<div class="mb-3">
<select class="form-select-sm" id="addAT9DPW"
<label for="addAT9DPW" class="visually-hidden">addAT9DPW</label>
<select aria-label="Addat9dpw" class="form-select-sm" id="addAT9DPW"
@if($power_user->R428PWRUSR=="N")
disabled
@endif
@@ -30,32 +31,32 @@
@endforeach
</select>
</div>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Part</b></div> <!-- ALPHA -->
<div class="col text-right">
</td>
</tr>
<tr>
<td><b>Part</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="addAT9PART" class="visually-hidden">addAT9PART</label>
<input type="text" maxlength="15" class="myinput" name="addAT9PART" id="addAT9PART" required>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Pallet Qty</b></div> <!-- NUMERIC -->
<div class="col text-right">
</td>
</tr>
<tr>
<td><b>Pallet Qty</b></td> <!-- NUMERIC -->
<td class="text-right">
<label for="addAT9QTY" class="visually-hidden">addAT9QTY</label>
<input type="number" min="1" max="999999999" increment=1 class="myinput" name="addAT9QTY" id="addAT9QTY" required>
</div>
</div>
<div class="row g-2 align-items-center mb-2">
<div class="col"><b>Hazardous Material</b></div> <!-- ALPHA -->
<div class="col text-right">
</td>
</tr>
<tr>
<td><b>Hazardous Material</b></td> <!-- ALPHA -->
<td class="text-right">
<label for="addAT9WRN" class="visually-hidden">addAT9WRN</label>
<input type="text" maxlength="5" class="myinput" name="addAT9WRN" id="addAT9WRN">
</div>
</div>
</td>
</tr>
</div>
</div>
</tbody>
</table>
</div>
</div>
<div class="modal-footer">