fixed stocktake and warehouselocation
This commit is contained in:
@@ -31,54 +31,67 @@ Vue.component('stocktake-progress-modal', {
|
||||
<div v-else-if="stocktake" class="h-100 d-flex flex-column">
|
||||
<!-- Stats Cards -->
|
||||
<div class="row g-2 mb-3">
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-2">
|
||||
<div class="card stat-card card-primary h-100">
|
||||
<div class="card-body">
|
||||
<div class="card-body py-2">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<h6 class="card-subtitle">Inventur</h6>
|
||||
<h4 class="card-title">{{ stocktake.title }}</h4>
|
||||
<h6 class="card-subtitle small">Inventur</h6>
|
||||
<h5 class="card-title mb-0">{{ stocktake.title }}</h5>
|
||||
</div>
|
||||
<i class="fas fa-clipboard-list fa-2x"></i>
|
||||
<i class="fas fa-clipboard-list fa-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-2">
|
||||
<div class="card stat-card card-success h-100">
|
||||
<div class="card-body">
|
||||
<div class="card-body py-2">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<h6 class="card-subtitle">Gescannte Artikel</h6>
|
||||
<h4 class="card-title">{{ stocktake.totalScannedItems }}</h4>
|
||||
<h6 class="card-subtitle small">Gescannte Artikel</h6>
|
||||
<h5 class="card-title mb-0">{{ stocktake.totalScannedItems }}</h5>
|
||||
</div>
|
||||
<i class="fas fa-barcode fa-2x"></i>
|
||||
<i class="fas fa-barcode fa-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="card stat-card card-info h-100">
|
||||
<div class="card-body py-2">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<h6 class="card-subtitle small">Lagerort</h6>
|
||||
<h5 class="card-title mb-0">{{ stocktake.locationName }}</h5>
|
||||
</div>
|
||||
<i class="fas fa-warehouse fa-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card stat-card card-info h-100">
|
||||
<div class="card-body">
|
||||
<div class="card stat-card card-warning h-100">
|
||||
<div class="card-body py-2">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<h6 class="card-subtitle">Lagerort</h6>
|
||||
<h4 class="card-title">{{ stocktake.locationName }}</h4>
|
||||
<h6 class="card-subtitle small">Gesamtwert (Einkauf)</h6>
|
||||
<h5 class="card-title mb-0">{{ formatCurrency(summary.totalValue) }}</h5>
|
||||
</div>
|
||||
<i class="fas fa-warehouse fa-2x"></i>
|
||||
<i class="fas fa-euro-sign fa-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card stat-card h-100" :class="statusCardClass">
|
||||
<div class="card-body">
|
||||
<div class="card-body py-2">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<h6 class="card-subtitle">Status</h6>
|
||||
<h4 class="card-title">{{ statusText }}</h4>
|
||||
<h6 class="card-subtitle small">Status</h6>
|
||||
<h5 class="card-title mb-0">{{ statusText }}</h5>
|
||||
</div>
|
||||
<i class="fas fa-info-circle fa-2x"></i>
|
||||
<i class="fas fa-info-circle fa-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -111,24 +124,39 @@ Vue.component('stocktake-progress-modal', {
|
||||
<tr>
|
||||
<th style="width: 120px;">Artikel-Nr.</th>
|
||||
<th>Artikel</th>
|
||||
<th class="text-end" style="width: 100px;">Einzelpreis</th>
|
||||
<th class="text-end" style="width: 80px;">Menge</th>
|
||||
<th class="text-end" style="width: 110px;">Gesamtpreis</th>
|
||||
<th style="width: 80px;">Regal</th>
|
||||
<th style="width: 80px;">Fach</th>
|
||||
<th style="width: 140px;">Gescannt am</th>
|
||||
<th style="width: 130px;">Gescannt von</th>
|
||||
<th style="width: 80px;">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in items" :key="item.id">
|
||||
<tr v-for="item in items" :key="item.id" :class="{ 'table-secondary text-decoration-line-through': item.isOverwritten }">
|
||||
<td><code class="text-primary">{{ item.articleNumber }}</code></td>
|
||||
<td>{{ item.articleTitle }}</td>
|
||||
<td class="text-end">{{ formatCurrency(item.unitPrice) }}</td>
|
||||
<td class="text-end"><strong class="text-success">{{ item.countedQuantity }}</strong></td>
|
||||
<td class="text-end"><strong>{{ formatCurrency(item.lineTotal) }}</strong></td>
|
||||
<td>{{ item.rack || '-' }}</td>
|
||||
<td>{{ item.shelf || '-' }}</td>
|
||||
<td class="text-nowrap">{{ item.scannedAt || '-' }}</td>
|
||||
<td>{{ item.scannedBy || '-' }}</td>
|
||||
<td>
|
||||
<span v-if="item.isOverwritten" class="badge bg-warning text-dark">Überschrieben</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot class="table-light">
|
||||
<tr>
|
||||
<th colspan="4" class="text-end">Summe:</th>
|
||||
<th class="text-end text-primary">{{ formatCurrency(summary.totalValue) }}</th>
|
||||
<th colspan="5"></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
<!-- Empty State -->
|
||||
@@ -151,6 +179,7 @@ Vue.component('stocktake-progress-modal', {
|
||||
refreshing: false,
|
||||
stocktake: null,
|
||||
items: [],
|
||||
summary: { totalValue: 0, totalQuantity: 0 },
|
||||
refreshInterval: null,
|
||||
countdownInterval: null,
|
||||
countdown: 5,
|
||||
@@ -216,6 +245,7 @@ Vue.component('stocktake-progress-modal', {
|
||||
if (response.data.success) {
|
||||
this.stocktake = response.data.stocktake;
|
||||
this.items = response.data.items;
|
||||
this.summary = response.data.summary || { totalValue: 0, totalQuantity: 0 };
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to load progress:', error);
|
||||
@@ -252,6 +282,9 @@ Vue.component('stocktake-progress-modal', {
|
||||
clearInterval(this.countdownInterval);
|
||||
this.countdownInterval = null;
|
||||
}
|
||||
},
|
||||
formatCurrency(value) {
|
||||
return new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(value || 0);
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
|
||||
Reference in New Issue
Block a user