Dosya kapama talihli listesi asil, yedek adet alanları eklendi

This commit is contained in:
M. Bestami
2025-09-15 17:21:29 +03:00
parent fb99deeaeb
commit f7d47af153
5 changed files with 184 additions and 30 deletions

View File

@ -7,21 +7,27 @@
:rowAction="EditIkramiye" :rowAction="EditIkramiye"
listText="İkramiye" listText="İkramiye"
:addAction="NewIkramiye" :addAction="NewIkramiye"
:apiList="'DosyaKapama/Ikramiye/' + piyangoStore.selectedLottery" :apiList="'TeminatIadeEvrak/ByPiyangoId/' + piyangoStore.selectedLottery"
apiText="Dosya Kapama İkramiye Listesi" apiText="Dosya Kapama İkramiye Listesi"
v-model:refresh="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeListesiRefresh" v-model:refresh="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeListesiRefresh"
rowNumber/> rowNumber />
</div> </div>
<panel-wrapper <panel-wrapper
wide wide
v-if="piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel" v-if="piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel"
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel" v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyePanel"
:panel-title="piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate ? 'İkramiye Düzenle' : 'İkramiye Ekle'"> :panel-title="
piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate
? 'İkramiye Düzenle'
: 'İkramiye Ekle'
">
<template #panelContent> <template #panelContent>
<panel-piyango-dosya-kapama-ikramiye /> <panel-piyango-dosya-kapama-ikramiye />
</template> </template>
<template #footerButton> <template #footerButton>
<div class="button-c button-save" @click="piyangoDosyaKapamaService.SaveDosyaKapamaIkramiye"> <div
class="button-c button-save"
@click="piyangoDosyaKapamaService.SaveDosyaKapamaIkramiye">
{{ piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate ? 'Kaydet' : 'Ekle' }} {{ piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate ? 'Kaydet' : 'Ekle' }}
</div> </div>
</template> </template>
@ -40,17 +46,46 @@
import PanelPiyangoDosyaKapamaIkramiye from '../panel/PanelPiyangoDosyaKapamaIkramiye.vue' import PanelPiyangoDosyaKapamaIkramiye from '../panel/PanelPiyangoDosyaKapamaIkramiye.vue'
import PanelWrapper from '@/components/PanelWrapper.vue' import PanelWrapper from '@/components/PanelWrapper.vue'
const ikramiyeTableHeader = ref<Record<string, any>[]>([ const ikramiyeTableHeader = ref<Record<string, any>[]>([
{ {
name: 'taahhutEdilenIkramiye', name: 'tahhutEdilenIkramiye',
title: 'Taahhüt Edilen İkramiye', title: 'Taahhüt Edilen İkramiye',
style: { width: '20%' } style: { width: '20%' },
computeHtml: (v: Record<string, any>) => {
return `<span>${v.tahhutEdilenIkramiyeAdet} ${v.tahhutEdilenIkramiye}</span>`
}
}, },
{ {
name: 'teslimEdilenIkramiye', name: 'teslimEdilenIkramiye',
title: 'Teslim Edilen İkramiye', title: 'Teslim Edilen İkramiye',
style: { width: '20%' } style: { width: '20%' },
computeHtml: (v: Record<string, any>) => {
let asil: string = ''
let yedek: string = ''
if (
v.teslimEdilenIkramiyeAsil &&
v.teslimEdilenIkramiyeAsil !== null &&
v.teslimEdilenIkramiyeAsil !== 0 &&
v.teslimEdilenIkramiyeAsil !== ''
) {
asil = `<span >${v.teslimEdilenIkramiyeAsil} ASIL</span>`
}
if (
v.teslimEdilenIkramiyeYedek &&
v.teslimEdilenIkramiyeYedek !== null &&
v.teslimEdilenIkramiyeYedek !== 0 &&
v.teslimEdilenIkramiyeYedek !== ''
) {
yedek = `<span >${v.teslimEdilenIkramiyeYedek} YEDEK</span>`
}
return asil !== ''
? yedek !== ''
? asil + '<br/>' + yedek
: asil
: yedek !== ''
? yedek
: ''
}
}, },
{ {
name: 'alinmayanIkramiye', name: 'alinmayanIkramiye',
@ -63,7 +98,6 @@
} }
]) ])
const NewIkramiye = () => { const NewIkramiye = () => {
piyangoDosyaKapamaStore.ResetIkramiyeFormData() piyangoDosyaKapamaStore.ResetIkramiyeFormData()
piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate = false piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate = false

View File

@ -1,28 +1,64 @@
<template> <template>
<form-input <form-select
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.taahhutEdilenIkramiye" @change="OnIkramiyeChanged"
label="Taahhüt Edilen İkramiye" modelKey="ikramiyeId"
modelKey="taahhutEdilenIkramiye" clearable
minlength="2" label="Kazandığı İkramiye"
required :listData="piyangoIkramiyeStore.piyangoAllIkramiyeData"
listText="cinsi"
listVal="id"
v-model="selectedIkramiye"
:invalidText=" :invalidText="
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.taahhutEdilenIkramiye piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.taahhutEdilenIkramiye
" /> ">
<template #activator="data">
{{
data.activatorData !== undefined &&
Object.keys(data.activatorData).length > 0 &&
selectedIkramiye !== null
? data.activatorData.cinsi +
', ' +
data.activatorData.marka +
', ' +
data.activatorData.model
: 'Lütfen Seçim Yapınız'
}}
</template>
<template #option="data">
{{
data.optionData.cinsi +
', ' +
data.optionData.marka +
', ' +
data.optionData.model
}}
</template>
</form-select>
<form-input <form-input
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiye" v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil"
label="Teslim Edilen İkramiye" label="Teslim Edilen İkramiye Asil"
modelKey="teslimEdilenIkramiye" modelKey="teslimEdilenIkramiyeAsil"
minlength="2"
required required
:invalidText=" :invalidText="
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.teslimEdilenIkramiye piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.teslimEdilenIkramiyeAsil
" /> "
@keydown="validationStore.allowNumbersWithKeys"
@keyup="CalculateAlinmayanIkramiye" />
<form-input <form-input
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek"
label="Teslim Edilen İkramiye Yedek"
modelKey="teslimEdilenIkramiyeYedek"
required
:invalidText="
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.teslimEdilenIkramiyeYedek
"
@keydown="validationStore.allowNumbersWithKeys"
@keyup="CalculateAlinmayanIkramiye" />
<form-input
disabled
v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.alinmayanIkramiye" v-model="piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.alinmayanIkramiye"
label="Alınmayan İkramiye" label="Alınmayan İkramiye"
modelKey="alinmayanIkramiye" modelKey="alinmayanIkramiye"
minlength="2"
required
:invalidText=" :invalidText="
piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.alinmayanIkramiye piyangoDosyaKapamaValidationStore.ikramiyeInvalidTexts.alinmayanIkramiye
" /> " />
@ -32,10 +68,65 @@
modelKey="aciklama" /> modelKey="aciklama" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onBeforeMount, ref } from 'vue'
import { useValidationStore } from '@/stores/validationStore' import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore() const validationStore = useValidationStore()
import { usePiyangoDosyaKapamaStore } from '../../stores/piyangoDosyaKapamaStore' import { usePiyangoDosyaKapamaStore } from '../../stores/piyangoDosyaKapamaStore'
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore() const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
import { usePiyangoDosyaKapamaValidationStore } from '../../validation/piyangoDosyaKapamaValidationStore' import { usePiyangoDosyaKapamaValidationStore } from '../../validation/piyangoDosyaKapamaValidationStore'
const piyangoDosyaKapamaValidationStore = usePiyangoDosyaKapamaValidationStore() const piyangoDosyaKapamaValidationStore = usePiyangoDosyaKapamaValidationStore()
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
const piyangoIkramiyeService = usePiyangoIkramiyeService()
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
const selectedIkramiye = ref<string | number | null>(null)
const totalIkramiye = ref<number | null>(null)
const CalculateAlinmayanIkramiye = () => {
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.alinmayanIkramiye =
Number(totalIkramiye.value) -
Number(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil || 0
) -
Number(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek || 0
)
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiye =
Number(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil || 0
) +
Number(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeYedek || 0
)
}
const OnIkramiyeChanged = (e: Event, val: any, item: Record<string, any>) => {
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiye = `${
item.cinsi
}, ${item.marka} ${item.model !== null ? ', ' + item.model : ''}`
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiyeAdet =
item.asilTalihliAdedi
}
onBeforeMount(async () => {
if (piyangoIkramiyeStore.piyangoAllIkramiyeData.length === 0)
await piyangoIkramiyeService.GetAllIkramiyeler()
piyangoIkramiyeStore.piyangoAllIkramiyeData.forEach((item) => {
if (
`${item.cinsi}, ${item.marka} ${item.model !== null ? ', ' + item.model : ''}` ===
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.taahhutEdilenIkramiye
) {
selectedIkramiye.value = item.id
}
})
totalIkramiye.value = piyangoIkramiyeStore.piyangoAllIkramiyeData.reduce(
(acc, item) => acc + (item.asilTalihliAdedi || 0),
0
)
})
</script> </script>

View File

@ -53,12 +53,12 @@ export const usePiyangoDosyaKapamaService = defineStore(
if (piyangoDosyaKapamaValidationStore.IkramiyeFormCheck()) { if (piyangoDosyaKapamaValidationStore.IkramiyeFormCheck()) {
let dt: any let dt: any
if (!piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate) { if (!piyangoDosyaKapamaStore.isDosyaKapamaIkramiyeUpdate) {
dt = await dataStore.dataPost('TeminatIadeEvrakKontrol', { dt = await dataStore.dataPost('TeminatIadeEvrak', {
data: piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData data: piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData
}) })
} else { } else {
dt = await dataStore.dataPut( dt = await dataStore.dataPut(
'TeminatIadeEvrakKontrol/' + 'TeminatIadeEvrak/' +
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.id, piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.id,
{ {
data: piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData data: piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData

View File

@ -40,6 +40,9 @@ export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore',
}) })
const baseDosyaKapamaIkramiyeData = reactive<Record<string, any>>({ const baseDosyaKapamaIkramiyeData = reactive<Record<string, any>>({
taahhutEdilenIkramiye: '', taahhutEdilenIkramiye: '',
tahhutEdilenIkramiyeAdet: '',
teslimEdilenIkramiyeAsil: '',
teslimEdilenIkramiyeYedek: '',
teslimEdilenIkramiye: '', teslimEdilenIkramiye: '',
alinmayanIkramiye: '', alinmayanIkramiye: '',
aciklama: '' aciklama: ''

View File

@ -34,20 +34,46 @@ export const usePiyangoDosyaKapamaValidationStore = defineStore(
validationStore.IsFieldEmpty( validationStore.IsFieldEmpty(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData, piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData,
ikramiyeInvalidTexts, ikramiyeInvalidTexts,
'taahhutEdilenIkramiye', 'tahhutEdilenIkramiye',
'Lütfen taahhüt edilen ikramiyeyi giriniz.' 'Lütfen taahhüt edilen ikramiyeyi seçiniz.'
) )
if (
validationStore.checkEmpty(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiyeAdet
)
) {
isIkramiyeFormValid.value = false
ikramiyeInvalidTexts.tahhutEdilenIkramiye =
'Lütfen taahhüt edilen ikramiyeyi seçiniz.'
}
validationStore.IsFieldEmpty( validationStore.IsFieldEmpty(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData, piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData,
ikramiyeInvalidTexts, ikramiyeInvalidTexts,
'teslimEdilenIkramiye', 'teslimEdilenIkramiyeAsil',
'Lütfen teslim edilen ikramiyeyi giriniz.' 'Lütfen teslim edilen ikramiyeyi giriniz.'
) )
if (
validationStore.checkEmpty(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil
) &&
validationStore.checkEmpty(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.teslimEdilenIkramiyeAsil
)
) {
isIkramiyeFormValid.value = false
ikramiyeInvalidTexts.teslimEdilenIkramiyeAsil =
'En az 1 asil veya yedek talihli adedi girmelisiniz'
ikramiyeInvalidTexts.teslimEdilenIkramiyeYedek =
'En az 1 asil veya yedek talihli adedi girmelisiniz'
}
validationStore.IsFieldEmpty( validationStore.IsFieldEmpty(
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData, piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData,
ikramiyeInvalidTexts, ikramiyeInvalidTexts,
'alinmayanIkramiye', 'alinmayanIkramiye',
'Lütfen alınmayan ikramiyeyi giriniz.' 'Alınmayan ikramiye adedi boş olamaz. En az 1 asil veya yedek ikramiye adedi giriniz.'
) )
isIkramiyeFormValid.value = Object.keys(ikramiyeInvalidTexts).length === 0 isIkramiyeFormValid.value = Object.keys(ikramiyeInvalidTexts).length === 0