5 Commits

Author SHA1 Message Date
dhanabalan
bfed40f535 Add Laravel Pint workflow for code style checks
Some checks failed
Laravel Pint / pint (pull_request) Failing after 2m3s
2025-07-28 16:04:45 +05:30
dhanabalan
83f98d9e83 Added import / export permissions to mfm meter and create permission to production sticker reprint page 2025-07-25 12:34:01 +05:30
dhanabalan
3d84661640 removed unwanted notification for production quantity 2025-07-25 11:43:26 +05:30
dhanabalan
26ecaf49ef Added sticker master get controller production reprint 2025-07-24 18:03:00 +05:30
dhanabalan
5fe2b74174 Aded filter list api for invoice 2025-07-22 11:11:26 +05:30
6 changed files with 219 additions and 6 deletions

30
.github/workflows/pint.yaml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Laravel Pint
on:
pull_request:
workflow_dispatch:
jobs:
pint:
runs-on: ubuntu-latest
steps:
# Reinstall system libraries to ensure compatibility
- name: Ensure system libraries are up-to-date
run: |
sudo apt-get update
sudo apt-get install --reinstall --yes git libc6
- uses: actions/checkout@v4
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.3"
- name: Install dependencies
run: composer install --no-interaction --prefer-dist --no-progress
# Run pint in test mode, check only files different from master branch
- name: Run Laravel Pint in test mode
run: vendor/bin/pint --test --diff=master

View File

@@ -433,12 +433,6 @@ class ProductionQuantityPage extends Page implements HasForms
$this->recQr = $itemCode && $serialNumber ? "{$itemCode} | {$serialNumber}" : null; $this->recQr = $itemCode && $serialNumber ? "{$itemCode} | {$serialNumber}" : null;
} }
Notification::make()
->title("Scanned the valid QR code is $formQRData)")
->info()
->send();
if (empty($formQRData)) { if (empty($formQRData)) {
$this->form->fill([ $this->form->fill([
'plant_id'=> $this->pId, 'plant_id'=> $this->pId,

View File

@@ -3,6 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\InvoiceValidation; use App\Models\InvoiceValidation;
use App\Models\ModuleList;
use App\Models\Plant; use App\Models\Plant;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -16,6 +17,62 @@ class ModuleInvoiceTypeController extends Controller
// //
} }
public function get_invoiceFilter(Request $request)
{
$expectedUser = env('API_AUTH_USER');
$expectedPw = env('API_AUTH_PW');
$header_auth = $request->header('Authorization');
$expectedToken = $expectedUser . ':' . $expectedPw;
if ("Bearer " . $expectedToken != $header_auth)
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => 'Invalid authorization token!'
], 403);
}
$filterName = $request->header('filter-name');
if (empty($filterName))
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Filter Name can't be empty!"
], 404);
}
$headerValue = $request->header('filter-name');
if ($headerValue != 'Filter List') {
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Invalid value for 'module-name' header!"
], 404);
}
$uniqueModules = ModuleList::select('filter_name', 'created_at')
->orderBy('created_at', 'asc')
->get()
->unique('filter_name')
->pluck('filter_name')
->values();
if ($uniqueModules->isEmpty()) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => 'Filter names not found'
], 404);
}
return response()->json([
'status_code' => 'SUCCESS',
'status_description' => $uniqueModules
], 200);
}
// public function get_invoiceCountData(Request $request) // public function get_invoiceCountData(Request $request)
// { // {
// $expectedUser = env('API_AUTH_USER'); // $expectedUser = env('API_AUTH_USER');

View File

@@ -27,6 +27,126 @@ class StickerMasterController extends Controller
// //
} }
public function get_master_type(Request $request)
{
$expectedUser = env('API_AUTH_USER');
$expectedPw = env('API_AUTH_PW');
$header_auth = $request->header('Authorization');
$expectedToken = $expectedUser . ':' . $expectedPw;
if ("Bearer " . $expectedToken != $header_auth)
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => 'Invalid authorization token!'
], 403);
}
$plantCode = $request->header('plant-code');
$itemCode = $request->header('item-code');
if ($plantCode == null || $plantCode == '')
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Plant code can't be empty!"
], 400);
}
else if (Str::length($plantCode) < 4 || !is_numeric($plantCode) || !preg_match('/^[1-9]\d{3,}$/', $plantCode))
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Invalid plant code found!"
], 400);
}
else if ($itemCode == null || $itemCode == '')
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Item Code can't be empty!"
], 400);
}
else if (Str::length($itemCode) < 6 || !ctype_alnum($itemCode))
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Invalid item code found!"
], 400);
}
$plant = Plant::where('code', $plantCode)->first();
if (!$plant) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Plant not found!"
], 400);
}
$plantId = $plant->id;
$item = Item::where('code', $itemCode)->first();
if (!$item)
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Item Code not found in item table!"
], 404);
}
$item = Item::where('plant_id', $plantId)->where('code', $itemCode)->first();
if (!$item)
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Item Code not found in item table for the plant : '$plant->name'!"
], 404);
}
$stickerMaster = StickerMaster::where('plant_id', $plantId)->where('item_id', $item->id)->first();
if (!$stickerMaster)
{
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Item Code not found in sticker master table for the plant : '$plant->name'!"
], 404);
}
$serial_number_motor = $stickerMaster->serial_number_motor ?? null;
$serial_number_pump = $stickerMaster->serial_number_pump ?? null;
if ($serial_number_motor != 1 && $serial_number_pump != 1) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => "The Item Code '$itemCode' does not have serial pump or serial motor selected!"
], 400);
}
$serialInfo = [];
if ($serial_number_motor == 1 && $serial_number_pump == 1)
{
$serialInfo[] = 'Serial Pump';
}
else
{
if ($serial_number_motor == 1) {
$serialInfo[] = 'Serial Motor';
}
if ($serial_number_pump == 1) {
$serialInfo[] = 'Serial Pump';
}
}
$output = [
'status_code' => 'SUCCESS',
'status_description' => implode(', ', $serialInfo),
];
return response()->json($output, 200);
}
/** /**
* Display the specified resource. * Display the specified resource.
*/ */

