members = Member::orderBy('last_name')->orderBy('first_name')->get(); } public function updatedFilterFrom() { $this->emit('destroy-data-table'); } public function updatedFilterTo() { $this->emit('destroy-data-table'); } public function render() { if ($this->hasFilter) { $r = \App\Models\Receipt::with('member'); if ($this->filterStatus != '') $r = $r->where('status', $this->filterStatus); if ($this->filterFrom != '') $r = $r->where('date', '>=', $this->filterFrom); if ($this->filterTo != '') $r = $r->where('date', '<=', $this->filterTo); if ($this->filteredMemberId != '') $r = $r->where('member_id', $this->filteredMemberId); $this->records = $r->get(); } else { $this->records = \App\Models\Receipt::with('member')->get(); } $this->emit('load-data-table'); return view('livewire.receipt'); } public function printReceipt($id) { $this->emit('load-data-table'); $receipt = \App\Models\Receipt::findOrFail($id); //$pdf = PDF::loadView('pdf/receipt', array('datas' => $datas, 'from' => $x, 'to' => $y, 'who' => '', 'matricola' => $matricola)); $pdf = PDF::loadView('receipt', array('receipt' => $receipt));//->output(); return $pdf->stream('aaa.pdf'); } public function importReceipts() { $this->validate([ 'receiptFile' => 'required|mimes:xml|max:2048', ]); try { $xmlString = file_get_contents($this->receiptFile->getRealPath()); $xml = new SimpleXMLElement($xmlString); Log::info('XML Data: ' . print_r($xml, true)); // Extract data from XML and create receipts foreach ($xml->receipt as $receiptData) { Log::info('Receipt Data: ' . print_r($receiptData, true)); $member = Member::where('fiscal_code', (string)$receiptData->fiscal_code)->first(); if ($member) { $receipt = new \App\Models\Receipt(); $receipt->member_id = $member->id; $receipt->date = (string)$receiptData->date; $receipt->amount = (float)$receiptData->amount; $receipt->number = (string)$receiptData->number; $receipt->year = (int)$receiptData->year; $receipt->save(); } } session()->flash('message', 'Ricevute importate con successo.'); } catch (\Exception $e) { session()->flash('error', 'Errore durante l\'importazione del file XML: ' . $e->getMessage()); } $this->reset('receiptFile'); $this->emit('load-data-table'); } public function search() { $this->hasFilter = true; } public function disableSearch() { $this->filterStatus = ""; $this->filterTo = ''; $this->filterFrom = ''; $this->filteredMemberId = ''; $this->hasFilter = false; } }