Update Date & Time
@ -240,13 +240,13 @@
|
||||
<!-- Send Date -->
|
||||
<div class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:310px; min-width:310px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">{{movement.action === 'Assign' ? 'Assign Date' : movement.action === 'Register' ? 'Register Date' : 'Send Date'}}</h4>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? movement.sendDate : movement.date }}</span>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? formatDate(movement.sendDate) : movement.date }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Receive Date -->
|
||||
<div v-if="movement.action !== 'Assign' && movement.action !== 'Register'" class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:290px; min-width:290px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">Receive Date:</h4>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ movement.receiveDate || 'Not arrive' }}</span>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ formatDate(movement.receiveDate) || 'Not arrive' }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Action -->
|
||||
@ -341,13 +341,13 @@
|
||||
<!-- Send Date -->
|
||||
<div class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:310px; min-width:310px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">{{movement.action === 'Assign' ? 'Assign Date' : movement.action === 'Register' ? 'Register Date' : 'Send Date'}}</h4>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? movement.sendDate : movement.date }}</span>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? formatDate(movement.sendDate) : movement.date }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Receive Date -->
|
||||
<div v-if="movement.action !== 'Assign' && movement.action !== 'Register'" class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:290px; min-width:290px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">Receive Date:</h4>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ movement.receiveDate || 'Not arrive' }}</span>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ formatDate(movement.receiveDate) || 'Not arrive' }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Action -->
|
||||
@ -470,13 +470,13 @@
|
||||
<!-- Send Date -->
|
||||
<div class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:310px; min-width:310px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">{{movement.action === 'Assign' ? 'Assign Date' : movement.action === 'Register' ? 'Register Date' : 'Send Date'}}</h4>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? movement.sendDate : movement.date }}</span>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? formatDate(movement.sendDate) : movement.date }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Receive Date -->
|
||||
<div v-if="movement.action !== 'Assign' && movement.action !== 'Register'" class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:290px; min-width:290px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">Receive Date:</h4>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ movement.receiveDate || 'Not arrive' }}</span>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ formatDate(movement.receiveDate) || 'Not arrive' }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Action -->
|
||||
@ -564,13 +564,13 @@
|
||||
<!-- Send Date -->
|
||||
<div class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:310px; min-width:310px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">{{movement.action === 'Assign' ? 'Assign Date' : movement.action === 'Register' ? 'Register Date' : 'Send Date'}}</h4>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? movement.sendDate : movement.date }}</span>
|
||||
<span class="fixed-value text-truncate">{{movement.action !== 'Register' ? formatDate(movement.sendDate) : movement.date }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Receive Date -->
|
||||
<div v-if="movement.action !== 'Assign' && movement.action !== 'Register'" class="d-flex flex-wrap align-items-center gap-2 flex-grow-1" style="max-width:290px; min-width:290px;">
|
||||
<h4 class="fixed-label m-0 text-nowrap">Receive Date:</h4>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ movement.receiveDate || 'Not arrive' }}</span>
|
||||
<span class="fixed-value text-truncate" style="max-width:160px;">{{ formatDate(movement.receiveDate) || 'Not arrive' }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Action -->
|
||||
@ -898,7 +898,17 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
formatDate(dateString) {
|
||||
if (!dateString) return '';
|
||||
const date = new Date(dateString);
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
const hours = String(date.getHours()).padStart(2, '0');
|
||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
const seconds = String(date.getSeconds()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
},
|
||||
paginatedItemsStation(item) {
|
||||
const start = (this.currentPageStation - 1) * this.itemsPerPageStation;
|
||||
const end = start + this.itemsPerPageStation;
|
||||
@ -965,8 +975,8 @@
|
||||
{ title: "Latest Status", data: "latestStatus" },
|
||||
{ title: "Product Category", data: "productCategory" },
|
||||
{ title: "Qty", data: "quantity" },
|
||||
{ title: "Send Date", data: "sendDate" },
|
||||
{ title: "Receive Date", data: "receiveDate" },
|
||||
{ title: "Send Date", data: "sendDate", render: this.formatDate.bind(this) },
|
||||
{ title: "Receive Date", data: "receiveDate", render: this.formatDate.bind(this) },
|
||||
{ title: "Note",
|
||||
data: "consignmentNote",
|
||||
render: function (data, type, full, meta) {
|
||||
@ -1152,7 +1162,7 @@
|
||||
{ title: "Product Name", data: "productName", render: (data, type, full) => { return `${data} <br> ${renderFile(full.productImage)}`; } },
|
||||
{ title: "Product Code", data: "uniqueID" },
|
||||
{ title: "Action", data: "action" },
|
||||
{ title: "Send Date", data: "sendDate" },
|
||||
{ title: "Send Date", data: "sendDate" , render: this.formatDate.bind(this)},
|
||||
{ title: "From User", data: "toUserName" },
|
||||
{ title: "Last User", data: "lastUserName" },
|
||||
{ title: "From Station", data: "toStationName" },
|
||||
@ -1173,8 +1183,8 @@
|
||||
{ title: "Unique Id", data: "id" },
|
||||
{ title: "Product Name", data: "productName", render: (data, type, full) => { return `${data} <br> ${renderFile(full.productImage)}`; } },
|
||||
{ title: "Product Code", data: "uniqueID" },
|
||||
{ title: "Send Date", data: "sendDate" },
|
||||
{ title: "Receive Date", data: "receiveDate" },
|
||||
{ title: "Send Date", data: "sendDate", render: this.formatDate.bind(this) },
|
||||
{ title: "Receive Date", data: "receiveDate", render: this.formatDate.bind(this) },
|
||||
{ title: "Action", data: "action" },
|
||||
{ title: "From User", data: "toUserName" },
|
||||
{ title: "Last User", data: "lastUserName" },
|
||||
@ -1198,7 +1208,7 @@
|
||||
{ title: "Unique Id", data: "id" },
|
||||
{ title: "Product Name", data: "productName", render: (data, type, full) => { return `${data} <br> ${renderFile(full.productImage)}`; } },
|
||||
{ title: "Product Code", data: "uniqueID" },
|
||||
{ title: "Assign Date", data: "sendDate" },
|
||||
{ title: "Assign Date", data: "sendDate", render: this.formatDate.bind(this) },
|
||||
{ title: "Action", data: "action" },
|
||||
{ title: "Station User PIC", data: "toUserName" },
|
||||
{ title: "From Station", data: "toStationName" },
|
||||
|
||||
@ -1056,7 +1056,7 @@
|
||||
{ title: "Product Name", data: "productName", render: (data, type, full) => { return `${data} <br> ${renderFile(full.productImage)}`; } },
|
||||
{ title: "Product Code", data: "uniqueID" },
|
||||
{ title: "Send Date", data: "sendDate", render: this.formatDate.bind(this) },
|
||||
{ title: "Receive Date", data: "receiveDate" },
|
||||
{ title: "Receive Date", data: "receiveDate", render: this.formatDate.bind(this) },
|
||||
{ title: "Action", data: "action" },
|
||||
{ title: "Start Status", data: "toOther" },
|
||||
{ title: "Latest Status", data: "latestStatus" },
|
||||
|
||||
@ -601,6 +601,7 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory
|
||||
Quantity = item.Quantity,
|
||||
Action = "Register",
|
||||
Date = DateTime.Now,
|
||||
sendDate = DateTime.Now,
|
||||
MovementComplete = true,
|
||||
};
|
||||
|
||||
@ -994,6 +995,9 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory
|
||||
|
||||
try
|
||||
{
|
||||
itemmovement.sendDate = DateTime.Now; // This ensures hours/minutes/seconds are captured
|
||||
itemmovement.Date = DateTime.Now; // Set the general record date as well
|
||||
|
||||
var inventoryMaster = await _centralDbContext.InventoryMasters.Include("User").FirstOrDefaultAsync(i => i.UserId == itemmovement.ToUser);
|
||||
if (inventoryMaster != null)
|
||||
{
|
||||
|
||||
BIN
wwwroot/Media/Inventory/Images/-.jpg
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
wwwroot/Media/Inventory/Images/111.jpg
Normal file
|
After Width: | Height: | Size: 371 KiB |
BIN
wwwroot/Media/Inventory/Images/1150.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
wwwroot/Media/Inventory/Images/1405-DF.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
wwwroot/Media/Inventory/Images/146i.jpg
Normal file
|
After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 30 KiB |
BIN
wwwroot/Media/Inventory/Images/42i.jpg
Normal file
BIN
wwwroot/Media/Inventory/Images/43i.jpg
Normal file
BIN
wwwroot/Media/Inventory/Images/48i.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
wwwroot/Media/Inventory/Images/49i-PS.jpg
Normal file
BIN
wwwroot/Media/Inventory/Images/49i.jpg
Normal file
BIN
wwwroot/Media/Inventory/Images/5000.jpg
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
wwwroot/Media/Inventory/Images/577602.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
wwwroot/Media/Inventory/Images/577603-02.jpg
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
wwwroot/Media/Inventory/Images/599020-02.jpg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
wwwroot/Media/Inventory/Images/599040-33.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
wwwroot/Media/Inventory/Images/599090-01.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
wwwroot/Media/Inventory/Images/599100-01.jpg
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
wwwroot/Media/Inventory/Images/599101-01.jpg
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
wwwroot/Media/Inventory/Images/599103-01.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
wwwroot/Media/Inventory/Images/599104-01.jpg
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
wwwroot/Media/Inventory/Images/599502-01.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
wwwroot/Media/Inventory/Images/599502-02.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
wwwroot/Media/Inventory/Images/599668.jpg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
wwwroot/Media/Inventory/Images/599710.jpg
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
wwwroot/Media/Inventory/Images/599744-01.jpg
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
wwwroot/Media/Inventory/Images/599810.jpg
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
wwwroot/Media/Inventory/Images/599820.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
wwwroot/Media/Inventory/Images/599827.jpg
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
wwwroot/Media/Inventory/Images/ABC123.jpg
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
wwwroot/Media/Inventory/Images/ACP-2010MB-00CE.jpg
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
wwwroot/Media/Inventory/Images/AIO2.jpg
Normal file
|
After Width: | Height: | Size: 161 KiB |
BIN
wwwroot/Media/Inventory/Images/BPB.jpg
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
wwwroot/Media/Inventory/Images/BT-3.jpg
Normal file
|
After Width: | Height: | Size: 267 KiB |
BIN
wwwroot/Media/Inventory/Images/BT.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
wwwroot/Media/Inventory/Images/CCC1212.jpg
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
wwwroot/Media/Inventory/Images/CML-USB-20.jpg
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
wwwroot/Media/Inventory/Images/COT.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
wwwroot/Media/Inventory/Images/CT.jpg
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
wwwroot/Media/Inventory/Images/DIM200.jpg
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
wwwroot/Media/Inventory/Images/DSG.jpg
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
wwwroot/Media/Inventory/Images/EQMP-River-VIVO-2025.jpg
Normal file
|
After Width: | Height: | Size: 303 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 75 KiB |
BIN
wwwroot/Media/Inventory/Images/RSS-2-300WL.jpg
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
wwwroot/Media/Inventory/Images/SDL 1000.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
wwwroot/Media/Inventory/Images/SP-212.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
wwwroot/Media/Inventory/Images/Ts02Abc.jpg
Normal file
|
After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
BIN
wwwroot/Media/Inventory/Images/pHP.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 3.5 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 1.9 MiB |