View File

@@ -127,6 +127,9 @@ class PermissionSeeder extends Seeder
Permission::updateOrCreate(['name' => 'view import mfm parameter']); Permission::updateOrCreate(['name' => 'view import mfm parameter']);
Permission::updateOrCreate(['name' => 'view export mfm parameter']); Permission::updateOrCreate(['name' => 'view export mfm parameter']);
Permission::updateOrCreate(['name' => 'view import mfm meter']);
Permission::updateOrCreate(['name' => 'view export mfm meter']);
//Dashboard Permissions //Dashboard Permissions
Permission::updateOrCreate(['name' => 'view invoice dashboard']); //invoice dashboard Permission::updateOrCreate(['name' => 'view invoice dashboard']); //invoice dashboard
Permission::updateOrCreate(['name' => 'view production hourly count dashboard']); //hourly production Permission::updateOrCreate(['name' => 'view production hourly count dashboard']); //hourly production
@@ -137,6 +140,8 @@ class PermissionSeeder extends Seeder
Permission::updateOrCreate(['name' => 'view guard patrol day count dashboard']); Permission::updateOrCreate(['name' => 'view guard patrol day count dashboard']);
Permission::updateOrCreate(['name' => 'view guard patrol hourly count dashboard']); Permission::updateOrCreate(['name' => 'view guard patrol hourly count dashboard']);
Permission::updateOrCreate(['name' => 'view invoice serial quantity dashboard']); Permission::updateOrCreate(['name' => 'view invoice serial quantity dashboard']);
Permission::updateOrCreate(['name' => 'create production sticker reprint page']);
//Send To Sap Permissions //Send To Sap Permissions
Permission::updateOrCreate(['name' => 'view quality data send to sap']); Permission::updateOrCreate(['name' => 'view quality data send to sap']);

View File

@@ -21,6 +21,7 @@ use App\Http\Controllers\ModuleProductionOrderDataController;
use App\Http\Controllers\ObdController; use App\Http\Controllers\ObdController;
use App\Http\Controllers\PalletController; use App\Http\Controllers\PalletController;
use App\Http\Controllers\PlantController; use App\Http\Controllers\PlantController;
use App\Http\Controllers\ProductionStickerReprintController;
use App\Http\Controllers\StickerMasterController; use App\Http\Controllers\StickerMasterController;
use App\Http\Controllers\TestingPanelController; use App\Http\Controllers\TestingPanelController;
use App\Http\Controllers\UserController; use App\Http\Controllers\UserController;
@@ -77,8 +78,12 @@ Route::get('machine/get-all-data', [MachineController::class, 'get_all_data']);
Route::get('laser/item/get-master-data', [StickerMasterController::class, 'get_master']); Route::get('laser/item/get-master-data', [StickerMasterController::class, 'get_master']);
Route::get('sticker/get-master-type-data', [StickerMasterController::class, 'get_master_type']);
Route::get('/download-qr-pdf/{palletNo}', [PalletController::class, 'downloadQrPdf'])->name('download-qr-pdf'); Route::get('/download-qr-pdf/{palletNo}', [PalletController::class, 'downloadQrPdf'])->name('download-qr-pdf');
Route::get('/download-qr1-pdf/{palletNo}', [ProductionStickerReprintController::class, 'downloadQrPdf'])->name('download-qr1-pdf');
//Production Dashboard Controller //Production Dashboard Controller
Route::get('get/module-name/data', [ModuleController::class, 'get_module']); Route::get('get/module-name/data', [ModuleController::class, 'get_module']);
@@ -105,6 +110,8 @@ Route::get('get/module-production-linestop/data', [ModuleProductionLineStopContr
Route::get('get/module-invoice-type/data', [ModuleInvoiceDataController::class, 'get_invoiceData']); Route::get('get/module-invoice-type/data', [ModuleInvoiceDataController::class, 'get_invoiceData']);
Route::get('get/module-invoice-filter/data', [ModuleInvoiceTypeController::class, 'get_invoiceFilter']);
Route::get('get/module-invoice-count/data', [ModuleInvoiceTypeController::class, 'get_invoiceCountData']); Route::get('get/module-invoice-count/data', [ModuleInvoiceTypeController::class, 'get_invoiceCountData']);
Route::get('get/module-invoice-quantity/data', [ModuleInvoiceQuantityController::class, 'get_invoiceQuantityData']); Route::get('get/module-invoice-quantity/data', [ModuleInvoiceQuantityController::class, 'get_invoiceQuantityData']);