Merge pull request 'Piyango Teminat iade seçeneği için alanlar eklendi.' (#2) from Teminat-İade-Seçeneği-Geliştirmesi into main

Reviewed-on: #2
This commit is contained in:
2025-07-28 13:51:32 +00:00
6 changed files with 53 additions and 248 deletions

View File

@ -1,102 +0,0 @@
<template>
<div class="form-part form-title" v-if="usersStore.isPanelUser">
<div class="form-title-buttons">
<button
class="button-c button-save"
@click="piyangoTeminatService.SaveTeminatDurum"
:disabled="!piyangoTeminatValidationStore.formChanged">
Kaydet
</button>
<button
v-if="piyangoTeminatValidationStore.formChanged"
class="button-c button-cancel panel-close"
@click="piyangoTeminatStore.ResetFormData">
Vazgeç
</button>
</div>
</div>
<div :class="['form-part', piyangoTeminatValidationStore.formChanged ? 'changed' : '']"> <div
class="form-part-content"
v-if="piyangoTeminatStore.loaded">
<form-select
v-if="usersStore.isPanelUser"
label="İşlem"
:listData="piyangoDataStore.piyangoTeminatDurumlari"
listText="value"
listVal="id"
v-model="piyangoTeminatStore.piyangoTeminatFormData.state"
required
:invalidText="piyangoTeminatValidationStore.invalidTexts.state"
@change="OnKeyup" />
<form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.amount"
half
label="Tutarı" />
<form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminatParentTypeText"
half
label="Para Birimi" />
<form-display
label="Teminat Türü"
half
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantChildTypeText" />
<form-display
type="date"
half
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantDate"
label="Tarih" />
<form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantNo"
half
label="No" />
<div class="form-item form-item-half"></div>
<form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankName"
half
label="Banka Adı" />
<form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankBranch"
half
label="Banka Şubesi" />
<!--form-display
label="İşlem"
v-model="piyangoTeminatStore.piyangoTeminatFormData.stateText" /-->
<file-list-item
title="Dosya"
:data="piyangoTeminatStore.piyangoTeminatFormData"
:editable="false"
:filePath="piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl"
:usePath="true"
:onlyPreview="true" />
<form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.description"
label="Açıklama" />
</div></div>
</template>
<script setup lang="ts">
import { usePiyangoTeminatStore } from '../../stores/piyangoTeminatStore'
const piyangoTeminatStore = usePiyangoTeminatStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
import { usePiyangoTeminatValidationStore } from '../../validation/piyangoTeminatValidationStore'
const piyangoTeminatValidationStore = usePiyangoTeminatValidationStore()
import { usePiyangoTeminatService } from '../../service/piyangoTeminatService'
const piyangoTeminatService = usePiyangoTeminatService()
const OnKeyup = () => {
piyangoTeminatValidationStore.formChanged = true
}
</script>

View File

@ -1,135 +0,0 @@
<template>
<div class="form-part form-title">
<div class="form-title-buttons">
<button
class="button-c button-save"
@click="piyangoTeminatService.SaveTeminatDurum"
:disabled="!piyangoTeminatValidationStore.formChanged">
Kaydet
</button>
<button
v-if="piyangoTeminatValidationStore.formChanged"
class="button-c button-cancel panel-close"
@click="piyangoTeminatStore.ResetFormData">
Vazgeç
</button>
</div>
</div>
<div :class="['form-part', piyangoTeminatValidationStore.formChanged ? 'changed' : '']">
<div class="form-part-title">
<h4>Teminat Durumu</h4>
</div>
<div class="form-part-content" v-if="piyangoTeminatStore.loaded">
<form-input
modelKey="amount"
v-model="piyangoTeminatStore.piyangoTeminatFormData.amount"
required
half
label="Tutarı"
minlength="2"
@keyup="OnKeyup"
@keydown="validationStore.allowPrice"
:invalidText="piyangoTeminatValidationStore.invalidTexts.amount" />
<form-select
modelKey="teminatParentType"
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminatParentType"
required
half
label="Para Birimi"
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminatParentType"
:listData="piyangoDataStore.piyangoTeminatParaBirimleri"
listVal="id"
listText="value"
@change="OnKeyup" />
<form-select
label="Teminat Türü"
:listData="piyangoDataStore.piyangoTeminatTurleri"
listText="value"
listVal="id"
half
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantChildType"
required
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminantChildType"
@change="OnKeyup" />
<form-date
type="date"
half
required
modelKey="teminantDate"
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantDate"
label="Tarih"
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminantDate"
@change="OnKeyup" />
<form-input
modelKey="teminantNo"
v-model="piyangoTeminatStore.piyangoTeminatFormData.teminantNo"
required
half
label="No"
minlength="2"
:invalidText="piyangoTeminatValidationStore.invalidTexts.teminantNo"
@keyup="OnKeyup" />
<div class="form-item form-item-half"></div>
<form-input
modelKey="bankName"
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankName"
required
half
label="Banka Adı"
minlength="2"
:invalidText="piyangoTeminatValidationStore.invalidTexts.bankName"
@keyup="OnKeyup" />
<form-input
modelKey="bankBranch"
v-model="piyangoTeminatStore.piyangoTeminatFormData.bankBranch"
required
half
label="Banka Şubesi"
minlength="2"
:invalidText="piyangoTeminatValidationStore.invalidTexts.bankBranch"
@keyup="OnKeyup" />
<form-display :disabled="!usersStore.isPanelUser"
label="İşlem Durumu"
v-model="piyangoTeminatStore.piyangoTeminatFormData.stateText" />
<form-file
v-model="piyangoTeminatStore.piyangoTeminatFormData.file"
elclass="panel-documents-item"
:invalidText="piyangoTeminatValidationStore.invalidTexts.file"
@change="OnKeyup" />
<form-textarea
v-model="piyangoTeminatStore.piyangoTeminatFormData.description"
:invalidText="piyangoTeminatValidationStore.invalidTexts.description"
label="Açıklama"
@keyup="OnKeyup" />
</div>
</div>
</template>
<script setup lang="ts">
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
import { usePiyangoServices } from '../../service/piyangoServices'
const piyangoServices = usePiyangoServices()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePiyangoTeminatStore } from '../../stores/piyangoTeminatStore'
const piyangoTeminatStore = usePiyangoTeminatStore()
import { usePiyangoTeminatValidationStore } from '../../validation/piyangoTeminatValidationStore'
const piyangoTeminatValidationStore = usePiyangoTeminatValidationStore()
import { usePiyangoTeminatService } from '../../service/piyangoTeminatService'
const piyangoTeminatService = usePiyangoTeminatService()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
const OnKeyup = () => {
piyangoTeminatValidationStore.formChanged = true
}
</script>

