'loadData',]; protected $listeners = [ 'refreshEmptyInvoice' => 'loadEmptyData', 'refreshInvoiceData' => 'loadData', 'refreshSfgData' => 'loadSfgData', 'refreshSfgNonData' => 'loadSfgNonQuanData', 'confirmStockUpdate', 'confirmSerialUpdate', 'confirmSerialFGUpdate', 'confirmDuplicateUpdate' ]; public $capacitorInput = ''; public $panel_box_supplier; public $panel_box_code; public $panel_box_serial_number; public string $currentItemCode = ''; public string $currentSerialNumber = ''; public $stickerMasterId; public $sNo; public function confirmStockUpdate($plantId, $location, $bin, $stickerMasterId, $batch, $docNo, $quantity) { $record = NotInStock::where('plant_id', $plantId) ->where('location', $location) ->where('sticker_master_id', $stickerMasterId) ->where('doc_no', $docNo) ->where('bin', $bin) ->first(); if (!$record) { NotInStock::create([ 'plant_id' => $plantId, 'location' => $location, 'bin' => $bin, 'sticker_master_id' => $stickerMasterId, 'type' => '1', 'serial_number' => $this->serialNumber ?? null, 'batch' => $batch ?? null, 'doc_no' => $docNo ?? null, 'scanned_quantity' => $quantity ?? '0', ]); Notification::make() ->title('Record inserted successfully in not in stock table.') ->success() ->send(); } else { $record->update([ 'scanned_quantity' => $record->scanned_quantity + $quantity, 'batch' => $batch ?? null, 'doc_no' => $docNo ?? null, ]); Notification::make() ->title('Record updated in not in stock table.') ->success() ->send(); } } public function confirmSerialUpdate($plantId, $location, $bin, $serial_number, $stickerMasterId, $batch, $docNo, $quantity) { $sNo = $serial_number; $record = NotInStock::where('plant_id', $plantId) ->where('location', $location) ->where('sticker_master_id', $stickerMasterId) ->where('serial_number', $sNo) ->where('bin', $bin) ->first(); if (!$record) { NotInStock::create([ 'plant_id' => $plantId, 'location' => $location, 'bin' => $bin, 'sticker_master_id' => $stickerMasterId, 'type' => '1', 'serial_number' => $sNo ?? null, 'batch' => $batch ?? null, 'doc_no' => $docNo ?? null, 'scanned_quantity' => $quantity ?? '1', ]); Notification::make() ->title('Record inserted successfully in not in stock table.') ->success() ->send(); } else { $record->update([ 'batch' => $batch ?? null, ]); Notification::make() ->title('Record updated in not in stock table.') ->success() ->send(); } } public function confirmDuplicateUpdate($plantId, $location, $bin, $serial_number, $stickerMasterId, $batch, $docNo, $quantity) { $sNo = $serial_number; $stockRecord = StockDataMaster::where('serial_number', $sNo) ->where('plant_id', $plantId) ->first(); if (!$stockRecord) { return; } $record = DuplicateStock::where('stock_data_master_id', $stockRecord->id)->first(); if (!$record) { DuplicateStock::create([ 'stock_data_master_id' => $stockRecord->id, ]); Notification::make() ->title('Record inserted successfully in duplicate stock table.') ->success() ->send(); } else { DuplicateStock::create([ 'stock_data_master_id' => $stockRecord->id, ]); Notification::make() ->title('Record inserted successfully in duplicate stock table.') ->success() ->send(); } } public function confirmSerialFGUpdate($plantId, $location, $bin, $serial_number, $stickerMasterId) { $sNo = $serial_number; $record = NotInStock::where('plant_id', $plantId) ->where('location', $location) ->where('sticker_master_id', $stickerMasterId) ->where('serial_number', $sNo) ->where('bin', $bin) ->first(); if (!$record) { NotInStock::create([ 'plant_id' => $plantId, 'location' => $location, 'bin' => $bin, 'sticker_master_id' => $stickerMasterId, 'type' => '0', 'serial_number' => $sNo ?? null, 'batch' => $batch ?? null, 'doc_no' => $docNo ?? null, 'scanned_quantity' => $quantity ?? '1', ]); Notification::make() ->title('Record inserted successfully in not in stock table.') ->success() ->send(); } else { $record->update([ 'batch' => $batch ?? null, 'doc_no' => $docNo ?? null, ]); Notification::make() ->title('Record updated in not in stock table.') ->success() ->send(); } } public function loadCompletedData($location, $plantId, $isSerial) { $this->plantId = $plantId; $this->location = $location; $this->completedInvoice = true; $this->isSerial = $isSerial; $this->onCapFocus = false; $this->emptyInvoice = false; $this->hasSearched = false; $this->materialInvoice = false; $this->packageCount = 0; // $this->showCapacitorInput = false; $this->dispatch('focus-invoice-number'); } public function loadEmptyData($location, $plantId) { $this->plantId = $plantId; $this->location = $location; $this->completedInvoice = false; $this->onCapFocus = false; $this->emptyInvoice = true; $this->hasSearched = false; $this->materialInvoice = false; $this->packageCount = 0; // $this->showCapacitorInput = false; } public function loadSfgData($location, $plantId, $itemCode,$docNo) { $this->isSfg = true; $this->hasSearched = false; // $this->materialInvoice = false; // $this->completedInvoice = false; // $this->emptyInvoice = false; $item = Item::where('plant_id', $plantId) ->where('code', $itemCode) ->first(); $itemId = $item->id; $stickerMaster = StickerMaster::where('plant_id', $plantId) ->where('item_id', $itemId) ->first(); $stickerMasterId = $stickerMaster->id; $record = StockDataMaster::with('stickerMaster.item') ->where('plant_id', $plantId) ->where('location', $location) ->where('sticker_master_id', $stickerMasterId) ->where('doc_no', $docNo) ->where('type', '1') ->first(); if ($record) { $itemCode = optional($record->stickerMaster->item)->code; $foundIndex = null; foreach ($this->scannedSfgData as $index => $row) { if ( $row['location'] == $record->location && $row['doc_no'] == $record->doc_no && $row['item_code'] == $itemCode ) { $foundIndex = $index; break; } } if ($foundIndex !== null) { $this->scannedSfgData[$foundIndex]['scanned_quantity'] = $record->scanned_quantity; } else { if (count($this->scannedSfgData) >= 100) { return; } $this->scannedSfgData[] = [ 'serial_number' => $record->serial_number, 'bin' => $record->bin, 'item_code' => $itemCode, 'batch' => $record->batch, 'doc_no' => $record->doc_no, 'quantity' => $record->quantity, 'scanned_quantity' => $record->scanned_quantity, 'location' => $record->location, 'updated_by' => $record->updated_by, ]; } } } public function loadSfgNonQuanData($location, $plantId, $serialNumber, $itemCode){ $this->isnonQuanSfg = true; $record = StockDataMaster::with('stickerMaster.item') ->where('plant_id', $plantId) ->where('location', $location) ->where('serial_number', $serialNumber) ->whereHas('stickerMaster.item', function ($q) use ($itemCode) { $q->where('code', $itemCode); }) ->where('type', '1') ->orderBy('updated_at', 'desc') ->first(); if ($record) { // foreach ($this->scannedSerials as $row) { // if ($row['serial_number'] == $serialNumber) { // continue; // } // } // $this->scannedSerials[] = [ array_unshift($this->scannedSerials, [ 'location' => $record->location, 'bin' => $record->bin ?? '', 'item_code' => $record->stickerMaster->item->code ?? '', 'serial_number' => $serialNumber, 'batch' => $record->batch ?? '', 'doc_no' => $record->doc_no ?? '', 'quantity' => $record->quantity ?? '', 'scanned_quantity' => $record->scanned_quantity ?? '', 'updated_by' => $record->updated_by ?? '', ]); // ]; } } public function loadData($location, $plantId, $itemCode, $serialNumber) { $this->location = $location; $this->plantId = $plantId; $this->itemCode = $itemCode; $this->serialNumber = $serialNumber; $this->completedInvoice = false; $this->isSerial = true; $this->emptyInvoice = false; $this->hasSearched = true; $this->materialInvoice = false; $this->resetPage(); $this->packageCount = 0; $item = Item::where('plant_id', $plantId) ->where('code', $this->itemCode) ->first(); $itemId = $item->id; $stickerMaster = StickerMaster::where('plant_id', $plantId) ->where('item_id', $itemId) ->first(); $stickerMasterId = $stickerMaster->id; $records = StockDataMaster::with('stickerMasterRelation') ->where('location', $this->location) ->where('type', '=', '0') ->where('plant_id', $this->plantId) ->where('sticker_master_id', $stickerMasterId) ->where('serial_number', $this->serialNumber) ->orderBy('updated_at', 'desc') ->limit(100) ->get(); foreach ($records as $record) { if ($record->scanned_status == 'Scanned') { if (!in_array($record->id, $this->scannedIds)) { $this->scannedIds[] = $record->id; } } } $this->scannedIds = array_slice(array_unique($this->scannedIds), 0, 100); $this->packageCount = $records->sum(function ($record) { $sm = $record->stickerMasterRelation; if (! $sm) { return 0; } $stickCount = 0; $scannedCount = 0; if ($sm->tube_sticker_motor == 1 || $sm->tube_sticker_pump == 1 || $sm->tube_sticker_pumpset == 1) { if ($sm->tube_sticker_motor == 1) { $stickCount++; if ($record->motor_scanned_status == 1) { $scannedCount++; } } if ( $sm->tube_sticker_pump == 1 || ($sm->tube_sticker_pumpset != 1 && $sm->tube_sticker_pump != 1 && $sm->pack_slip_pump == 1) ) { $stickCount++; if ($record->pump_scanned_status == 1) { $scannedCount++; } } if ($sm->tube_sticker_pumpset == 1) { $stickCount++; if ($record->scanned_status_set == 1) { $scannedCount++; } } } elseif ($sm->pack_slip_motor == 1 || $sm->pack_slip_pump == 1 || $sm->pack_slip_pumpset == 1) { if ($sm->pack_slip_motor == 1) { $stickCount++; if ($record->motor_scanned_status == 1) { $scannedCount++; } } if ($sm->pack_slip_pump == 1) { $stickCount++; if ($record->pump_scanned_status == 1) { $scannedCount++; } } if ($sm->pack_slip_pumpset == 1) { $stickCount++; if ($record->scanned_status_set == 1) { $scannedCount++; } } } return max($stickCount - $scannedCount, 0); }); // $this->dispatch( // $onCapFocus ? 'focus-capacitor-input' : 'focus-serial-number' // ); } // public function getInvoiceRecordsProperty() // { // return StockDataMaster::with('stickerMasterRelation.item') // ->where('plant_id', $this->plantId) // ->where('location', $this->location) // ->where('type', '=', '0') // ->where('scanned_status', 'Scanned') // // ->where(function ($query) { // // $query->whereNull('scanned_status') // // ->orWhere('scanned_status', 'Scanned'); // // }) // // ->when($this->hasSearched, function ($query) { // // $query->where('invoice_number', $this->invoiceNumber) // // ->where('plant_id', $this->plantId) // // ->where('scanned_status', '=', ''); // // }) // ->orderBy('updated_at', 'desc') // ->paginate(6); // } public function getInvoiceRecordsProperty() { if (empty($this->scannedIds)) { return collect(); } return StockDataMaster::with('stickerMasterRelation.item') ->whereIn('id', $this->scannedIds) ->orderBy('updated_at', 'desc') ->paginate(6); } public function render() { // return view('livewire.stock-data-table'); return view('livewire.stock-data-table', [ 'records' => $this->invoiceRecords, 'scannedSfgData' => $this->scannedSfgData, 'scannedSerials' => $this->scannedSerials ]); } }