Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-03-23 11:02:40 +03:00
parent 436d25e2fb
commit cd9aa8a6e0

View File

@@ -213,6 +213,7 @@ import { computed, onMounted, ref, watch } from 'vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { useOrderProductionItemStore } from 'src/stores/OrderProductionItemStore' import { useOrderProductionItemStore } from 'src/stores/OrderProductionItemStore'
import api from 'src/services/api'
import { normalizeSearchText } from 'src/utils/searchText' import { normalizeSearchText } from 'src/utils/searchText'
const route = useRoute() const route = useRoute()
@@ -436,6 +437,63 @@ function collectLinesFromRows (selectedRows) {
return { errMsg: '', lines } 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) { function buildGroupKey (item) {
const parts = [ const parts = [
String(item?.OldItemCode || '').trim(), String(item?.OldItemCode || '').trim(),
@@ -549,6 +607,7 @@ async function onBulkSubmit () {
await store.applyUpdates(orderHeaderID.value, lines, true) await store.applyUpdates(orderHeaderID.value, lines, true)
await store.fetchItems(orderHeaderID.value) await store.fetchItems(orderHeaderID.value)
selectedMap.value = {} selectedMap.value = {}
await sendUpdateMailAfterApply(selectedRows)
}) })
return return
} }
@@ -556,6 +615,7 @@ async function onBulkSubmit () {
await store.applyUpdates(orderHeaderID.value, lines, false) await store.applyUpdates(orderHeaderID.value, lines, false)
await store.fetchItems(orderHeaderID.value) await store.fetchItems(orderHeaderID.value)
selectedMap.value = {} selectedMap.value = {}
await sendUpdateMailAfterApply(selectedRows)
} catch (err) { } catch (err) {
console.error('[OrderProductionUpdate] onBulkSubmit failed', { console.error('[OrderProductionUpdate] onBulkSubmit failed', {
orderHeaderID: orderHeaderID.value, orderHeaderID: orderHeaderID.value,