File: /home/posscale/public_html/printmanager/resources/views/tenant/printer/form.blade.php
<x-app-layout>
<x-slot name="header">
<h1 class="mb-0 uppercase text-3xl">
{{ $action }}
</h1>
</x-slot>
@if(session()->has('message'))
<div class="alert-success">
{{ session()->get('message') }}
</div>
@endif
<div class="py-12">
<div class="grid grid-cols-1">
<div class="card">
<div class="card-header flex justify-between">
<h3 class="card-title uppercase">
<i class="fas fa-plus"></i>
{{ $action }}
</h3>
<a href="{{ route('printers.index') }}" class="btn btn-primary font-semibold w-max">BACK TO LIST</a>
</div>
<div class="card-body">
<div class="shadow-sm overflow-hidden mb-8 ">
@if($printer)
<form action="{{ route('printers.update', $printer['id']) }}" method="POST">
<input value="{{$printer['id']}}" type="hidden" name="printer_id" />
@method('PUT')
@else
<form action="{{ route('printers.store') }}" method="POST">
@endif
@csrf
<div class="p-5" x-data="{ smtp: {{old('connect_to_smpt')??$printer['smtp_active']??0}} }">
<h2 class="block mb-2 font-medium uppercase text-xl"> Printer Details</h2>
<hr class="block mb-7">
<div class="grid grid-cols-2 gap-4">
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Name</span>
<input value="{{$printer['model_name']??old('model_name')}}" type="text" name="model_name" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="Please enter name" />
@error('model_name')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Serial</span>
<input value="{{$printer['serial_number']??old('serial_number')}}" type="text" name="serial_number" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="CXBPFSD5" />
@error('serial_number')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<!-- <label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Make</span>
<input value="{{$printer['make']??old('make')}}" type="text" name="make" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('make')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label> -->
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Make</span>
<select id="make" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" name="make">
<option value="">Select</option>
@if($printer_make_list)
@foreach($printer_make_list as $printer_make_value)
<option {{(isset($printer['make']))?($printer['make']==$printer_make_value->id)?'selected':'':''}} value="{{$printer_make_value->id}}" >{{$printer_make_value->name}}</option>
@endforeach
@endif
</select>
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Model</span>
<select name="model" id="model" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1">
<option value="">Select</option>
@if($printer_model_list)
@foreach($printer_model_list as $printer_model_value)
<option data-value="{{json_encode($printer_model_value)}}" {{ ( $printer_model_value->id == $printer['model']) ? 'selected' : '' }} value="{{$printer_model_value->id}}">{{$printer_model_value->name}}</option>
@endforeach
@endif
</select>
@error('model')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Toner Ink</span>
<select name="toner_inks_id" id="toner_inks_id" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1">
<option value="">Select</option>
@if($printer_tonerorink_list)
@foreach($printer_tonerorink_list as $printer_tonerorink_value)
<option {{ ( $printer_tonerorink_value->id == $printer['toner_inks_id']) ? 'selected' : '' }} value="{{$printer_tonerorink_value->id}}">{{$printer_tonerorink_value->part_no}}</option>
@endforeach
@endif
</select>
@error('toner_inks_id')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Toner Type</span>
<input value="{{$printer['toner_type']??old('toner_type')}}" type="text" name="toner_type" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('toner_type')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Equipment ID</span>
<input value="{{$printer['equipment_id']??old('equipment_id')}}" type="text" name="equipment_id" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="1234454665" />
@error('equipment_id')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<?php /*
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Printer Types</span>
<select id="PrinterTypes" onchange="changeSelectedOptionAttribute()" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" name="type_title">
<option value="">Select Printer Type</option>
@if($printer_type_main)
@foreach($printer_type_main as $printer_type_value)
<option {{(isset($printer['type_title']))?($printer['type_title']==$printer_type_value->id)?'selected':'':''}} value="{{$printer_type_value->id}}" data-value="{{json_encode($printer_type_value)}}" data-make="{{$printer_type_value->make_name}}" data-make="{{$printer_type_value->make_name}}" data-model="{{$printer_type_value->model_name}}">{{$printer_type_value->type_title}}</option>
@endforeach
@endif
<!-- @if($printer_type)
@foreach($printer_type as $printer_type_value)
<option {{(isset($printer['type_title']))?($printer['type_title']==$printer_type_value->id)?'selected':'':''}} value="{{$printer_type_value->id}}" data-value="{{json_encode($printer_type_value)}}">{{$printer_type_value->type_title}}</option>
@endforeach
@endif -->
</select>
@error('type_title')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
*/?>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Drum Unit</span>
<input value="{{$printer['drum_unit']??old('drum_unit')}}" type="text" name="drum_unit" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('drum_unit')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Fuser Unit</span>
<input value="{{$printer['fuser_unit']??old('fuser_unit')}}" type="text" name="fuser_unit" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('fuser_unit')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Paper Tray</span>
<input value="{{$printer['paper_tray']??old('paper_tray')}}" type="text" name="paper_tray" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('paper_tray')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Paper Feed Rollers</span>
<input value="{{$printer['paper_feed_rollers']??old('paper_feed_rollers')}}" type="text" name="paper_feed_rollers" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('paper_feed_rollers')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Duplex Unit</span>
<input value="{{$printer['duplex_unit']??old('duplex_unit')}}" type="text" name="duplex_unit" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('duplex_unit')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Transfer Belt</span>
<input value="{{$printer['transfer_belt']??old('transfer_belt')}}" type="text" name="transfer_belt" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('transfer_belt')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Toner Discreptions</span>
<input value="{{$printer['toner_discreptions']??old('toner_discreptions')}}" type="text" name="toner_discreptions" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('toner_discreptions')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">IP Address</span>
<input pattern="^(\d{1,3}\.){3}\d{1,3}$" title="Enter a valid IPv4 address" value="{{$printer['ip_address']??old('ip_address')}}" type="text" name="ip_address" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('ip_address')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Status</span>
<select id="status" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" name="status">
<option value="">Select</option>
<option {{(isset($printer['status']))?($printer['status']=="Active")?'selected':'':''}} value="Active" >Active</option>
<option {{(isset($printer['status']))?($printer['status']=="Inactive")?'selected':'':''}} value="Inactive" >Inactive</option>
<option {{(isset($printer['status']))?($printer['status']=="Maintenance")?'selected':'':''}} value="Maintenance" >Maintenance</option>
</select>
@error('status')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Installation date</span>
<input value="{{$printer['install_date']??old('install_date')}}" type="date" name="install_date" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('install_date')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
@if(in_array(auth()->user()->user_type,[1,2]))
<label class="block form-label">
<span class=" after:ml-0.5 after:text-red-500 block">Toner stock</span>
<input value="{{$printer['toner_stock']??old('toner_stock')}}" type="text" name="toner_stock" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="" />
@error('toner_stock')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
@endif
</div>
<h2 class="block mb-2 mt-10 font-medium uppercase text-xl"> Printer Customer</h2>
<hr class="block mb-5">
<div class="grid grid-cols-2 gap-4">
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Select Customer</span>
<select name="customer_id" id="customer_id" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1">
<option value="">Select</option>
@if($customers_list)
@foreach($customers_list as $customer)
<option {{ ( $customer->id == ($printer['customer_id']??old('customer_id'))) ? 'selected' : '' }} value="{{$customer->id}}">{{$customer->name}}({{$customer->email}})</option>
@endforeach
@endif
</select>
@error('customer_id')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
</div>
<h2 class="block mb-2 mt-10 font-medium uppercase text-xl"> Printer location</h2>
<hr class="block mb-5">
<div class="grid grid-cols-2 gap-4">
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Select address</span>
<select name="address_id" id="address_id" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1">
<option value="">Select</option>
@if($address)
<option {{ ( $address->id == $printer['address_id']) ? 'selected' : '' }} value="{{$address->id}}">{{$address->address}}, {{$address->city}}, {{$address->state}}, {{$address->zip}}</option>
@endif
</select>
@error('address_id')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
</div>
<h2 class="block mb-2 mt-10 font-medium uppercase text-xl"> Printer Reception</h2>
<hr class="block mb-5">
<div class="grid grid-cols-2 gap-4">
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Name</span>
<input value="{{$reception['name']??old('rec_name')}}" type="text" name="rec_name" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="Please enter name" />
@error('rec_name')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Email</span>
<input value="{{$reception['email']??old('rec_email')}}" type="email" name="rec_email" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="Please enter email" />
@error('rec_email')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
<label class="block form-label">
<span class="after:content-['*'] after:ml-0.5 after:text-red-500 block">Phone</span>
<input value="{{$reception['phone']??old('rec_phone')}}" type="text" name="rec_phone" class="form-input mt-1 px-3 py-2 bg-white border shadow-sm border-slate-300 placeholder-slate-400 focus:outline-none focus:border-sky-500 focus:ring-sky-500 block w-full rounded-md sm:text-sm focus:ring-1" placeholder="Please enter phone number" />
@error('rec_phone')
<div class="alert-danger mt-3 text-red-900">{{ $message }}</div>
@enderror
</label>
</div>
<div class="mt-10">
<input type="submit" value="Save" class="btn-primary inline-flex items-center px-4 py-2 bg-gray-800 dark:bg-gray-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-gray-800 uppercase tracking-widest hover:bg-gray-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150">
<a href="{{ route('printers.index') }}" class="ml-5 inline-flex items-center px-4 py-2 bg-red-800 dark:bg-red-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-red-800 uppercase tracking-widest hover:bg-red-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-red-800 transition ease-in-out duration-150">Cancel</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
function changeSelectedOptionAttribute() {
var PrinterTypes = document.getElementById('PrinterTypes');
var selectedOption = PrinterTypes.options[PrinterTypes.selectedIndex];
var attributeValue = selectedOption.getAttribute('data-value');
var MakeValue = selectedOption.getAttribute('data-make');
var ModelValue = selectedOption.getAttribute('data-model');
var jsonData = JSON.parse(attributeValue);
document.querySelector('input[name="drum_unit"]').value = jsonData.drum_unit;
document.querySelector('input[name="fuser_unit"]').value = jsonData.fuser_unit;
document.querySelector('input[name="paper_tray"]').value = jsonData.paper_tray;
document.querySelector('input[name="paper_feed_rollers"]').value = jsonData.paper_feed_rollers;
document.querySelector('input[name="duplex_unit"]').value = jsonData.duplex_unit;
document.querySelector('input[name="transfer_belt"]').value = jsonData.transfer_belt;
document.querySelector('input[name="toner_discreptions"]').value = jsonData.toner_discreptions;
document.querySelector('input[name="make"]').value = MakeValue;
document.querySelector('input[name="model"]').value = ModelValue;
}
document.getElementById('customer_id').addEventListener('change', function() {
let categoryId = this.value;
fetch(`/printers/get-address/${categoryId}`)
.then(response => response.json())
.then(data => {
let subcategory = document.getElementById('address_id');
subcategory.innerHTML = '<option value="">Select</option>';
data.forEach(item => {
let option = document.createElement('option');
option.value = item.id;
option.textContent = item.address + ', ' + item.city + ', ' + item.state + ', ' + item.zip;
subcategory.appendChild(option);
});
});
});
document.getElementById('make').addEventListener('change', function() {
let make_id = this.value;
fetch(`/printers/get-model/${make_id}`)
.then(response => response.json())
.then(data => {
let subcategory = document.getElementById('model');
subcategory.innerHTML = '<option value="">Select</option>';
data.forEach(item => {
let option = document.createElement('option');
option.value = item.id;
option.textContent = item.name;
option.dataset.value = JSON.stringify(item);
subcategory.appendChild(option);
});
});
});
document.getElementById('model').addEventListener('change', function() {
const selectedOption = this.options[this.selectedIndex];
var attributeValue = selectedOption.getAttribute('data-value');
var jsonData = JSON.parse(attributeValue);
document.querySelector('input[name="drum_unit"]').value = jsonData.drum_unit;
document.querySelector('input[name="fuser_unit"]').value = jsonData.fuser_unit;
document.querySelector('input[name="paper_tray"]').value = jsonData.paper_tray;
document.querySelector('input[name="paper_feed_rollers"]').value = jsonData.paper_feed_rollers;
document.querySelector('input[name="duplex_unit"]').value = jsonData.duplex_unit;
document.querySelector('input[name="transfer_belt"]').value = jsonData.transfer_belt;
document.querySelector('input[name="toner_discreptions"]').value = jsonData.toner_discreptions;
document.querySelector('input[name="toner_type"]').value = jsonData.tonerorink;
let model_id = this.value;
fetch(`/printers/get-tonerorink/${model_id}`)
.then(response => response.json())
.then(data => {
let subcategory = document.getElementById('toner_inks_id');
subcategory.innerHTML = '<option value="">Select</option>';
data.forEach(item => {
let option = document.createElement('option');
option.value = item.id;
option.textContent = item.part_no;
option.dataset.value = JSON.stringify(item);
subcategory.appendChild(option);
});
});
});
</script>
</x-app-layout>