- Dosya kapama formu oluşturuldu

- Dosya kapama get/put/post servisleri bağlandı
This commit is contained in:
M. Bestami
2025-09-05 15:09:10 +03:00
parent 0d58b0ad10
commit 216cf1fb73
9 changed files with 283 additions and 659 deletions

View File

@ -91,9 +91,9 @@
const emit = defineEmits(['update:modelValue', 'change', 'click'])
const localValue = ref<(string | number)[] | boolean | null | string | number|undefined>(
props.modelValue
)
const localValue = ref<
(string | number)[] | boolean | null | string | number | undefined
>(props.modelValue)
const InvalidMessageText = reactive<Record<string, any>>({})
const InvalidMessages = computed<string>(() => {

View File

@ -355,8 +355,6 @@
const globalDataStore = useGlobalDataStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { useAuthValidationStore } from '../stores/authValidationStore'
const authValidationStore = useAuthValidationStore()
import router from '@/router'
@ -365,12 +363,6 @@
const uyeBilgileriStore = useUyeBilgileriStore()
uyeBilgileriStore.ResetStore()
interface IIl {
[key: string]: any
ad: string
id: number
}
const kvkkCheck = ref([
{
label: '',

View File

@ -39,7 +39,7 @@
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref, reactive, computed, onBeforeMount } from 'vue'
import { ref, onBeforeMount } from 'vue'
import { usePDF } from 'vue3-pdfmake'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()

View File

@ -1,648 +1,244 @@
<template>
<div class="form-part form-title" v-if="piyangoStore.isNew">
<div class="form-part form-title" v-if="piyangoDosyaKapamaStore.isNew">
<div class="form-title-buttons">
<div
class="button-c button-save"
@click="SaveData"
v-if="
!usersStore.isPanelUser &&
(!usersStore.isAraciFirma ||
(usersStore.isAraciFirma && piyangoStore.customerApproved))
">
Başvur
@click="piyangoDosyaKapamaService.SaveDosyaKapama()">
Kaydet
</div>
<router-link class="button-c button-cancel" to="/piyangolar/piyango-listesi">
Vazgeç
</router-link>
</div>
</div>
<div :class="['form-part', formChanged && !piyangoStore.isNew ? 'changed' : '']">
<div
:class="[
'form-part',
piyangoDosyaKapamaStore.formChanged && !piyangoDosyaKapamaStore.isNew
? 'changed'
: ''
]">
<div class="form-part-title">
<h4>Piyango Bilgileri</h4>
<div class="form-part-title-buttons" v-if="!usersStore.isPanelUser && !formChanged">
<button
@click="OpenPreviewPanel"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 && !piyangoStore.isNew && loaded
">
Önizleme
</button>
</div>
<h4>Teminat İade Evrak Kontrol</h4>
</div>
<div class="form-part-content" v-if="loaded">
<lottery-states :piyangoAmac="piyangoStore.lotteryData.amacpiyangoId" />
<div class="form-part-content" v-if="piyangoDosyaKapamaStore.loaded">
<form-input
modelKey="cekilisBaslik"
v-model="piyangoStore.lotteryData.baslik"
required
label="Piyango Başlığı"
placeholder="Piyango Başlığı"
:invalidText="piyangoValidationStore.invalidTexts.baslik"
modelKey="katilimSekli"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.katilimSekli"
label="1. Katılım Şekli"
placeholder="Katılım Şekli"
@keyup="OnKeyup" />
<form-select
v-if="amacRefresh"
:disabled="usersStore.isVakifDernek || piyangoStore.subCustomerType === 22"
label="Piyango Amacı"
:listData="piyangoAmaclari"
listText="amacAdi"
listVal="id"
v-model="piyangoStore.lotteryData.amacpiyangoId"
required
:invalidText="piyangoValidationStore.invalidTexts.amacpiyangoId"
@change="OnAmacChange" />
<form-checkbox
label="2. CD"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cD"
@change="OnKeyup" />
<form-checkbox
label="3. Kutu Mühürleme Tutanağı"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.kutuMuhurlemeTutanagi"
@change="OnKeyup" />
<form-checkbox
label="4. Kutu Açma Tutanağı"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.kutuAcmaTutanagi"
@change="OnKeyup" />
<template v-if="usersStore.isAraciFirma">
<form-select
label="Piyangoyu Düzenleyen"
:listData="childUsers"
listText="username"
listVal="id"
v-model="piyangoStore.lotteryData.duzenleyenId"
required
:invalidText="piyangoValidationStore.invalidTexts.duzenleyenId"
@change="OnAraciFirmaChange">
<template #activator="data">
{{
data.activatorData !== undefined &&
piyangoValidationStore.invalidTexts.baglisirketId !== null
? data.activatorData.unvan + ' - ' + data.activatorData.basvuruTipi
: 'Lütfen Seçim Yapınız'
}}
</template>
<template #option="data">
{{ data.optionData.unvan + ' - ' + data.optionData.basvuruTipi }}
</template>
<template #button v-if="piyangoStore.lotteryData.duzenleyenId !== null">
<router-link
:to="
'/uyeler/detay/' +
piyangoStore.lotteryData.baglisirketId +
'/yetkili-uye/detay/' +
piyangoStore.lotteryData.duzenleyenId
"
class="button-c">
Üyeyi Kontrol Et
</router-link>
</template>
</form-select>
<div
class="flx flx-jc-sb flx-ai-c form-inner-comment waiting-d"
v-if="
piyangoStore.lotteryData.duzenleyenId !== null &&
!piyangoStore.customerApproved
">
Yalnızca Onaylanmış Üyeler için piyango düzenlenebilir.
</div>
</template>
<div class="form-part-title">
<h4>5. Çekiliş Tutanağı</h4>
</div>
<form-checkbox
label="Çekiliş Tutanağı"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisTutanagi"
@change="OnKeyup" />
<form-checkbox
label="Çekiliş izin alınan tarih, saat, adreste yapılmış"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisIzinAlinanTarihSaatAdres"
@change="OnKeyup" />
<form-checkbox
label="Çekilişte önceden belirlenen ikramiyeler çekiliş"
v-model="
piyangoDosyaKapamaStore.dosyaKapamaData.cekilisOncedenBelirlenenIkramiyeler
"
@change="OnKeyup" />
<form-checkbox
label="Çekilişte önceden belirlenen ikramiyeler çekiliş"
v-model="
piyangoDosyaKapamaStore.dosyaKapamaData.cekilisOncedenBelirlenenIkramiyeler
"
@change="OnKeyup" />
<form-checkbox
label="Çekiliş numara üzerinden/isimden"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisNumaraUzerindenCekilis"
@change="OnKeyup" />
<form-checkbox
label="Dağıtılmayan kupon tespiti"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.dagitilmayanKuponTespiti"
@change="OnKeyup" />
<template
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 &&
piyangoStore.lotteryApprove !== 12
">
<form-textarea
v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
v-model="piyangoStore.lotteryData.cekilisSartveSekilleri"
required
label="Kampanya Katılma Şekil ve Şartları"
:invalidText="piyangoValidationStore.invalidTexts.cekilisSartveSekilleri"
@keyup="OnKeyup" />
<div class="form-part-title">
<h4>6. Çekiliş Sonucu İlan</h4>
</div>
<form-checkbox
label="Çekiliş Sonucu İlan"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.cekilisSonucuIlani"
@change="OnKeyup" />
<form-checkbox
label="Taahhüt edilen tarih ve gazetede ilan"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ilandaTarihGazete"
@change="OnKeyup" />
<form-checkbox
label="İlanda toplam katılımcı sayısı"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ilandaToplamKatilimci"
@change="OnKeyup" />
<form-checkbox
label="Çekiliş tutanağı ile uyumlu kazanan numara/isim"
v-model="
piyangoDosyaKapamaStore.dosyaKapamaData.cekilisTutanagiIleUyumluKazananlar
"
@change="OnKeyup" />
<form-checkbox
label="İlanda ikramiyeler son teslim süresi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ilanSonBasvuruTeslimSuresi"
@change="OnKeyup" />
<form-select
label="Kapsadığı Yerler"
:listData="globalDataStore.ilList"
listText="ad"
listVal="id"
v-model="piyangoStore.lotteryData.kapsamIl"
required
:invalidText="piyangoValidationStore.invalidTexts.kapsamIl"
multiple
@change="OnKeyup"
multipleText="Türkiye Geneli" />
<form-input
modelKey="taahhutEdilenIkramiyeAdedi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.taahhutEdilenIkramiyeAdedi"
label="7. Taahhüt Edilen İkramiye"
placeholder="Taahhüt Edilen İkramiye"
@keyup="OnKeyup" />
<template v-if="piyangoStore.lotteryData.amacpiyangoId !== 2">
<form-date
half
required
modelKey="baslangicTarihi"
v-model="piyangoStore.lotteryData.baslangicTarihi"
label="Kampanya Başlangıç Tarihi ve Saati"
:min="piyangoValidationStore.baslangicTarihiMin"
:invalidText="piyangoValidationStore.invalidTexts.baslangicTarihi"
@change="OnKeyupDate" />
<div class="form-part-title">
<h4>8. Teslim Edilen İkramiye</h4>
</div>
<form-input
modelKey="teslimEdilenIkramiyeAdedi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.teslimEdilenIkramiyeAdedi"
label="Teslim Edilen İkramiye"
placeholder="Teslim Edilen İkramiye"
@keyup="OnKeyup" />
<form-input
modelKey="asilIkramiyeSayisi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.asilIkramiyeSayisi"
label="Teslim Edilen Asıl İkramiye"
placeholder="Teslim Edilen Asıl İkramiye"
@keyup="OnKeyup" />
<form-input
modelKey="yedekIkramiyeSayisi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.yedekIkramiyeSayisi"
label="Teslim Edilen Yedek İkramiye"
placeholder="Teslim Edilen Yedek İkramiye"
@keyup="OnKeyup" />
<form-checkbox
label="Nüfus Cüzdanları"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.nufusCuzdani"
@change="OnKeyup" />
<form-checkbox
label="Kazanan numaralı noter onaylı ibraname"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.noterOnayliIbraname"
@change="OnKeyup" />
<form-checkbox
label="Teslim Belgesi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.teslimBelgesi"
@change="OnKeyup" />
<form-checkbox
label="Fatura fotokopileri"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.faturaFotokopileri"
@change="OnKeyup" />
<form-checkbox
label="Tescile ait belgeler"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.tescileAitBelgeler"
@change="OnKeyup" />
<div class="form-part-title">
<h4>9. Süresi İçinde Alınmayan İkramiye</h4>
</div>
<form-input
modelKey="sureIcindesAlinmayanIkramiyeAdedi"
v-model="
piyangoDosyaKapamaStore.dosyaKapamaData.sureIcindesAlinmayanIkramiyeAdedi
"
label="Süresi İçinde Alınmayan İkramiye"
placeholder="Süresi İçinde Alınmayan İkramiye"
@keyup="OnKeyup" />
<form-checkbox
label="Tebligat"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.tebligat"
@change="OnKeyup" />
<form-checkbox
label="Feragat"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.feragat"
@change="OnKeyup" />
<form-checkbox
label="Bağış"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.bagis"
@change="OnKeyup" />
<form-date
half
required
modelKey="bitisTarihi"
v-model="piyangoStore.lotteryData.bitisTarihi"
label="Kampanya Bitiş Tarihi ve Saati"
:invalidText="piyangoValidationStore.invalidTexts.bitisTarihi"
:min="piyangoValidationStore.kampanyaBitisMin"
:max="piyangoValidationStore.kampanyaBitisMax"
:disabled="piyangoValidationStore.kampanyaBitisDisabled"
@change="OnKeyup" />
</template>
<div class="form-part-title">
<h4>10. Kupon (Aslı) ve Duyuru Örneği</h4>
</div>
<form-checkbox
label="Kupon Aslı"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.kuponAsli"
@change="OnKeyup" />
<form-checkbox
label="Duyuru Örneği"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.duyuruMateryali"
@change="OnKeyup" />
<form-date
half
required
modelKey="cekilisTarihi"
v-model="piyangoStore.lotteryData.cekilisTarihi"
label="Çekiliş Tarihi ve Saati"
:invalidText="piyangoValidationStore.invalidTexts.cekilisTarihi"
:disabled="piyangoValidationStore.cekilisTarihiDisabled"
:min="piyangoValidationStore.cekilisTarihiMin"
@change="OnKeyup" />
<form-date
type="date"
modelKey="ikramiyelerinSonTeslimTarihi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.ikramiyelerinSonTeslimTarihi"
label="11. İkramiyelerin Son Teslim Tarihi"
@change="OnKeyup" />
<form-date
type="date"
modelKey="teminatIadeTarihi"
v-model="piyangoDosyaKapamaStore.dosyaKapamaData.teminatIadeTarihi"
label="12. Teminat İade Tarihi"
@change="OnKeyup" />
<div
class="form-item form-item-half"
v-if="piyangoStore.lotteryData.amacpiyangoId === 2"></div>
<form-date
type="date"
half
required
modelKey="ilantarihi"
v-model="piyangoStore.lotteryData.ilantarihi"
label="İlan Tarihi"
:invalidText="piyangoValidationStore.invalidTexts.ilantarihi"
:disabled="piyangoValidationStore.ilanTarihiDisabled"
:min="piyangoValidationStore.ilanTarihiMin"
:max="piyangoValidationStore.ilanTarihiMax"
@change="OnKeyup" />
<form-date
type="date"
v-if="piyangoStore.lotteryData.amacpiyangoId === 2"
half
required
modelKey="ilantarihi2"
v-model="piyangoStore.lotteryData.ilantarihi2"
label="2. İlan Tarihi"
:invalidText="piyangoValidationStore.invalidTexts.ilantarihi2"
:disabled="piyangoValidationStore.ilanTarihi2Disabled"
:min="piyangoValidationStore.ilanTarihi2Min"
:max="piyangoValidationStore.ilanTarihi2Max"
@change="OnKeyup" />
<form-date
type="date"
half
required
modelKey="asilSonBasvuruTarihi"
v-model="piyangoStore.lotteryData.asilSonBasvuruTarihi"
:label="
piyangoStore.lotteryData.amacpiyangoId === 2
? 'Talihlilerin Son Başvuru Tarihi'
: 'Asıl Talihli Son Başvuru Tarihi'
"
:invalidText="piyangoValidationStore.invalidTexts.asilSonBasvuruTarihi"
:disabled="piyangoValidationStore.asilSonBasvuruDisabled"
:min="piyangoValidationStore.asilSonBasvuruMin"
:max="piyangoValidationStore.asilSonBasvuruMax"
@change="OnKeyup" />
<form-date
v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
type="date"
half
required
modelKey="yedekSonBasvuruTarihi"
v-model="piyangoStore.lotteryData.yedekSonBasvuruTarihi"
label="Yedek Talihli Son Başvuru Tarihi"
:invalidText="piyangoValidationStore.invalidTexts.yedekSonBasvuruTarihi"
:disabled="piyangoValidationStore.yedekSonBasvuruDisabled"
:min="piyangoValidationStore.yedekSonBasvuruMin"
:max="piyangoValidationStore.yedekSonBasvuruMax"
@change="OnKeyup" />
<form-date
half
required
type="date"
modelKey="ikramiyeTeslimTarihi"
v-model="piyangoStore.lotteryData.ikramiyeTeslimTarihi"
label="İkramiyelerin Son Teslim Tarihi"
:invalidText="piyangoValidationStore.invalidTexts.ikramiyeTeslimTarihi"
@change="OnKeyup"
:disabled="piyangoValidationStore.ikramiyeTeslimDisabled"
:min="piyangoValidationStore.ikramiyeTeslimMin"
:max="piyangoValidationStore.ikramiyeTeslimMax" />
<form-input
modelKey="ilanEdilecekGazete"
v-model="piyangoStore.lotteryData.ilanEdilecekGazete"
required
label="İlan Edilecek Gazete"
:invalidText="piyangoValidationStore.invalidTexts.ilanEdilecekGazete"
@keyup="OnKeyup" />
<form-select
label="Çekiliş Yapılacak İl"
half
:listData="globalDataStore.ilList"
listText="ad"
listVal="id"
v-model="piyangoStore.lotteryData.ilId"
required
:invalidText="piyangoValidationStore.invalidTexts.ilId"
@change="ChangeIl" />
<form-select
half
label="Çekiliş Yapılacak İlçe"
:listData="ilceList"
listText="ad"
listVal="id"
v-model="piyangoStore.lotteryData.ilceId"
required
:invalidText="piyangoValidationStore.invalidTexts.ilceId"
:disabled="ilceDisabled"
@change="OnKeyup" />
<form-textarea
v-model="piyangoStore.lotteryData.adres"
required
label="Çekiliş Adresi"
:invalidText="piyangoValidationStore.invalidTexts.adres"
@keyup="OnKeyup" />
<template v-if="!piyangoStore.CheckForYardimAmacli()">
<form-textarea
v-model="piyangoStore.lotteryData.katilimListesi"
required
label="Katılımcı Listesinin İçeriği ve Hazırlanma Şekli"
:invalidText="piyangoValidationStore.invalidTexts.katilimListesi"
@keyup="OnKeyup" />
<form-radio
:listData="piyangoDataStore.katilimciTeslimYontemi"
listVal="id"
listText="deger"
title="Katılım Listesi Teslim Yöntemi"
v-model="piyangoStore.lotteryData.katilimciListesiTeslimYontemiId"
:invalidText="
piyangoValidationStore.invalidTexts.katilimciListesiTeslimYontemiId
"
@change="OnKeyup" />
</template>
<div class="form-item">
<span class="form-item-title">Çekiliş Yöntemi</span>
<template v-for="(yontem, i) in piyangoDataStore.cekilisYontemi">
<form-radio
group="cekilisyontemi"
:val="yontem.id"
:label="yontem.deger"
title="Çekiliş Yöntemi"
v-model="piyangoStore.lotteryData.cekilisYontemiId"
:invalidText="piyangoValidationStore.invalidTexts.cekilisYontemiId"
@change="OnKeyup" />
</template>
</div>
<div class="form-item" v-if="piyangoStore.lotteryData.cekilisYontemiId === 1">
<ul>
<template v-if="piyangoStore.lotteryData.amacpiyangoId === 2">
<li v-for="txt in piyangoDataStore.fizikselYardimMessage">{{ txt }}</li>
</template>
<template v-if="piyangoStore.lotteryData.amacpiyangoId === 1">
<li v-for="txt in piyangoDataStore.fizikselTicariMessage">{{ txt }}</li>
</template>
</ul>
</div>
<form-textarea
v-model="piyangoStore.lotteryData.digerHususlar"
label="Diğer Hususlar"
@keyup="OnKeyup" />
<div class="form-item">
<ul>
<template v-if="piyangoStore.isLotteryForCharity">
<li v-for="txty in piyangoDataStore.digerHusularYardimAmacliTexts">
{{ txty }}
</li>
</template>
<template v-else>
<li v-for="txt in piyangoDataStore.digerHusularTexts">
{{ txt }}
</li>
</template>
</ul>
</div>
</template>
<div class="form-item" v-if="formChanged && !piyangoStore.isNew">
<button class="button-c button-save" @click="SaveData">Kaydet</button>
<div
class="form-item"
v-if="piyangoDosyaKapamaStore.formChanged && !piyangoDosyaKapamaStore.isNew">
<button
class="button-c button-save"
@click="piyangoDosyaKapamaService.SaveDosyaKapama()">
Kaydet
</button>
<button class="button-c button-cancel" @click="CancelSave">Vazgeç</button>
</div>
</div>
</div>
<div class="form-part form-title" v-if="piyangoStore.isNew">
<div class="form-part form-title" v-if="piyangoDosyaKapamaStore.isNew">
<div class="form-title-buttons">
<div class="button-c button-save" @click="SaveData">Başvur</div>
<router-link class="button-c button-cancel" to="/piyangolar/piyango-listesi">
Vazgeç
</router-link>
<div
class="button-c button-save"
@click="piyangoDosyaKapamaService.SaveDosyaKapama()">
Kaydet
</div>
</div>
</div>
<panel-wrapper
wide
v-if="previewPanel"
v-model="previewPanel"
panel-title="Piyango Bilgileri Önizleme">
<template #panelContent>
<panel-piyango-yardim-amacli-onizleme
v-model:id="previewId"
v-if="piyangoStore.lotteryData.amacpiyangoId === 2" />
<panel-piyango-onizleme v-model:id="previewId" v-else />
</template>
<template #footerButton>
<div class="button-c button-save" @click="DownloadPDF">PDF İndir</div>
<div class="button-c button-save" @click="PrintContent">Yazdır</div>
</template>
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref, reactive, onBeforeMount, computed, nextTick } from 'vue'
import { usePDF } from 'vue3-pdfmake'
import { onBeforeMount } from 'vue'
import PanelPiyangoOnizleme from '../panel/PanelPiyangoOnizleme.vue'
import PanelPiyangoYardimAmacliOnizleme from '../panel/PanelPiyangoYardimAmacliOnizleme.vue'
import PanelWrapper from '@/components/PanelWrapper.vue'
import LotteryStates from '../content/LotteryStates.vue'
import { usePiyangoDosyaKapamaStore } from '../../stores/piyangoDosyaKapamaStore'
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
import { usePiyangoDosyaKapamaService } from '../../service/piyangoDosyaKapamaService'
const piyangoDosyaKapamaService = usePiyangoDosyaKapamaService()
import { useRoute } from 'vue-router'
const route = useRoute()
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { useGlobalDataStore } from '@/stores/globalDataStore'
const globalDataStore = useGlobalDataStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePreviewStore } from '@/stores/previewStore'
const previewStore = usePreviewStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoValidationStore } from '../../validation/piyangoValidationStore'
const piyangoValidationStore = usePiyangoValidationStore()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
import { usePiyangoServices } from '../../service/piyangoServices'
const piyangoServices = usePiyangoServices()
import router from '@/router'
if (route.name === 'PiyangoDetay') piyangoStore.isNew = false
const loaded = ref<boolean>(false)
const formChanged = ref<boolean>(false)
const amacRefresh = ref<boolean>(false)
const previewPanel = ref<boolean>(false)
const previewId = ref<number>(0)
interface IIl {
[key: string]: any
ad: string
id: number
}
const childUsers = ref<Record<string, any>[]>([])
const ilceList = ref<IIl[]>([])
const piyangoAmaclariSafe = ref<Record<string, any>[]>([])
const piyangoAmaclari = ref<Record<string, any>[]>([])
const ilceDisabled = computed<boolean>(() => {
return piyangoStore.lotteryData.ilId === null || ilceList.value.length === 0
})
const ChangeIl = (e: Event, v: string | number, d: Record<string, any>) => {
piyangoStore.lotteryData.ilceId = ''
ilceList.value = d.ilceler
formChanged.value = true
}
const OnKeyup = () => {
formChanged.value = true
}
const OnAmacChange = (e: Event, d: any) => {
formChanged.value = true
piyangoStore.lotteryPurposeId = d
}
const OnKeyupDate = () => {
formChanged.value = true
piyangoValidationStore.dateChanged = true
}
const GetData = async () => {
piyangoStore.ResetLotteryContent()
let data = await dataStore.dataGet(
'CekilisBilgi/Cekilis/' + piyangoStore.selectedLottery
)
if (data !== 'errorfalse') {
Object.assign(piyangoStore.lotteryData, data)
if (
piyangoStore.lotteryData.ilceId !== undefined &&
piyangoStore.lotteryData.ilceId !== null &&
piyangoStore.lotteryData.ilceId !== ''
) {
let ilO = globalDataStore.ilList.filter((v: Record<string, any>) => {
return v.id === piyangoStore.lotteryData.ilId
})
if (ilO.length !== 0)
ilceList.value.splice(0, ilceList.value.length, ...(ilO[0]['ilceler'] as IIl[]))
}
if (piyangoStore.lotteryData.amacpiyangoId === 2) {
piyangoStore.subCustomerType = 22
piyangoAmaclari.value.splice(
0,
piyangoAmaclari.value.length,
...piyangoAmaclariSafe.value
)
piyangoStore.lotteryIlanTarihi = piyangoStore.lotteryData.ilantarihi
piyangoStore.lotteryCreationDate = piyangoStore.lotteryData.olusturmaTarihi
}
await SetAraciFirmaSelect()
if (piyangoStore.lotteryData.baglisirketId !== null) await GetAraciUye()
Object.assign(piyangoStore.safeLotteryData, piyangoStore.lotteryData)
setTimeout(() => {
loaded.value = true
}, 30)
}
}
const SaveData = async () => {
if (piyangoValidationStore.FormCheck()) {
let form: any
if (piyangoStore.CheckForYardimAmacli())
piyangoStore.lotteryData.katilimListesi = ''
if (piyangoStore.isNew) {
let inData = Object.assign({}, piyangoStore.lotteryData)
inData.amac = ''
delete inData.baslik
delete inData.duzenleyenId
delete inData.amacpiyangoId
delete inData.baglisirketId
form = await dataStore.dataPost('Cekilis/', {
data: {
baslik: piyangoStore.lotteryData.baslik,
duzenleyenId: piyangoStore.lotteryData.duzenleyenId,
amacpiyangoId: piyangoStore.lotteryData.amacpiyangoId,
baglisirketId: piyangoStore.lotteryData.baglisirketId,
cekilisBilgiler: [inData]
}
})
} else {
let inData = Object.assign({}, piyangoStore.lotteryData)
inData.amac = ''
form = await dataStore.dataPut('Cekilis/' + piyangoStore.selectedLottery, {
data: inData
})
}
if (form !== 'errorfalse') {
formChanged.value = false
piyangoValidationStore.dateChanged = false
loaded.value = false
if (piyangoStore.isNew) {
piyangoStore.selectedLottery = form.id
piyangoStore.lotteryApprove = 0
piyangoStore.isNew = false
piyangoStore.ResetLotteryData()
router.push('/piyangolar/detay/' + form.id)
} else {
GetData()
}
}
} else {
piyangoValidationStore.isFormValid = true
}
piyangoDosyaKapamaStore.formChanged = true
}
const CancelSave = () => {
Object.assign(piyangoStore.lotteryData, piyangoStore.safeLotteryData)
formChanged.value = false
}
const OnAraciFirmaChange = (e: Event, val: any, item: Record<string, any>) => {
piyangoStore.subCustomerType = item.basvuruTipId
piyangoStore.customerApproved = item.islemTipId === 4
Object.assign(piyangoStore.duzenleyenData, item)
AmacList()
formChanged.value = true
}
const RemoveAmac = () => {
let amacInd = piyangoAmaclari.value.findIndex((p) => p.id === 2)
if (amacInd >= 0) piyangoAmaclari.value.splice(amacInd, 1)
}
const GetDuzenleyen = (id: number) => {
var duzenleyen = childUsers.value.filter((p) => {
return p.id === id
})[0]
Object.assign(piyangoStore.duzenleyenData, duzenleyen)
}
const GetAraciUye = async () => {
let data = await dataStore.dataGet(
'Auth/userbyuserid/' + piyangoStore.lotteryData.duzenleyenId
)
if (data !== 'errorfalse') {
Object.assign(piyangoStore.araciUyeData, data)
}
}
const AmacList = () => {
amacRefresh.value = false
if (piyangoStore.CheckForYardimAmacli()) {
piyangoAmaclari.value.splice(
0,
piyangoAmaclari.value.length,
...piyangoAmaclariSafe.value
)
piyangoStore.lotteryData.amacpiyangoId = 2
} else {
RemoveAmac()
if (piyangoStore.lotteryData.amacpiyangoId === 2)
piyangoStore.lotteryData.amacpiyangoId = null
}
setTimeout(() => {
amacRefresh.value = true
}, 30)
}
const OpenPreviewPanel = () => {
previewPanel.value = true
}
const pdfmake = usePDF()
const DownloadPDF = async () => {
var pdfData: string = document.querySelector('.pdf-content')?.outerHTML || ''
previewStore.CreatePdfFromHtml(pdfmake, pdfData)
}
const PrintContent = () => {
previewStore.PrintContent(previewId.value)
}
const SetAraciFirmaSelect = async () => {
if (usersStore.isAraciFirma) {
let id = piyangoStore.isNew
? usersStore.userId
: piyangoStore.lotteryData.baglisirketId
let list = await dataStore.dataGet('Auth/userbyuserChildList/' + id)
childUsers.value = list.data.filter((p:Record<string,any>) => {
return p.islemTipId === 4 || p.islemTipi === 'Üyelik Onaylandı'
})
if (!piyangoStore.isNew) {
await GetDuzenleyen(piyangoStore.lotteryData.duzenleyenId)
piyangoStore.customerApproved = piyangoStore.duzenleyenData.islemTipi === 4
}
}
piyangoDosyaKapamaStore.RestoreFormData()
piyangoDosyaKapamaStore.formChanged = false
}
onBeforeMount(async () => {
if (route.name === 'PiyangoYeni') piyangoStore.isNew = true
await piyangoDosyaKapamaService.GetDosyaKapama()
await dataStore.GetIlList()
await piyangoServices.GetKatilimciTeslimYontemiList()
await piyangoServices.GetCekilisYontemiList()
await dataStore.GetCustomerTipList()
const amaclar = await dataStore.dataGet('PiyangoAmac')
piyangoAmaclari.value.splice(0, piyangoAmaclari.value.length, ...amaclar)
piyangoAmaclariSafe.value.splice(0, piyangoAmaclariSafe.value.length, ...amaclar)
AmacList()
if (piyangoStore.isNew) {
SetAraciFirmaSelect()
piyangoStore.ResetLotteryData()
piyangoStore.lotteryData.duzenleyenId = usersStore.isAraciFirma
? null
: usersStore.userId
piyangoStore.lotteryData.baglisirketId = usersStore.isAraciFirma
? usersStore.userId
: null
if (usersStore.isVakifDernek) piyangoStore.lotteryData.amacpiyangoId = 2
loaded.value = true
} else {
await GetData()
if (piyangoDosyaKapamaStore.isNew) {
piyangoDosyaKapamaStore.ResetFormData()
piyangoDosyaKapamaStore.loaded = true
}
})
</script>

View File

@ -14,37 +14,41 @@ export const usePiyangoDosyaKapamaService = defineStore(
const GetDosyaKapama = async () => {
let data: Record<string, any> | any = await dataStore.dataGet(
'Mecra/Cekilis/' + piyangoStore.selectedLottery
'TeminatIadeEvrakKontrol/' + piyangoStore.selectedLottery
)
if (data !== 'errorfalse') {
if (data !== 'errorfalse' || data.data.id === undefined) {
Object.assign(piyangoDosyaKapamaStore.dosyaKapamaData, data.data)
Object.assign(piyangoDosyaKapamaStore.safeDosyaKapamaata, data.data)
Object.assign(piyangoDosyaKapamaStore.safeDosyaKapamaData, data.data)
piyangoDosyaKapamaStore.isNew = false
setTimeout(() => {
piyangoDosyaKapamaStore.loaded = true
}, 30)
} else {
piyangoDosyaKapamaStore.isNew = true
}
}
const SaveDosyaKapama = async () => {
if (piyangoDosyaKapamaValidationStore.FormCheck()) {
let dt: any
dataStore.panelData.yayinlanacagiTarih = new Date(
dataStore.panelData.yayinlanacagiTarih
)
if (!piyangoDosyaKapamaStore.isUpdate) {
piyangoMecraStore.piyangoMecraForm.cekilisId = piyangoStore.selectedLottery
dt = await dataStore.dataPost('Mecra', {
data: piyangoMecraStore.piyangoMecraForm
})
} else {
dt = await dataStore.dataPut('Mecra/' + piyangoMecraStore.piyangoMecraForm.id, {
data: piyangoMecraStore.piyangoMecraForm
})
}
if (dt !== 'errorfalse') {
piyangoDosyaKapamaStore.isUpdate = false
await GetDosyaKapama()
}
let dt: any
dataStore.panelData.yayinlanacagiTarih = new Date(
dataStore.panelData.yayinlanacagiTarih
)
if (!piyangoDosyaKapamaStore.isUpdate) {
dt = await dataStore.dataPost('TeminatIadeEvrakKontrol', {
data: piyangoDosyaKapamaStore.dosyaKapamaData
})
} else {
piyangoDosyaKapamaValidationStore.isFormValid = true
dt = await dataStore.dataPut(
'TeminatIadeEvrakKontrol/' + piyangoDosyaKapamaStore.dosyaKapamaData.id,
{
data: piyangoDosyaKapamaStore.dosyaKapamaData
}
)
}
if (dt !== 'errorfalse') {
piyangoDosyaKapamaStore.isUpdate = false
await GetDosyaKapama()
}
}

View File

@ -6,15 +6,45 @@ export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore',
const globalStore = useGlobalStore()
const baseDosyaKapamaData = reactive<Record<string, any>>({
adSoyad: '',
telefonNumarasi: '',
faksNumarasi: '',
eposta: '',
unvan: ''
katilimSekli: '',
cD: false,
kutuMuhurlemeTutanagi: false,
kutuAcmaTutanagi: false,
cekilisTutanagi: false,
cekilisIzinAlinanTarihSaatAdres: false,
oncedenBelirlenenIkramiyeCekilis: false,
cekilisNumaraUzerindenCekilis: false,
dagitilmayanKuponTespiti: false,
cekilisSonucuIlan: false,
ilandaTarihGazete: false,
ilandaToplamKatilimci: false,
cekilisTutanagiIleUyumluKazananlar: false,
ilanSonBasvuruTeslimSuresi: false,
taahhutEdilenIkramiyeAdedi: null,
teslimEdilenIkramiyeAdedi: null,
asilIkramiyeSayisi: null,
yedekIkramiyeSayisi: null,
nufusCuzdani: false,
noterOnayliIbraname: false,
teslimBelgesi: false,
faturaFotokopileri: false,
tescileAitBelgeler: false,
sureIcindesAlinmayanIkramiyeAdedi: null,
tebligat: false,
feragat: false,
bagis: false,
kuponAsli: false,
duyuruMateryali: false,
ikramiyelerinSonTeslimTarihi: '',
teminatIadeTarihi: ''
})
const dosyaKapamaData = reactive<Record<string, any>>({})
const safeDosyaKapamaata = reactive<Record<string, any>>({})
const safeDosyaKapamaData = reactive<Record<string, any>>({})
const isNew = ref<boolean>(false)
const isUpdate = ref<boolean>(false)
const formChanged = ref<boolean>(false)
const loaded = ref<boolean>(false)
const ResetFormData = () => {
globalStore.ResetObject(dosyaKapamaData, baseDosyaKapamaData)
@ -23,14 +53,17 @@ export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore',
const RestoreFormData = () => {
globalStore.ResetObject(dosyaKapamaData, baseDosyaKapamaData)
Object.assign(dosyaKapamaData, safeDosyaKapamaata)
Object.assign(dosyaKapamaData, safeDosyaKapamaData)
}
return {
baseDosyaKapamaData,
dosyaKapamaData,
safeDosyaKapamaata,
safeDosyaKapamaData,
isNew,
isUpdate,
formChanged,
loaded,
ResetFormData,
RestoreFormData
}

View File

@ -3,13 +3,12 @@ import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoDosyaKapamaStore } from '../stores/piyangoDosyaKapamaStore'
export const usePiyangoMecraValidationStore = defineStore(
'piyangoMecraValidationStore',
export const usePiyangoDosyaKapamaValidationStore = defineStore(
'piyangoDosyaKapamaValidationStore',
() => {
const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore()
const validationStore = useValidationStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
@ -28,7 +27,6 @@ export const usePiyangoMecraValidationStore = defineStore(
}
return {
formChanged,
isFormValid,
invalidTexts,
FormCheck

View File

@ -16,7 +16,7 @@
<template #talihliler><tab-piyango-talihli-listesi /></template>
<template #itirazsikayet><tab-piyango-itiraz /></template>
<template #piyangologlari><tab-piyango-loglari /></template>
<template #yetkilendirme>
<template #yetkilendirme v-if="usersStore.isPanelUser">
<tab-piyango-yetkilendirme />
</template>
<template #onaydurumu>
@ -26,8 +26,8 @@
<template #teminatlistesi>
<tab-piyango-teminat-durumu />
</template>
<template #dosyakapama>
<tab-piyango-teminat-durumu />
<template #dosyakapama v-if="usersStore.isPanelUser && piyangoStore.lotteryDrawState">
<tab-piyango-dosya-kapama />
</template>
</tabs>
</AdminLayout>
@ -55,6 +55,7 @@
import TabPiyangoBilgileri from '@/module/cekilisler/components/TabPiyangoBilgileri.vue'
import TabPiyangoBilgileriDisplay from '../components/TabPiyangoBilgileriDisplay.vue'
import TabPiyangoItiraz from '@/module/cekilisler/components/TabPiyangoItiraz.vue'
import TabPiyangoDosyaKapama from '@/module/cekilisler/components/TabPiyangoDosyaKapama.vue'
const loaded = ref<boolean>(false)
const tabList = ref<Record<string, any>[]>([

View File

@ -51,7 +51,7 @@
</AdminLayout>
</template>
<script setup lang="ts">
import { ref, onMounted, computed } from 'vue'
import { ref, computed } from 'vue'
import AdminLayout from '@/layouts/AdminLayout.vue'
import { Breadcrumb } from '@/components/global'
import router from '@/router'