Update
This commit is contained in:
parent
6535050179
commit
3fdfb9b312
@ -102,6 +102,12 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<button :class="['nav-link', {active: activeTab === 'storeTab'}]" v-on:click="activeTab = 'storeTab'">Store</button>
|
<button :class="['nav-link', {active: activeTab === 'storeTab'}]" v-on:click="activeTab = 'storeTab'">Store</button>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<button :class="['nav-link', {active: activeTab === 'stockIn'}]" v-on:click="activeTab = 'stockInTab'">Stock In</button>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<button :class="['nav-link', {active: activeTab === 'stockOut'}]" v-on:click="activeTab = 'stockOutTab'">Stock Out</button>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<button :class="['nav-link', {active: activeTab === 'allStoreTab'}]" v-on:click="activeTab = 'allStoreTab'">All Item</button>
|
<button :class="['nav-link', {active: activeTab === 'allStoreTab'}]" v-on:click="activeTab = 'allStoreTab'">All Item</button>
|
||||||
</li>
|
</li>
|
||||||
@ -135,6 +141,22 @@
|
|||||||
<table id="storeItemsTable" class="display table table-bordered table-hover"></table>
|
<table id="storeItemsTable" class="display table table-bordered table-hover"></table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="formResponse" v-show="activeTab === 'stockInTab'">
|
||||||
|
<div class="col-3">
|
||||||
|
<h4>Stock In</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col-9">
|
||||||
|
<table id="stockInItemsTable" class="display table table-bordered table-hover"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="formResponse" v-show="activeTab === 'stockOutTab'">
|
||||||
|
<div class="col-3">
|
||||||
|
<h4>Stock Out</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col-9">
|
||||||
|
<table id="stockOutItemsTable" class="display table table-bordered table-hover"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div v-if="formResponse" v-show="activeTab === 'allStoreTab'">
|
<div v-if="formResponse" v-show="activeTab === 'allStoreTab'">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<h4>Store</h4>
|
<h4>Store</h4>
|
||||||
@ -194,6 +216,8 @@
|
|||||||
selectedUser: [],
|
selectedUser: [],
|
||||||
userItemsTable: null,
|
userItemsTable: null,
|
||||||
stationItemsTable: null,
|
stationItemsTable: null,
|
||||||
|
stockInItemsTable: null,
|
||||||
|
stockOutItemsTable: null,
|
||||||
storeItemsTable: null,
|
storeItemsTable: null,
|
||||||
storeAllItemsTable: null,
|
storeAllItemsTable: null,
|
||||||
activeTab: "userTab"
|
activeTab: "userTab"
|
||||||
@ -299,6 +323,14 @@
|
|||||||
this.storeItemsTable.clear().destroy();
|
this.storeItemsTable.clear().destroy();
|
||||||
this.storeItemsTable = null;
|
this.storeItemsTable = null;
|
||||||
}
|
}
|
||||||
|
if (this.stockInItemsTable) {
|
||||||
|
this.stockInItemsTable.clear().destroy();
|
||||||
|
this.stockInItemsTable = null;
|
||||||
|
}
|
||||||
|
if (this.stockOutItemsTable) {
|
||||||
|
this.stockOutItemsTable.clear().destroy();
|
||||||
|
this.stockOutItemsTable = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
console.error(`Failed to fetch user: ${response.statusText}`);
|
console.error(`Failed to fetch user: ${response.statusText}`);
|
||||||
@ -471,6 +503,65 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
const stockInItemTableData = this.formResponse.exactMonthStockIn ? this.formResponse.exactMonthStockIn : [];
|
||||||
|
this.stockInItemsTable = $('#stockInItemsTable').DataTable({
|
||||||
|
data: stockInItemTableData.items,
|
||||||
|
columns: [
|
||||||
|
{ data: 'itemName', title: 'Item Name' },
|
||||||
|
{ data: 'uniqueID', title: 'Unique ID' },
|
||||||
|
{ data: 'quantity', title: 'Quantity' },
|
||||||
|
{ data: 'from', title: 'From' },
|
||||||
|
{ data: 'to', title: 'To' },
|
||||||
|
{ data: 'price', title: 'Item Price' },
|
||||||
|
],
|
||||||
|
destroy: true,
|
||||||
|
drawCallback: function () {
|
||||||
|
const total = storeTableData.totalItemPrice;
|
||||||
|
// const total = stockInItemTableData.items.reduce((acc, item) => acc + item.price, 0) || 0;
|
||||||
|
$(this.api().table().node()).find('tbody tr.total-row').remove();
|
||||||
|
$(this.api().table().node()).find('tbody').append(
|
||||||
|
`<tr class="total-row">
|
||||||
|
<td colspan="3"><strong>Total</strong></td>
|
||||||
|
<td class="text-end"><strong>${total}</strong></td>
|
||||||
|
</tr>`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
"createdRow": function (row, data, dataIndex) {
|
||||||
|
$(row).on('click', function () {
|
||||||
|
app.fetchItemMovement(data.uniqueID);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const stockOutItemTableData = this.formResponse.exactMonthStockOut ? this.formResponse.exactMonthStockOut : [];
|
||||||
|
console.log(stockOutItemTableData);
|
||||||
|
this.stockOutItemsTable = $('#stockOutItemsTable').DataTable({
|
||||||
|
data: stockOutItemTableData.items,
|
||||||
|
columns: [
|
||||||
|
{ data: 'itemName', title: 'Item Name' },
|
||||||
|
{ data: 'uniqueID', title: 'Unique ID' },
|
||||||
|
{ data: 'quantity', title: 'Quantity' },
|
||||||
|
{ data: 'from', title: 'From' },
|
||||||
|
{ data: 'to', title: 'To' },
|
||||||
|
{ data: 'price', title: 'Item Price' },
|
||||||
|
],
|
||||||
|
destroy: true,
|
||||||
|
drawCallback: function () {
|
||||||
|
const total = storeTableData.totalItemPrice;
|
||||||
|
// const total = stockOutItemTableData.items.reduce((acc, item) => acc + item.price, 0) || 0;
|
||||||
|
$(this.api().table().node()).find('tbody tr.total-row').remove();
|
||||||
|
$(this.api().table().node()).find('tbody').append(
|
||||||
|
`<tr class="total-row">
|
||||||
|
<td colspan="3"><strong>Total</strong></td>
|
||||||
|
<td class="text-end"><strong>${total}</strong></td>
|
||||||
|
</tr>`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
"createdRow": function (row, data, dataIndex) {
|
||||||
|
$(row).on('click', function () {
|
||||||
|
app.fetchItemMovement(data.uniqueID);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
const storeAllTableData = this.formResponse.allProductInStore ? this.formResponse.allProductInStore : [];
|
const storeAllTableData = this.formResponse.allProductInStore ? this.formResponse.allProductInStore : [];
|
||||||
this.storeAllItemsTable = $('#storeAllItemsTable').DataTable({
|
this.storeAllItemsTable = $('#storeAllItemsTable').DataTable({
|
||||||
data: storeAllTableData ,
|
data: storeAllTableData ,
|
||||||
|
|||||||
@ -183,6 +183,34 @@ namespace PSTW_CentralSystem.Controllers.API
|
|||||||
.FirstOrDefault())
|
.FirstOrDefault())
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
|
var exactMonthStockOut = latestItemMovements
|
||||||
|
.Where(m => m != null && (m.Action!.ToLower() == "stockout" || m.Action!.ToLower() == "stock out") && m.Date.Month == parsedDate.Month)
|
||||||
|
.Select(m => new
|
||||||
|
{
|
||||||
|
UniqueID = m!.Item!.UniqueID,
|
||||||
|
From = m!.LastUser != null ? m.FromUser!.UserName : m.LastStore != null ? m.FromStore!.StoreName : m.LastStation != null ? m.FromStation!.StationName : "Unknown",
|
||||||
|
To = m.NextUser != null ? m.NextUser!.UserName : m.NextStore != null ? m.NextStore!.StoreName : m.NextStation != null ? m.NextStation!.StationName : "Unknown",
|
||||||
|
Item = m.Item!.Product!.ProductName,
|
||||||
|
Quantity = m.Quantity,
|
||||||
|
Date = m.Date,
|
||||||
|
Price = m.Item!.ConvertPrice * m.Quantity,
|
||||||
|
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
var exactMonthStockIn = latestItemMovements
|
||||||
|
.Where(m => m != null && (m.Action!.ToLower() == "stockin" || m.Action!.ToLower() == "stock in") && m.Date.Month == parsedDate.Month)
|
||||||
|
.Select(m => new
|
||||||
|
{
|
||||||
|
UniqueID = m!.Item!.UniqueID,
|
||||||
|
From = m!.LastUser != null ? m.FromUser!.UserName : m.LastStore != null ? m.FromStore!.StoreName : m.LastStation != null ? m.FromStation!.StationName : "Unknown",
|
||||||
|
To = m.NextUser != null ? m.NextUser!.UserName : m.NextStore != null ? m.NextStore!.StoreName : m.NextStation != null ? m.NextStation!.StationName : "Unknown",
|
||||||
|
Item = m.Item!.Product!.ProductName,
|
||||||
|
Quantity = m.Quantity,
|
||||||
|
Date = m.Date,
|
||||||
|
Price = m.Item!.ConvertPrice * m.Quantity,
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
|
||||||
//select latestItemMovements with the Touser is not null
|
//select latestItemMovements with the Touser is not null
|
||||||
var latestUserItemMovements = latestItemMovements.Where(m => m != null && m.ItemId != null && m.ToUser > 0 ).ToList();
|
var latestUserItemMovements = latestItemMovements.Where(m => m != null && m.ItemId != null && m.ToUser > 0 ).ToList();
|
||||||
var latestStationItemMovements = latestItemMovements.Where(m => m != null && m.ItemId != null && m.ToStation > 0).ToList();
|
var latestStationItemMovements = latestItemMovements.Where(m => m != null && m.ItemId != null && m.ToStation > 0).ToList();
|
||||||
@ -264,6 +292,8 @@ namespace PSTW_CentralSystem.Controllers.API
|
|||||||
userItemBalance = usersItemMovements,
|
userItemBalance = usersItemMovements,
|
||||||
stationItemBalance = stationItemMovements,
|
stationItemBalance = stationItemMovements,
|
||||||
storeItemBalance = storeItemMovements,
|
storeItemBalance = storeItemMovements,
|
||||||
|
exactMonthStockIn = exactMonthStockIn,
|
||||||
|
exactMonthStockOut = exactMonthStockOut,
|
||||||
};
|
};
|
||||||
|
|
||||||
return Json(report);
|
return Json(report);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user