37 Commits

Author SHA1 Message Date
c841ff830d Update dependency erag/laravel-pwa to v2
Some checks failed
renovate/artifacts Artifact file update failure
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 19s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 14s
Laravel Pint / pint (pull_request) Failing after 1m27s
Laravel Larastan / larastan (pull_request) Failing after 1m31s
2026-06-14 00:01:08 +00:00
f99bc12603 Merge pull request 'Added logic to slect default ok button in checklist of quality' (#752) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 21s
Reviewed-on: #752
2026-06-13 11:30:24 +00:00
dhanabalan
2b3d423769 Added logic to slect default ok button in checklist of quality
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 16s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Laravel Pint / pint (pull_request) Successful in 1m55s
Laravel Larastan / larastan (pull_request) Failing after 3m23s
2026-06-13 17:00:09 +05:30
efd469e07d Merge pull request 'Updated PUMP SET model as PUMPSET on request approval' (#751) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 34s
Reviewed-on: #751
2026-06-13 09:45:20 +00:00
dhanabalan
e0ed67dfc0 Updated PUMP SET model as PUMPSET on request approval
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Laravel Pint / pint (pull_request) Successful in 2m23s
Laravel Larastan / larastan (pull_request) Failing after 4m21s
2026-06-13 15:14:43 +05:30
dd88bdca78 Merge pull request 'Removed unique rfq number in import transaction page' (#750) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 19s
Reviewed-on: #750
2026-06-13 07:10:13 +00:00
dhanabalan
efd5416ced Removed unique rfq number in import transaction page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 14s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 17s
Laravel Pint / pint (pull_request) Successful in 1m53s
Laravel Larastan / larastan (pull_request) Failing after 3m16s
2026-06-13 12:39:24 +05:30
229a69b82a Merge pull request 'Changed body message of import transit mail' (#749) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 22s
Reviewed-on: #749
2026-06-13 06:43:05 +00:00
dhanabalan
03df2f50dc Changed body message of import transit mail
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 16s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 17s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Laravel Pint / pint (pull_request) Successful in 2m3s
Laravel Larastan / larastan (pull_request) Failing after 3m37s
2026-06-13 12:12:47 +05:30
3d404d93ef Merge pull request 'Added sort of rfq number logic in import transit mail' (#748) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 22s
Reviewed-on: #748
2026-06-13 05:36:45 +00:00
dhanabalan
aaaa021597 Added sort of rfq number logic in import transit mail
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Laravel Pint / pint (pull_request) Successful in 2m29s
Laravel Larastan / larastan (pull_request) Failing after 4m3s
2026-06-13 11:06:25 +05:30
d1f170440c Merge pull request 'Changed report time for import transit mail' (#747) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 24s
Reviewed-on: #747
2026-06-13 05:27:05 +00:00
dhanabalan
78961a7436 Changed report time for import transit mail
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 23s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 29s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 19s
Laravel Pint / pint (pull_request) Successful in 2m12s
Laravel Larastan / larastan (pull_request) Failing after 3m54s
2026-06-13 10:56:52 +05:30
01bda8f736 Merge pull request 'Adjusted logic for mobile an dtab screen resolution for quality check' (#746) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #746
2026-06-13 05:25:01 +00:00
dhanabalan
f0bb74690f Adjusted logic for mobile an dtab screen resolution for quality check
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 17s
Laravel Pint / pint (pull_request) Successful in 1m56s
Laravel Larastan / larastan (pull_request) Failing after 3m39s
2026-06-13 10:54:41 +05:30
0b83b7cb22 Merge pull request 'Removed form box of ref number from import transit page' (#745) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 23s
Reviewed-on: #745
2026-06-13 04:32:28 +00:00
dhanabalan
88e00b2f8a Removed form box of ref number from import transit page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 14s
Laravel Pint / pint (pull_request) Successful in 2m5s
Laravel Larastan / larastan (pull_request) Failing after 3m24s
2026-06-13 10:02:13 +05:30
3bb3674d39 Merge pull request 'Added proper subject name for import transit mail' (#744) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 21s
Reviewed-on: #744
2026-06-13 03:27:05 +00:00
dhanabalan
ab79a2235a Added proper subject name for import transit mail
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 16s
Laravel Pint / pint (pull_request) Successful in 2m22s
Laravel Larastan / larastan (pull_request) Failing after 3m38s
2026-06-13 08:56:47 +05:30
f02598feeb Merge pull request 'Changed label name of ref number in import tranist page' (#743) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 22s
Reviewed-on: #743
2026-06-13 03:13:18 +00:00
dhanabalan
c17bc3be3a Changed label name of ref number in import tranist page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 17s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Laravel Pint / pint (pull_request) Successful in 1m55s
Laravel Larastan / larastan (pull_request) Failing after 3m34s
2026-06-13 08:43:04 +05:30
f84a579224 Merge pull request 'Changed font size for all column text values in import tranist mail' (#742) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 23s
Reviewed-on: #742
2026-06-13 03:06:28 +00:00
dhanabalan
4edac7987d Changed font size for all column text values in import tranist mail
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 14s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 17s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 16s
Laravel Pint / pint (pull_request) Successful in 2m4s
Laravel Larastan / larastan (pull_request) Failing after 3m34s
2026-06-13 08:35:37 +05:30
15241feae2 Merge pull request 'corrected spell mistake of searchable in import transit' (#741) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 23s
Reviewed-on: #741
2026-06-13 02:53:48 +00:00
dhanabalan
9cbeb5166f corrected spell mistake of searchable in import transit
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 14s
Laravel Pint / pint (pull_request) Successful in 2m19s
Laravel Larastan / larastan (pull_request) Failing after 3m58s
2026-06-13 08:23:35 +05:30
4915d12c7d Merge pull request 'Added searchable in import transit and change tto inv value as text input' (#740) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 24s
Reviewed-on: #740
2026-06-13 02:49:15 +00:00
dhanabalan
46f1ecd7be Added searchable in import transit and change tto inv value as text input
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 16s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 16s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 20s
Laravel Pint / pint (pull_request) Successful in 2m1s
Laravel Larastan / larastan (pull_request) Failing after 3m29s
2026-06-13 08:18:49 +05:30
44779683fd Merge pull request 'Added import transit excel attachment logic in mail' (#739) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 26s
Reviewed-on: #739
2026-06-12 03:50:24 +00:00
dhanabalan
05a3c9f7ac Added import transit excel attachment logic in mail
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 19s
Laravel Pint / pint (pull_request) Successful in 2m11s
Laravel Larastan / larastan (pull_request) Failing after 3m28s
2026-06-12 09:20:03 +05:30
82cb39feb5 Merge pull request 'Added import transit export excel file page' (#738) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 23s
Reviewed-on: #738
2026-06-11 04:13:47 +00:00
dhanabalan
3c5f9f7273 Added import transit export excel file page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 16s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 20s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 16s
Laravel Pint / pint (pull_request) Successful in 2m14s
Laravel Larastan / larastan (pull_request) Failing after 3m38s
2026-06-11 09:43:30 +05:30
9db03a4c56 Merge pull request 'added left alignment logic for all columns' (#737) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 26s
Reviewed-on: #737
2026-06-10 06:07:27 +00:00
dhanabalan
cef8415b2c added left alignment logic for all columns
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 17s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 19s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Laravel Pint / pint (pull_request) Successful in 12m36s
Laravel Larastan / larastan (pull_request) Failing after 14m26s
2026-06-10 11:37:10 +05:30
3140a1e88d Merge pull request 'changed logic by default loading of of data in table list of asrs' (#736) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Reviewed-on: #736
2026-06-10 03:53:20 +00:00
dhanabalan
7b71f07f39 changed logic by default loading of of data in table list of asrs
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 53s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 1m5s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 40s
Laravel Pint / pint (pull_request) Successful in 10m23s
Laravel Larastan / larastan (pull_request) Failing after 17m59s
2026-06-10 09:22:58 +05:30
58b2df8d94 Merge pull request 'Added body in import transit mail of mail' (#735) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 16s
Reviewed-on: #735
2026-06-09 08:58:20 +00:00
dhanabalan
4bade21e10 Added body in import transit mail of mail
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 17s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 17s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 14s
Laravel Pint / pint (pull_request) Successful in 5m52s
Laravel Larastan / larastan (pull_request) Failing after 15m48s
2026-06-09 14:28:06 +05:30
11 changed files with 262 additions and 100 deletions

View File

@@ -337,7 +337,7 @@ class Scheduler extends Command
}
break;
case 'Daily':
if (now()->format('H:i') == '11:10') {
if (now()->format('H:i') == '11:30') {
try {
\Artisan::call('send-import-transit', [
'schedule_type' => $rule->schedule_type,

View File

@@ -7,6 +7,8 @@ use App\Models\AlertMailRule;
use App\Models\ImportTransit;
use App\Models\Plant;
use Illuminate\Console\Command;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\ImportTransitReportExport;
class SendImportTransit extends Command
{
@@ -58,37 +60,45 @@ class SendImportTransit extends Command
// return;
// }
$tableData = ImportTransit::select([
'cri_rfq_number',
'mail_received_date',
'pricol_ref_number',
'requester',
'shipper',
'shipper_location',
'shipper_invoice',
'shipper_invoice_date',
'customs_agent_name',
'eta_date',
'status',
'delivery_location',
'etd_date',
'mode',
'inco_terms',
'port_of_loading',
'port_of_discharge',
'delivery_city',
'packages',
'type_of_package',
'gross_weight',
'volume',
'bill_number',
'bill_received_date',
'vessel_number',
'remark',
'is_transit_identified',
])
->where('status', '!=', 'Delivered')
->get();
// $tableData = ImportTransit::select([
// 'cri_rfq_number',
// 'mail_received_date',
// 'pricol_ref_number',
// 'requester',
// 'shipper',
// 'shipper_location',
// 'shipper_invoice',
// 'shipper_invoice_date',
// 'customs_agent_name',
// 'eta_date',
// 'status',
// 'delivery_location',
// 'etd_date',
// 'mode',
// 'inco_terms',
// 'port_of_loading',
// 'port_of_discharge',
// 'delivery_city',
// 'packages',
// 'type_of_package',
// 'gross_weight',
// 'volume',
// 'bill_number',
// 'bill_received_date',
// 'vessel_number',
// 'remark',
// 'is_transit_identified',
// ])
// ->where('status', '!=', 'Delivered')
// ->get();
$tableData = ImportTransit::where('status', '!=', 'Delivered')->orderByRaw("
CAST(
regexp_replace(cri_rfq_number, '.*-([0-9]+).*', '\\1')
AS INTEGER
)
")->get();
if ($tableData->isEmpty()) {
$this->info('No pending Import Transit records found. Mail skipped.');
@@ -101,10 +111,19 @@ class SendImportTransit extends Command
$mailSubject = 'Daily Import Transit Report';
$fileName = 'reports/pending_import_shipment_' . now()->format('Ymd_His') . '.xlsx';
Excel::store(
new ImportTransitReportExport($tableData),
$fileName,
'local'
);
$mail = new ImportTransitMail(
$scheduleType,
$tableData,
$mailSubject
$mailSubject,
$fileName
);
$toEmails = collect(explode(',', $rule->email))

View File

@@ -0,0 +1,97 @@
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithEvents;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use Illuminate\Support\Facades\Log;
use Maatwebsite\Excel\Events\AfterSheet;
class ImportTransitReportExport implements FromCollection, WithHeadings, WithMapping, WithEvents
{
protected $data;
public function __construct($data)
{
$this->data = $data;
}
public function headings(): array
{
return [
'No',
'CRI RFQ Number',
'Requestor',
'Shipper',
'Shipper Location',
'Shipper Invoice',
'Shipper Invoice Date',
'Custom Agent Name',
'ETA',
'Status',
'Delivery Location',
'ETD Date',
'Remark',
];
}
public function collection()
{
return collect($this->data);
}
public function map($row): array
{
static $srNo = 0;
$srNo++;
return [
$srNo,
$row->cri_rfq_number,
$row->requester,
$row->shipper,
$row->shipper_location,
$row->shipper_invoice,
$row->shipper_invoice_date,
$row->customs_agent_name,
$row->eta_date,
$row->status,
$row->delivery_location,
$row->etd_date,
$row->remark,
];
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$rowNumber = 2; // Excel row starts after header
foreach ($this->data as $row) {
if ((int) $row->is_transit_identified == 1) {
$event->sheet
->getStyle("A{$rowNumber}:M{$rowNumber}")
->applyFromArray([
'fill' => [
'fillType' => Fill::FILL_SOLID,
'startColor' => [
'rgb' => 'FFFF00',
],
],
]);
}
$rowNumber++;
}
},
];
}
}

View File

@@ -285,27 +285,27 @@ class AsrsItemValidationResource extends Resource
$status = $data['status'] ?? 'NotUpdated';
// Hide all records initially if no filters are applied
// if (empty($data['Plant']) && empty($data['item_code']) && empty($data['status']) && empty($data['created_from']) && empty($data['created_to'])) {
// // return $query->whereRaw('1 = 0');
// $query->where('status', 'NotUpdated');
// }
if (
empty($data['Plant']) &&
empty($data['item_code']) &&
empty($data['uom']) &&
empty($data['status']) &&
empty($data['created_from']) &&
empty($data['created_to'])
) {
if (empty($data['Plant']) && empty($data['item_code']) && empty($data['uom']) && empty($data['status']) && empty($data['created_from']) && empty($data['created_to'])) {
return $query->whereRaw('1 = 0');
// $query->where('status', 'NotUpdated');
$query->where(function ($q) {
$q->where('status', 'NotUpdated')
->orWhereNull('status')
->orWhere('status', '');
});
}
// if (
// empty($data['Plant']) &&
// empty($data['item_code']) &&
// empty($data['uom']) &&
// empty($data['status']) &&
// empty($data['created_from']) &&
// empty($data['created_to'])
// ) {
// // $query->where('status', 'NotUpdated');
// $query->where(function ($q) {
// $q->where('status', 'NotUpdated')
// ->orWhereNull('status')
// ->orWhere('status', '');
// });
// }
if (! empty($data['Plant'])) {
$query->where('plant_id', $data['Plant']);
}
@@ -387,11 +387,12 @@ class AsrsItemValidationResource extends Resource
Tables\Actions\ViewAction::make(),
Tables\Actions\EditAction::make(),
// ->hidden(function ($record): bool {
// if (auth()->user()?->hasRole('SuperAdmin')) {
// if (auth()->user()?->hasRole('Super Admin')) {
// return false;
// }
// return trim(strtolower($record->status)) == 'updated';
// else{
// return trim(($record->status)) == 'Updated';
// }
// }),
// ->visible(function ($record): bool {
// return auth()->user()?->hasRole('SuperAdmin')

View File

@@ -40,16 +40,16 @@ class ImportTransitResource extends Resource
->schema([
Forms\Components\TextInput::make('cri_rfq_number')
->label('CRI/RFQ Number')
->disabled(fn ($operation) => $operation == 'edit')
->unique(ignoreRecord: true),
->required()
->disabled(fn ($operation) => $operation == 'edit'),
Forms\Components\DatePicker::make('mail_received_date')
->label('Mail Received Date')
->required(),
Forms\Components\TextInput::make('pricol_ref_number')
->label('Pricol Ref Number')
->afterStateUpdated(function (callable $set) {
$set('updated_by', Filament::auth()->user()?->name);
}),
// Forms\Components\TextInput::make('pricol_ref_number')
// ->label('Ref Number')
// ->afterStateUpdated(function (callable $set) {
// $set('updated_by', Filament::auth()->user()?->name);
// }),
Forms\Components\TextInput::make('requester')
->label('Requester')
->afterStateUpdated(function (callable $set) {
@@ -75,7 +75,7 @@ class ImportTransitResource extends Resource
->afterStateUpdated(function (callable $set) {
$set('updated_by', Filament::auth()->user()?->name);
}),
Forms\Components\DatePicker::make('inv_value')
Forms\Components\TextInput::make('inv_value')
->label('Inv Value')
->afterStateUpdated(function (callable $set) {
$set('updated_by', Filament::auth()->user()?->name);
@@ -220,128 +220,158 @@ class ImportTransitResource extends Resource
}),
Tables\Columns\TextColumn::make('cri_rfq_number')
->label('CRI/RFQ Number')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('mail_received_date')
->label('Mail Received Date')
->searchable()
->date()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('pricol_ref_number')
->label('Pricol Ref Number')
->label('Ref Number')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('requester')
->label('Requester')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('shipper')
->label('Shipper')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('shipper_location')
->label('Shipper Location')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('shipper_invoice')
->label('Shipper Invoice')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('shipper_invoice_date')
->label('Shipper Invoice Date')
->searchable()
->date()
->formatStateUsing(fn ($state) => $state?->format('Y-m-d'))
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('inv_value')
->label('Inv Value')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('freight_charge')
->label('Freight Charge')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('customs_agent_name')
->label('Customs Agent Name')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('eta_date')
->label('ETA Date')
->searchable()
->date()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('status')
->label('Status')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('insurance_status')
->label('Insurance Status')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('delivery_location')
->label('Delivery Location')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('etd_date')
->label('ETD Date')
->searchable()
->date()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('mode')
->label('Mode')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('inco_terms')
->label('Inco Terms')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('port_of_loading')
->label('Port of Loading')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('port_of_discharge')
->label('Port of Discharge')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('delivery_city')
->label('Delivery City')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('packages')
->label('Packages')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('type_of_package')
->label('Type of Package')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('gross_weight')
->label('Gross Weight')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('volume')
->label('Volume')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('bill_number')
->label('Bill Number')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('bill_received_date')
->label('Bill Received Date')
->searchable()
->alignCenter()
->date()
->sortable(),
Tables\Columns\TextColumn::make('vessel_number')
->label('Vessel Number')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('remark')
->label('Remark')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('is_transit_identified')
->label('Is Transit Identified')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('created_at')

View File

@@ -520,7 +520,7 @@ class CharacteristicsController extends Controller
if (Str::contains($modelHeading, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP', 'NAME_PLATE'];
} elseif (Str::contains($modelHeading, 'PUMPS', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true)) {
} elseif (Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP'];
} elseif (Str::contains($modelHeading, 'PUMP', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['PUMP'];
@@ -673,7 +673,7 @@ class CharacteristicsController extends Controller
// 'status_description' => "Serial number '{$serialNumber}' doesn't have pumpset model to proceed!",
// ], 404);
}
} elseif (! Str::contains($curHead, 'PUMPS', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true)) {
} elseif (! Str::contains($curHead, 'PUMP SET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPS', ignoreCase: true)) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Serial number '{$serialNumber}' doesn't have valid model type to proceed!",
@@ -1562,7 +1562,7 @@ class CharacteristicsController extends Controller
if (Str::contains($modelHeading, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP', 'NAME_PLATE'];
} elseif (Str::contains($modelHeading, 'PUMPS', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true)) {
} elseif (Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP'];
} elseif (Str::contains($modelHeading, 'PUMP', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['PUMP'];
@@ -1941,7 +1941,7 @@ class CharacteristicsController extends Controller
if (Str::contains($modelHeading, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP', 'NAME_PLATE'];
} elseif (Str::contains($modelHeading, 'PUMPS', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true)) {
} elseif (Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP'];
} elseif (Str::contains($modelHeading, 'PUMP', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['PUMP'];
@@ -2399,7 +2399,7 @@ class CharacteristicsController extends Controller
// 'status_description' => "Serial number '{$serialNumber}' doesn't have pumpset model to proceed!",
// ], 404);
}
} elseif (! Str::contains($curHead, 'PUMPS', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true)) {
} elseif (! Str::contains($curHead, 'PUMP SET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPS', ignoreCase: true)) {
return response()->json([
'status_code' => 'ERROR',
'status_description' => "Serial number '{$serialNumber}' doesn't have valid model type to proceed!",
@@ -3666,7 +3666,7 @@ class CharacteristicsController extends Controller
if (Str::contains($modelHeading, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP', 'NAME_PLATE'];
} elseif (Str::contains($modelHeading, 'PUMPS', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true)) {
} elseif (Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP'];
} elseif (Str::contains($modelHeading, 'PUMP', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['PUMP'];
@@ -4701,7 +4701,7 @@ class CharacteristicsController extends Controller
if (Str::contains($modelHeading, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP', 'NAME_PLATE'];
} elseif (Str::contains($modelHeading, 'PUMPS', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true)) {
} elseif (Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['MOTOR', 'PUMP'];
} elseif (Str::contains($modelHeading, 'PUMP', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) {
$typesToCreate = ['PUMP'];

View File

@@ -25,15 +25,15 @@ class ProductionCheckList extends Component
public $existingRecords = [];
public bool $shouldSkipChecklist = false;
// public bool $shouldSkipChecklist = false;
public array $checklist = [];
public $showChecklist = false;
public $skipChecklistValidation = false;
// public $skipChecklistValidation = false;
protected $listeners = ['focus-item-id' => 'handleFocus', 'trigger-create' => 'doCreate',];
// protected $listeners = ['focus-item-id' => 'handleFocus', 'trigger-create' => 'doCreate',];
public $data =
[
@@ -45,23 +45,21 @@ class ProductionCheckList extends Component
'checklist' => [],
];
#[On('focus-item-id')]
public function handleFocus()
{
$this->dispatch('focus-input');
}
public function doCreate()
{
$this->create();
$this->shouldSkipChecklist = false;
}
// public function doCreate()
// {
// $this->create();
// $this->shouldSkipChecklist = false;
// }
public function mount($records = [])
{
$this->records = collect($records);
// $this->records = collect($records);
$this->records = $records;
foreach ($records as $record) {
$this->checklist[$record['id']] = 'ok';
}
}
public function cancel()
@@ -255,11 +253,10 @@ class ProductionCheckList extends Component
];
}
public function updatedDataChecklist()
{
$this->dispatch('checklistUpdated', $this->data['checklist']);
}
// public function updatedDataChecklist()
// {
// $this->dispatch('checklistUpdated', $this->data['checklist']);
// }
public function render()
{

View File

@@ -9,6 +9,7 @@ use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
use Illuminate\Mail\Mailables\Attachment;
class ImportTransitMail extends Mailable
{
@@ -20,14 +21,17 @@ class ImportTransitMail extends Mailable
public $mailSubject;
public $excelPath;
/**
* Create a new message instance.
*/
public function __construct($scheduleType, $tableData, $mailSubject)
public function __construct($scheduleType, $tableData, $mailSubject, $excelPath)
{
$this->scheduleType = $scheduleType;
$this->tableData = $tableData ?? [];
$this->mailSubject = $mailSubject ?? 'Import Transit';
$this->excelPath = $excelPath;
}
/**
@@ -36,7 +40,7 @@ class ImportTransitMail extends Mailable
public function envelope(): Envelope
{
return new Envelope(
subject: 'Import Transit Mail',
subject: 'Import Shipment InTransit Mail',
);
}
@@ -45,7 +49,9 @@ class ImportTransitMail extends Mailable
*/
public function content(): Content
{
$greeting = '<b>Dear Sir</b>';
$now = now();
$reportDate = $now->format('d/m/Y');
$greeting = '<b>Dear Sir/Madam</b>,<br>Kindly find attached the Pending Import Shipment Status Report as on ' . $reportDate . ' for your reference.<br>We request you to review the shipments highlighted in <span style="background-color: yellow; font-weight: bold;">yellow</span> and arrange for their clearance at the earliest to avoid further delays and additional charges.<br>Please note that for shipments pending under <b>Telex Release</b> and <b>Duty Payment</b>, CFS charges will be commenced post ETA. We therefore urge you to expedite the necessary actions at your end.';
//$greeting1 = 'Dear C.R.I Branch Team, <br><br> Please follow and ensure the same';
@@ -88,6 +94,14 @@ class ImportTransitMail extends Mailable
*/
public function attachments(): array
{
return [];
return [
Attachment::fromStorageDisk(
'local',
$this->excelPath
)->as('Import_Transit_Report.xlsx')
->withMime(
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
),
];
}
}

View File

@@ -10,7 +10,7 @@
"alperenersoy/filament-export": "^3.0",
"althinect/filament-spatie-roles-permissions": "^2.3",
"diogogpinto/filament-auth-ui-enhancer": "^1.0",
"erag/laravel-pwa": "^1.9",
"erag/laravel-pwa": "^2.0",
"filament/filament": "^3.3",
"intervention/image": "^3.11",
"irazasyed/telegram-bot-sdk": "^3.15",

View File

@@ -1,7 +1,11 @@
<div class="fixed inset-0 flex items-center justify-center z-50">
<div class="bg-white max-h-[80vh] overflow-hidden p-6 rounded-lg shadow-lg pointer-events-auto"
style="width:30vw !important; max-width:none !important;">
{{-- <div class="bg-white max-h-[80vh] overflow-hidden p-6 rounded-lg shadow-lg pointer-events-auto"
style="width:30vw !important; max-width:none !important;"> --}}
<div
class="bg-white rounded-lg shadow-lg pointer-events-auto
w-full max-w-2xl max-h-[90vh] flex flex-col">
{{-- @if($records && $records->count()) --}}
@if(!empty($records) && count($records))

View File

@@ -19,13 +19,13 @@
table {
border-collapse: collapse;
width: 100%;
font-size: 14px;
font-size: 10px;
white-space: nowrap !important;
}
th, td {
border: 1px solid #020813da;
padding: 8px 10px;
text-align: center;
text-align: left;
white-space: nowrap !important;
text-overflow: ellipsis;
}