Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -213,6 +213,7 @@ import { computed, onMounted, ref, watch } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useOrderProductionItemStore } from 'src/stores/OrderProductionItemStore'
|
||||
import api from 'src/services/api'
|
||||
import { normalizeSearchText } from 'src/utils/searchText'
|
||||
|
||||
const route = useRoute()
|
||||
@@ -436,6 +437,63 @@ function collectLinesFromRows (selectedRows) {
|
||||
return { errMsg: '', lines }
|
||||
}
|
||||
|
||||
function buildMailLineLabelFromRow (row) {
|
||||
const item = String(row?.NewItemCode || row?.OldItemCode || '').trim().toUpperCase()
|
||||
const color1 = String(row?.NewColor || row?.OldColor || '').trim().toUpperCase()
|
||||
const color2 = String(row?.NewDim2 || row?.OldDim2 || '').trim().toUpperCase()
|
||||
const desc = String(row?.NewDesc || row?.OldDesc || '').trim()
|
||||
|
||||
if (!item) return ''
|
||||
const colorPart = color2 ? `${color1}-${color2}` : color1
|
||||
return [item, colorPart, desc].filter(Boolean).join(' ')
|
||||
}
|
||||
|
||||
function buildProductionUpdateMailPayload (selectedRows) {
|
||||
const updatedItems = [
|
||||
...new Set(
|
||||
(selectedRows || [])
|
||||
.map(buildMailLineLabelFromRow)
|
||||
.filter(Boolean)
|
||||
)
|
||||
]
|
||||
|
||||
return {
|
||||
operation: 'update',
|
||||
deletedItems: [],
|
||||
updatedItems,
|
||||
addedItems: []
|
||||
}
|
||||
}
|
||||
|
||||
async function sendUpdateMailAfterApply (selectedRows) {
|
||||
const orderId = String(orderHeaderID.value || '').trim()
|
||||
if (!orderId) return
|
||||
|
||||
try {
|
||||
const payload = buildProductionUpdateMailPayload(selectedRows)
|
||||
const res = await api.post('/order/send-market-mail', {
|
||||
orderHeaderID: orderId,
|
||||
operation: payload.operation,
|
||||
deletedItems: payload.deletedItems,
|
||||
updatedItems: payload.updatedItems,
|
||||
addedItems: payload.addedItems
|
||||
})
|
||||
|
||||
const sentCount = Number(res?.data?.sentCount || 0)
|
||||
$q.notify({
|
||||
type: 'positive',
|
||||
message: sentCount > 0
|
||||
? `Guncelleme maili gonderildi (${sentCount} alici)`
|
||||
: 'Guncelleme maili gonderildi'
|
||||
})
|
||||
} catch (err) {
|
||||
$q.notify({
|
||||
type: 'warning',
|
||||
message: 'Guncelleme kaydedildi, mail gonderilemedi.'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function buildGroupKey (item) {
|
||||
const parts = [
|
||||
String(item?.OldItemCode || '').trim(),
|
||||
@@ -549,6 +607,7 @@ async function onBulkSubmit () {
|
||||
await store.applyUpdates(orderHeaderID.value, lines, true)
|
||||
await store.fetchItems(orderHeaderID.value)
|
||||
selectedMap.value = {}
|
||||
await sendUpdateMailAfterApply(selectedRows)
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -556,6 +615,7 @@ async function onBulkSubmit () {
|
||||
await store.applyUpdates(orderHeaderID.value, lines, false)
|
||||
await store.fetchItems(orderHeaderID.value)
|
||||
selectedMap.value = {}
|
||||
await sendUpdateMailAfterApply(selectedRows)
|
||||
} catch (err) {
|
||||
console.error('[OrderProductionUpdate] onBulkSubmit failed', {
|
||||
orderHeaderID: orderHeaderID.value,
|
||||
|
||||
Reference in New Issue
Block a user