View File

@ -9,9 +9,24 @@
v-model="piyangoTeminatStore.piyangoTeminatFormData.state" v-model="piyangoTeminatStore.piyangoTeminatFormData.state"
required required
:invalidText="piyangoTeminatValidationStore.invalidTexts.state" :invalidText="piyangoTeminatValidationStore.invalidTexts.state"
@change="OnKeyup" @change="OnKeyup"
:disabled="!usersStore.isPanelUser"/> :disabled="!usersStore.isPanelUser" />
<template v-if="piyangoTeminatStore.piyangoTeminatFormData.state === 2">
<form-date
type="date"
modelKey="iadeTarihi"
v-model="piyangoTeminatStore.piyangoTeminatFormData.iadeTarihi"
label="İlan Tarihi"
:invalidText="piyangoTeminatValidationStore.invalidTexts.iadeTarihi"
@change="OnKeyup" />
<form-file
v-model="piyangoTeminatStore.piyangoTeminatFormData.iadeFile"
elclass="panel-documents-item"
:invalidText="piyangoTeminatValidationStore.invalidTexts.iadeFile"
@change="OnKeyup" />
</template>
<form-display <form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.amount" v-model="piyangoTeminatStore.piyangoTeminatFormData.amount"
half half
@ -51,7 +66,10 @@
label="Banka Şubesi" /> label="Banka Şubesi" />
<file-list-item <file-list-item
v-if="piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== null && piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== undefined" v-if="
piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== null &&
piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== undefined
"
title="Dosya" title="Dosya"
:data="piyangoTeminatStore.piyangoTeminatFormData" :data="piyangoTeminatStore.piyangoTeminatFormData"
:editable="false" :editable="false"

View File

