'required', 'impresora.nombre_impresora' => 'required', 'impresora.is_compartida' => 'required' ]; public function render() { $impresoraUser = auth()->user()->impresora_id; return view('impresora.impresora',[ 'impresoras' => Impresora::paginate(10), ]); } public function create() { $this->impresora = new Impresora(); $this->impresora->is_compartida = false; $this->openModal(); } public function saveImpresora() { $user = User::findOrFail(auth()->user()->id); $user->impresora_id = $this->impresoraUser; $user->save(); session()->flash('messageImpresora','Impresora vinculada correctamente.'); } public function save() { $this->validate([ 'impresora.estacion' => 'required', ]); if($this->impresora->is_compartida) { $this->validate([ 'impresora.nombre_impresora' => 'required' ]); } else if(!is_numeric($this->impresora->nombre_impresora)) { $this->impresora->nombre_impresora = 9100; } $this->impresora->save(); session()->flash('message','La impresora se guardo correctamente.'); $this->closeModal(); $this->clearInputs(); } public function imprimir(Impresora $impresora) { try { $printer = new PrinterHandler($impresora, $impresora->is_compartida?PrinterHandler::PRINTER_BY_SHARED:PrinterHandler::PRINTER_BY_IP); // 32 caracteres $printer->testPage(); session()->flash('message','Impresion enviada a: '.'smb://'.$impresora->estacion.'/'.$impresora->nombre_impresora); } catch (\Throwable $th) { session()->flash('error','No se pudo establecer conexión con la impresora, verifica configuración.'.$th->getMessage()); } } public function delete(Impresora $impresora) { $impresora->delete(); session()->flash('message','La impresora se ha eliminado correctamente.'); } public function openModal() { $this->modal = true; } public function closeModal() { $this->modal = false; } public function clearInputs() { $this->reset(); } }