update item movement master
This commit is contained in:
parent
4afac02583
commit
26aaff2d2b
@ -42,6 +42,11 @@
|
|||||||
<h2>Pending Item Movement</h2>
|
<h2>Pending Item Movement</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<div v-if="loading">
|
||||||
|
<div class="spinner-border text-info" role="status">
|
||||||
|
<span class="visually-hidden">Loading...</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<table class="table table-bordered table-hover table-striped no-wrap" id="itemMovementNotCompleteDatatable" style="width:100%;border-style: solid; border-width: 1px"></table>
|
<table class="table table-bordered table-hover table-striped no-wrap" id="itemMovementNotCompleteDatatable" style="width:100%;border-style: solid; border-width: 1px"></table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -51,12 +56,22 @@
|
|||||||
<h2>Complete Item Movement</h2>
|
<h2>Complete Item Movement</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<div v-if="loading">
|
||||||
|
<div class="spinner-border text-info" role="status">
|
||||||
|
<span class="visually-hidden">Loading...</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<table class="table table-bordered table-hover table-striped no-wrap" id="itemMovementCompleteDatatable" style="width:100%;border-style: solid; border-width: 1px"></table>
|
<table class="table table-bordered table-hover table-striped no-wrap" id="itemMovementCompleteDatatable" style="width:100%;border-style: solid; border-width: 1px"></table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="sortBy === 'logs'">
|
<div v-if="sortBy === 'logs'">
|
||||||
|
<div v-if="loading">
|
||||||
|
<div class="spinner-border text-info" role="status">
|
||||||
|
<span class="visually-hidden">Loading...</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row card">
|
<div class="row card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h2>Item Movement List</h2>
|
<h2>Item Movement List</h2>
|
||||||
@ -68,6 +83,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="sortBy === 'item'">
|
<div v-if="sortBy === 'item'">
|
||||||
|
<div v-if="loading">
|
||||||
|
<div class="spinner-border text-info" role="status">
|
||||||
|
<span class="visually-hidden">Loading...</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div v-for="(group, itemId) in filteredItems" :key="itemId" class="row card">
|
<div v-for="(group, itemId) in filteredItems" :key="itemId" class="row card">
|
||||||
<div class="card-header d-flex justify-content-between align-items-center">
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
<h2>Item : {{ group.uniqueID }}</h2>
|
<h2>Item : {{ group.uniqueID }}</h2>
|
||||||
@ -432,6 +452,8 @@
|
|||||||
|
|
||||||
|
|
||||||
initiateTable() {
|
initiateTable() {
|
||||||
|
this.loading = true;
|
||||||
|
|
||||||
self = this;
|
self = this;
|
||||||
this.itemDatatable = $('#itemDatatable').DataTable({
|
this.itemDatatable = $('#itemDatatable').DataTable({
|
||||||
"data": this.items,
|
"data": this.items,
|
||||||
@ -518,34 +540,35 @@
|
|||||||
self.deleteItem(itemId);
|
self.deleteItem(itemId);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#itemDatatable tbody').on('click', '.print-btn', function () {
|
// $('#itemDatatable tbody').on('click', '.print-btn', function () {
|
||||||
const $button = $(this); // The clicked button
|
// const $button = $(this); The clicked button
|
||||||
const $row = $button.closest('tr'); // The parent row of the button
|
// const $row = $button.closest('tr'); The parent row of the button
|
||||||
const itemId = $button.data('id'); // Get the item ID from the button's data attribute
|
// const itemId = $button.data('id'); Get the item ID from the button's data attribute
|
||||||
|
|
||||||
let imageSrc;
|
// let imageSrc;
|
||||||
|
|
||||||
// Check if the table is collapsed
|
// Check if the table is collapsed
|
||||||
if ($row.hasClass('child')) {
|
// if ($row.hasClass('child')) {
|
||||||
// For collapsed view: Look for the closest `.dtr-data` that contains the img
|
// For collapsed view: Look for the closest `.dtr-data` that contains the img
|
||||||
imageSrc = $row.prev('tr').find('td:nth-child(1) img').attr('src');
|
// imageSrc = $row.prev('tr').find('td:nth-child(1) img').attr('src');
|
||||||
} else {
|
// } else {
|
||||||
// For expanded view: Find the img in the first column of the current row
|
// For expanded view: Find the img in the first column of the current row
|
||||||
imageSrc = $row.find('td:nth-child(1) img').attr('src');
|
// imageSrc = $row.find('td:nth-child(1) img').attr('src');
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (imageSrc) {
|
// if (imageSrc) {
|
||||||
self.printItem(itemId, imageSrc); // Call the print function with the itemId and imageSrc
|
// self.printItem(itemId, imageSrc); Call the print function with the itemId and imageSrc
|
||||||
} else {
|
// } else {
|
||||||
console.error("Image source not found.");
|
// console.error("Image source not found.");
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
async fetchItem() {
|
async fetchItem() {
|
||||||
await this.fetchUser();
|
this.loading = true;
|
||||||
|
await this.fetchUser();
|
||||||
try {
|
try {
|
||||||
// const token = localStorage.getItem('token'); // Get the token from localStorage
|
// const token = localStorage.getItem('token'); // Get the token from localStorage
|
||||||
const response = await fetch('/InvMainAPI/ItemMovementList', {
|
const response = await fetch('/InvMainAPI/ItemMovementList', {
|
||||||
@ -561,6 +584,8 @@
|
|||||||
}
|
}
|
||||||
if(this.currentRole == "Super Admin"){
|
if(this.currentRole == "Super Admin"){
|
||||||
this.items = await response.json();
|
this.items = await response.json();
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
this.items = data.filter(item =>
|
this.items = data.filter(item =>
|
||||||
@ -586,14 +611,9 @@
|
|||||||
catch (error) {
|
catch (error) {
|
||||||
console.error('Error fetching item:', error);
|
console.error('Error fetching item:', error);
|
||||||
}
|
}
|
||||||
},
|
|
||||||
|
|
||||||
|
this.loading = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// FRONT END FUNCTIONS
|
// FRONT END FUNCTIONS
|
||||||
//----------------------//
|
//----------------------//
|
||||||
@ -706,6 +726,7 @@
|
|||||||
|
|
||||||
if (roles.includes("SuperAdmin")) {
|
if (roles.includes("SuperAdmin")) {
|
||||||
this.currentRole = "Super Admin";
|
this.currentRole = "Super Admin";
|
||||||
|
this.sortBy = 'logs';
|
||||||
} else if (roles.includes("Inventory Master")) {
|
} else if (roles.includes("Inventory Master")) {
|
||||||
this.currentRole = "Inventory Master";
|
this.currentRole = "Inventory Master";
|
||||||
this.sortBy = "item";
|
this.sortBy = "item";
|
||||||
|
|||||||
@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
<div id="registerItemMovement" v-if="!thisItem" data-aos="fade-right">
|
<div id="registerItemMovement" v-if="!thisItem" data-aos="fade-right">
|
||||||
<p style="text-align:center; padding:10px;">Scan QR Code Here:</p>
|
<p style="text-align:center; padding:10px;">Scan QR Code Here:</p>
|
||||||
|
|
||||||
<qrcode-stream :constraints="selectedConstraints"
|
<qrcode-stream :constraints="selectedConstraints"
|
||||||
:formats="['qr_code']"
|
:formats="['qr_code']"
|
||||||
:track="trackFunctionSelected.value"
|
:track="trackFunctionSelected.value"
|
||||||
@ -44,9 +45,13 @@
|
|||||||
v-on:error="onError">
|
v-on:error="onError">
|
||||||
</qrcode-stream>
|
</qrcode-stream>
|
||||||
|
|
||||||
|
<!-- Debugging: Show Processed Video -->
|
||||||
|
<canvas ref="sharpenedCanvas" style="display:none;"></canvas>
|
||||||
|
<video ref="preview" autoplay style="width: 100%;"></video>
|
||||||
<p class="error">{{ error }}</p>
|
<p class="error">{{ error }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p v-if="scanTime">Scan Time: {{ scanTime }} ms</p>
|
||||||
<div v-if="thisItem" style="display: flex; justify-content: center; align-items: center;">
|
<div v-if="thisItem" style="display: flex; justify-content: center; align-items: center;">
|
||||||
<div class="col-lg-7 col-11 border rounded p-3 shadow-sm">
|
<div class="col-lg-7 col-11 border rounded p-3 shadow-sm">
|
||||||
|
|
||||||
@ -150,6 +155,13 @@
|
|||||||
<form v-on:submit.prevent="receiveItemMovement" data-aos="fade-right">
|
<form v-on:submit.prevent="receiveItemMovement" data-aos="fade-right">
|
||||||
<div class="row register-form">
|
<div class="row register-form">
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-4 col-form-label">Remark:</label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input type="text" id="remark" name="remark" v-model="remark" class="form-control" required />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div style="display: flex; justify-content: center; margin-top: 20px;">
|
<div style="display: flex; justify-content: center; margin-top: 20px;">
|
||||||
<button type="submit" class="btn btn-primary" style="width: 200px; padding: 10px; font-size: 16px;">
|
<button type="submit" class="btn btn-primary" style="width: 200px; padding: 10px; font-size: 16px;">
|
||||||
Cancel Item Movement
|
Cancel Item Movement
|
||||||
@ -324,7 +336,7 @@
|
|||||||
<label class="col-sm-4 col-form-label">To Station:</label>
|
<label class="col-sm-4 col-form-label">To Station:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<select class="btn btn-primary dropdown-toggle col-md-10" v-model="selectedStation" v-on:change="handleSelection" required style="width: 100%;">
|
<select class="btn btn-primary dropdown-toggle col-md-10" v-model="selectedStation" required style="width: 100%;">
|
||||||
<option class="btn-light" value="" disabled selected>Select Station</option>
|
<option class="btn-light" value="" disabled selected>Select Station</option>
|
||||||
<option class="btn-light" v-for="(station, index) in stationlist" :key="index" :value="station.stationId">{{station.stationName}}</option>
|
<option class="btn-light" v-for="(station, index) in stationlist" :key="index" :value="station.stationId">{{station.stationName}}</option>
|
||||||
</select>
|
</select>
|
||||||
@ -339,7 +351,7 @@
|
|||||||
<label class="col-sm-4 col-form-label">To PIC:</label>
|
<label class="col-sm-4 col-form-label">To PIC:</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<input type="text" id="selectedStationPIC" name="selectedStationPIC" v-model="selectedStationPIC" class="form-control" readonly />
|
<input type="text" id="selectedStationPIC" name="selectedStationPIC" :value="selectedStationPicName" class="form-control" readonly />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -584,7 +596,7 @@
|
|||||||
supplierlist: null,
|
supplierlist: null,
|
||||||
selectedUser: "",
|
selectedUser: "",
|
||||||
selectedStation: "",
|
selectedStation: "",
|
||||||
selectedStationPIC: "",
|
selectedStationPIC: null,
|
||||||
selectedStore: "",
|
selectedStore: "",
|
||||||
selectedAction: "",
|
selectedAction: "",
|
||||||
assigndate: null,
|
assigndate: null,
|
||||||
@ -626,6 +638,8 @@
|
|||||||
],
|
],
|
||||||
videoInputDevices: [],
|
videoInputDevices: [],
|
||||||
selectedCameraId: null,
|
selectedCameraId: null,
|
||||||
|
scanStartTime: null,
|
||||||
|
scanTime: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -638,15 +652,19 @@
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
selectedStation(newStationId) {
|
selectedStation(newStationId) {
|
||||||
console.log(newStationId);
|
|
||||||
console.log(this.selectedStation);
|
|
||||||
// Find the station object that matches the selectedStation id
|
// Find the station object that matches the selectedStation id
|
||||||
const selectedStationObj = this.stationlist.find(station => station.stationId === newStationId);
|
const selectedStationObj = this.stationlist.find(station => station.stationId === newStationId);
|
||||||
// Set the selectedPIC based on the stationPIC
|
// Set the selectedPIC based on the stationPIC
|
||||||
this.selectedStationPIC = selectedStationObj ? selectedStationObj.stationPicID : "";
|
this.selectedStationPIC = selectedStationObj ? selectedStationObj.stationPicID : "";
|
||||||
|
// this.selectedStationPIC = selectedStationObj ? selectedStationObj : null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
selectedStationPicName() {
|
||||||
|
const selectedStationObj = this.stationlist.find(station => station.stationId === this.selectedStation);
|
||||||
|
return selectedStationObj ? selectedStationObj.stationPic.fullName : "";
|
||||||
|
},
|
||||||
filteredDepartments() {
|
filteredDepartments() {
|
||||||
if (!this.selectedCompany) {
|
if (!this.selectedCompany) {
|
||||||
return []; // No company selected, return empty list
|
return []; // No company selected, return empty list
|
||||||
@ -667,17 +685,11 @@
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
// handleSelection(event) {
|
|
||||||
// console.log("Event Target Value:", event.target.value); Debugging
|
|
||||||
// const selectedstationid = event.target.value;
|
|
||||||
// console.log(this.stationlist);
|
|
||||||
// const selectedStationObj = this.stationlist.find(station => station.stationId == selectedstationid);
|
|
||||||
// Set the selectedPIC based on the stationPIC
|
|
||||||
// this.selectedStationPIC = selectedStationObj ? selectedStationObj.stationPicID : "";
|
|
||||||
// },
|
|
||||||
// Split Url dapatkan unique ID Je
|
// Split Url dapatkan unique ID Je
|
||||||
onDecode(detectedCodes) {
|
onDecode(detectedCodes) {
|
||||||
|
// const endTime = performance.now();
|
||||||
|
// this.scanTime = Math.round(endTime - this.scanStartTime); Calculate scan time
|
||||||
|
|
||||||
if (detectedCodes.length > 0) {
|
if (detectedCodes.length > 0) {
|
||||||
this.qrCodeResult = detectedCodes[0].rawValue; // Ambil URL dari rawValue
|
this.qrCodeResult = detectedCodes[0].rawValue; // Ambil URL dari rawValue
|
||||||
this.UniqueID = this.qrCodeResult.split('/').pop(); // Ambil UniqueID dari URL
|
this.UniqueID = this.qrCodeResult.split('/').pop(); // Ambil UniqueID dari URL
|
||||||
@ -702,6 +714,9 @@
|
|||||||
|
|
||||||
//Setting Camera
|
//Setting Camera
|
||||||
async onCameraReady() {
|
async onCameraReady() {
|
||||||
|
// this.scanStartTime = performance.now(); Start timing
|
||||||
|
// this.scanTime = null; Reset previous scan time
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const devices = await navigator.mediaDevices.enumerateDevices();
|
const devices = await navigator.mediaDevices.enumerateDevices();
|
||||||
this.videoInputDevices = devices.filter(device => device.kind === 'videoinput');
|
this.videoInputDevices = devices.filter(device => device.kind === 'videoinput');
|
||||||
@ -771,7 +786,7 @@
|
|||||||
const formData = {
|
const formData = {
|
||||||
|
|
||||||
...(this.selectedAction === 'user' ? { toUser: this.currentUser.id, toOther: 'On Delivery', SendDate: this.assigndate, lastUser: this.selectedUser, MovementComplete: false, Remark: this.remark, ConsignmentNote: this.document} : {}),
|
...(this.selectedAction === 'user' ? { toUser: this.currentUser.id, toOther: 'On Delivery', SendDate: this.assigndate, lastUser: this.selectedUser, MovementComplete: false, Remark: this.remark, ConsignmentNote: this.document} : {}),
|
||||||
...(this.selectedAction === 'station' ? { toStation: this.selectedStation, toUser: this.currentUser.id, toOther: 'On Delivery', SendDate: this.assigndate, lastUser: this.selectedUser, MovementComplete: false, Remark: this.remark, ConsignmentNote: this.document} : {}),
|
...(this.selectedAction === 'station' ? { toUser: this.currentUser.id, toOther: 'On Delivery', SendDate: this.assigndate, lastStation: this.selectedStation, lastUser: this.selectedStationPIC, MovementComplete: false, Remark: this.remark, ConsignmentNote: this.document} : {}),
|
||||||
...(this.selectedAction === 'store' ? { toUser: this.currentUser.id, toOther: 'On Delivery', SendDate: this.assigndate, lastUser: this.selectedStore, MovementComplete: false, Remark: this.remark, ConsignmentNote: this.document} : {}),
|
...(this.selectedAction === 'store' ? { toUser: this.currentUser.id, toOther: 'On Delivery', SendDate: this.assigndate, lastUser: this.selectedStore, MovementComplete: false, Remark: this.remark, ConsignmentNote: this.document} : {}),
|
||||||
...(this.selectedAction === 'supplier' ? { toUser: this.currentUser.id, toOther: this.selectedOther, SendDate: this.assigndate, Remark: this.remark + '. Item sent to ' + this.selectedSupplier + ' for ' + this.selectedOther, ConsignmentNote: this.document, lastUser: this.currentUser.id, MovementComplete: false, } : {}),
|
...(this.selectedAction === 'supplier' ? { toUser: this.currentUser.id, toOther: this.selectedOther, SendDate: this.assigndate, Remark: this.remark + '. Item sent to ' + this.selectedSupplier + ' for ' + this.selectedOther, ConsignmentNote: this.document, lastUser: this.currentUser.id, MovementComplete: false, } : {}),
|
||||||
...(this.selectedAction === 'faulty' ? { toUser: this.currentUser.id,toOther: 'Faulty', Date: new Date(now.getTime() + 8 * 60 * 60 * 1000).toISOString(), Remark: this.remark, ConsignmentNote: this.document, MovementComplete: true, } : {}),
|
...(this.selectedAction === 'faulty' ? { toUser: this.currentUser.id,toOther: 'Faulty', Date: new Date(now.getTime() + 8 * 60 * 60 * 1000).toISOString(), Remark: this.remark, ConsignmentNote: this.document, MovementComplete: true, } : {}),
|
||||||
@ -818,7 +833,7 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
async receiveItemMovement() {
|
async receiveItemMovement() {
|
||||||
|
|
||||||
if (this.showProduct.category == "Disposable") {
|
if (this.showProduct.category == "Disposable") {
|
||||||
this.serialNumber = "";
|
this.serialNumber = "";
|
||||||
}
|
}
|
||||||
@ -834,6 +849,7 @@
|
|||||||
|
|
||||||
Id: this.thisItem.movementId,
|
Id: this.thisItem.movementId,
|
||||||
ReceiveDate: new Date(now.getTime() + 8 * 60 * 60 * 1000).toISOString(),
|
ReceiveDate: new Date(now.getTime() + 8 * 60 * 60 * 1000).toISOString(),
|
||||||
|
Remark: this.thisItem.toOther === "On Delivery" ? this.thisItem.remark + ". Inventory Master cancelled delivery with remark: " + this.remark : this.thisItem.remark,
|
||||||
LatestStatus: this.thisItem.toOther === "Return" ? "Faulty" : (this.thisItem.toOther === "Calibration" || this.thisItem.toOther === "Repair" || this.thisItem.toOther === "On Delivery" ) ? "Ready To Deploy" : ""
|
LatestStatus: this.thisItem.toOther === "Return" ? "Faulty" : (this.thisItem.toOther === "Calibration" || this.thisItem.toOther === "Repair" || this.thisItem.toOther === "On Delivery" ) ? "Ready To Deploy" : ""
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -884,6 +900,7 @@
|
|||||||
this.thisItem = await response.json();
|
this.thisItem = await response.json();
|
||||||
this.itemlateststatus = this.thisItem.latestStatus ? this.thisItem.latestStatus : this.thisItem.toOther;
|
this.itemlateststatus = this.thisItem.latestStatus ? this.thisItem.latestStatus : this.thisItem.toOther;
|
||||||
this.itemassignedtouser = this.thisItem.toUser == this.currentUser.id || this.thisItem.lastUser == this.currentUser.id ? true : false;
|
this.itemassignedtouser = this.thisItem.toUser == this.currentUser.id || this.thisItem.lastUser == this.currentUser.id ? true : false;
|
||||||
|
console.log(this.thisItem);
|
||||||
|
|
||||||
|
|
||||||
// if ((this.thisItem.toOther === "Repair" || this.thisItem.toOther === "Calibration" || this.thisItem.toOther === "Return" ) && this.thisItem.lastUser === this.currentUser.id && this.thisItem.movementComplete === false) {
|
// if ((this.thisItem.toOther === "Repair" || this.thisItem.toOther === "Calibration" || this.thisItem.toOther === "Return" ) && this.thisItem.lastUser === this.currentUser.id && this.thisItem.movementComplete === false) {
|
||||||
@ -927,6 +944,8 @@
|
|||||||
this.assigndate = "";
|
this.assigndate = "";
|
||||||
this.selectedStore = "";
|
this.selectedStore = "";
|
||||||
this.selectedOther = "";
|
this.selectedOther = "";
|
||||||
|
this.selectedStation = "";
|
||||||
|
this.selectedStationPIC = "";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -538,6 +538,7 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory
|
|||||||
item.Movement?.LatestStatus,
|
item.Movement?.LatestStatus,
|
||||||
item.Movement?.LastUser,
|
item.Movement?.LastUser,
|
||||||
item.Movement?.MovementComplete,
|
item.Movement?.MovementComplete,
|
||||||
|
remark = item.Movement?.Remark,
|
||||||
QRString = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.Value}/I/{item.UniqueID}" // Generate QR String
|
QRString = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.Value}/I/{item.UniqueID}" // Generate QR String
|
||||||
};
|
};
|
||||||
return Json(singleItem);
|
return Json(singleItem);
|
||||||
@ -753,6 +754,7 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory
|
|||||||
|
|
||||||
updatedList.LatestStatus = receiveMovement.LatestStatus;
|
updatedList.LatestStatus = receiveMovement.LatestStatus;
|
||||||
updatedList.receiveDate = receiveMovement.receiveDate;
|
updatedList.receiveDate = receiveMovement.receiveDate;
|
||||||
|
updatedList.Remark = receiveMovement.Remark;
|
||||||
updatedList.MovementComplete = true;
|
updatedList.MovementComplete = true;
|
||||||
|
|
||||||
_centralDbContext.ItemMovements.Update(updatedList);
|
_centralDbContext.ItemMovements.Update(updatedList);
|
||||||
@ -1121,7 +1123,7 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory
|
|||||||
[HttpPost("StationList")]
|
[HttpPost("StationList")]
|
||||||
public async Task<IActionResult> StationList()
|
public async Task<IActionResult> StationList()
|
||||||
{
|
{
|
||||||
var stationList = await _centralDbContext.Stations.ToListAsync();
|
var stationList = await _centralDbContext.Stations.Include(i => i.StationPic).ToListAsync();
|
||||||
return Json(stationList);
|
return Json(stationList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,16 +23,16 @@
|
|||||||
<!-- Tell the browser to be responsive to screen width -->
|
<!-- Tell the browser to be responsive to screen width -->
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<meta name="keywords"
|
<meta name="keywords"
|
||||||
content="wrappixel, admin dashboard, html css dashboard, web dashboard, bootstrap 5 admin, bootstrap 5, css3 dashboard, bootstrap 5 dashboard, Matrix lite admin bootstrap 5 dashboard, frontend, responsive bootstrap 5 admin template, Matrix admin lite design, Matrix admin lite dashboard bootstrap 5 dashboard template" />
|
content="wrappixel, admin dashboard, html css dashboard, web dashboard, bootstrap 5 admin, bootstrap 5, css3 dashboard, bootstrap 5 dashboard, Matrix lite admin bootstrap 5 dashboard, frontend, responsive bootstrap 5 admin template, Matrix admin lite design, Matrix admin lite dashboard bootstrap 5 dashboard template" />
|
||||||
<meta name="description"
|
<meta name="description"
|
||||||
content="Matrix Admin Lite Free Version is powerful and clean admin dashboard template, inpired from Bootstrap Framework" />
|
content="Matrix Admin Lite Free Version is powerful and clean admin dashboard template, inpired from Bootstrap Framework" />
|
||||||
<meta name="robots" content="noindex,nofollow" />
|
<meta name="robots" content="noindex,nofollow" />
|
||||||
<title>PSTW Centralize Web System</title>
|
<title>PSTW Centralize Web System</title>
|
||||||
<!-- Favicon icon -->
|
<!-- Favicon icon -->
|
||||||
<link rel="icon"
|
<link rel="icon"
|
||||||
type="image/png"
|
type="image/png"
|
||||||
sizes="16x16"
|
sizes="16x16"
|
||||||
href="/assets/images/favicon.png" />
|
href="/assets/images/favicon.png" />
|
||||||
|
|
||||||
|
|
||||||
<!-- Custom CSS -->
|
<!-- Custom CSS -->
|
||||||
@ -50,32 +50,32 @@
|
|||||||
<!-- QR Js -->
|
<!-- QR Js -->
|
||||||
<script src="~/lib/qrcode/qrcode.min.js"></script>
|
<script src="~/lib/qrcode/qrcode.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
.btn-teal {
|
.btn-teal {
|
||||||
background-color: #20c997; /* Teal color */
|
background-color: #20c997; /* Teal color */
|
||||||
color: #ffffff; /* White text */
|
color: #ffffff; /* White text */
|
||||||
border: none; /* Remove border */
|
border: none; /* Remove border */
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-teal:hover {
|
.btn-teal:hover {
|
||||||
background-color: #17a589; /* Darker teal on hover */
|
background-color: #17a589; /* Darker teal on hover */
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-teal:focus,
|
.btn-teal:focus,
|
||||||
.btn-teal.focus {
|
.btn-teal.focus {
|
||||||
box-shadow: 0 0 0 0.2rem rgba(32, 201, 151, 0.5); /* Teal shadow on focus */
|
box-shadow: 0 0 0 0.2rem rgba(32, 201, 151, 0.5); /* Teal shadow on focus */
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
@ -108,12 +108,12 @@
|
|||||||
<!-- Main wrapper - style you can find in pages.scss -->
|
<!-- Main wrapper - style you can find in pages.scss -->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<div id="main-wrapper"
|
<div id="main-wrapper"
|
||||||
data-layout="vertical"
|
data-layout="vertical"
|
||||||
data-navbarbg="skin5"
|
data-navbarbg="skin5"
|
||||||
data-sidebartype="full"
|
data-sidebartype="full"
|
||||||
data-sidebar-position="absolute"
|
data-sidebar-position="absolute"
|
||||||
data-header-position="absolute"
|
data-header-position="absolute"
|
||||||
data-boxed-layout="full">
|
data-boxed-layout="full">
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<!-- Topbar header - style you can find in pages.scss -->
|
<!-- Topbar header - style you can find in pages.scss -->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
@ -129,17 +129,17 @@
|
|||||||
<!--You can put here icon as well // <i class="wi wi-sunset"></i> //-->
|
<!--You can put here icon as well // <i class="wi wi-sunset"></i> //-->
|
||||||
<!-- Dark Logo icon -->
|
<!-- Dark Logo icon -->
|
||||||
<img src="/assets/images/logo-icon.png"
|
<img src="/assets/images/logo-icon.png"
|
||||||
alt="homepage"
|
alt="homepage"
|
||||||
class="light-logo"
|
class="light-logo"
|
||||||
width="25" />
|
width="25" />
|
||||||
</b>
|
</b>
|
||||||
<!--End Logo icon -->
|
<!--End Logo icon -->
|
||||||
<!-- Logo text -->
|
<!-- Logo text -->
|
||||||
<span class="logo-text ms-2">
|
<span class="logo-text ms-2">
|
||||||
<!-- dark Logo text -->
|
<!-- dark Logo text -->
|
||||||
<img src="/assets/images/logo-text.png"
|
<img src="/assets/images/logo-text.png"
|
||||||
alt="homepage"
|
alt="homepage"
|
||||||
class="light-logo" />
|
class="light-logo" />
|
||||||
</span>
|
</span>
|
||||||
<!-- Logo icon -->
|
<!-- Logo icon -->
|
||||||
<!-- <b class="logo-icon"> -->
|
<!-- <b class="logo-icon"> -->
|
||||||
@ -156,7 +156,7 @@
|
|||||||
<!-- Toggle which is visible on mobile only -->
|
<!-- Toggle which is visible on mobile only -->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<a class="nav-toggler waves-effect waves-light d-block d-md-none"
|
<a class="nav-toggler waves-effect waves-light d-block d-md-none"
|
||||||
href="javascript:void(0)">
|
href="javascript:void(0)">
|
||||||
<i class="ti-menu ti-close"></i>
|
<i class="ti-menu ti-close"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -164,16 +164,16 @@
|
|||||||
<!-- End Logo -->
|
<!-- End Logo -->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<div class="navbar-collapse collapse"
|
<div class="navbar-collapse collapse"
|
||||||
id="navbarSupportedContent"
|
id="navbarSupportedContent"
|
||||||
data-navbarbg="skin5">
|
data-navbarbg="skin5">
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<!-- toggle and nav items -->
|
<!-- toggle and nav items -->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<ul class="navbar-nav float-start me-auto">
|
<ul class="navbar-nav float-start me-auto">
|
||||||
<li class="nav-item d-none d-lg-block">
|
<li class="nav-item d-none d-lg-block">
|
||||||
<a class="nav-link sidebartoggler waves-effect waves-light"
|
<a class="nav-link sidebartoggler waves-effect waves-light"
|
||||||
href="javascript:void(0)"
|
href="javascript:void(0)"
|
||||||
data-sidebartype="mini-sidebar">
|
data-sidebartype="mini-sidebar">
|
||||||
<i class="mdi mdi-menu font-24"></i>
|
<i class="mdi mdi-menu font-24"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@ -187,42 +187,42 @@
|
|||||||
<!-- create new -->
|
<!-- create new -->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<!--<li class="nav-item dropdown">
|
<!--<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle"
|
<a class="nav-link dropdown-toggle"
|
||||||
href="#"
|
href="#"
|
||||||
id="navbarDropdown"
|
id="navbarDropdown"
|
||||||
role="button"
|
role="button"
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<span class="d-none d-md-block">
|
<span class="d-none d-md-block">
|
||||||
Create New <i class="fa fa-angle-down"></i>
|
Create New <i class="fa fa-angle-down"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="d-block d-md-none">
|
<span class="d-block d-md-none">
|
||||||
<i class="fa fa-plus"></i>
|
<i class="fa fa-plus"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
<li><a class="dropdown-item" href="#">Action</a></li>
|
<li><a class="dropdown-item" href="#">Action</a></li>
|
||||||
<li><a class="dropdown-item" href="#">Another action</a></li>
|
<li><a class="dropdown-item" href="#">Another action</a></li>
|
||||||
<li><hr class="dropdown-divider" /></li>
|
<li><hr class="dropdown-divider" /></li>
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item" href="#">Something else here</a>
|
<a class="dropdown-item" href="#">Something else here</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>-->
|
</li>-->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<!-- Search -->
|
<!-- Search -->
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<!--<li class="nav-item search-box">
|
<!--<li class="nav-item search-box">
|
||||||
<a class="nav-link waves-effect waves-dark"
|
<a class="nav-link waves-effect waves-dark"
|
||||||
href="javascript:void(0)">
|
href="javascript:void(0)">
|
||||||
<i class="mdi mdi-magnify fs-4"></i>
|
<i class="mdi mdi-magnify fs-4"></i>
|
||||||
</a>
|
</a>
|
||||||
<form class="app-search position-absolute">
|
<form class="app-search position-absolute">
|
||||||
<input type="text"
|
<input type="text"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="Search & enter" />
|
placeholder="Search & enter" />
|
||||||
<a class="srh-btn"><i class="mdi mdi-window-close"></i></a>
|
<a class="srh-btn"><i class="mdi mdi-window-close"></i></a>
|
||||||
</form>
|
</form>
|
||||||
</li>-->
|
</li>-->
|
||||||
</ul>
|
</ul>
|
||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
@ -235,11 +235,11 @@
|
|||||||
<partial name="_LoginPartial" />
|
<partial name="_LoginPartial" />
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle"
|
<a class="nav-link dropdown-toggle"
|
||||||
href="#"
|
href="#"
|
||||||
id="navbarDropdown"
|
id="navbarDropdown"
|
||||||
role="button"
|
role="button"
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="mdi mdi-bell font-24"></i>
|
<i class="mdi mdi-bell font-24"></i>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
@ -259,11 +259,11 @@
|
|||||||
<!-- ============================================================== -->
|
<!-- ============================================================== -->
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle waves-effect waves-dark"
|
<a class="nav-link dropdown-toggle waves-effect waves-dark"
|
||||||
href="#"
|
href="#"
|
||||||
id="2"
|
id="2"
|
||||||
role="button"
|
role="button"
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="font-24 mdi mdi-comment-processing"></i>
|
<i class="font-24 mdi mdi-comment-processing"></i>
|
||||||
</a>
|
</a>
|
||||||
<ul class="
|
<ul class="
|
||||||
@ -271,8 +271,8 @@
|
|||||||
mailbox
|
mailbox
|
||||||
animated
|
animated
|
||||||
bounceInDown
|
bounceInDown
|
||||||
"
|
"
|
||||||
aria-labelledby="2">
|
aria-labelledby="2">
|
||||||
<ul class="list-style-none">
|
<ul class="list-style-none">
|
||||||
<li>
|
<li>
|
||||||
<div class="">
|
<div class="">
|
||||||
@ -284,7 +284,7 @@
|
|||||||
d-flex
|
d-flex
|
||||||
align-items-center
|
align-items-center
|
||||||
justify-content-center
|
justify-content-center
|
||||||
">
|
">
|
||||||
<i class="mdi mdi-calendar text-white fs-4"></i>
|
<i class="mdi mdi-calendar text-white fs-4"></i>
|
||||||
</span>
|
</span>
|
||||||
<div class="ms-2">
|
<div class="ms-2">
|
||||||
@ -301,7 +301,7 @@
|
|||||||
d-flex
|
d-flex
|
||||||
align-items-center
|
align-items-center
|
||||||
justify-content-center
|
justify-content-center
|
||||||
">
|
">
|
||||||
<i class="mdi mdi-settings fs-4"></i>
|
<i class="mdi mdi-settings fs-4"></i>
|
||||||
</span>
|
</span>
|
||||||
<div class="ms-2">
|
<div class="ms-2">
|
||||||
@ -318,7 +318,7 @@
|
|||||||
d-flex
|
d-flex
|
||||||
align-items-center
|
align-items-center
|
||||||
justify-content-center
|
justify-content-center
|
||||||
">
|
">
|
||||||
<i class="mdi mdi-account fs-4"></i>
|
<i class="mdi mdi-account fs-4"></i>
|
||||||
</span>
|
</span>
|
||||||
<div class="ms-2">
|
<div class="ms-2">
|
||||||
@ -335,7 +335,7 @@
|
|||||||
d-flex
|
d-flex
|
||||||
align-items-center
|
align-items-center
|
||||||
justify-content-center
|
justify-content-center
|
||||||
">
|
">
|
||||||
<i class="mdi mdi-link fs-4"></i>
|
<i class="mdi mdi-link fs-4"></i>
|
||||||
</span>
|
</span>
|
||||||
<div class="ms-2">
|
<div class="ms-2">
|
||||||
@ -362,19 +362,19 @@
|
|||||||
text-muted
|
text-muted
|
||||||
waves-effect waves-dark
|
waves-effect waves-dark
|
||||||
pro-pic
|
pro-pic
|
||||||
"
|
"
|
||||||
href="#"
|
href="#"
|
||||||
id="navbarDropdown"
|
id="navbarDropdown"
|
||||||
role="button"
|
role="button"
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<img src="/assets/images/users/1.jpg"
|
<img src="/assets/images/users/1.jpg"
|
||||||
alt="user"
|
alt="user"
|
||||||
class="rounded-circle"
|
class="rounded-circle"
|
||||||
width="31" />
|
width="31" />
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end user-dd animated"
|
<ul class="dropdown-menu dropdown-menu-end user-dd animated"
|
||||||
aria-labelledby="navbarDropdown">
|
aria-labelledby="navbarDropdown">
|
||||||
<a class="dropdown-item" href="javascript:void(0)"><i class="mdi mdi-account me-1 ms-1"></i> My Profile</a>
|
<a class="dropdown-item" href="javascript:void(0)"><i class="mdi mdi-account me-1 ms-1"></i> My Profile</a>
|
||||||
<a class="dropdown-item" href="javascript:void(0)"><i class="mdi mdi-wallet me-1 ms-1"></i> My Balance</a>
|
<a class="dropdown-item" href="javascript:void(0)"><i class="mdi mdi-wallet me-1 ms-1"></i> My Balance</a>
|
||||||
<a class="dropdown-item" href="javascript:void(0)"><i class="mdi mdi-email me-1 ms-1"></i> Inbox</a>
|
<a class="dropdown-item" href="javascript:void(0)"><i class="mdi mdi-email me-1 ms-1"></i> Inbox</a>
|
||||||
@ -388,7 +388,7 @@
|
|||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<div class="ps-4 p-10">
|
<div class="ps-4 p-10">
|
||||||
<a href="javascript:void(0)"
|
<a href="javascript:void(0)"
|
||||||
class="btn btn-sm btn-success btn-rounded text-white">View Profile</a>
|
class="btn btn-sm btn-success btn-rounded text-white">View Profile</a>
|
||||||
</div>
|
</div>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@ -413,8 +413,8 @@
|
|||||||
<ul id="sidebarnav" class="pt-4">
|
<ul id="sidebarnav" class="pt-4">
|
||||||
<li class="sidebar-item">
|
<li class="sidebar-item">
|
||||||
<a class="sidebar-link has-arrow waves-effect waves-dark"
|
<a class="sidebar-link has-arrow waves-effect waves-dark"
|
||||||
href="javascript:void(0)"
|
href="javascript:void(0)"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="mdi mdi-receipt"></i><span class="hide-menu">Administrator </span>
|
<i class="mdi mdi-receipt"></i><span class="hide-menu">Administrator </span>
|
||||||
</a>
|
</a>
|
||||||
<ul aria-expanded="false" class="collapse first-level">
|
<ul aria-expanded="false" class="collapse first-level">
|
||||||
@ -432,15 +432,15 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="sidebar-item">
|
<li class="sidebar-item">
|
||||||
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
||||||
href="#"
|
href="#"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="mdi mdi-view-dashboard"></i><span class="hide-menu">Dashboard</span>
|
<i class="mdi mdi-view-dashboard"></i><span class="hide-menu">Dashboard</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="sidebar-item">
|
<li class="sidebar-item">
|
||||||
<a class="sidebar-link has-arrow waves-effect waves-dark"
|
<a class="sidebar-link has-arrow waves-effect waves-dark"
|
||||||
href="javascript:void(0)"
|
href="javascript:void(0)"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="mdi mdi-receipt"></i><span class="hide-menu">Inventory </span>
|
<i class="mdi mdi-receipt"></i><span class="hide-menu">Inventory </span>
|
||||||
</a>
|
</a>
|
||||||
<ul aria-expanded="false" class="collapse first-level">
|
<ul aria-expanded="false" class="collapse first-level">
|
||||||
@ -448,13 +448,13 @@
|
|||||||
{
|
{
|
||||||
<li class="sidebar-item">
|
<li class="sidebar-item">
|
||||||
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
||||||
asp-area="Inventory" asp-controller="InventoryMaster" asp-action="AdminDashboard"
|
asp-area="Inventory" asp-controller="InventoryMaster" asp-action="AdminDashboard"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="mdi mdi-view-dashboard"></i><span class="hide-menu">Admin Dashboard</span>
|
<i class="mdi mdi-view-dashboard"></i><span class="hide-menu">Admin Dashboard</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
} else
|
||||||
|
{
|
||||||
<li class="sidebar-item">
|
<li class="sidebar-item">
|
||||||
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
||||||
asp-area="Inventory" asp-controller="ItemMovement" asp-action="UserDashboard"
|
asp-area="Inventory" asp-controller="ItemMovement" asp-action="UserDashboard"
|
||||||
@ -462,6 +462,7 @@
|
|||||||
<i class="mdi mdi-view-dashboard"></i><span class="hide-menu">User Dashboard</span>
|
<i class="mdi mdi-view-dashboard"></i><span class="hide-menu">User Dashboard</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
}
|
||||||
<li class="sidebar-item">
|
<li class="sidebar-item">
|
||||||
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
<a class="sidebar-link waves-effect waves-dark sidebar-link"
|
||||||
asp-area="Inventory" asp-controller="InventoryMaster" asp-action="ProductRegistration"
|
asp-area="Inventory" asp-controller="InventoryMaster" asp-action="ProductRegistration"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user