@ -18,9 +18,12 @@ export const usePiyangoTeminatService = defineStore('piyangoTeminatService', ()
if (piyangoTeminatValidationStore.FormCheck()) { if (piyangoTeminatValidationStore.FormCheck()) {
let form: any let form: any
let dataForm = new FormData() let dataForm = new FormData()
dataForm.append('state', piyangoTeminatStore.piyangoTeminatFormData.state) dataForm.append('state', piyangoTeminatStore.piyangoTeminatFormData.state)
dataForm.append('amount', globalStore.floatEnLocale(piyangoTeminatStore.piyangoTeminatFormData.amount)) dataForm.append(
'amount',
globalStore.floatEnLocale(piyangoTeminatStore.piyangoTeminatFormData.amount)
)
dataForm.append('bankName', piyangoTeminatStore.piyangoTeminatFormData.bankName) dataForm.append('bankName', piyangoTeminatStore.piyangoTeminatFormData.bankName)
dataForm.append('bankBranch', piyangoTeminatStore.piyangoTeminatFormData.bankBranch) dataForm.append('bankBranch', piyangoTeminatStore.piyangoTeminatFormData.bankBranch)
dataForm.append( dataForm.append(
@ -43,6 +46,19 @@ export const usePiyangoTeminatService = defineStore('piyangoTeminatService', ()
'description', 'description',
piyangoTeminatStore.piyangoTeminatFormData.description piyangoTeminatStore.piyangoTeminatFormData.description
) )
if (usersStore.isPanelUser) {
if (piyangoTeminatStore.piyangoTeminatFormData.state !== 2) {
piyangoTeminatStore.piyangoTeminatFormData.iadeTarihi = ''
piyangoTeminatStore.piyangoTeminatFormData.iadeFile = ''
}
dataForm.append(
'iadeTarihi',
String(piyangoTeminatStore.piyangoTeminatFormData.iadeTarihi)
)
dataForm.append('iadeFile', piyangoTeminatStore.piyangoTeminatFormData.iadeFile)
}
if (piyangoTeminatStore.isNew) { if (piyangoTeminatStore.isNew) {
form = await dataStore.dataPost('TeminantStates/', { form = await dataStore.dataPost('TeminantStates/', {
data: dataForm, data: dataForm,
@ -61,8 +77,8 @@ export const usePiyangoTeminatService = defineStore('piyangoTeminatService', ()
} }
if (form !== 'errorfalse') { if (form !== 'errorfalse') {
piyangoTeminatStore.isNew = false piyangoTeminatStore.isNew = false
piyangoTeminatValidationStore.formChanged = false piyangoTeminatValidationStore.formChanged = false
piyangoTeminatStore.refreshList = true piyangoTeminatStore.refreshList = true
piyangoTeminatStore.teminatPanel = false piyangoTeminatStore.teminatPanel = false
} }
@ -80,7 +96,7 @@ export const usePiyangoTeminatService = defineStore('piyangoTeminatService', ()
if (form !== 'errorfalse') { if (form !== 'errorfalse') {
piyangoTeminatStore.isNew = false piyangoTeminatStore.isNew = false
await Object.assign(piyangoTeminatStore.piyangoTeminatFormData, form) await Object.assign(piyangoTeminatStore.piyangoTeminatFormData, form)
} else { } else {
await piyangoTeminatStore.ResetFormData() await piyangoTeminatStore.ResetFormData()
await piyangoTeminatStore.RestoreFormData() await piyangoTeminatStore.RestoreFormData()

View File

@ -23,7 +23,9 @@ export const usePiyangoTeminatStore = defineStore('piyangoTeminatStore', () => {
cekilisId: piyangoStore.selectedLottery, cekilisId: piyangoStore.selectedLottery,
kisiId: usersStore.userId, kisiId: usersStore.userId,
description: '', description: '',
file: '' file: '',
iadeTarihi: '',
iadeFile: ''
}) })
const piyangoTeminatFormData = reactive<Record<string, any>>({}) const piyangoTeminatFormData = reactive<Record<string, any>>({})
@ -31,7 +33,7 @@ export const usePiyangoTeminatStore = defineStore('piyangoTeminatStore', () => {
const loaded = ref<boolean>(false) const loaded = ref<boolean>(false)
const isNew = ref<boolean>(false) const isNew = ref<boolean>(false)
const teminatPanel = ref<boolean>(false) const teminatPanel = ref<boolean>(false)
const selectedTeminatId = ref<number|null>(null) const selectedTeminatId = ref<number | null>(null)
const refreshList = ref<boolean>(false) const refreshList = ref<boolean>(false)
const ResetFormData = () => { const ResetFormData = () => {
@ -42,7 +44,7 @@ export const usePiyangoTeminatStore = defineStore('piyangoTeminatStore', () => {
loaded.value = true loaded.value = true
}, 30) }, 30)
} }
const RestoreFormData = () => { const RestoreFormData = () => {
Object.assign(piyangoTeminatFormData, piyangoTeminatSafeFormData) Object.assign(piyangoTeminatFormData, piyangoTeminatSafeFormData)
} }
return { return {

View File

@ -24,6 +24,12 @@ export const usePiyangoTeminatValidationStore = defineStore(
'state', 'state',
'Lütfen işlem tipini seçiniz.' 'Lütfen işlem tipini seçiniz.'
) )
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'iadeTarihi',
'Lütfen iade tarihini seçiniz.'
)
} }
validationStore.IsFieldEmpty( validationStore.IsFieldEmpty(