improved new features

This commit is contained in:
Luca Haid
2025-04-29 14:09:36 +02:00
parent 21f65aa905
commit a859bef97e
10 changed files with 338 additions and 279 deletions

View File

@@ -283,11 +283,18 @@ Vue.component('warehouse-order-modal', {
>
<template #form-actions-append>
<tt-button
v-if="!isNaN(parseInt($refs.positionsManager?.formData?.article))"
text="Zum Artikel"
sm
additional-class="btn-outline-primary"
@click="window.open(window.TT_CONFIG['BASE_PATH'] + '/WarehouseArticle?showId=' + $refs.positionsManager.formData.article)"/>
v-if="!isNaN(parseInt($refs.positionsManager?.formData?.article))"
text="Zum Artikel"
sm
additional-class="btn-outline-primary"
@click="window.open(window.TT_CONFIG['BASE_PATH'] + '/WarehouseArticle?showId=' + $refs.positionsManager.formData.article)"/>
<tt-button
v-if="!isNaN(parseInt($refs.positionsManager?.formData?.article)) && !isNaN(parseInt($refs.positionsManager?.formData?.distributorId))"
text="Preis übern."
sm
additional-class="btn-outline-success"
@click="updateArticlePriceForDistributor($refs.positionsManager.formData.article, $refs.positionsManager.formData.distributorId, $refs.positionsManager.formData.buyPrice)"/>
</template>
</tt-positions-manager>
@@ -457,6 +464,28 @@ Vue.component('warehouse-order-modal', {
this.$refs.positionsManager.updateField('buyPrice', distributor.purchasePrice);
}
},
async updateArticlePriceForDistributor(articleId, distributorId, buyPrice) {
if (!articleId || !distributorId || !buyPrice) return;
const res = await axios.post(`${window.TT_CONFIG["BASE_PATH"]}/WarehouseArticleDistributor/get`, {
filters: { articleId, distributorId }
})
const current = res.data.rows[0];
if (current && current.purchasePrice === buyPrice) {
window.notify('info', 'Preis ist bereits aktuell');
return;
}
const response = await axios.post(`${window.TT_CONFIG["BASE_PATH"]}/WarehouseArticleDistributor/update`, {
...current,
purchasePrice: buyPrice,
});
if (response.data.success) {
window.notify('success', 'Preis erfolgreich aktualisiert');
} else {
window.notify('error', response.data.message || 'Ein Fehler ist aufgetreten');
}
}
},
watch: {
'order.positions': {