ilk commit

This commit is contained in:
burakovec
2025-07-04 14:11:18 +03:00
parent 7604d77a89
commit 1754e646a8
306 changed files with 24956 additions and 0 deletions

View File

@ -0,0 +1,63 @@
<template>
<div class="form-content">
<div class="form-inner-content form-inner-content-left">
<form-piyango-bilgileri
v-if="piyangoStore.lotteryApprove === 0 || piyangoStore.lotteryApprove === 3" />
<form-piyango-bilgileri-display v-else />
<form-irtibat-bilgileri
v-if="piyangoStore.lotteryApprove === 0 || piyangoStore.lotteryApprove === 3" />
<form-irtibat-bilgileri-display v-else />
<template v-if="piyangoStore.isLotteryForCharity">
<form-piyango-yardim-amacli
v-if="piyangoStore.lotteryApprove === 0 || piyangoStore.lotteryApprove === 3" />
<form-piyango-yardim-amacli-display v-else />
</template>
</div>
<div class="form-inner-content form-inner-content-right">
<div
class="form-part"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 &&
piyangoStore.lotteryApprove !== 12
">
<form-piyango-mecra
v-if="piyangoStore.lotteryApprove === 0 || piyangoStore.lotteryApprove === 3" />
<form-piyango-mecra-display v-else />
</div>
<form-piyango-documents />
</div>
<div
class="form-inner-content"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 && piyangoStore.lotteryApprove !== 12
">
<form-piyango-pictures />
</div>
<div
class="form-inner-content"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 && piyangoStore.lotteryApprove !== 12
">
<form-piyango-ikramiye-listesi
v-if="piyangoStore.lotteryApprove === 0 || piyangoStore.lotteryApprove === 3" />
<form-piyango-ikramiye-listesi-display v-else />
</div>
</div>
</template>
<script setup lang="ts">
import FormPiyangoBilgileri from './form/FormPiyangoBilgileri.vue'
import FormPiyangoBilgileriDisplay from './display/FormPiyangoBilgileriDisplay.vue'
import FormPiyangoDocuments from './form/FormPiyangoDocuments.vue'
import FormPiyangoPictures from './form/FormPiyangoPictures.vue'
import FormIrtibatBilgileri from './form/FormPiyangoIrtibatBilgileri.vue'
import FormIrtibatBilgileriDisplay from './display/FormPiyangoIrtibatBilgileriDisplay.vue'
import FormPiyangoMecra from './form/FormPiyangoMecra.vue'
import FormPiyangoMecraDisplay from './display/FormPiyangoMecraDisplay.vue'
import FormPiyangoIkramiyeListesi from './form/FormPiyangoIkramiyeListesi.vue'
import FormPiyangoIkramiyeListesiDisplay from './display/FormPiyangoIkramiyeListesiDisplay.vue'
import FormPiyangoYardimAmacli from './form/FormPiyangoYardimAmacli.vue'
import FormPiyangoYardimAmacliDisplay from './display/FormPiyangoYardimAmacliDisplay.vue'
import { usePiyangoStore } from '../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
</script>

View File

@ -0,0 +1,47 @@
<template>
<div class="form-content">
<div class="form-inner-content form-inner-content-left">
<form-piyango-bilgileri-display />
<form-piyango-irtibat-bilgileri-display />
<form-piyango-yardim-amacli-display v-if="piyangoStore.isLotteryForCharity" />
</div>
<div class="form-inner-content form-inner-content-right">
<div
class="form-part"
id="display-mecra"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 &&
piyangoStore.lotteryApprove !== 12
">
<form-piyango-mecra-display />
</div>
<form-piyango-documents-display />
</div>
<div
class="form-inner-content"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 && piyangoStore.lotteryApprove !== 12
">
<form-piyango-pictures-display />
</div>
<div
class="form-inner-content"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 && piyangoStore.lotteryApprove !== 12
">
<form-piyango-ikramiye-listesi-display />
</div>
</div>
</template>
<script setup lang="ts">
import FormPiyangoBilgileriDisplay from './display/FormPiyangoBilgileriDisplay.vue'
import FormPiyangoDocumentsDisplay from './display/FormPiyangoDocumentsDisplay.vue'
import FormPiyangoPicturesDisplay from './display/FormPiyangoPicturesDisplay.vue'
import FormPiyangoIrtibatBilgileriDisplay from './display/FormPiyangoIrtibatBilgileriDisplay.vue'
import FormPiyangoMecraDisplay from './display/FormPiyangoMecraDisplay.vue'
import FormPiyangoIkramiyeListesiDisplay from './display/FormPiyangoIkramiyeListesiDisplay.vue'
import FormPiyangoYardimAmacliDisplay from './display/FormPiyangoYardimAmacliDisplay.vue'
import { usePiyangoStore } from '../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
</script>

View File

@ -0,0 +1,109 @@
<template>
<section class="section-list">
<list-table-content
title="İtiraz/Şikayet Listesi"
icon="draws"
:tableHeader="tableHeader"
:rowAction="EditItiraz"
listText="İkramiye"
:addAction="itirazAction()"
:apiList="'Itiraz/Cekilis/' + piyangoStore.selectedLottery"
apiText="İtiraz/Şikayet Listesi"
v-model:refresh="piyangoItirazStore.refreshList" />
</section>
<panel-wrapper
v-if="piyangoItirazStore.itirazPanel"
v-model="piyangoItirazStore.itirazPanel"
:panel-title="
piyangoItirazStore.isUpdate
? 'İtiraz/Şikayet Süreci Düzenle'
: 'İtiraz/Şikayet Süreci Ekle'
">
<template #panelContent>
<panel-piyango-itiraz />
</template>
<template #footerButton>
<div class="button-c button-save" @click="piyangoItirazService.SaveItiraz">
{{ piyangoItirazStore.isUpdate ? 'Kaydet' : 'Ekle' }}
</div>
</template>
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
import { usePiyangoItirazStore } from '../stores/piyangoItirazStore'
const piyangoItirazStore = usePiyangoItirazStore()
import { usePiyangoItirazService } from '../service/piyangoItirazService'
const piyangoItirazService = usePiyangoItirazService()
import { usePiyangoStore } from '../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import PanelPiyangoItiraz from './panel/PanelPiyangoItiraz.vue'
import PanelWrapper from '@/components/PanelWrapper.vue'
const tableHeader = ref<Record<string, any>[]>([
{
name: 'itirazTarihi',
title: 'İtiraz Tarihi',
sort: true,
style: { width: '10%' },
compute: (v: Record<string, any>): string => {
return v.itirazTarihi === null
? ''
: dateStore.dateFormat({ pattern: 'dd-mm-yy', date: v.itirazTarihi })
}
},
{
name: 'itirazEden',
title: 'İtiraz Eden',
sort: true,
style: { width: '15%' }
},
{
name: 'aciklama',
title: 'Açıklama',
sort: true,
style: { width: '20%' }
},
{
name: 'durum',
title: 'Durum',
sort: true
},
{
name: 'surecTipiAdi',
title: 'Süreç Tipi',
sort: true
},
{
name: 'belgeUrl',
title: 'Belge',
computeHtml: (v: Record<string, any>) => {
if (v.belgeUrl !== null && v.belgeUrl !== undefined) {
return globalStore.TableCellDocument(v.belgeUrl)
}
}
}
])
const itirazAction = () => {
if (usersStore.isPanelUser) return NewItiraz as Function
else return ''
}
const NewItiraz = () => {
piyangoItirazStore.ResetForm()
piyangoItirazStore.itirazPanel = true
}
const EditItiraz = (d: Record<string, any>) => {
piyangoItirazStore.isUpdate = true
Object.assign(piyangoItirazStore.piyangoItirazForm, d)
piyangoItirazStore.itirazPanel = true
}
</script>

View File

@ -0,0 +1,40 @@
<template>
<section class="section-list">
<list-table-content
:tableHeader="tableHeader"
icon="draws"
title="Piyango Logları"
listText="Kayıt"
:apiList="'CekilisAtamaLog/Cekilis/' + piyangoStore.selectedLottery"
apiText="Piyango Logları" />
</section>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
import { usePiyangoStore } from '../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
const tableHeader = ref<Record<string, any>[]>([
{
name: 'tarih',
title: 'İşlem Tarihi',
compute: (v: Record<string, any>): string => {
return dateStore.dateFormat({ date: v.tarih })
},
sort: true,
style: { width: '20%' }
},
{
name: 'islemiYapan',
title: 'İşlemi yapan',
sort: true
},
{
name: 'islem',
title: 'İşlem',
sort: true
}
])
</script>

View File

@ -0,0 +1,22 @@
<template>
<div class="form-content">
<div class="form-inner-content form-inner-content-left">
<form-piyango-onay />
</div>
<!--div class="form-inner-content form-inner-content-right">
<div class="form-part">
<form-piyango-onay-kisiler />
</div>
</!--div-->
<div class="form-inner-content">
<div class="form-part">
<form-piyango-onay-log />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import FormPiyangoOnayLog from './form/FormPiyangoOnayLog.vue'
import FormPiyangoOnay from './form/FormPiyangoOnay.vue'
import FormPiyangoOnayKisiler from './form/FormPiyangoOnayKisiler.vue'
</script>

View File

@ -0,0 +1,24 @@
<template>
<div class="form-content">
<div
class="form-inner-content form-inner-content-left"
v-if="
piyangoStore.lotteryApprove === 0 ||
piyangoStore.lotteryApprove === 3
">
<form-piyango-user-onaya-gonder />
</div>
<div class="form-inner-content">
<div class="form-part">
<form-piyango-onay-log />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { usePiyangoStore } from '../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import FormPiyangoOnayLog from './form/FormPiyangoOnayLog.vue'
import FormPiyangoUserOnayaGonder from './form/FormPiyangoUserOnayaGonder.vue'
</script>

View File

@ -0,0 +1,16 @@
<template>
<div class="form-content">
<div class="form-inner-content">
<form-piyango-yetkilendirme />
</div>
<div class="form-inner-content">
<div class="form-part">
<form-piyango-yetkilendirme-log />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import FormPiyangoYetkilendirmeLog from './form/FormPiyangoYetkilendirmeLog.vue'
import FormPiyangoYetkilendirme from './form/FormPiyangoYetkilendirme.vue'
</script>

View File

@ -0,0 +1,113 @@
<template>
<template v-if="piyangoStore.lotteryApprove === 0 && loaded">
<div class="form-inner-comment new-d">
Yeni Piyango Başvurusu.
<template v-if="!usersStore.isPanelUser">
<br />
<br />
Başvuru bedeli,
<strong>
{{ muhasebeSettingsStore.muhasebeSettingsForm.basvuruBedeli }} +KDV
</strong>
'dir.
<br />
İdaremizin {{ muhasebeSettingsStore.muhasebeSettingsForm.kurumBanka }} -
{{ muhasebeSettingsStore.muhasebeSettingsForm.kurumBankaSube }}
Şubesi nezdindeki
{{ muhasebeSettingsStore.muhasebeSettingsForm.kurumIBAN }} IBAN numaralı hesabına
<strong>"Başvuru Bedeli"</strong>
ıklamasıyla yatırılacaktır.
</template>
<template v-if="piyangoAmac === 2 && !usersStore.isPanelUser">
<br />
<br />
<strong>"Yardım Amaçlı Piyango Bilet Bilgileri"</strong>
bölümündeki bilgileri doldurmayı unutmayınız.
</template>
</div>
<div class="form-inner-comment alert-d" v-if="!usersStore.isPanelUser">
Bilgilerinizi güncelledikten sonra "Onay Durumu" tabından "Onaya Gönder"meyi
unutmayınız.
</div>
</template>
<div class="form-inner-comment waiting-d" v-if="piyangoStore.lotteryApprove === 1 && loaded">
Başvuru işleme alınmıştır.
</div>
<div class="form-inner-comment waiting-d" v-if="piyangoStore.lotteryApprove === 2">
Başvuru inceleniyor.
</div>
<template v-if="piyangoStore.lotteryApprove === 3">
<div class="form-inner-comment waiting-d">
Bilgi/belge eksik/yanlış, düzenleme bekleniyor.
</div>
<div class="form-inner-comment alert-d" v-if="!usersStore.isPanelUser">
Bilgilerinizi güncelledikten sonra "Onay Durumu" tabından "Onaya Gönder"meyi
unutmayınız.
</div>
</template>
<div class="form-inner-comment success-d" v-if="piyangoStore.lotteryApprove === 4">
Başvuru onaylanmıştır.
</div>
<div class="form-inner-comment alert-d" v-if="piyangoStore.lotteryApprove === 5">
Başvuru uygun görülmemiştir.
</div>
<div class="form-inner-comment waiting-d" v-if="piyangoStore.lotteryApprove === 7">
{{
usersStore.isPanelUser
? 'Üye piyango bilgilerinde değişiklik yapma talebinde bulunmuştur.'
: 'Değişiklik yapma telebinizin değerlendirilmesi bekleniyor.'
}}
</div>
<div class="form-inner-comment waiting-d" v-if="piyangoStore.lotteryApprove === 8">
Başvurunun incelenmesi bekleniyor.
</div>
<div class="form-inner-comment alert-d" v-if="piyangoStore.lotteryApprove === 9">
Başvuru izin öncesi iptal edilmiştir.
</div>
<div class="form-inner-comment success-d" v-if="piyangoStore.lotteryApprove === 10">
Kampanya olumlu sonuçlanmıştır.
</div>
<div class="form-inner-comment alert-d" v-if="piyangoStore.lotteryApprove === 11">
Başvuru izin sonrası iptal edilmiştir.
</div>
<div class="form-inner-comment waiting-d" v-if="piyangoStore.lotteryApprove === 12">
Başvuru kapsam dışıdır.
<template v-if="usersStore.isPanelUser">
<br />
Başvuru admin tarafından kapsam dışı olarak işaretlenmiştir.
</template>
</div>
<div class="form-inner-comment alert-d" v-if="piyangoStore.lotteryApprove === 11">
Kampanya için cezai işlem uygulanmıştır.
</div>
</template>
<script setup lang="ts">
import { ref,onBeforeMount } from 'vue'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { useMuhasebeSettingsStore } from '@/module/muhasebe/store/muhasebeSettingsStore'
const muhasebeSettingsStore = useMuhasebeSettingsStore()
import { useMuhasebeSettingsService } from '@/module/muhasebe/service/muhasebeSettingsService'
const muhasebeSettingsService = useMuhasebeSettingsService()
const loaded = ref<boolean>(false)
const props = defineProps<{
piyangoAmac: number | null
}>()
onBeforeMount(async () => {
await muhasebeSettingsService.GetMuhasebeSettings()
loaded.value = true
})
</script>

View File

@ -0,0 +1,222 @@
<template>
<div class="form-part-content">
<lottery-states
:piyangoAmac="piyangoStore.lotteryData.amacpiyangoId"
v-if="!isPreview" />
<template
v-if="
usersStore.isPanelUser &&
((piyangoStore.lotteryData.basvurubedeldurum !== null &&
piyangoStore.lotteryData.basvurubedeldurum === true) ||
(piyangoStore.lotteryData.izinbedeldurum !== null &&
piyangoStore.lotteryData.izinbedeldurum === true))
">
<form-display
half
v-model="piyangoStore.lotteryData.basvuruBedelNo"
label="Başvuru Bedel No" />
<form-display
half
v-model="piyangoStore.lotteryData.izinBedelNo"
label="İzin Bedel No" />
</template>
<form-display
v-model="piyangoStore.lotteryData.baslik"
label="Piyango Başlığı"
:invalidText="piyangoValidationStore.invalidTexts.baslik" />
<form-display
label="Piyango Amacı"
v-model="piyangoStore.lotteryData.amacpiyango"
:invalidText="piyangoValidationStore.invalidTexts.amacpiyangoId" />
<form-display
v-if="piyangoStore.lotteryData.baglisirketId !== null"
label="Aracı Firma"
v-model="piyangoStore.araciUyeData.sirketUnvan">
<template #button v-if="usersStore.isPanelUser && !isPreview">
<router-link :to="piyangoStore.araciLink" class="button-c">
Aracı Üyeyi Kontrol Et
</router-link>
</template>
</form-display>
<form-display
v-if="usersStore.isPanelUser || !piyangoStore.customerApproved"
label="Piyangoyu Düzenleyen"
:modelText="piyangoStore.UyeName(piyangoStore.duzenleyenData)">
<template #button v-if="!isPreview && piyangoStore.duzenleyenLink !== null">
<router-link :to="piyangoStore.duzenleyenLink" class="button-c">
Üyeyi Kontrol Et
</router-link>
</template>
</form-display>
<div class="form-inner-comment waiting-d" v-if="!piyangoStore.customerApproved">
Yalnızca Onaylanmış Üyeler için piyango düzenlenebilir.
</div>
<template
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 && piyangoStore.lotteryApprove !== 12
">
<form-display
v-if="
piyangoStore.lotteryData.kampsamIlStrList.length !==
globalDataStore.ilList.length
"
label="Kapsadığı Yerler"
v-model="piyangoStore.lotterySelectedProvience"
type="array"
:invalidText="piyangoValidationStore.invalidTexts.kapsamIl" />
<form-display
v-else
modelText="Türkiye Geneli"
label="Kapsadığı Yerler"
:invalidText="piyangoValidationStore.invalidTexts.kapsamIl" />
<template v-if="piyangoStore.lotteryData.amacpiyangoId !== 2">
<form-display
half
type="datetime"
v-model="piyangoStore.lotteryData.baslangicTarihi"
label="Kampanya Başlangıç Tarihi ve Saati"
:invalidText="piyangoValidationStore.invalidTexts.baslangicTarihi" />
<form-display
half
required
v-model="piyangoStore.lotteryData.bitisTarihi"
label="Kampanya Bitiş Tarihi ve Saati"
type="datetime"
:invalidText="piyangoValidationStore.invalidTexts.bitisTarihi" />
</template>
<form-display
v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
v-model="piyangoStore.lotteryData.cekilisSartveSekilleri"
label="Kampanya Katılma Şekil ve Şartları"
:invalidText="piyangoValidationStore.invalidTexts.cekilisSartveSekilleri" />
<form-display
half
type="datetime"
v-model="piyangoStore.lotteryData.cekilisTarihi"
label="Çekiliş Tarihi ve Saati"
:invalidText="piyangoValidationStore.invalidTexts.cekilisTarihi" />
<form-display
v-model="piyangoStore.lotteryData.adres"
:modelText="
piyangoStore.lotteryData.adres +
' ' +
piyangoStore.lotteryData.il +
' ' +
piyangoStore.lotteryData.ilce
"
label="Çekiliş Adresi" />
<form-display
label="Katılımcı Listesinin İçeriği ve Hazırlanma Şekli"
v-model="piyangoStore.lotteryData.katilimListesi"
v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
:invalidText="piyangoValidationStore.invalidTexts.katilimListesi" />
<form-display
v-if="piyangoStore.lotteryData.amacpiyangoId !== 2"
label="Katılım Listesi Teslim Yöntemi"
v-model="piyangoStore.lotteryData.katilimciListesiTeslimYontemi"
:invalidText="
piyangoValidationStore.invalidTexts.katilimciListesiTeslimYontemiId
" />
<form-display
label="Çekiliş Yöntemi"
v-model="piyangoStore.lotteryData.cekilisYontemi"
:invalidText="piyangoValidationStore.invalidTexts.cekilisYontemiId"
:messages="
piyangoStore.lotteryData.cekilisYontemiId === 1 ? FizikselMessage : []
" />
<form-display
type="date"
half
v-model="piyangoStore.lotteryData.ilantarihi"
label="İlan Tarihi"
:invalidText="piyangoValidationStore.invalidTexts.ilantarihi" />
<form-display
type="date"
v-if="piyangoStore.lotteryData.amacpiyangoId === 2"
half
v-model="piyangoStore.lotteryData.ilantarihi2"
label="2. İlan Tarihi"
:invalidText="piyangoValidationStore.invalidTexts.ilantarihi2" />
<form-display
type="date"
half
v-model="piyangoStore.lotteryData.asilSonBasvuruTarihi"
:invalidText="piyangoValidationStore.invalidTexts.asilSonBasvuruTarihi"
:label="
piyangoStore.lotteryData.amacpiyangoId === 2
? 'Talihlilerin Son Başvuru Tarihi'
: 'Asıl Talihli Son Başvuru Tarihi'
" />
<form-display
type="date"
half
v-model="piyangoStore.lotteryData.yedekSonBasvuruTarihi"
:invalidText="piyangoValidationStore.invalidTexts.yedekSonBasvuruTarihi"
label="Yedek Talihli Son Başvuru Tarihi"
v-if="piyangoStore.lotteryData.amacpiyangoId !== 2" />
<form-display
half
v-model="piyangoStore.lotteryData.ikramiyeTeslimTarihi"
:invalidText="piyangoValidationStore.invalidTexts.ikramiyeTeslimTarihi"
label="İkramiyelerin Son Teslim Tarihi"
type="date" />
<form-display
v-model="piyangoStore.lotteryData.ilanEdilecekGazete"
:invalidText="piyangoValidationStore.invalidTexts.ilanEdilecekGazete"
label="İlan Edilecek Gazete" />
<form-display
:modelText="dataHusular"
:invalidText="piyangoValidationStore.invalidTexts.digerHususlar"
label="Diğer Hususlar"
:messages="digerHususlar" />
</template>
</div>
</template>
<script setup lang="ts">
import { computed, onMounted } from 'vue'
import LotteryStates from '../content/LotteryStates.vue'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { useGlobalDataStore } from '@/stores/globalDataStore'
const globalDataStore = useGlobalDataStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoValidationStore } from '../../validation/piyangoValidationStore'
const piyangoValidationStore = usePiyangoValidationStore()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
export interface Props {
isPreview?: boolean
}
const props = withDefaults(defineProps<Props>(), { isPreview: false })
const dataHusular = computed<string[]>(() => {
return piyangoStore.lotteryData.digerHususlar.split('\n')
})
const digerHususlar = computed<string[]>(() => {
let husus: string[] = piyangoStore.isLotteryForCharity
? piyangoDataStore.digerHusularYardimAmacliTexts
: piyangoDataStore.digerHusularTexts
return husus
})
const FizikselMessage = computed<string[]>(() => {
if (piyangoStore.lotteryData.amacpiyangoId === 2)
return piyangoDataStore.fizikselYardimMessage
else if (piyangoStore.lotteryData.cekilisYontemiId === 1)
return piyangoDataStore.fizikselTicariMessage
else return []
})
onMounted(() => {
setTimeout(() => {
piyangoValidationStore.FormCheck()
}, 100)
})
</script>

View File

@ -0,0 +1,31 @@
<template>
<div :class="['form-part']" id="display-bilgi">
<div class="form-part-title">
<h4>Aracı Firma Bilgileri</h4>
</div>
<div class="form-part-content">
<form-display v-model="piyangoStore.araciUyeData.sirketUnvan" label="Ünvan" />
<form-display half v-model="piyangoStore.araciUyeData.sirketVergiDairesi" label="Vergi Dairesi" />
<form-display half v-model="piyangoStore.araciUyeData.sirketVergiNo" label="Vergi No" />
<form-display half v-model="piyangoStore.araciUyeData.sirketSicilNo" label="Sicil No" />
<form-display half v-model="piyangoStore.araciUyeData.sirketMersis" label="Mersis No" />
<form-display v-model="piyangoStore.araciUyeData.adres" label="Adresi" />
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onBeforeMount } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePreviewStore } from '@/stores/previewStore'
const previewStore = usePreviewStore()
import { useGlobalDataStore } from '@/stores/globalDataStore'
const globalDataStore = useGlobalDataStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
</script>

View File

@ -0,0 +1,140 @@
<template>
<div :class="['form-part']" id="display-bilgi">
<div class="form-part-title">
<h4>Piyango Bilgileri</h4>
<div class="form-part-title-buttons" v-if="!isPreview">
<button
@click="SendChangeRequest"
v-if="piyangoStore.lotteryApprove === 4 && !usersStore.isPanelUser && loaded">
Değişiklik Talebi Gönder
</button>
<button
@click="OpenPreviewPanel"
v-if="
piyangoStore.lotteryData.amacpiyangoId !== 3 &&
piyangoStore.lotteryApprove !== 12 &&
loaded
">
Önizleme
</button>
</div>
</div>
<piyango-bilgileri-display-content v-if="loaded" :isPreview="isPreview" />
</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, computed, onBeforeMount } from 'vue'
import { usePDF } from 'vue3-pdfmake'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
export interface Props {
isPreview?: boolean
}
const props = withDefaults(defineProps<Props>(), { isPreview: false })
import PanelPiyangoOnizleme from '../panel/PanelPiyangoOnizleme.vue'
import PanelPiyangoYardimAmacliOnizleme from '../panel/PanelPiyangoYardimAmacliOnizleme.vue'
import PanelWrapper from '@/components/PanelWrapper.vue'
import PiyangoBilgileriDisplayContent from '../content/PiyangoBilgileriDisplayContent.vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { usePreviewStore } from '@/stores/previewStore'
const previewStore = usePreviewStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoOnayService } from '../../service/piyangoOnayService'
const piyangoOnayService = usePiyangoOnayService()
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
const piyangoOnayStore = usePiyangoOnayStore()
const loaded = ref<boolean>(false)
const previewPanel = ref<boolean>(false)
const previewId = ref<number>(0)
const GetData = async () => {
piyangoStore.ResetLotteryContent()
let data = await dataStore.dataGet(
'CekilisBilgi/Cekilis/' + piyangoStore.selectedLottery
)
if (data !== 'errorfalse') {
Object.assign(piyangoStore.lotteryData, data)
piyangoStore.lotterySelectedProvience =
piyangoStore.lotteryData.kampsamIlStrList.join(', ')
await GetDuzenleyen()
if (piyangoStore.lotteryData.baglisirketId !== null) await GetAraciUye()
piyangoStore.lotteryIlanTarihi = piyangoStore.lotteryData.ilantarihi
piyangoStore.lotteryCreationDate = piyangoStore.lotteryData.olusturmaTarihi
setTimeout(() => {
loaded.value = true
}, 30)
}
}
const GetDuzenleyen = async () => {
let data = await dataStore.dataGet(
'Auth/userbyuserid/' + piyangoStore.lotteryData.duzenleyenId
)
if (data !== 'errorfalse') {
Object.assign(piyangoStore.duzenleyenData, data)
piyangoStore.customerApproved = data.islemTipi === 4
}
}
const GetAraciUye = async () => {
let data = await dataStore.dataGet(
'Auth/userbyuserid/' + piyangoStore.lotteryData.baglisirketId
)
if (data !== 'errorfalse') {
Object.assign(piyangoStore.araciUyeData, data)
}
}
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 SendChangeRequest = async () => {
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId = 7
piyangoOnayStore.piyangoOnayForm.file = ''
piyangoOnayStore.piyangoOnayForm.aciklama = ''
await piyangoOnayService.SaveOnayDurum()
}
onBeforeMount(async () => {
await dataStore.GetIlList()
await GetData()
})
</script>

View File

@ -0,0 +1,40 @@
<template>
<div class="form-part">
<div class="form-part-title">
<h4>Gerekli Dokümanlar</h4>
</div>
<div class="form-part-content" v-if="piyangoDocumentStore.loaded">
<template v-if="piyangoDocumentStore.piyangoDocumentsList.length > 0">
<template v-for="(file, i) in piyangoDocumentStore.piyangoDocumentsList">
<file-list-item
:editable="false"
:data="file"
title="dokumanAdi"
:filePath="file.url" />
</template>
</template>
<template v-else>
<div class="form-inner-comment" v-if="usersStore.isPanelUser">
Eklenmiş dosya bulunamadı.
</div>
<div v-else>
Eklenmiş dosya bulunamadı. Üstteki butonu kullanarak dosya ekleyebilirsiniz.
</div>
</template>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, onBeforeMount } from 'vue'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoDocumentStore } from '../../stores/piyangoDocumentStore'
const piyangoDocumentStore = usePiyangoDocumentStore()
import { usePiyangoDocumentService } from '../../service/piyangoDocumentService'
const piyangoDocumentService = usePiyangoDocumentService()
onBeforeMount(async () => {
await piyangoDocumentService.GetDocumentList()
})
</script>

View File

@ -0,0 +1,94 @@
<template>
<div :class="['form-part']" id="display-bilgi">
<div class="form-part-title">
<h4>Piyangoyu Düzenleyen Bilgileri</h4>
</div>
<div class="form-part-content">
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 18">
<form-display half v-model="piyangoStore.duzenleyenData.gercekAdi" label="Ad" />
<form-display
half
v-model="piyangoStore.duzenleyenData.gercekSoyadi"
label="Soyadı" />
<form-display
half
v-model="piyangoStore.duzenleyenData.gercekTCKN"
label="TCKN" />
<form-display
half
v-model="piyangoStore.duzenleyenData.gercekVergiDairesi"
label="Vergi Dairesi" />
<form-display
half
v-model="piyangoStore.duzenleyenData.gercekVergiNo"
label="Vergi No" />
<form-display
half
v-model="piyangoStore.duzenleyenData.gercekOdaKayitNo"
label="Oda Kayıt No/ Ticaret Sicil No" />
<form-display
half
v-model="piyangoStore.duzenleyenData.gercekTicariUnvan"
label="Ticari Ünvan" />
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 21">
<form-display v-model="piyangoStore.duzenleyenData.tuzelUnvan" label="Ünvan" />
<form-display
half
v-model="piyangoStore.duzenleyenData.tuzelVergiDairesi"
label="Vergi Dairesi" />
<form-display
half
v-model="piyangoStore.duzenleyenData.tuzelVergiNo"
label="Vergi No" />
<form-display
half
v-model="piyangoStore.duzenleyenData.tuzelSicilNo"
label="Sicil No" />
<div class="form-item form-item-half"></div>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 22">
<form-display v-model="piyangoStore.duzenleyenData.dernekUnvan" label="Ünvan" />
<form-display
half
v-model="piyangoStore.duzenleyenData.dernekVergiDairesi"
label="Vergi Dairesi" />
<form-display
half
v-model="piyangoStore.duzenleyenData.dernekVergiNo"
label="Vergi No" />
<form-display
half
v-model="piyangoStore.duzenleyenData.dernekSicilNo"
label="Sicil No" />
<div class="form-item form-item-half"></div>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 26">
<form-display v-model="piyangoStore.duzenleyenData.kamuUnvan" label="Ünvan" />
<form-display
half
v-model="piyangoStore.duzenleyenData.kamuVergiDairesi"
label="Vergi Dairesi" />
<form-display
half
v-model="piyangoStore.duzenleyenData.kamuVergiNo"
label="Vergi No" />
<form-display
half
v-model="piyangoStore.duzenleyenData.kamuSicilNo"
label="Sicil No" />
<div class="form-item form-item-half"></div>
</template>
<form-display v-model="piyangoStore.duzenleyenData.adres" label="Adresi" />
</div>
</div>
</template>
<script setup lang="ts">
import { useGlobalDataStore } from '@/stores/globalDataStore'
const globalDataStore = useGlobalDataStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
</script>

View File

@ -0,0 +1,116 @@
<template>
<div class="form-part section-list" id="display-ikramiye" v-if="!isPreview">
<list-table-content
v-if="piyangoIkramiyeStore.loaded"
title="İkramiye Listesi"
icon="draws"
:tableHeader="ikramiyeTableHeader"
listText="İkramiye"
addAction=""
:apiList="'Ikramiye/Cekilis/' + piyangoStore.selectedLottery"
rowNumber
:totalValues="piyangoIkramiyeStore.totalIkramiyeValues" />
</div>
<template v-else>
<list-table-content
v-if="piyangoIkramiyeStore.loaded"
formTitle="İkramiye Listesi"
:tableHeader="ikramiyeTableHeader"
listText="İkramiye"
addAction=""
:apiList="'Ikramiye/Cekilis/' + piyangoStore.selectedLottery"
rowNumber
:totalValues="piyangoIkramiyeStore.totalIkramiyeValues"
page="form"
:isPreview="isPreview" />
</template>
</template>
<script setup lang="ts">
import { ref, reactive, onBeforeMount, watch } from 'vue'
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoServices } from '../../service/piyangoServices'
const piyangoServices = usePiyangoServices()
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
const piyangoIkramiyeService = usePiyangoIkramiyeService()
export interface Props {
isPreview?: boolean
}
const props = withDefaults(defineProps<Props>(), { isPreview: false })
const loaded = ref<boolean>(false)
const ikramiyeTableHeader = ref<Record<string, any>>([
{
name: 'cinsi',
title: 'Cinsi, Markası, Modeli',
computeHtml: (v: Record<string, any>): string => {
return `${v.cinsi}, ${v.marka}, ${v.model}`
},
style: { width: '20%' }
},
{
name: 'birimFiyat',
title: 'Birim Değeri (KDV+ÖTV Dahil)',
sort: true,
price: true,
computeHtml: (v: Record<string, any>): string => {
if (v.paraBirimi !== null)
return `${globalStore.toTrLocale(v.birimFiyat)} ${
v.paraBirimi.paraBirimiSembol
}`
else return globalStore.toTrLocale(v.birimFiyat)
},
style: { width: '10%' }
},
{
name: 'asilTalihliAdedi',
title: piyangoStore.isLotteryForCharity ? 'Talihli Adedi' : 'Asil Talihli Adedi',
sort: true
},
{
name: 'toplamDeger',
title: 'Toplam Değer',
sort: true,
price: true,
compute: (v: Record<string, any>): string => {
if (v.paraBirimi !== null)
return `${globalStore.toTrLocale(v.toplamDeger)} ${
v.paraBirimi.paraBirimiSembol
}`
else return globalStore.toTrLocale(v.toplamDeger)
}
}
])
const TableHeaderColumns = () =>{
if (!piyangoStore.isLotteryForCharity) {
ikramiyeTableHeader.value.push({
name: 'yedekTalihliAdedi',
title: 'Yedek Talihli Adedi',
sort: true
})
}
}
onBeforeMount(async () => {
piyangoIkramiyeStore.loaded = false
await piyangoServices.GetParaBirimleri()
TableHeaderColumns()
piyangoIkramiyeStore.loaded = true
})
watch(
() => piyangoStore.isLotteryForCharity,
() => {
TableHeaderColumns()
}
)
</script>

View File

@ -0,0 +1,54 @@
<template>
<div :class="['form-part']" id="display-irtibat">
<div class="form-part-title">
<h4>İrtibat Bilgileri</h4>
</div>
<div class="form-part-content" v-if="loaded">
<form-display
v-model="piyangoContactStore.contactData.adSoyad"
label="Adı ve Soyadı"
half />
<form-display v-model="piyangoContactStore.contactData.unvan" label="Ünvanı" half />
<form-display
half
v-model="piyangoContactStore.contactData.telefonNumarasi"
label="Telefon Numarası" />
<form-display
half
v-model="piyangoContactStore.contactData.faksNumarasi"
label="Faks Numarası" />
<form-display
half
v-model="piyangoContactStore.contactData.eposta"
label="E-posta adresi" />
</div>
</div>
</template>
<script setup lang="ts">
import { ref, onBeforeMount } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoContactStore } from '../../stores/piyangoContactStore'
const piyangoContactStore = usePiyangoContactStore()
const loaded = ref<boolean>(false)
const GetData = async () => {
loaded.value = false
let dt = await dataStore.dataGet(
'IrtibatBilgi/GetIrtibatBilgiCekilis/' + piyangoStore.selectedLottery
)
if (dt !== 'errorfalse') {
Object.assign(piyangoContactStore.contactData, dt)
}
setTimeout(()=>{
loaded.value = true
},30)
}
onBeforeMount(async () => {
await GetData()
})
</script>

View File

@ -0,0 +1,29 @@
<template>
<list-table-content
:tableHeader="tableHeader"
formTitle="İlan Edilecek Diğer Mecralar"
listText="Mecra"
addAction=""
:apiList="'Mecra/Cekilis/' + piyangoStore.selectedLottery"
page="form"
:isPreview="isPreview" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
export interface Props {
isPreview?: boolean
}
const props = withDefaults(defineProps<Props>(), { isPreview: false })
const tableHeader = ref<Record<string, any>>([
{
name: 'mecraAdi',
title: 'Mecra Adı',
sort: props.isPreview ? false : true
}
])
</script>

View File

@ -0,0 +1,39 @@
<template>
<div class="form-part">
<div class="form-part-title">
<h4>Piyango Resimleri</h4>
</div>
<div class="form-part-content">
<template v-for="(file, i) in fileList">
<file-list-item
:data="file"
onlyPreview
:editable="false"
:filePath="file.resimYolu" />
</template>
<div v-if="usersStore.isPanelUser && fileList.length === 0" class="form-inner-comment">
Eklenmiş resim bulunamadı.
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, onBeforeMount } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
const fileList = ref<Record<string,any>[]>([])
const GetData = async () => {
let dt = await dataStore.dataGet('CekilisResim/Cekilis/' + piyangoStore.selectedLottery)
if (dt !== 'errorfalse') fileList.value.splice(0, fileList.value.length, ...dt.data)
}
onBeforeMount(async () => {
await GetData()
})
</script>

View File

@ -0,0 +1,102 @@
<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

@ -0,0 +1,127 @@
<template>
<div :class="['form-part']" id="display-yardimamacli">
<div class="form-part-title">
<h4>Yardım Amaçlı Piyango Bilet Bilgileri</h4>
</div>
<div class="form-part-content" v-if="piyangoYardimAmacliStore.loaded">
<div class="list-wrapper">
<table
:class="[
'table-border table-colored table-list',
!piyangoYardimAmacliValidationStore.isFormValid ? 'invalid' : ''
]">
<thead>
<tr>
<th>
<div class="table-head-content">
<span></span>
</div>
</th>
<th>
<div class="table-head-content">
<span>Başlangıç Numarası</span>
</div>
</th>
<th>
<div class="table-head-content">
<span>Bitiş Numarası</span>
</div>
</th>
<th>
<div class="table-head-content">
<span>Basılacak Adet</span>
</div>
</th>
</tr>
</thead>
<tbody>
<template v-for="(rakam, i) in piyangoYardimAmacliStore.yardimAmacliRakamlar">
<tr
v-if="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBaslangic'
] !== null &&
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBitis'
] !== null &&
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamAdet'
] !== null
">
<td>{{ rakam.title }}</td>
<td>
<form-display
v-model="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBaslangic'
]
" />
</td>
<td>
<form-display
v-model="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBitis'
]
" />
</td>
<td>
<form-display
v-model="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamAdet'
]
" />
</td>
</tr>
</template>
<tr>
<td colspan="3" style="text-align:right"><strong>Toplam Basılacak Bilet:</strong></td>
<td>{{ globalStore.toTrLocale(piyangoYardimAmacliStore.toplamBilet) }}</td>
</tr>
</tbody>
</table>
<div
class="form-inner-comment alert-d"
v-if="!piyangoYardimAmacliValidationStore.isFormValid">
<template
v-for="msg in piyangoYardimAmacliValidationStore.biletInvalidMessages">
{{ msg }}
<br />
</template>
</div>
</div>
<div class="form-item"></div>
<form-display
v-model="piyangoYardimAmacliStore.piyangoYardimAmacliFormData.birimSatisFiyati"
label="Birim Satış Fiyatı (₺)" />
<form-display
v-model="piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimevi"
label="Basımevinin Adı" />
<form-display
v-model="piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimeviAdresi"
label="Basımevinin Adresi" />
</div>
</div>
</template>
<script setup lang="ts">
import { onBeforeMount } from 'vue'
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { usePiyangoYardimAmacliStore } from '../../stores/piyangoYardimAmacliStore'
const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore()
import { usePiyangoYardimAmacliValidationStore } from '../../validation/piyangoYardimAmacliValidationStore'
const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore()
import { usePiyangoYardimAmacliService } from '../../service/piyangoYardimAmacliService'
const piyangoYardimAmacliService = usePiyangoYardimAmacliService()
onBeforeMount(async () => {
await piyangoYardimAmacliService.GetYardimAmacliData()
piyangoYardimAmacliValidationStore.CheckBiletEmpty()
if (!piyangoYardimAmacliValidationStore.allBiletInvalid) {
piyangoYardimAmacliValidationStore.CheckBiletSatir()
}
})
</script>

View File

@ -0,0 +1,705 @@
<template>
<strong
style="
display: inline-block;
width: 100%;
font-size: 13pt;
margin-bottom: 12px;
text-align: center;
">
MİLLİ PİYANGO İDARESİ GENEL MÜDÜRLÜĞÜ
<br />
Bahisler ve Oyunlar Dairesi Başkanlığına
</strong>
<br />
<div style="display: inline-block; width: 100%; font-size: 10pt">
Şirketimizce/Kuruluşumuzca
<strong>{{ piyangoStore.lotteryData.amacpiyango }}</strong>
düzenlemek üzere, aşağıda belirtilen koşullarda piyango düzenlemek üzere gerekli iznin
verilmesi hususunda bilgilerinizi ve gereğini arz ederiz.
<br />
<br />
</div>
<strong style="font-size: 10pt; margin-bottom: 12px">
PİYANGO İLE İLGİLİ BİLGİLER
</strong>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}">
<tbody>
<tr>
<td colspan="2">
<strong style="font-size: 10pt; margin-bottom: 12px">
1- Piyangoyu Düzenleyenin
</strong>
</td>
</tr>
</tbody>
</table>
<template v-if="loaded">
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 18">
<tr>
<td colspan="2">
<strong>Adı/Soyadı:</strong>
{{
piyangoStore.duzenleyenData.unvan ||
piyangoStore.duzenleyenData.gercekAdi +
' ' +
piyangoStore.duzenleyenData.gercekSoyadi
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Ticari Ünvanı:</strong>
{{
piyangoStore.duzenleyenData.unvan ||
piyangoStore.duzenleyenData.gercekTicariUnvan
}}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 21">
<tr>
<td colspan="2">
<strong>Ünvanı:</strong>
{{
piyangoStore.duzenleyenData.unvan ||
piyangoStore.duzenleyenData.tuzelUnvan
}}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 22">
<tr>
<td colspan="2">
<strong>Ünvanı:</strong>
{{
piyangoStore.duzenleyenData.unvan ||
piyangoStore.duzenleyenData.dernekUnvan
}}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 26">
<tr>
<td colspan="2">
<strong>Ünvanı:</strong>
{{
piyangoStore.duzenleyenData.unvan || piyangoStore.duzenleyenData.kamuUnvan
}}
</td>
</tr>
</template>
<tr>
<td colspan="2">
<strong>Adresi:</strong>
{{ piyangoStore.duzenleyenData.adres }}
</td>
</tr>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 18">
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Oda Kayıt No/ Ticaret Sicil No:</strong>
{{ piyangoStore.duzenleyenData.gercekOdaKayitNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.gercekVergiDairesi }} /
{{ piyangoStore.duzenleyenData.gercekVergiNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>TCKN:</strong>
{{ piyangoStore.duzenleyenData.gercekTCKN }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 21">
<tr>
<td colspan="2">
<strong>Ticaret Sicil No:</strong>
{{ piyangoStore.duzenleyenData.tuzelSicilNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.tuzelVergiDairesi }} /
{{ piyangoStore.duzenleyenData.tuzelVergiNo }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 22">
<tr>
<td colspan="2">
<strong>Sicil No:</strong>
{{ piyangoStore.duzenleyenData.dernekSicilNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.dernekVergiDairesi }} /
{{ piyangoStore.duzenleyenData.dernekVergiNo }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 26">
<tr>
<td colspan="2">
<strong>Sicil No:</strong>
{{ piyangoStore.duzenleyenData.kamuSicilNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.kamuVergiDairesi }} /
{{ piyangoStore.duzenleyenData.kamuVergiNo }}
</td>
</tr>
</template>
<tr>
<td colspan="2">
<strong>İrtibat Kurulacak Kişi Adı Soyadı:</strong>
{{ customerIrtibatStore.customerIrtibatForm.firstName }}
{{ customerIrtibatStore.customerIrtibatForm.lastName }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>İrtibat Telefon Numarası:</strong>
{{ customerIrtibatStore.customerIrtibatForm.phone }}
</td>
</tr>
</tbody>
</table>
<template v-if="piyangoStore.lotteryData.baglisirketId !== null">
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
Piyangoyu Yürütenin:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>Ünvanı:</strong>
{{ piyangoStore.araciUyeData.sirketUnvan }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Adresi:</strong>
{{ piyangoStore.araciUyeData.adres }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.araciUyeData.sirketVergiDairesi }} /
{{ piyangoStore.araciUyeData.sirketVergiNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Ticaret Sicil No:</strong>
{{ piyangoStore.araciUyeData.sirketSicilNo }}
</td>
</tr>
</tbody>
</table>
</template>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
2- Kampanyanın:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td>
<strong>Kampanya Başlangıç Tarihi ve Saati:</strong>
<br />
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.baslangicTarihi,
pattern: 'dd-mm-yy-t'
})
}}
</td>
<td>
<strong>Kampanya Bitiş Tarihi ve Saati:</strong>
<br />
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.bitisTarihi,
pattern: 'dd-mm-yy-t'
})
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Kapsadığı Yerler:</strong>
{{
piyangoStore.lotteryData.kampsamIlStrList.length ===
globalDataStore.ilList.length
? 'Türkiye Geneli'
: piyangoStore.lotterySelectedProvience
}}
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
3-Çekilişe katılma şekil ve şartları:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
{{ piyangoStore.lotteryData.cekilisSartveSekilleri }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Katılımcı Listesinin İçeriği ve Hazırlanma Şekli:</strong>
{{ piyangoStore.lotteryData.katilimListesi }}
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
4-Çekilişin;
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>Tarihi ve saati:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.cekilisTarihi,
pattern: 'dd-mm-yy-t'
})
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>ık adresi:</strong>
{{
piyangoStore.lotteryData.adres +
' ' +
piyangoStore.lotteryData.il +
' ' +
piyangoStore.lotteryData.ilce
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Ne şekilde yapılacağı:</strong>
{{ piyangoStore.lotteryData.cekilisYontemi }}
<div
style="margin-top: 16px"
v-if="piyangoStore.lotteryData.cekilisYontemiId === 1">
<span v-for="txt in piyangoDataStore.fizikselTicariMessage">
{{ txt }}
<br />
</span>
</div>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
5-Çekiliş sonuçlarının ilan edileceği gazetenin:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>Adı:</strong>
{{ piyangoStore.lotteryData.ilanEdilecekGazete }}
</td>
</tr>
<tr>
<td>
<strong>Tarihi:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.ilantarihi,
pattern: 'dd-mm-yy'
})
}}
</td>
<td></td>
</tr>
<tr v-if="piyangoMecraStore.piyangoAllMecraData.length > 0">
<td colspan="2">
Ayrıca, çekiliş sonuçları
<strong>
<template v-for="(mecra, i) in piyangoMecraStore.piyangoAllMecraData">
{{ mecra.mecraAdi
}}{{ i !== piyangoMecraStore.piyangoAllMecraData.length - 1 ? ', ' : '' }}
</template>
</strong>
{{
piyangoMecraStore.piyangoAllMecraData.length > 1
? 'mecralarında'
: 'mecrasında'
}}
ilan edilecektir.
</td>
</tr>
<tr>
<td colspan="2">
Çekilişten sonra asil ve yedek talihlilerin adreslerine aynı anda taahhütlü
posta kanalıyla tebligat yapılacaktır.
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>6-Asil talihlilerin son başvuru tarihi:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.asilSonBasvuruTarihi,
pattern: 'dd-mm-yy'
})
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Yedek talihlilerin son başvuru tarihi:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.yedekSonBasvuruTarihi,
pattern: 'dd-mm-yy'
})
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>İkramiyelerin son teslim edilme/kullanma tarihleri:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.ikramiyeTeslimTarihi,
pattern: 'dd-mm-yy'
})
}}
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
7-Diğer hususlar:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<div>
<span v-for="txt in digerHususlar">
{{ txt }}
<br />
</span>
</div>
<div style="margin-top: 16px">
<span v-for="txt in piyangoDataStore.digerHusularTexts">
{{ txt }}
<br />
</span>
</div>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
8-Piyangoya konu ikramiyeler:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': ['10%', '30%', '15%', '15%', '15%', '15%'],'layout': 'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt"
v-if="piyangoIkramiyeStore.piyangoAllIkramiyeData.length > 0">
<tbody>
<tr>
<td><strong>Sıra No</strong></td>
<td><strong>Cinsi, Markası, Modeli</strong></td>
<td><strong>Birim Değeri (KDV+ÖTV Dahil)</strong></td>
<td>
<strong>Asil Talihli Adedi</strong>
</td>
<td><strong>Toplam Değer</strong></td>
<td><strong>Yedek Talihli Adedi</strong></td>
</tr>
<template v-for="(item, i) in piyangoIkramiyeStore.piyangoAllIkramiyeData">
<tr>
<td>{{ i + 1 }}</td>
<td>{{ `${item.cinsi}, ${item.marka}, ${item.model}` }}</td>
<td>
{{
item.paraBirimi !== null
? `${globalStore.toTrLocale(item.birimFiyat)} ${
item.paraBirimi.paraBirimiSembol
}`
: globalStore.toTrLocale(item.birimFiyat)
}}
</td>
<td>{{ item.asilTalihliAdedi }}</td>
<td>
{{
item.paraBirimi !== null
? `${globalStore.toTrLocale(item.toplamDeger)} ${
item.paraBirimi.paraBirimiSembol
}`
: globalStore.toTrLocale(item.toplamDeger)
}}
</td>
<td>
{{ item.yedekTalihliAdedi }}
</td>
</tr>
</template>
<tr>
<td colspan="3" style="text-align: right"><strong>TOPLAM:</strong></td>
<td>{{ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.asilTalihliAdedi }}</td>
<td>
{{
`${globalStore.toTrLocale(
piyangoIkramiyeStore.piyangoAllIkramiyeTotals.toplamDeger
)} ${piyangoIkramiyeStore.piyangoAllIkramiyeParaBirimi}`
}}
</td>
<td>{{ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.yedekTalihliAdedi }}</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '30%','20%'],'layout':'pdfTableLayoutNoLine'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td>
<strong>İrtibat Tel. No:</strong>
{{ piyangoContactStore.contactData.telefonNumarasi }}
</td>
<td></td>
<td>
Tarih:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/
</td>
</tr>
<tr>
<td>
<strong>İrtibat Faks No:</strong>
{{ piyangoContactStore.contactData.faksNumarasi }}
</td>
<td></td>
<td>İMZA/KAŞE</td>
</tr>
<tr>
<td>
<strong>İrtibat Kurulacak İlgilinin Adı/Soyadı:</strong>
{{ piyangoContactStore.contactData.adSoyad }}
</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</template>
</template>
<script setup lang="ts">
import { ref, onBeforeMount, computed } from 'vue'
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useGlobalDataStore } from '@/stores/globalDataStore'
const globalDataStore = useGlobalDataStore()
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoContactStore } from '../../stores/piyangoContactStore'
const piyangoContactStore = usePiyangoContactStore()
import { usePiyangoMecraStore } from '../../stores/piyangoMecraStore'
const piyangoMecraStore = usePiyangoMecraStore()
import { usePiyangoMecraService } from '../../service/piyangoMecraService'
const piyangoMecraService = usePiyangoMecraService()
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
const piyangoIkramiyeService = usePiyangoIkramiyeService()
import { useCustomerIrtibatStore } from '@/module/uyeler/stores/customerIrtibatStore'
const customerIrtibatStore = useCustomerIrtibatStore()
import { useCustomerIrtibatService } from '@/module/uyeler/service/customerIrtibatService'
const customerIrtibatService = useCustomerIrtibatService()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
const loaded = ref(false)
const digerHususlar = computed<string[]>(() => {
return piyangoStore.lotteryData.digerHususlar.split('\n')
})
onBeforeMount(async () => {
await piyangoMecraService.GetAllMecralar()
await customerIrtibatService.GetIrtibat(piyangoStore.duzenleyenData.id)
await piyangoIkramiyeService.GetAllIkramiyeler()
await dataStore.GetIlList()
setTimeout(() => {
loaded.value = true
}, 30)
})
</script>

View File

@ -0,0 +1,642 @@
<template>
<strong
style="
display: inline-block;
width: 100%;
font-size: 14pt;
margin-bottom: 12px;
text-align: center;
">
MİLLİ PİYANGO İDARESİ GENEL MÜDÜRLÜĞÜ
<br />
Bahisler ve Oyunlar Dairesi Başkanlığına
</strong>
<br />
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}">
<tbody>
<tr>
<td colspan="2">
<strong style="font-size: 10pt; margin-bottom: 12px">
1- Piyangoyu Düzenleyenin:
</strong>
</td>
</tr>
</tbody>
</table>
<template v-if="loaded">
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 18">
<tr>
<td colspan="2">
<strong>Adı/Soyadı:</strong>
{{ piyangoStore.duzenleyenData.gercekAdi }}
{{ piyangoStore.duzenleyenData.gercekSoyadi }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Ticari Ünvanı:</strong>
{{ piyangoStore.duzenleyenData.gercekTicariUnvan }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 21">
<tr>
<td colspan="2">
<strong>Ünvanı:</strong>
{{ piyangoStore.duzenleyenData.tuzelUnvan }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 22">
<tr>
<td colspan="2">
<strong>Ünvanı:</strong>
{{ piyangoStore.duzenleyenData.dernekUnvan }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 26">
<tr>
<td colspan="2">
<strong>Ünvanı:</strong>
{{ piyangoStore.duzenleyenData.kamuUnvan }}
</td>
</tr>
</template>
<tr>
<td colspan="2">
<strong>Adresi:</strong>
{{ piyangoStore.duzenleyenData.adres }}
</td>
</tr>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 18">
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Oda Kayıt No/ Ticaret Sicil No:</strong>
{{ piyangoStore.duzenleyenData.gercekOdaKayitNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.gercekVergiDairesi }} /
{{ piyangoStore.duzenleyenData.gercekVergiNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>TCKN:</strong>
{{ piyangoStore.duzenleyenData.gercekTCKN }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 21">
<tr>
<td colspan="2">
<strong>Ticaret Sicil No:</strong>
{{ piyangoStore.duzenleyenData.tuzelSicilNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.tuzelVergiDairesi }} /
{{ piyangoStore.duzenleyenData.tuzelVergiNo }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 22">
<tr>
<td colspan="2">
<strong>Sicil No:</strong>
{{ piyangoStore.duzenleyenData.dernekSicilNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.dernekVergiDairesi }} /
{{ piyangoStore.duzenleyenData.dernekVergiNo }}
</td>
</tr>
</template>
<template v-if="piyangoStore.duzenleyenData.basvuruTipId === 26">
<tr>
<td colspan="2">
<strong>Sicil No:</strong>
{{ piyangoStore.duzenleyenData.kamuSicilNo }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Bağlı Bulunduğu Vergi Dairesi/Numarası:</strong>
{{ piyangoStore.duzenleyenData.kamuVergiDairesi }} /
{{ piyangoStore.duzenleyenData.kamuVergiNo }}
</td>
</tr>
</template>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
2- Piyangonun Geçerli Olduğu Yerler:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
{{
piyangoStore.lotteryData.kampsamIlStrList.length ===
globalDataStore.ilList.length
? 'Türkiye Geneli'
: piyangoStore.lotterySelectedProvience
}}
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
3- Basılacak Biletlerin:
</strong>
</td>
</tr>
</tbody>
</table>
<table
data-pdfmake="{'widths': [ '31%', '23%' , '23%' , '23%' ],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<thead>
<tr>
<th></th>
<th>Başlangıç Numarası</th>
<th>Bitiş Numarası</th>
<th>Basılacak Adet</th>
</tr>
</thead>
<tbody>
<template v-for="(rakam, i) in piyangoYardimAmacliStore.yardimAmacliRakamlar">
<tr
v-if="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBaslangic'
] !== null &&
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBitis'
] !== null &&
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamAdet'
] !== null
">
<td>{{ rakam.title }}</td>
<td>
{{
globalStore.toTrLocale(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBaslangic'
]
)
}}
</td>
<td>
{{
globalStore.toTrLocale(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBitis'
]
)
}}
</td>
<td>
{{
globalStore.toTrLocale(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamAdet'
]
)
}}
</td>
</tr>
</template>
<tr>
<td colspan="3" style="text-align: right">
<strong>Toplam Basılacak Bilet:</strong>
</td>
<td>{{ globalStore.toTrLocale(piyangoYardimAmacliStore.toplamBilet) }}</td>
</tr>
<tr>
<td colspan="4">
<strong>Bilet Satış Fiyatı:</strong>
{{ piyangoYardimAmacliStore.piyangoYardimAmacliFormData.birimSatisFiyati }} ₺
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
4- Biletlerin Basımı
</strong>
</td>
</tr>
</tbody>
</table>
<table
data-pdfmake="{'widths': [ '50%', '50%' ],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>Basımevinin Adı:</strong>
{{ piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimevi }}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Basımevinin Adresi:</strong>
{{ piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimeviAdresi }}
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
5- Çekiliş Tarih, Saati ve Adresi:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>Tarihi ve saati:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.cekilisTarihi,
pattern: 'dd-mm-yy-t'
})
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Açık adresi:</strong>
{{
piyangoStore.lotteryData.adres +
' ' +
piyangoStore.lotteryData.il +
' ' +
piyangoStore.lotteryData.ilce
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>Ne şekilde yapılacağı:</strong>
{{ piyangoStore.lotteryData.cekilisYontemi }}
<div
style="margin-top: 16px"
v-if="piyangoStore.lotteryData.cekilisYontemiId === 1">
<span v-for="txt in piyangoDataStore.fizikselYardimMessage">
{{ txt }}
<br />
</span>
</div>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
6- İkramiye Kazananların İlanı:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>Adı:</strong>
{{ piyangoStore.lotteryData.ilanEdilecekGazete }}
</td>
</tr>
<tr>
<td>
<strong>Tarihi:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.ilantarihi,
pattern: 'dd-mm-yy'
})
}}
</td>
<td>
<strong>2. İlan Tarihi:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.ilantarihi2,
pattern: 'dd-mm-yy'
})
}}
</td>
</tr>
<tr v-if="piyangoMecraStore.piyangoAllMecraData.length > 0">
<td colspan="2">
Ayrıca, çekiliş sonuçları
<strong>
<template v-for="(mecra, i) in piyangoMecraStore.piyangoAllMecraData">
{{ mecra.mecraAdi
}}{{ i !== piyangoMecraStore.piyangoAllMecraData.length - 1 ? ', ' : '' }}
</template>
</strong>
{{
piyangoMecraStore.piyangoAllMecraData.length > 1
? 'mecralarında'
: 'mecrasında'
}}
ilan edilecektir.
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
7- Talihlilerin Başvuru Tarihi:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong>Talihlilerin son başvuru tarihi:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.asilSonBasvuruTarihi,
pattern: 'dd-mm-yy'
})
}}
</td>
</tr>
<tr>
<td colspan="2">
<strong>İkramiyelerin son teslim tarihi:</strong>
{{
dateStore.dateFormat({
date: piyangoStore.lotteryData.ikramiyeTeslimTarihi,
pattern: 'dd-mm-yy'
})
}}
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
8- Diğer Hususlar:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<div>
<span v-for="txt in digerHususlar">
{{ txt }}
<br />
</span>
</div>
<div style="margin-top: 16px">
<span v-for="txt in piyangoDataStore.digerHusularYardimAmacliTexts">
{{ txt }}
<br />
</span>
</div>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
class="table-no-line"
data-pdfmake="{'widths': [ '50%', '50%'],'layout':'pdfTableLayoutNoLine'}"
style="font-size: 10pt">
<tbody>
<tr>
<td colspan="2">
<strong class="title" style="font-size: 10pt; margin-bottom: 12px">
9-Piyangoya Konu İkramiyeler:
</strong>
</td>
</tr>
</tbody>
</table>
<table
cellspacing="0"
data-pdfmake="{'widths': ['10%', '45%', '15%', '15%', '15%'],'layout': 'pdfTableLayout'}"
style="margin-bottom: 12px; font-size: 10pt"
v-if="piyangoIkramiyeStore.piyangoAllIkramiyeData.length > 0">
<thead>
<tr>
<th><strong>Sıra No</strong></th>
<th><strong>Cinsi, Markası, Modeli</strong></th>
<th><strong>Birim Değeri (KDV+ÖTV Dahil)</strong></th>
<th>
<strong>Talihli Adedi</strong>
</th>
<th><strong>Toplam Değer</strong></th>
</tr>
</thead>
<tbody>
<template v-for="(item, i) in piyangoIkramiyeStore.piyangoAllIkramiyeData">
<tr>
<td>{{ i + 1 }}</td>
<td>{{ `${item.cinsi}, ${item.marka}, ${item.model}` }}</td>
<td>
{{
item.paraBirimi !== null
? `${globalStore.toTrLocale(item.birimFiyat)} ${
item.paraBirimi.paraBirimiSembol
}`
: globalStore.toTrLocale(item.birimFiyat)
}}
</td>
<td>{{ item.asilTalihliAdedi }}</td>
<td>
{{
item.paraBirimi !== null
? `${globalStore.toTrLocale(item.toplamDeger)} ${
item.paraBirimi.paraBirimiSembol
}`
: globalStore.toTrLocale(item.toplamDeger)
}}
</td>
</tr>
</template>
<tr>
<td colspan="3" style="text-align: right"><strong>TOPLAM:</strong></td>
<td>{{ piyangoIkramiyeStore.piyangoAllIkramiyeTotals.asilTalihliAdedi }}</td>
<td>
{{
`${globalStore.toTrLocale(
piyangoIkramiyeStore.piyangoAllIkramiyeTotals.toplamDeger
)} ${piyangoIkramiyeStore.piyangoAllIkramiyeParaBirimi}`
}}
</td>
</tr>
</tbody>
</table>
</template>
</template>
<script setup lang="ts">
import { ref, onBeforeMount, computed } from 'vue'
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useGlobalDataStore } from '@/stores/globalDataStore'
const globalDataStore = useGlobalDataStore()
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoContactStore } from '../../stores/piyangoContactStore'
const piyangoContactStore = usePiyangoContactStore()
import { usePiyangoMecraStore } from '../../stores/piyangoMecraStore'
const piyangoMecraStore = usePiyangoMecraStore()
import { usePiyangoMecraService } from '../../service/piyangoMecraService'
const piyangoMecraService = usePiyangoMecraService()
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
const piyangoIkramiyeService = usePiyangoIkramiyeService()
import { useCustomerIrtibatStore } from '@/module/uyeler/stores/customerIrtibatStore'
const customerIrtibatStore = useCustomerIrtibatStore()
import { useCustomerIrtibatService } from '@/module/uyeler/service/customerIrtibatService'
const customerIrtibatService = useCustomerIrtibatService()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
import { usePiyangoYardimAmacliStore } from '../../stores/piyangoYardimAmacliStore'
const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore()
const loaded = ref(false)
const digerHususlar = computed<string[]>(() => {
return piyangoStore.lotteryData.digerHususlar.split('\n')
})
onBeforeMount(async () => {
await piyangoMecraService.GetAllMecralar()
await customerIrtibatService.GetIrtibat(piyangoStore.duzenleyenData.id)
await piyangoIkramiyeService.GetAllIkramiyeler()
await dataStore.GetIlList()
loaded.value = true
})
</script>

View File

@ -0,0 +1,645 @@
<template>
<div class="form-part form-title" v-if="piyangoStore.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
</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-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>
</div>
<div class="form-part-content" v-if="loaded">
<lottery-states :piyangoAmac="piyangoStore.lotteryData.amacpiyangoId" />
<form-input
modelKey="cekilisBaslik"
v-model="piyangoStore.lotteryData.baslik"
required
label="Piyango Başlığı"
placeholder="Piyango Başlığı"
:invalidText="piyangoValidationStore.invalidTexts.baslik"
@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" />
<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>
<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" />
<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" />
<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" />
<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>
<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" />
<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>
<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-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>
</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 PanelPiyangoOnizleme from '../panel/PanelPiyangoOnizleme.vue'
import PanelPiyangoYardimAmacliOnizleme from '../panel/PanelPiyangoYardimAmacliOnizleme.vue'
import PanelWrapper from '@/components/PanelWrapper.vue'
import LotteryStates from '../content/LotteryStates.vue'
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
}
}
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
if (!piyangoStore.isNew) {
await GetDuzenleyen(piyangoStore.lotteryData.duzenleyenId)
piyangoStore.customerApproved = piyangoStore.duzenleyenData.islemTipi === 4
}
}
}
onBeforeMount(async () => {
if (route.name === 'PiyangoYeni') piyangoStore.isNew = true
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()
}
})
</script>

View File

@ -0,0 +1,123 @@
<template>
<div class="form-part">
<div class="form-part-title">
<h4>Gerekli Dokümanlar</h4>
<div class="form-part-title-buttons">
<icon-button
v-if="!usersStore.isPanelUser"
icon="plus"
class="ico-section ico-section-header-btn"
@click="AddNewDocument" />
</div>
</div>
<div class="form-part-content" v-if="piyangoDocumentStore.loaded">
<template v-if="piyangoDocumentStore.piyangoDocumentsList.length > 0">
<div
class="form-inner-comment waiting-d"
v-if="
piyangoDocumentStore.piyangoDocumentsList.length < 6 &&
piyangoStore.lotteryData.amacpiyangoId !== 3 &&
piyangoStore.lotteryApprove !== 12
">
Ön Kaydınız Kabul edilmiştir. Lütfen
<strong>imza sirküsü ve proforma faturayı</strong>
sisteme yükleyiniz.
</div>
<div
class="form-inner-comment waiting-d"
v-if="
piyangoStore.lotteryData.amacpiyangoId === 3 ||
piyangoStore.lotteryApprove === 12
">
Lütfen
<strong>imza sirkünüzü</strong>
sisteme yükleyiniz.
</div>
<template v-for="(file, i) in piyangoDocumentStore.piyangoDocumentsList">
<file-list-item
:data="file"
@click="EditDocument"
title="dokumanAdi"
:filePath="file.url"
:editable="piyangoStore.lotteryApprove === 3 || piyangoStore.lotteryApprove === 0" />
</template>
</template>
<template v-else>
<template
v-if="
!usersStore.isPanelUser &&
(piyangoStore.lotteryApprove === 0 || piyangoStore.lotteryApprove === 12) &&
piyangoDocumentStore.piyangoDocumentsList.length < 4
">
<div
class="form-inner-comment waiting-d"
v-if="
piyangoStore.lotteryData.amacpiyangoId === 3 ||
piyangoStore.lotteryApprove === 12
">
Lütfen
<strong>başvuru dilekçesi ve dekontunuzu</strong>
sisteme yükleyiniz.
</div>
<div class="form-inner-comment" v-else>
<span>
Eklenmiş dosya bulunamadı. Üstteki butonu kullanarak dosya ekleyebilirsiniz.
</span>
<div class="form-inner-comment waiting-d">
Piyango başvurusunun incelenebilmesi için piyangoyu düzenleyene ait
<strong>
Başvuru Dekontu, Vergi Levhası ve Başvuru bilgilerinin çıktısının
imzalanmış dökümanı
</strong>
sisteme yüklenmiş olmalıdır. Bilgilerinizi doldurduktan sonra Önizleme
butonuna tıklayarak formu indirebilirsiniz.
</div>
</div>
</template>
</template>
</div>
</div>
<panel-wrapper
v-if="piyangoDocumentStore.documentPanel"
v-model="piyangoDocumentStore.documentPanel"
:panel-title="piyangoDocumentStore.isUpdate ? 'Dokümanı Düzenle' : 'Doküman Ekle'">
<template #panelContent>
<panel-piyango-documents />
</template>
<template #footerButton>
<div class="button-c button-save" @click="piyangoDocumentService.SaveDocument">
{{ piyangoDocumentStore.isUpdate ? 'Kaydet' : 'Ekle' }}
</div>
</template>
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref, onBeforeMount } from 'vue'
import PanelPiyangoDocuments from '../panel/PanelPiyangoDocument.vue'
import PanelWrapper from '@/components/PanelWrapper.vue'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoDocumentStore } from '../../stores/piyangoDocumentStore'
const piyangoDocumentStore = usePiyangoDocumentStore()
import { usePiyangoDocumentService } from '../../service/piyangoDocumentService'
const piyangoDocumentService = usePiyangoDocumentService()
const AddNewDocument = () => {
piyangoDocumentStore.ResetForm()
piyangoDocumentStore.isUpdate = false
piyangoDocumentStore.documentPanel = true
}
const EditDocument = (d: object) => {
Object.assign(piyangoDocumentStore.piyangoDocumentForm, d)
piyangoDocumentStore.documentPanel = true
piyangoDocumentStore.isUpdate = true
}
onBeforeMount(async () => {
await piyangoDocumentService.GetDocumentList()
})
</script>

View File

@ -0,0 +1,138 @@
<template>
<div :class="['form-part', piyangoContactValidationStore.formChanged ? 'changed' : '']">
<div class="form-part-title">
<h4>İrtibat Bilgileri</h4>
<div class="form-part-title-buttons"></div>
</div>
<div class="form-part-content" v-if="loaded">
<form-input
v-model="piyangoContactStore.contactData.adSoyad"
label="Adı ve Soyadı"
half
modelKey="adSoyad"
required
minlength="2"
:invalidText="piyangoContactValidationStore.invalidTexts.adSoyad"
@keydown="validationStore.allowLettersWithKeysExtra($event, /^[ ]*$/)"
@keyup="OnKeyup" />
<form-input
v-model="piyangoContactStore.contactData.unvan"
label="Ünvanı"
half
modelKey="unvan"
required
minlength="2"
:invalidText="piyangoContactValidationStore.invalidTexts.unvan"
@keydown="validationStore.allowLettersWithKeysExtra($event, /^[ ]*$/)"
@keyup="OnKeyup" />
<form-input
half
v-model="piyangoContactStore.contactData.telefonNumarasi"
label="Telefon Numarası"
placeholder="Örn: 5555555555"
type="tel"
required
@keydown="validationStore.allowNumbersWithKeys"
maxlength="10"
minlength="10"
:invalidText="piyangoContactValidationStore.invalidTexts.telefonNumarasi"
modelKey="telefonNumarasi"
@keyup="OnKeyup" />
<form-input
half
v-model="piyangoContactStore.contactData.faksNumarasi"
label="Faks Numarası"
placeholder="Örn: 5555555555"
type="tel"
@keydown="validationStore.allowNumbersWithKeys"
maxlength="10"
minlength="10"
modelKey="faksNumarasi"
@keyup="OnKeyup" />
<form-input
half
v-model="piyangoContactStore.contactData.eposta"
label="E-posta adresi"
placeholder="Örn: adres@mail.com"
type="email"
:invalidText="piyangoContactValidationStore.invalidTexts.eposta"
modelKey="eposta" />
<div class="form-item" v-if="piyangoContactValidationStore.formChanged">
<button class="button-c button-save" @click="SaveData">Kaydet</button>
<button class="button-c button-cancel" @click="CancelSave">Vazgeç</button>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onBeforeMount } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoContactStore } from '../../stores/piyangoContactStore'
const piyangoContactStore = usePiyangoContactStore()
import { usePiyangoContactValidationStore } from '../../validation/piyangoContactValidationStore'
const piyangoContactValidationStore = usePiyangoContactValidationStore()
const isNew = ref<boolean>(false)
const loaded = ref<boolean>(false)
const OnKeyup = () => {
piyangoContactValidationStore.formChanged = true
}
const GetData = async () => {
loaded.value = false
let dt = await dataStore.dataGet(
'IrtibatBilgi/GetIrtibatBilgiCekilis/' + piyangoStore.selectedLottery
)
piyangoContactStore.ResetFormData()
if (dt !== 'errorfalse') {
Object.assign(piyangoContactStore.contactData, dt)
Object.assign(piyangoContactStore.safeContactData, dt)
} else {
Object.assign(piyangoContactStore.contactData, piyangoContactStore.safeContactData)
isNew.value = true
}
setTimeout(() => {
loaded.value = true
}, 30)
}
const SaveData = async () => {
if (piyangoContactValidationStore.FormCheck()) {
let res: any
if (isNew.value) {
piyangoContactStore.contactData.cekilisId = piyangoStore.selectedLottery
res = await dataStore.dataPost('IrtibatBilgi', {
data: piyangoContactStore.contactData
})
} else {
res = await dataStore.dataPut(
'IrtibatBilgi/' + piyangoContactStore.contactData.id,
{
data: piyangoContactStore.contactData
}
)
}
if (res !== 'errorfalse') {
GetData()
piyangoContactValidationStore.formChanged = false
}
}
}
const CancelSave = () => {
Object.assign(piyangoContactStore.contactData, piyangoContactStore.safeContactData)
piyangoContactValidationStore.formChanged = false
}
onBeforeMount(async () => {
piyangoContactStore.ResetFormData()
await GetData()
})
</script>

View File

@ -0,0 +1,67 @@
<template>
<list-table-content
:tableHeader="tableHeader"
:rowAction="EditMecra"
formTitle="İlan Edilecek Diğer Mecralar"
listText="Mecra"
:addAction="AddActionFunction()"
:apiList="'Mecra/Cekilis/' + piyangoStore.selectedLottery"
apiText="Mecra Listesi"
page="form"
v-model:refresh="piyangoMecraStore.refreshList" />
<panel-wrapper
v-if="piyangoMecraStore.mecraPanel"
v-model="piyangoMecraStore.mecraPanel"
:panel-title="piyangoMecraStore.isUpdate ? 'Mecra Düzenle' : 'Mecra Ekle'">
<template #panelContent>
<panel-piyango-mecra />
</template>
<template #footerButton>
<div class="button-c button-save" @click="piyangoMecraService.SaveMecra">
{{ piyangoMecraStore.isUpdate ? 'Kaydet' : 'Ekle' }}
</div>
</template>
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import PanelPiyangoMecra from '../panel/PanelPiyangoMecra.vue'
import PanelWrapper from '@/components/PanelWrapper.vue'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoMecraStore } from '../../stores/piyangoMecraStore'
const piyangoMecraStore = usePiyangoMecraStore()
import { usePiyangoMecraService } from '../../service/piyangoMecraService'
const piyangoMecraService = usePiyangoMecraService()
const tableHeader = ref<Record<string, any>>([
{
name: 'mecraAdi',
title: 'Mecra Adı',
sort: true
}
])
const AddActionFunction = (): any => {
if (usersStore.isPanelUser) {
return ''
} else {
return AddNewMecra as Function
}
}
const AddNewMecra = () => {
piyangoMecraStore.ResetForm()
piyangoMecraStore.isUpdate = false
piyangoMecraStore.mecraPanel = true
}
const EditMecra = (d: Record<string, any>) => {
Object.assign(piyangoMecraStore.piyangoMecraForm, d)
piyangoMecraStore.mecraPanel = true
piyangoMecraStore.isUpdate = true
}
</script>

View File

@ -0,0 +1,66 @@
<template>
<div class="form-part form-title">
<div class="form-title-buttons">
<div class="button-c button-save" @click="piyangoOnayService.SaveOnayDurum">
Kaydet
</div>
</div>
</div>
<div :class="['form-part', piyangoOnayValidationStore.formChanged ? 'changed' : '']">
<div class="form-part-title">
<h4>Onay Durumu</h4>
</div>
<div class="form-part-content" v-if="piyangoOnayStore.loaded">
<form-select
label="İşlem"
:listData="piyangoDataStore.piyangoOnayDurumlari"
listText="tipAdi"
listVal="islemId"
v-model="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId"
required
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId" />
<form-file
v-model="piyangoOnayStore.piyangoOnayForm.file"
elclass="panel-documents-item"
:invalidText="piyangoOnayValidationStore.invalidTexts.file" />
<form-textarea
v-model="piyangoOnayStore.piyangoOnayForm.aciklama"
:invalidText="piyangoOnayValidationStore.invalidTexts.aciklama"
label="Açıklama"
@keyup="OnKeyup" />
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onBeforeMount } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
const piyangoOnayStore = usePiyangoOnayStore()
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
import { usePiyangoOnayService } from '../../service/piyangoOnayService'
const piyangoOnayService = usePiyangoOnayService()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
import { usePiyangoServices } from '../../service/piyangoServices'
const piyangoServices = usePiyangoServices()
const OnKeyup = () => {
piyangoOnayValidationStore.formChanged = true
}
onBeforeMount(async () => {
piyangoOnayStore.ResetForm()
await piyangoServices.GetPiyangoOnayDurumList()
piyangoDataStore.RemoveOnayDurumIncelemeBekleniyor()
piyangoOnayStore.loaded = true
})
</script>

View File

@ -0,0 +1,38 @@
<template>
<list-table-content
:tableHeader="tableHeader"
formTitle="Onay Verecek Kişiler"
:apiList="'OnayDurumu/GetSonOnayDurumlari/' + piyangoStore.selectedLottery"
apiText="Piyango Onay Log Listesi"
page="form"
:search="false" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
const piyangoOnayStore = usePiyangoOnayStore()
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
const tableHeader = ref<Record<string, any>[]>([
{
name: 'kullaniciAdi',
title: 'Kişi',
style: { width: '40%' }
},
{
name: 'tarih',
title: 'Tarih',
compute: (v: Record<string, any>): string => {
return v.tarih === null ? '' : dateStore.dateFormat({ date: v.tarih })
}
},
{
name: 'sonDurum',
title: 'Durum'
}
])
</script>

View File

@ -0,0 +1,88 @@
<template>
<list-table-content
v-if="loaded"
:tableHeader="tableHeader"
formTitle="Piyango Onay Logları"
listText="Kayıt"
:apiList="'OnayDurumu/GetSonOnayDurumlariList/' + piyangoStore.selectedLottery"
apiText="Piyango Onay Log Listesi"
page="form"
:refresh="piyangoOnayStore.refreshList" />
</template>
<script setup lang="ts">
import { ref,onBeforeMount,computed } from 'vue'
import axios from 'axios'
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
const piyangoOnayStore = usePiyangoOnayStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
import { usePiyangoServices } from '../../service/piyangoServices'
const piyangoServices = usePiyangoServices()
const loaded = ref<boolean>(false)
const piyangoOnayDurumlari = computed<Record<string, any>[]>(() => {
return piyangoDataStore.piyangoOnayDurumlari
})
const tableHeader = ref<Record<string, any>[]>([
{
name: 'tarih',
title: 'Tarih',
compute: (v: Record<string, any>): string => {
return v.tarih === null
? ''
: dateStore.dateFormat({ pattern: 'dd-mm-yy', date: v.tarih })
},
sort: true,
filter: {
type: 'date',
range: true
}
},
{
name: 'kisiAdi',
title: 'Kişi',
sort: true,
style: { width: '20%' }
},
{
name: 'onayDurumuIslemTipiAdi',
title: 'İşlem',
sort: true,
filter: {
type: 'select',
data: piyangoOnayDurumlari,
listVal: 'id',
listText: 'tipAdi',
filterId: 'onayDurumuIslemTipiId'
}
},
{
name: 'aciklama',
title: 'Açıklama',
sort: true,
style: { width: '30%' }
},
{
dosyaUrl: 'aciklama',
title: 'Dosya',
computeHtml: (v: Record<string, any>) => {
if (v.dosyaUrl !== null && v.dosyaUrl !== undefined) {
return globalStore.TableCellDocument(v.dosyaUrl)
}
},
style: { width: '20%' }
}
])
onBeforeMount(async () => {
loaded.value = true
})
</script>

View File

@ -0,0 +1,135 @@
<template>
<div class="form-part">
<div class="form-part-title">
<h4>Piyango Resimleri</h4>
</div>
<div class="form-part-content">
<template v-for="(file, i) in fileList">
<file-list-item
:data="file"
@click="EditImage"
onlyPreview
:filePath="file.resimYolu" />
</template>
<div
class="form-item form-item-picture clickable"
@click="AddNewImage"
v-if="!usersStore.isPanelUser">
<div class="image-c">
<i class="ico-c">
<svg>
<use href="@/assets/images/icons.svg#plus"></use>
</svg>
</i>
</div>
</div>
<div v-if="usersStore.isPanelUser && fileList.length === 0" class="form-inner-comment">
Eklenmiş resim bulunamadı.
</div>
</div>
</div>
<panel-wrapper
v-if="picturePanel"
v-model="picturePanel"
:panel-title="isUpdate ? 'Piyango Resmi Düzenle/Değiştir' : 'Piyango Resmi Ekle'">
<template #panelContent>
<panel-piyango-pictures />
</template>
<template #footerButton>
<div class="button-c button-save" @click="FileUpload">
{{ isUpdate ? 'Kaydet' : 'Ekle' }}
</div>
</template>
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref, onBeforeMount } from 'vue'
import PanelPiyangoPictures from '../panel/PanelPiyangoPictures.vue'
import PanelWrapper from '@/components/PanelWrapper.vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
const picturePanel = ref<boolean>(false)
const isUpdate = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
interface IFileList {
[key: string]: any
}
const fileList = ref<IFileList[]>([] as IFileList[])
const AddNewImage = () => {
dataStore.panelData = {
cekilisId: piyangoStore.selectedLottery,
isKapak: false
}
picturePanel.value = true
}
const EditImage = (d: object) => {
dataStore.panelData = d
picturePanel.value = true
isUpdate.value = true
}
const GetData = async () => {
let dt = await dataStore.dataGet('CekilisResim/Cekilis/' + piyangoStore.selectedLottery)
if (dt !== 'errorfalse') fileList.value.splice(0, fileList.value.length, ...dt.data)
}
const FormCheck = (): boolean => {
if (dataStore.panelData.file === undefined || dataStore.panelData.file === null) {
validationStore.panelInvalidText.file = 'Bir dosya seçmelisiniz'
isFormValid.value = false
} else delete validationStore.panelInvalidText.file
if (!validationStore.checkEmpty(dataStore.panelData.file)) {
let fileType: string = globalStore.FileType(dataStore.panelData.file.name)
if (!globalStore.imageFormats.includes(fileType.toLowerCase())) {
validationStore.panelInvalidText.file = `Sadece Resim dosyası yükleyebilirsiniz. Lütfen ${globalStore.imageFormats} formatındaki dosyaları yükleyin`
isFormValid.value = false
}
}
return isFormValid.value
}
const FileUpload = async () => {
if (FormCheck()) {
const formData = new FormData()
formData.append('file', dataStore.panelData.file)
formData.append('isKapak', dataStore.panelData.isKapak)
formData.append('cekilisId', String(piyangoStore.selectedLottery))
let dt: any
if (!isUpdate.value) {
dt = await dataStore.dataPost('CekilisResim/', {
data: formData,
headers: { 'Content-Type': 'multipart/form-data' }
})
} else {
dt = await dataStore.dataPut('CekilisResim/' + dataStore.panelData.id, {
data: formData,
headers: { 'Content-Type': 'multipart/form-data' }
})
}
if (dt !== 'errorfalse') {
await GetData()
picturePanel.value = false
isUpdate.value = false
}
}
}
onBeforeMount(async () => {
await GetData()
})
</script>

View File

@ -0,0 +1,135 @@
<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

@ -0,0 +1,44 @@
<template>
<div class="form-part form-title">
<div class="form-title-buttons">
<div class="button-c button-save" @click="SendForApprove">Onaya Gönder</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onBeforeMount } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
const formData = reactive<Record<string,any>>({
onayDurumuIslemTipiId: 8,
onayCekilisId: piyangoStore.selectedLottery,
kisiId: usersStore.userId,
aciklama: '',
file:''
})
const SendForApprove = async () => {
let form: any
let dataForm = new FormData()
dataForm.append('onayDurumuIslemTipiId', formData.onayDurumuIslemTipiId)
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
dataForm.append('kisiId', String(usersStore.userId))
dataForm.append('file', formData.file)
dataForm.append('aciklama', formData.aciklama)
form = await dataStore.dataPost('OnayDurumu/', {
data: dataForm,
headers: { 'Content-Type': 'multipart/form-data' },
toast: { toast: 'Başvurunuz Onay için Gönderildi', type: 'success' }
})
if (form !== 'errorfalse') {
piyangoStore.lotteryApprove = formData.onayDurumuIslemTipiId
}
}
</script>

View File

@ -0,0 +1,147 @@
<template>
<div
:class="[
'form-part',
piyangoYardimAmacliValidationStore.formChanged ? 'changed' : ''
]">
<div class="form-part-title">
<h4>Yardım Amaçlı Piyango Bilet Bilgileri</h4>
</div>
<div class="form-part-content" v-if="piyangoYardimAmacliStore.loaded">
<div class="list-wrapper">
<table
:class="[
'table-border table-colored table-list',
piyangoYardimAmacliValidationStore.allBiletInvalid ? 'invalid' : ''
]">
<thead>
<tr>
<th style="width:25%;">
<div class="table-head-content">
<span></span>
</div>
</th>
<th style="width:25%;">
<div class="table-head-content">
<span>Başlangıç Numarası</span>
</div>
</th>
<th style="width:25%;">
<div class="table-head-content">
<span>Bitiş Numarası</span>
</div>
</th>
<th style="width:25%;">
<div class="table-head-content">
<span>Basılacak Adet</span>
</div>
</th>
</tr>
</thead>
<tbody>
<template v-for="(rakam, i) in piyangoYardimAmacliStore.yardimAmacliRakamlar">
<tr>
<td>{{ rakam.title }}</td>
<td>
<form-input
:modelKey="rakam.prefix + 'RakamBaslangic'"
v-model="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBaslangic'
]
"
:invalidText="piyangoYardimAmacliValidationStore.invalidTexts[rakam.prefix + 'RakamBaslangic']"
@keyup="piyangoYardimAmacliStore.CalculateToplamBilet(rakam)"
@keydown="validationStore.allowNumbersWithKeys"
:minlength="rakam.maxl"
:maxlength="rakam.maxl" />
</td>
<td>
<form-input
modelKey="ucRakamBitis"
v-model="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamBitis'
]
"
:invalidText="piyangoYardimAmacliValidationStore.invalidTexts[rakam.prefix + 'RakamBitis']"
@keyup="piyangoYardimAmacliStore.CalculateToplamBilet(rakam)"
@keydown="validationStore.allowNumbersWithKeys"
:maxlength="rakam.maxl"
:minlength="rakam.maxl" />
</td>
<td>
<form-input
:modelKey="rakam.prefix + 'RakamAdet'"
v-model="
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
rakam.prefix + 'RakamAdet'
]
"
:invalidText="piyangoYardimAmacliValidationStore.invalidTexts[rakam.prefix + 'RakamAdet']"
disabled />
</td>
</tr>
</template>
<tr>
<td colspan="3" style="text-align:right"><strong>Toplam Basılacak Bilet:</strong></td>
<td>{{ globalStore.toTrLocale(piyangoYardimAmacliStore.toplamBilet) }}</td>
</tr>
</tbody>
</table>
<div class="form-item" v-if="piyangoYardimAmacliValidationStore.allBiletInvalid">
<span class="form-item-alert">En az bir satır bilet bilgisi başlangıç ve bitiş numaraları ile girmelisiniz.</span>
</div>
</div>
<div class="form-item"></div>
<form-input
modelKey="birimSatisFiyati"
v-model="piyangoYardimAmacliStore.piyangoYardimAmacliFormData.birimSatisFiyati"
required
label="Birim Satış Fiyatı (₺)"
:invalidText="piyangoYardimAmacliValidationStore.invalidTexts.birimSatisFiyati"
@keydown="validationStore.allowNumbersWithKeys"
@keyup="OnKeyup" />
<form-input
modelKey="basimevi"
v-model="piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimevi"
required
label="Basımevinin Adı"
:invalidText="piyangoYardimAmacliValidationStore.invalidTexts.basimevi"
@keyup="OnKeyup" />
<form-textarea
modelKey="basimeviAdresi"
v-model="piyangoYardimAmacliStore.piyangoYardimAmacliFormData.basimeviAdresi"
required
label="BasımevininAdresi"
:invalidText="piyangoYardimAmacliValidationStore.invalidTexts.basimeviAdresi"
@keyup="OnKeyup" />
<div class="form-item" v-if="piyangoYardimAmacliValidationStore.formChanged">
<button class="button-c button-save" @click="piyangoYardimAmacliService.SaveYardimAmacliForm">Kaydet</button>
<button class="button-c button-cancel" @click="piyangoYardimAmacliStore.ResetFormData">Vazgeç</button>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { onBeforeMount } from 'vue'
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePiyangoYardimAmacliStore } from '../../stores/piyangoYardimAmacliStore'
const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore()
import { usePiyangoYardimAmacliValidationStore } from '../../validation/piyangoYardimAmacliValidationStore'
const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore()
import { usePiyangoYardimAmacliService } from '../../service/piyangoYardimAmacliService'
const piyangoYardimAmacliService = usePiyangoYardimAmacliService()
const OnKeyup = () => {
piyangoYardimAmacliValidationStore.formChanged = true
}
onBeforeMount(async () => {
await piyangoYardimAmacliService.GetYardimAmacliData()
})
</script>

View File

@ -0,0 +1,255 @@
<template>
<div class="form-part form-title">
<div v-if="isGenelYetkili" class="form-inner-comment alert-d">
Bu piyangoda yetkili değilsiniz
</div>
<div class="form-title-buttons" v-if="!isGenelYetkili">
<button class="button-c button-save" @click="SaveForm">Kaydet</button>
</div>
</div>
<div :class="['form-part', formChanged ? 'changed' : '']" v-if="loaded">
<div class="list-wrapper">
<table class="table-border table-colored table-list">
<thead>
<tr>
<th style="width: 20%">
<div class="table-head-content">
<span>Birim</span>
</div>
</th>
<th>
<div class="table-head-content">
<span>Yetkili</span>
</div>
</th>
</tr>
</thead>
<tbody>
<template v-for="(row, i) in yetkiTable">
<tr>
<td>{{ row.title }}</td>
<td class="table-cell-flx-row">
<form-select
half
:disabled="YetkiliDisabled(row)"
disabledClass="disabled-show-name"
v-model="formData['onayverecekkisi' + row.id + 'birimId']"
:listData="appUserUnitStore.appUserUnits"
:extraData="row.id"
listVal="id"
listText="birimAdi"
:modelKey="'onayverecekkisi' + row.id + 'birimId'"
@change="ChangeBirim"
:invalidText="invalidTexts['onayverecekkisi' + row.id + 'birimId']">
<template #activator="data">
{{
data.activatorData !== undefined &&
Object.keys(data.activatorData).length > 0 &&
formData['onayverecekkisi' + row.id + 'birimId'] !== null &&
formData['onayverecekkisi' + row.id + 'birimId'] !== 0
? data.activatorData.birimAdi
: YetkiliDisabled(row) &&
(formData['onayverecekkisi' + row.id + 'birimId'] === null ||
formData['onayverecekkisi' + row.id + 'birimId'] === 0)
? 'Henüz yetkili ataması yapılmamış'
: 'Lütfen seçim yapınız'
}}
</template>
</form-select>
<form-select
half
:view="localView"
:extraData="row.view"
v-model="formData['onayverecekkisi' + row.id + 'Id']"
:listData="yetkiliLists['list' + row.id]"
listVal="id"
:disabled="IsDisabled(row)"
disabledClass="disabled-show-name"
listText="ad"
:modelKey="'onayverecekkisi' + row.id + 'Id'"
:invalidText="invalidTexts['onayverecekkisi' + row.id + 'Id']">
<template #activator="data">
{{
data.activatorData !== undefined &&
Object.keys(data.activatorData).length > 0 &&
formData['onayverecekkisi' + row.id + 'Id'] !== null
? data.activatorData.ad +
' ' +
data.activatorData.soyad +
' - ' +
data.activatorData.kullaniciGorevi
: IsDisabled(row) &&
(formData['onayverecekkisi' + row.id + 'Id'] === null ||
formData['onayverecekkisi' + row.id + 'Id'] === 0)
? 'Henüz yetkili ataması yapılmamış'
: 'Lütfen seçim yapınız'
}}
</template>
<template #option="data">
{{
data.optionData.ad +
' ' +
data.optionData.soyad +
' - ' +
data.optionData.kullaniciGorevi
}}
</template>
</form-select>
</td>
</tr>
</template>
</tbody>
</table>
</div>
</div>
</template>
<script setup lang="ts">
import { onBeforeMount, ref, reactive, computed } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { useAppUserUnitStore } from '@/module/kullanicilar/stores/appUserUnitStore'
const appUserUnitStore = useAppUserUnitStore()
import { useAppUserUnitService } from '@/module/kullanicilar/service/appUserUnitService'
const appUserUnitService = useAppUserUnitService()
const formChanged = ref<boolean>(false)
const loaded = ref<boolean>(false)
const isNew = ref<boolean>(true)
const yetkiTable = ref<Record<string, any>[]>([
{
title: 'Şube Müdürü',
key: 'birimAdi',
id: 1,
view: 2,
edit: [1]
},
{
title: 'Şef',
id: 2,
view: 4,
edit: [1, 2]
},
{
title: 'Memur (VHKİ)',
id: 3,
view: 3,
edit: [1, 2, 4]
}
])
const formData = reactive<Record<string, any>>({
onayverecekkisi1Id: null,
onayverecekkisi2Id: null,
onayverecekkisi3Id: null,
onayverecekkisi1birimId: null,
onayverecekkisi2birimId: null,
onayverecekkisi3birimId: null,
cekilisId: piyangoStore.selectedLottery
})
const yetkiliLists = reactive<Record<string, any>>({})
const invalidTexts = ref<Record<string, any>>({})
const localView = (data: any, id: any): boolean => {
return data.kullaniciGorevId === id
}
const ChangeBirim = async (
e: Event,
d: number,
itm: Record<string, any>,
ext: number
) => {
yetkiliLists['list' + ext] = [] as Record<string, any>[]
yetkiliLists['list' + ext] = await GetUserList(d)
}
const isGenelYetkili = computed<boolean>(() => {
return (
usersStore.userPosition !== 1 &&
usersStore.userId !== formData.onayverecekkisi1Id &&
usersStore.userId !== formData.onayverecekkisi2Id &&
usersStore.userId !== formData.onayverecekkisi3Id
)
})
const IsDisabled = (row: Record<string, any>): boolean => {
return yetkiliLists['list' + row.id] === undefined || YetkiliDisabled(row) || isGenelYetkili.value
}
const YetkiliDisabled = (row: Record<string, any>): boolean => {
return !row.edit.includes(usersStore.userPosition) || isGenelYetkili.value
}
const GetUserList = async (id: number) => {
if (id !== null) {
let data = await dataStore.dataGet('Auth/getuserlistBirim/' + id, {
params: { pageNumber: 0 }
})
return data.data
} else {
return []
}
}
const GetData = async () => {
let data = await dataStore.dataGet(
'OnayCekilis/Cekilis/' + piyangoStore.selectedLottery
)
if (data !== 'errorfalse') {
Object.assign(formData, data.data)
if (
formData.onayverecekkisi1Id !== null ||
formData.onayverecekkisi2Id !== null ||
formData.onayverecekkisi3Id !== null
)
isNew.value = false
CreateYetkiTable()
}
}
const CreateYetkiTable = async () => {
await yetkiTable.value.forEach(async (itm: Record<string, any>, i: number) => {
if (yetkiliLists['list' + itm.id] === undefined) {
yetkiliLists['list' + itm.id] = []
yetkiliLists['list' + itm.id] = await GetUserList(
formData['onayverecekkisi' + itm.id + 'birimId']
)
}
})
loaded.value = true
}
const SaveForm = async () => {
let res: any
let inData = Object.assign({}, formData)
if (isNew.value) {
delete inData.id
res = await dataStore.dataPost('OnayCekilis/', {
data: inData,
toast: { toast: 'Yetkilendirmeler başarıyla kaydedildi.', type: 'success' }
})
} else {
res = await dataStore.dataPut('OnayCekilis/' + formData.cekilisId, {
data: inData,
toast: { toast: 'Yetkilendirmeler başarıyla kaydedildi.', type: 'success' }
})
}
if (res !== 'errorfalse') {
piyangoStore.lotteryYetkiRefresh = true
GetData()
}
}
const RemoveAccountingUnit = () =>{
let ind = appUserUnitStore.appUserUnits.findIndex((p) => p.id === 6)
if (ind >= 0) appUserUnitStore.appUserUnits.splice(ind, 1)
}
onBeforeMount(async () => {
await appUserUnitService.GetAppUserUnitList()
RemoveAccountingUnit()
await GetData()
})
</script>

View File

@ -0,0 +1,40 @@
<template>
<list-table-content
:tableHeader="tableHeader"
formTitle="Yetklendirme Logları"
listText="Kayıt"
:apiList="'CekilisAtamaLog/Cekilis/' + piyangoStore.selectedLottery"
apiText="Çekiliş Yetkilendirme Log Listesi"
page="form"
:refresh="piyangoStore.lotteryYetkiRefresh" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
const tableHeader = ref<Record<string, any>>([
{
name: 'tarih',
title: 'Tarih',
compute: (v: Record<string, any>): string => {
return dateStore.dateFormat({ pattern: 'dd-mm-yy', date: v.tarih })
},
sort: true,
style: { width: '20%' }
},
{
name: 'islem',
title: 'İşlem',
sort: true
},
{
name: 'islemiYapan',
title: 'İşlemi Yapan',
sort: true,
style: { width: '20%' }
}
])
</script>

View File

@ -0,0 +1,20 @@
<template>
<form-input
v-model="piyangoDocumentStore.piyangoDocumentForm.dokumanAdi"
label="Dosya Başlığı"
modelKey="dokumanAdi"
minlength="2"
:invalidText="piyangoDocumentValidationStore.invalidTexts.dokumanAdi" />
<form-file
v-model="piyangoDocumentStore.piyangoDocumentForm.dosya"
elclass="panel-documents-item"
:invalidText="piyangoDocumentValidationStore.invalidTexts.dosya" />
</template>
<script setup lang="ts">
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePiyangoDocumentStore } from '../../stores/piyangoDocumentStore'
const piyangoDocumentStore = usePiyangoDocumentStore()
import { usePiyangoDocumentValidationStore } from '../../validation/piyangoDocumentValidationStore'
const piyangoDocumentValidationStore = usePiyangoDocumentValidationStore()
</script>

View File

@ -0,0 +1,78 @@
<template>
<form-input
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.cinsi"
label="Cinsi"
modelKey="cinsi"
minlength="2"
:invalidText="piyangoIkramiyeValidationStore.invalidTexts.cinsi" />
<form-input
required
modelKey="marka"
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.marka"
:invalidText="piyangoIkramiyeValidationStore.invalidTexts.marka"
label="Marka" />
<form-input
modelKey="model"
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.model"
:invalidText="piyangoIkramiyeValidationStore.invalidTexts.model"
label="Model" />
<form-input
required
half
modelKey="birimFiyat"
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.birimFiyat"
:invalidText="piyangoIkramiyeValidationStore.invalidTexts.birimFiyat"
label="KDV+ÖTV Dahil Birim Değeri"
@keydown="validationStore.allowPrice"
@keyup="piyangoIkramiyeStore.CalculateToplamDeger" />
<form-select
label="Para Birimi"
half
:listData="piyangoDataStore.paraBirimleri"
listVal="id"
listText="paraBirimiSembol"
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.paraBirimiId"
required
:invalidText="piyangoIkramiyeValidationStore.invalidTexts.paraBirimiId" />
<form-input
required
modelKey="asilTalihliAdedi"
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.asilTalihliAdedi"
:invalidText="piyangoIkramiyeValidationStore.invalidTexts.asilTalihliAdedi"
:label="piyangoStore.isLotteryForCharity ? 'Talihli Adedi' : 'Asıl Talihli Adedi'"
@keydown="validationStore.allowNumbersWithKeys"
@keyup="piyangoIkramiyeStore.CalculateToplamDeger" />
<form-input
v-if="!piyangoStore.isLotteryForCharity"
required
modelKey="yedekTalihliAdedi"
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.yedekTalihliAdedi"
:invalidText="piyangoIkramiyeValidationStore.invalidTexts.yedekTalihliAdedi"
label="Yedek Talihli Adedi"
@keydown="validationStore.allowNumbersWithKeys" />
<form-input
disabled
modelKey="toplamDeger"
v-model="piyangoIkramiyeStore.piyangoIkramiyeForm.toplamDeger"
label="Toplam Değer" />
</template>
<script setup lang="ts">
import { onBeforeMount } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
const piyangoDataStore = usePiyangoDataStore()
import { usePiyangoServices } from '../../service/piyangoServices'
const piyangoServices = usePiyangoServices()
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
import { usePiyangoIkramiyeValidationStore } from '../../validation/piyangoIkramiyeValidationStore'
const piyangoIkramiyeValidationStore = usePiyangoIkramiyeValidationStore()
onBeforeMount(async () => {
await piyangoServices.GetParaBirimleri()
})
</script>

View File

@ -0,0 +1,64 @@
<template>
<form-select
v-model="piyangoItirazStore.piyangoItirazForm.surecTipiId"
:listData="itirazSurecTipi"
listVal="id"
listText="deger"
modelKey="surecTipiId"
label="Süreç"
:invalidText="piyangoItirazValidationStore.invalidTexts.surecTipiId"
required />
<form-select
v-model="piyangoItirazStore.piyangoItirazForm.durum"
:listData="itirazDurumTipi"
listVal="id"
listText="deger"
modelKey="durum"
label="Durum"
:invalidText="piyangoItirazValidationStore.invalidTexts.durum"
required />
<form-date
v-model="piyangoItirazStore.piyangoItirazForm.itirazTarihi"
label="İtiraz Tarihi"
modelKey="itirazTarihi"
:invalidText="piyangoItirazValidationStore.invalidTexts.itirazTarihi"
required />
<form-input
required
modelKey="itirazEden"
v-model="piyangoItirazStore.piyangoItirazForm.itirazEden"
:invalidText="piyangoItirazValidationStore.invalidTexts.itirazEden"
label="İtiraz Eden Kişi/Kurum" />
<form-textarea
required
modelKey="aciklama"
v-model="piyangoItirazStore.piyangoItirazForm.aciklama"
:invalidText="piyangoItirazValidationStore.invalidTexts.aciklama"
label="Açıklama" />
<form-file
modelKey="dosya"
elclass="panel-documents-item"
v-model="piyangoItirazStore.piyangoItirazForm.dosya"
:invalidText="piyangoItirazValidationStore.invalidTexts.dosya"
label="İlgili Belge" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { usePiyangoItirazStore } from '../../stores/piyangoItirazStore'
const piyangoItirazStore = usePiyangoItirazStore()
import { usePiyangoItirazValidationStore } from '../../validation/piyangoItirazValidationStore'
const piyangoItirazValidationStore = usePiyangoItirazValidationStore()
const itirazSurecTipi = ref<Record<string, any>[]>([
{ id: 1, deger: 'İtiraz/Şikayet' },
{ id: 2, deger: 'Kurum Cevap Ekle' },
{ id: 3, deger: 'İtiraz/Şikayet Eden Cevap Ekle' }
])
const itirazDurumTipi = ref<Record<string, any>[]>([
{ id: 1, deger: 'Kurum/Kişiden Cevap Bekleniyor' },
{ id: 2, deger: 'İtiraz Edenden Cevap Bekleniyor' },
{ id: 3, deger: 'İtiraz Eden Lehine Sonuçlandı' },
{ id: 3, deger: 'Kişi/Kurum Lehine Sonuçlandı' }
])
</script>

View File

@ -0,0 +1,419 @@
<template>
<template
v-if="
(piyangoStore.lotteryDrawState || today >= ilanTarihi) &&
loaded &&
piyangoStore.lotteryApprove === 4 &&
piyangoStore.lotteryData.cekilisYontemiId === 1 &&
!usersStore.isPanelUser
">
<div class="panel-header">
<h3>İkramiye Seçimi</h3>
<button
v-if="
(piyangoKatilimciStore.piyangoKatilimciUserFormData.asilTalihli ||
piyangoKatilimciStore.piyangoKatilimciUserFormData.asilTalihli) &&
piyangoKatilimciStore.piyangoKatilimciUserFormData.ikramiyeId !== null
"
class="button-c button-alert"
@click="piyangoKatilimciStore.ResetTalihli">
Talihli İptal Et
</button>
</div>
<div class="form-item">
<form-radio
@change="TalihliChanged('asil')"
group="talihli"
label="Asil Talihli"
half
:val="true"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.asilTalihli"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.asilTalihli" />
<form-radio
@change="TalihliChanged('yedek')"
group="talihli"
label="Yedek Talihli"
half
:val="true"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.yedekTalihli"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.yedekTalihli
" />
</div>
<form-select
@change="FormChanged"
modelKey="ikramiyeId"
clearable
label="Kazandığı İkramiye"
:listData="piyangoIkramiyeStore.piyangoAllIkramiyeData"
listText="amacAdi"
listVal="id"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.ikramiyeId"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.ikramiyeId">
<template #activator="data">
{{
data.activatorData !== undefined &&
Object.keys(data.activatorData).length > 0 &&
piyangoKatilimciStore.piyangoKatilimciUserFormData.ikramiyeId !== 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>
</template>
<template
v-if="
usersStore.isPanelUser ||
(!usersStore.isPanelUser && !piyangoKatilimciStore.isNewKatilimci)
">
<form-display
v-if="piyangoKatilimciStore.piyangoKatilimciUserFormData.asilTalihli"
modelText="Asil Talihli" />
<form-display
v-if="piyangoKatilimciStore.piyangoKatilimciUserFormData.yedekTalihli"
modelText="Yedek Talihli" />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.adi"
label="Adı"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.adi" />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.soyadi"
label="Soyadı"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.soyadi" />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.eposta"
label="E-posta adresi"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.eposta" />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.sifreCode"
label="Katılım Kodu"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.sifreCode" />
<form-display
half
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.dogumTarihi"
label="Doğum Tarihi"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.dogumTarihi" />
<form-display
half
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.telefonNo"
label="Telefon Numarası"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.telefonNo" />
<form-display
half
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.il"
label="İl"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.il" />
<form-display
half
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.ilce"
label="İlçe"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.ilce" />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.evIkametgahAdresi"
label="İkametgah Adresi"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.evIkametgahAdresi
" />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.magazaAdiYeri"
label="Mağaza Adı/Yeri"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.magazaAdiYeri" />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.cekilisKatilimSiraNo"
label="Katılım Sıra No"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.cekilisKatilimSiraNo
"
half />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.cekilisKatilimSiraNo"
label="Katılım Sora No"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.cekilisKatilimSiraNo
"
half />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.magazaKartNumarasi"
label="Mağaza Kart No"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.magazaKartNumarasi
"
half />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.katilimTarihi"
label="Katılım Tarihi"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.katilimTarihi"
half />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.fisFaturaTarihi"
label="Fiş/Fatura Tarihi"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.fisFaturaTarihi"
half />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.fisFaturaNo"
label="Fiş/Fatura No"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.fisFaturaNo"
half />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.kampanyaliUrunTutari"
label="Kampanyalı Ürün Tutarı"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.kampanyaliUrunTutari
"
half />
<form-display
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.toplamTutar"
label="Toplam Tutar"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.toplamTutar"
half />
</template>
<template v-else>
<form-input
@keyup="FormChanged"
modelKey="adi"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.adi"
required
label="Ad"
minlength="2"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.adi"
@keydown="validationStore.allowLettersWithKeysExtra($event, /^[ ]*$/)" />
<form-input
@keyup="FormChanged"
modelKey="soyadi"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.soyadi"
required
label="Soyadı"
minlength="2"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.soyadi"
@keydown="validationStore.allowLettersWithKeysExtra($event, /^[ ]*$/)" />
<form-input
@keyup="FormChanged"
type="email"
modelKey="eposta"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.eposta"
required
label="E-posta adresi"
placeholder="eposta@alanadi.com"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.eposta" />
<form-input
@keyup="FormChanged"
modelKey="sifreCode"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.sifreCode"
required
label="Katılım Kodu"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.sifreCode" />
<form-date
type="date"
modelKey="dogumTarihi"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.dogumTarihi"
label="Doğum Tarihi"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.dogumTarihi"
@change="FormChanged"
half />
<form-input
@keyup="FormChanged"
type="tel"
modelKey="telefonNo"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.telefonNo"
label="Telefon Numarası"
placeholder="5554443322"
@keydown="validationStore.allowNumbersWithKeys"
maxlength="10"
minlength="10"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.telefonNo"
half />
<form-select
clearable
label="İl"
half
:listData="globalDataStore.ilList"
listText="ad"
listVal="ad"
modelKey="il"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.il"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.il"
@change="ChangeIl"
@clear="FormChanged" />
<form-select
clearable
half
label="İlçe"
:listData="ilceList"
listText="ad"
listVal="id"
modelKey="ilce"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.ilce"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.ilce"
:disabled="ilceDisabled"
@change="FormChanged"
@clear="FormChanged" />
<form-textarea
@keyup="FormChanged"
modelKey="evIkametgahAdresi"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.evIkametgahAdresi"
label="İkametgah Adres"
minlength="2"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.evIkametgahAdresi
"
@keydown="validationStore.allowLettersWithKeysExtra($event, /^[ ]*$/)" />
<form-input
@keyup="FormChanged"
modelKey="magazaAdiYeri"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.magazaAdiYeri"
label="Mağaza Adı/Yeri"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.magazaAdiYeri" />
<form-input
@keyup="FormChanged"
modelKey="cekilisKatilimSiraNo"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.cekilisKatilimSiraNo"
half
label="Katılım Sıra No"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.cekilisKatilimSiraNo
" />
<form-input
@keyup="FormChanged"
modelKey="magazaKartNumarasi"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.magazaKartNumarasi"
half
label="Mağaza Kart No"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.magazaKartNumarasi
" />
<form-date
type="date"
modelKey="katilimTarihi"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.katilimTarihi"
label="Katılım Tarihi"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.katilimTarihi"
@change="FormChanged"
half />
<form-date
type="date"
modelKey="fisFaturaTarihi"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.fisFaturaTarihi"
label="Fiş/Fatura Tarihi"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.fisFaturaTarihi"
@change="FormChanged"
half />
<form-input
@keyup="FormChanged"
modelKey="fisFaturaNo"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.fisFaturaNo"
half
label="Fiş/Fatura No"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.fisFaturaNo" />
<form-input
@keyup="FormChanged"
modelKey="kampanyaliUrunTutari"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.kampanyaliUrunTutari"
half
label="Kampanyalı Ürün Tutarı"
:invalidText="
piyangoKatilimciValidationStore.userFormInvalidTexts.kampanyaliUrunTutari
"
@keydown="validationStore.allowPrice" />
<form-input
@keyup="FormChanged"
modelKey="toplamTutar"
v-model="piyangoKatilimciStore.piyangoKatilimciUserFormData.toplamTutar"
half
label="Toplam Tutar"
:invalidText="piyangoKatilimciValidationStore.userFormInvalidTexts.toplamTutar"
@keydown="validationStore.allowPrice" />
</template>
</template>
<script setup lang="ts">
import { ref, onBeforeMount, computed } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useGlobalDataStore } from '@/stores/globalDataStore'
const globalDataStore = useGlobalDataStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { usePiyangoStore } from '../../stores/piyangoStore'
const piyangoStore = usePiyangoStore()
import { usePiyangoKatilimciStore } from '../../stores/piyangoKatilimciStore'
const piyangoKatilimciStore = usePiyangoKatilimciStore()
import { usePiyangoKatilimciValidationStore } from '../../validation/piyangoKatilimciValidationStore'
const piyangoKatilimciValidationStore = usePiyangoKatilimciValidationStore()
import { usePiyangoIkramiyeStore } from '../../stores/piyangoIkramiyeStore'
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
import { usePiyangoIkramiyeService } from '../../service/piyangoIkramiyeService'
const piyangoIkramiyeService = usePiyangoIkramiyeService()
const loaded = ref<boolean>(true)
const today = ref<Date>(new Date())
const ilanTarihi = ref<Date>(new Date(piyangoStore.lotteryIlanTarihi!))
const ilceList = ref<Record<string, any>[]>([])
const FormChanged = () => {
piyangoKatilimciValidationStore.userFormChanged = true
}
const TalihliChanged = (t: string) => {
if (t === 'asil')
piyangoKatilimciStore.piyangoKatilimciUserFormData.yedekTalihli = false
if (t === 'yedek')
piyangoKatilimciStore.piyangoKatilimciUserFormData.asilTalihli = false
piyangoKatilimciValidationStore.userFormChanged = true
}
const ChangeIl = (e: Event, v: string | number, d: Record<string, any>) => {
piyangoKatilimciStore.piyangoKatilimciUserFormData.ilce = ''
if (Object.keys(d).length === 0) {
ilceList.value = []
return
}
ilceList.value.splice(0, ilceList.value.length, ...d.ilceler)
piyangoKatilimciValidationStore.userFormChanged = true
}
const ilceDisabled = computed<boolean>(() => {
return (
piyangoKatilimciStore.piyangoKatilimciUserFormData.ilce === null ||
piyangoKatilimciStore.piyangoKatilimciUserFormData.il === '' ||
piyangoKatilimciStore.piyangoKatilimciUserFormData.il === null ||
ilceList.value.length === 0
)
})
onBeforeMount(async () => {
await dataStore.GetIlList()
await piyangoIkramiyeService.GetAllIkramiyeler()
if (
piyangoKatilimciStore.piyangoKatilimciUserFormData.ilce !== undefined &&
piyangoKatilimciStore.piyangoKatilimciUserFormData.ilce !== null &&
piyangoKatilimciStore.piyangoKatilimciUserFormData.ilce !== ''
) {
let ilO: Record<string, any>[] = globalDataStore.ilList.filter(
(v: Record<string, any>) => {
return v.ad === piyangoKatilimciStore.piyangoKatilimciUserFormData.il
}
)
if (ilO.length !== 0)
ilceList.value.splice(0, ilceList.value.length, ...ilO[0]['ilceler'])
}
})
</script>

View File

@ -0,0 +1,14 @@
<template>
<form-input
v-model="piyangoMecraStore.piyangoMecraForm.mecraAdi"
label="Mecra Adı"
modelKey="mecraAdi"
minlength="2"
:invalidText="piyangoMecraValidationStore.invalidTexts.mecraAdi" />
</template>
<script setup lang="ts">
import { usePiyangoMecraStore } from '../../stores/piyangoMecraStore'
const piyangoMecraStore = usePiyangoMecraStore()
import { usePiyangoMecraValidationStore } from '../../validation/piyangoMecraValidationStore'
const piyangoMecraValidationStore = usePiyangoMecraValidationStore()
</script>

View File

@ -0,0 +1,24 @@
<template>
<div :class="['preview-content', 'pdf-content']" :id="'pre' + rnd">
<piyango-onizleme-display />
</div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import piyangoOnizlemeDisplay from '../display/PiyangoOnizlemeDisplay.vue'
export interface Props {
id?: number
}
const props = withDefaults(defineProps<Props>(), {})
const emit = defineEmits(['update:id'])
const rnd = ref<number>(Number(Math.floor(Math.random() * 1000000000)))
const localId = ref<number>(rnd.value)
onMounted(() => {
if (props.id !== undefined) emit('update:id', localId.value)
})
</script>

View File

@ -0,0 +1,27 @@
<template>
<form-file
v-model="dataStore.panelData.file"
elclass="panel-documents-item"
:invalidText="validationStore.panelInvalidText.file"
fileType="img"/>
<form-checkbox
:listData="kapakResim"
listText="label"
listVal="val"
v-model="dataStore.panelData.isKapak"
:invalidText="validationStore.panelInvalidText.isKapak" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
const kapakResim = ref([
{
label: 'Site Kapak Resmi',
val: 'uyelik'
}
])
</script>

View File

@ -0,0 +1,124 @@
<template>
<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-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>
</template>
<script setup lang="ts">
import { onBeforeMount } from 'vue'
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
}
onBeforeMount(async () => {
await piyangoServices.GetPiyangoTeminatTurleriList()
await piyangoServices.GetPiyangoTeminatParaBirimleriList()
await piyangoServices.GetPiyangoTeminatDurumList()
piyangoTeminatStore.RestoreFormData()
piyangoTeminatStore.loaded = true
if (!piyangoTeminatStore.isNew) await piyangoTeminatService.GetTeminatDurum()
})
</script>

View File

@ -0,0 +1,90 @@
<template>
<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"
:disabled="!usersStore.isPanelUser"/>
<form-display
v-model="piyangoTeminatStore.piyangoTeminatFormData.amount"
half
price
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" />
<file-list-item
v-if="piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== null && piyangoTeminatStore.piyangoTeminatFormData.teminantDocumentUrl !== undefined"
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>
</template>
<script setup lang="ts">
import { onBeforeMount } from 'vue'
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()
import { usePiyangoServices } from '../../service/piyangoServices'
const piyangoServices = usePiyangoServices()
const OnKeyup = () => {
piyangoTeminatValidationStore.formChanged = true
}
onBeforeMount(async () => {
await piyangoServices.GetPiyangoTeminatDurumList()
await piyangoTeminatService.GetTeminatDurum()
})
</script>

View File

@ -0,0 +1,23 @@
<template>
<div :class="['preview-content', 'pdf-content']" :id="'pre' + rnd">
<piyango-yardim-amacli-onizleme-display />
</div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import PiyangoYardimAmacliOnizlemeDisplay from '../display/PiyangoYardimAmacliOnizlemeDisplay.vue'
export interface Props {
id?: number
}
const props = withDefaults(defineProps<Props>(), {})
const emit = defineEmits(['update:id'])
const rnd = ref<number>(Number(Math.floor(Math.random() * 1000000000)))
const localId = ref<number>(rnd.value)
onMounted(() => {
if (props.id !== undefined) emit('update:id', localId.value)
})
</script>

View File

@ -0,0 +1,5 @@
import piyangoListe from '@/module/cekilisler/routes/piyango-liste'
import piyangoYeni from '@/module/cekilisler/routes/piyango-yeni'
import piyangoDetay from '@/module/cekilisler/routes/piyango-detay'
export default [piyangoListe, piyangoYeni, piyangoDetay]

View File

@ -0,0 +1,10 @@
import PiyangoDetay from '@/module/cekilisler/views/PiyangoDetay.vue'
export default {
path: '/piyangolar/detay/:piyangoId',
name: 'PiyangoDetay',
component: PiyangoDetay,
meta: {
authRequired: true
}
}

View File

@ -0,0 +1,10 @@
import CekilisListe from '@/module/cekilisler/views/PiyangoListe.vue'
export default {
path: '/piyangolar/piyango-listesi',
name: 'PiyangoListe',
component: CekilisListe,
meta: {
authRequired: true
}
}

View File

@ -0,0 +1,10 @@
import PiyangoYeni from '@/module/cekilisler/views/PiyangoYeni.vue'
export default {
path: '/piyangolar/yeni-piyango',
name: 'PiyangoYeni',
component: PiyangoYeni,
meta: {
authRequired: true
}
}

View File

@ -0,0 +1,69 @@
import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoDocumentStore } from '../stores/piyangoDocumentStore'
import { usePiyangoDocumentValidationStore } from '../validation/piyangoDocumentValidationStore'
export const usePiyangoDocumentService = defineStore('piyangoDocumentService', () => {
const dataStore = useDataStore()
const piyangoStore = usePiyangoStore()
const piyangoDocumentStore = usePiyangoDocumentStore()
const piyangoDocumentValidationStore = usePiyangoDocumentValidationStore()
const GetDocumentList = async () => {
piyangoDocumentStore.piyangoDocumentsList.splice(
0,
piyangoDocumentStore.piyangoDocumentsList.length
)
let dt = await dataStore.dataGet('Dokuman/Cekilis/' + piyangoStore.selectedLottery,{
params: {
pageSize: 50
}
})
if (dt !== 'errorfalse') {
piyangoDocumentStore.piyangoDocumentsList.splice(
0,
piyangoDocumentStore.piyangoDocumentsList.length,
...dt.data
)
}
setTimeout(() => {
piyangoDocumentStore.loaded = true
}, 30)
}
const SaveDocument = async () => {
if (piyangoDocumentValidationStore.FormCheck()) {
const formData = new FormData()
formData.append('dosya', piyangoDocumentStore.piyangoDocumentForm.dosya)
formData.append('dokumanAdi', piyangoDocumentStore.piyangoDocumentForm.dokumanAdi)
formData.append('cekilisId', String(piyangoStore.selectedLottery))
let dt: any
if (!piyangoDocumentStore.isUpdate) {
dt = await dataStore.dataPost('Dokuman/', {
data: formData,
headers: { 'Content-Type': 'multipart/form-data' }
})
} else {
dt = await dataStore.dataPut(
'Dokuman/' + piyangoDocumentStore.piyangoDocumentForm.id,
{
data: formData,
headers: { 'Content-Type': 'multipart/form-data' }
}
)
}
if (dt !== 'errorfalse') {
await GetDocumentList()
piyangoDocumentStore.documentPanel = false
piyangoDocumentStore.isUpdate = false
}
} else {
piyangoDocumentValidationStore.isFormValid = true
}
}
return { GetDocumentList, SaveDocument }
})

View File

@ -0,0 +1,54 @@
import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoItirazStore } from '../stores/piyangoItirazStore'
import { usePiyangoItirazValidationStore } from '../validation/piyangoItirazValidationStore'
export const usePiyangoItirazService = defineStore('piyangoItirazService', () => {
const dataStore = useDataStore()
const piyangoStore = usePiyangoStore()
const piyangoItirazStore = usePiyangoItirazStore()
const piyangoItirazValidationStore = usePiyangoItirazValidationStore()
const SaveItiraz = async () => {
if (piyangoItirazValidationStore.FormCheck()) {
let data: any
const formData = new FormData()
formData.append('itirazTarihi', piyangoItirazStore.piyangoItirazForm.itirazTarihi)
formData.append('itirazEden', piyangoItirazStore.piyangoItirazForm.itirazEden)
formData.append('aciklama', piyangoItirazStore.piyangoItirazForm.aciklama)
formData.append('durum', piyangoItirazStore.piyangoItirazForm.durum)
formData.append('dosya', piyangoItirazStore.piyangoItirazForm.dosya)
formData.append('cekilisId', String(piyangoStore.selectedLottery))
formData.append('surecTipiId', piyangoItirazStore.piyangoItirazForm.surecTipiId)
if (!piyangoItirazStore.isUpdate) {
data = await dataStore.dataPost('Itiraz', {
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
})
} else {
data = await dataStore.dataPut(
'Itiraz/' + piyangoItirazStore.piyangoItirazForm.id,
{
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
}
)
}
if (data !== 'errorfalse') {
piyangoItirazStore.refreshList = true
piyangoItirazStore.itirazPanel = false
piyangoItirazValidationStore.formChanged = false
}
} else {
piyangoItirazValidationStore.isFormValid = true
}
}
return { SaveItiraz }
})

View File

@ -0,0 +1,50 @@
import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoMecraStore } from '../stores/piyangoMecraStore'
import { usePiyangoMecraValidationStore } from '../validation/piyangoMecraValidationStore'
export const usePiyangoMecraService = defineStore('piyangoMecraService', () => {
const dataStore = useDataStore()
const piyangoStore = usePiyangoStore()
const piyangoMecraStore = usePiyangoMecraStore()
const piyangoMecraValidationStore = usePiyangoMecraValidationStore()
const GetAllMecralar = async () => {
let data: Record<string, any> | any = await dataStore.dataGet(
'Mecra/Cekilis/' + piyangoStore.selectedLottery + '?pageNumber=0'
)
if (data !== 'errorfalse') {
piyangoMecraStore.piyangoAllMecraData = data.data
}
}
const SaveMecra = async () => {
if (piyangoMecraValidationStore.FormCheck()) {
let dt: any
dataStore.panelData.yayinlanacagiTarih = new Date(
dataStore.panelData.yayinlanacagiTarih
)
if (!piyangoMecraStore.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') {
piyangoMecraStore.refreshList = true
piyangoMecraStore.isUpdate = false
piyangoMecraStore.mecraPanel = false
}
} else {
piyangoMecraValidationStore.isFormValid = true
}
}
return { GetAllMecralar, SaveMecra }
})

View File

@ -0,0 +1,50 @@
import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
import { usePiyangoOnayValidationStore } from '../validation/piyangoOnayValidationStore'
import { useUsersStore } from '@/stores/usersStore'
export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
const dataStore = useDataStore()
const piyangoStore = usePiyangoStore()
const piyangoOnayStore = usePiyangoOnayStore()
const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
const usersStore = useUsersStore()
const SaveOnayDurum = async () => {
if (piyangoOnayValidationStore.FormCheck()) {
piyangoOnayStore.loaded = false
let form: any
let dataForm = new FormData()
dataForm.append(
'onayDurumuIslemTipiId',
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
)
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
dataForm.append('kisiId', String(usersStore.userId))
dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file)
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama)
form = await dataStore.dataPost('OnayDurumu/', {
data: dataForm,
headers: { 'Content-Type': 'multipart/form-data' },
toast: { toast: 'Onay durumu başarıyla kaydedildi', type: 'success' }
})
if (form !== 'errorfalse') {
piyangoOnayValidationStore.formChanged = false
piyangoStore.lotteryApprove =
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
piyangoOnayStore.refreshList = true
piyangoOnayStore.ResetForm()
setTimeout(() => {
piyangoOnayStore.loaded = true
}, 10)
}
} else {
piyangoOnayValidationStore.isFormValid = true
}
}
return { SaveOnayDurum }
})

View File

@ -0,0 +1,81 @@
import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
import { useUsersStore } from '@/stores/usersStore'
export const usePiyangoServices = defineStore('piyangoServices', () => {
const dataStore = useDataStore()
const piyangoDataStore = usePiyangoDataStore()
const usersStore = useUsersStore()
const RemoveIncelemeBekleniyor = () => {
let ind = piyangoDataStore.piyangoOnayDurumlari.findIndex((p) => p.id === 8)
if (ind >= 0) piyangoDataStore.piyangoOnayDurumlari.splice(ind, 1)
}
const GetKatilimciTeslimYontemiList = async () => {
if (piyangoDataStore.katilimciTeslimYontemi.length === 0) {
piyangoDataStore.katilimciTeslimYontemi = await dataStore.dataGet(
'KatilimciListesiTeslimYontemi'
)
}
}
const GetCekilisYontemiList = async () => {
if (piyangoDataStore.cekilisYontemi.length === 0) {
let data = await dataStore.dataGet('CekilisYontemi')
piyangoDataStore.cekilisYontemi = data.data
}
}
const GetParaBirimleri = async () => {
if (piyangoDataStore.paraBirimleri.length === 0) {
let data = await dataStore.dataGet('ParaBirimi')
piyangoDataStore.paraBirimleri = data
}
}
const GetPiyangoAmaclariList = async () => {
if (piyangoDataStore.piyangoAmaclari.length === 0) {
let data = await dataStore.dataGet('PiyangoAmac')
piyangoDataStore.piyangoAmaclari = data
}
}
const GetPiyangoOnayDurumList = async () => {
if (piyangoDataStore.piyangoOnayDurumlari.length === 0) {
let data = await dataStore.dataGet('OnayDurumuIslemTipi')
data.sort((a: Record<string, any>, b: Record<string, any>) => a.order - b.order)
piyangoDataStore.piyangoOnayDurumlari = data
if (usersStore.isPanelUser) RemoveIncelemeBekleniyor()
}
}
const GetPiyangoTeminatDurumList = async () => {
if (piyangoDataStore.piyangoTeminatDurumlari.length === 0) {
let data = await dataStore.dataGet('TeminantStates/Durumlar')
piyangoDataStore.piyangoTeminatDurumlari = data
}
}
const GetPiyangoTeminatTurleriList = async () => {
if (piyangoDataStore.piyangoTeminatTurleri.length === 0) {
let data = await dataStore.dataGet('TeminantStates/TeminantChildType')
piyangoDataStore.piyangoTeminatTurleri = data
}
}
const GetPiyangoTeminatParaBirimleriList = async () => {
if (piyangoDataStore.piyangoTeminatParaBirimleri.length === 0) {
let data = await dataStore.dataGet('TeminantStates/TeminatParentType')
piyangoDataStore.piyangoTeminatParaBirimleri = data
}
}
return {
GetKatilimciTeslimYontemiList,
GetCekilisYontemiList,
GetParaBirimleri,
GetPiyangoAmaclariList,
GetPiyangoOnayDurumList,
GetPiyangoTeminatDurumList,
GetPiyangoTeminatTurleriList,
GetPiyangoTeminatParaBirimleriList
}
})

View File

@ -0,0 +1,60 @@
import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoYardimAmacliStore } from '../stores/piyangoYardimAmacliStore'
import { usePiyangoYardimAmacliValidationStore } from '../validation/piyangoYardimAmacliValidationStore'
export const usePiyangoYardimAmacliService = defineStore(
'piyangoYardimAmacliService',
() => {
const dataStore = useDataStore()
const piyangoStore = usePiyangoStore()
const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore()
const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore()
const GetYardimAmacliData = async () => {
piyangoYardimAmacliStore.loaded = false
piyangoYardimAmacliStore.EmptyFormData()
let data = await dataStore.dataGet(
'yardimbilgi/cekilisIdyegoreobje/' + piyangoStore.selectedLottery
)
if (data !== 'errorfalse') {
piyangoYardimAmacliStore.CreateBiletTable()
Object.assign(piyangoYardimAmacliStore.piyangoYardimAmacliFormData, data)
Object.assign(
piyangoYardimAmacliStore.piyangoYardimAmacliServerFormData,
piyangoYardimAmacliStore.piyangoYardimAmacliFormData
)
if (data === '') piyangoYardimAmacliStore.isNew = true
else piyangoYardimAmacliStore.isNew = false
setTimeout(() => {
piyangoYardimAmacliStore.loaded = true
}, 30)
}
}
const SaveYardimAmacliForm = async () => {
if (piyangoYardimAmacliValidationStore.FormCheck()) {
let form: any
if (piyangoYardimAmacliStore.isNew) {
form = await dataStore.dataPost('yardimbilgi/', {
data: piyangoYardimAmacliStore.piyangoYardimAmacliFormData
})
} else {
form = await dataStore.dataPut('yardimbilgi/' + piyangoYardimAmacliStore.piyangoYardimAmacliFormData.id, {
data: piyangoYardimAmacliStore.piyangoYardimAmacliFormData
})
}
if (form !== 'errorfalse') {
piyangoYardimAmacliValidationStore.formChanged = false
piyangoYardimAmacliStore.loaded = false
GetYardimAmacliData()
}
} else {
piyangoYardimAmacliValidationStore.isFormValid = true
}
}
return { GetYardimAmacliData, SaveYardimAmacliForm }
}
)

View File

@ -0,0 +1,34 @@
import * as signalR from "@microsoft/signalr";
import { v4 as uuidv4 } from "uuid";
let connection: signalR.HubConnection;
let connectionId = "";
export const connectToHub = async () => {
connection = new signalR.HubConnectionBuilder()
.withUrl("http://panel.cekilisevi.gov.tr:5001/uploadHub", {
withCredentials: false // Bu zorunlu, yoksa cookie vs gönderilmez
}) // backend adresine göre düzenle
.withAutomaticReconnect()
.build();
await connection.start();
connectionId = connection.connectionId || uuidv4(); // SignalR id'si ya da frontend'de de guid üretilebilir
return connectionId;
};
export const onProgress = (callback: (data: any) => void) => {
connection.on("ReceiveProgress", callback);
};
export const onInsertProgress = (callback: (data: any) => void) => {
connection.on("ReceiveInsertProgress", callback);
};
export const onCompleted = (callback: (data: any) => void) => {
connection.on("ReceiveCompleted", callback);
};
export const onError = (callback: (data: any) => void) => {
connection.on("ReceiveError", callback);
};

View File

@ -0,0 +1,24 @@
import { defineStore } from 'pinia'
import { reactive } from 'vue'
import { useGlobalStore } from '@/stores/globalStore'
export const usePiyangoContactStore = defineStore('piyangoContactStore', () => {
const globalStore = useGlobalStore()
const baseContactData = reactive<Record<string, any>>({
adSoyad: '',
telefonNumarasi: '',
faksNumarasi: '',
eposta: '',
unvan: ''
})
const contactData = reactive<Record<string, any>>({})
const safeContactData = reactive<Record<string, any>>({})
const ResetFormData = () => {
globalStore.ResetObject(contactData, baseContactData)
Object.assign(contactData, baseContactData)
}
return { baseContactData, contactData, safeContactData, ResetFormData }
})

View File

@ -0,0 +1,36 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { usePiyangoStore } from './piyangoStore'
export const usePiyangoDocumentStore = defineStore('piyangoDocumentStore', () => {
const piyangoStore = usePiyangoStore()
const piyangoDocumentsList = ref<Record<string, any>[]>([])
const piyangoDocumentBaseForm = reactive<Record<string, any>>({
dosya: null,
cekilisId: piyangoStore.selectedLottery,
dokumanAdi: ''
})
const piyangoDocumentForm = reactive<Record<string, any>>({})
const piyangoDocumentSafeForm = reactive<Record<string, any>>({})
const isUpdate = ref<boolean>(false)
const refreshList = ref<boolean>(false)
const documentPanel = ref<boolean>(false)
const loaded = ref<boolean>(false)
const ResetForm = () =>{
Object.assign(piyangoDocumentForm, piyangoDocumentBaseForm)
}
return {
piyangoDocumentsList,
piyangoDocumentBaseForm,
piyangoDocumentForm,
piyangoDocumentSafeForm,
isUpdate,
refreshList,
documentPanel,
loaded,
ResetForm
}
})

View File

@ -0,0 +1,75 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoStore } from './piyangoStore'
export const usePiyangoIkramiyeStore = defineStore('piyangoIkramiyeStore', () => {
const piyangoStore = usePiyangoStore()
const validationStore = useValidationStore()
const piyangoAllIkramiyeData = ref<Record<string, any>[]>([])
const piyangoAllIkramiyeTotals = reactive<Record<string, any>>({
asilTalihliAdedi: 0,
toplamDeger: 0,
yedekTalihliAdedi: 0
})
const piyangoAllIkramiyeParaBirimi = ref<string>('')
const piyangoIkramiyeBaseForm = reactive<Record<string, any>>({
cinsi: '',
marka: '',
model: '',
birimFiyat: null,
paraBirimiId: null,
asilTalihliAdedi: null,
yedekTalihliAdedi: piyangoStore.isLotteryForCharity ? 0 : null,
toplamDeger: null
})
const piyangoIkramiyeForm = reactive<Record<string, any>>({})
const piyangoIkramiyeSafeForm = reactive<Record<string, any>>({})
const isUpdate = ref<boolean>(false)
const refreshList = ref<boolean>(false)
const ikramiyePanel = ref<boolean>(false)
const loaded = ref<boolean>(false)
const totalIkramiyeValues = reactive<Record<string, any>>({
yedekTalihliAdedi: 'toplamyedektalihli',
asilTalihliAdedi: 'toplamasiltalihli',
toplamDeger: 'toplamdeger'
})
const ResetForm = () => {
Object.assign(piyangoIkramiyeForm, piyangoIkramiyeBaseForm)
}
const CalculateToplamDeger = (e: Event) => {
if (
!validationStore.checkEmpty(piyangoIkramiyeForm.birimFiyat) &&
!validationStore.checkEmpty(piyangoIkramiyeForm.asilTalihliAdedi)
) {
let total =
Number(String(piyangoIkramiyeForm.birimFiyat).replace(',', '.')) *
piyangoIkramiyeForm.asilTalihliAdedi
piyangoIkramiyeForm.toplamDeger = String(total.toFixed(2)).replace('.', ',')
} else {
piyangoIkramiyeForm.toplamDeger = 0
}
}
return {
piyangoAllIkramiyeData,
piyangoAllIkramiyeTotals,
piyangoAllIkramiyeParaBirimi,
piyangoIkramiyeBaseForm,
piyangoIkramiyeForm,
piyangoIkramiyeSafeForm,
isUpdate,
refreshList,
ikramiyePanel,
loaded,
totalIkramiyeValues,
ResetForm,
CalculateToplamDeger
}
})

View File

@ -0,0 +1,36 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { usePiyangoStore } from './piyangoStore'
export const usePiyangoItirazStore = defineStore('piyangoItirazStore', () => {
const piyangoStore = usePiyangoStore()
const piyangoItirazBaseForm = reactive<Record<string, any>>({
itirazTarihi: '',
itirazEden: '',
aciklama: '',
dosya: null,
durum: null,
cekilisId: piyangoStore.selectedLottery,
surecTipiId: null
})
const piyangoItirazForm = reactive<Record<string, any>>({})
const piyangoItirazSafeForm = reactive<Record<string, any>>({})
const isUpdate = ref<boolean>(false)
const refreshList = ref<boolean>(false)
const itirazPanel = ref<boolean>(false)
const ResetForm = () =>{
Object.assign(piyangoItirazForm, piyangoItirazBaseForm)
}
return {
piyangoItirazBaseForm,
piyangoItirazForm,
piyangoItirazSafeForm,
isUpdate,
refreshList,
itirazPanel,
ResetForm
}
})

View File

@ -0,0 +1,38 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { usePiyangoStore } from './piyangoStore'
export const usePiyangoMecraStore = defineStore('piyangoMecraStore', () => {
const piyangoStore = usePiyangoStore()
const piyangoAllMecraData = ref<Record<string, any>[]>([])
const piyangoMecraBaseForm = reactive<Record<string, any>>({
cekilisId: piyangoStore.selectedLottery,
mecraAdi: '',
yayinlanmaDurumu: 0,
yayinlanacagiTarih: piyangoStore.baseLotteryData.ilantarihi || new Date()
})
const piyangoMecraForm = reactive<Record<string, any>>({})
const piyangoMecraSafeForm = reactive<Record<string, any>>({})
const isUpdate = ref<boolean>(false)
const refreshList = ref<boolean>(false)
const mecraPanel = ref<boolean>(false)
const loaded = ref<boolean>(false)
const ResetForm = () => {
Object.assign(piyangoMecraForm, piyangoMecraBaseForm)
}
return {
piyangoAllMecraData,
piyangoMecraBaseForm,
piyangoMecraForm,
piyangoMecraSafeForm,
isUpdate,
refreshList,
mecraPanel,
loaded,
ResetForm
}
})

View File

@ -0,0 +1,36 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { usePiyangoStore } from './piyangoStore'
import { useUsersStore } from '@/stores/usersStore'
export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
const piyangoStore = usePiyangoStore()
const usersStore = useUsersStore()
const piyangoOnayBaseForm = reactive<Record<string, any>>({
onayDurumuIslemTipiId: null,
onayCekilisId: piyangoStore.selectedLottery,
kisiId: usersStore.userId,
aciklama: '',
file: ''
})
const piyangoOnayForm = reactive<Record<string, any>>({})
const piyangoOnaySafeForm = reactive<Record<string, any>>({})
const isUpdate = ref<boolean>(false)
const refreshList = ref<boolean>(false)
const loaded = ref<boolean>(false)
const ResetForm = () => {
Object.assign(piyangoOnayForm, piyangoOnayBaseForm)
}
return {
piyangoOnayBaseForm,
piyangoOnayForm,
piyangoOnaySafeForm,
isUpdate,
refreshList,
loaded,
ResetForm
}
})

View File

@ -0,0 +1,185 @@
import { defineStore } from 'pinia'
import { ref, reactive, computed } from 'vue'
import { useUsersStore } from '@/stores/usersStore'
import { useGlobalStore } from '@/stores/globalStore'
export const usePiyangoStore = defineStore('piyangoStore', () => {
const usersStore = useUsersStore()
const globalStore = useGlobalStore()
const isNew = ref<boolean>(true)
const lotteryId = ref<number | null>(null)
const selectedLottery = ref<number | null>(null)
const lotteryApprove = ref<number | null>(null)
const lotteryDrawState = ref<boolean>(false)
const lotteryDrawDate = ref<string | Date>('')
const lotteryIlanTarihi = ref<string | Date | null>('')
const lotteryFirstApproveDate = ref<string | Date | null>('')
const lotteryCreationDate = ref<string | Date>('')
const lotteryStateDate = ref<string | Date>('')
const lotteryPurposeId = ref<number | null>(null)
const lotteryBasvuruBedeliStatus = ref<boolean | null>(null)
const lotteryIzinBedeliStatus = ref<boolean | null>(null)
const subCustomerType = ref<number | null>(null)
const customerApproved = ref<boolean>(false)
const lotteryYetkiRefresh = ref<boolean>(false)
const lotteryStatusTypes = ref<Record<string, any>[]>([
{ name: 'Bekliyor', class: 'waiting' },
{ name: 'Kapsam Dışı', class: 'waiting' },
{ name: 'Onaylandı', class: 'ok' },
{ name: 'İzin Verildi', class: 'ok' },
{ name: 'Kampanya Olumlu Bitti', class: 'ok' },
{ name: 'Katılımcı Listesi Yüklendi', class: 'next' },
{ name: 'Bilgi/Belge Eksik/Yanlış', class: 'waiting' },
{ name: 'Başvuru İşleme Alındı', class: 'waiting' },
{ name: 'Düzenleme Bekliyor', class: 'waiting' },
{ name: 'Üzerinde Çalışılıyor', class: 'waiting' },
{ name: 'Ön Kayıt Kabul Edildi', class: 'waiting' },
{ name: 'Yardım Amaçlı Piyango Son Onay', class: 'waiting' },
{ name: 'İnceleme Bekleniyor', class: 'beforeok' },
{ name: 'Yeni Piyango', class: 'new' },
{ name: 'Başvuru Reddedildi', class: 'alert' },
{ name: 'Başvuru Uygun Görülmedi', class: 'alert' },
{ name: 'İzin Öncesi İptal', class: 'alert' },
{ name: 'İzin Sonrası İptal', class: 'alert' },
{ name: 'Ceza Verildi', class: 'alert' },
{ name: 'Değişiklik Talep Ediliyor', class: 'change' }
])
const baseLotteryData = reactive<Record<string, any>>({
amac:'',
amacpiyangoId: null,
duzenleyenId: null,
baslik: '',
baglisirketId: null,
cekilisSartveSekilleri: '',
kapsamIl: [] as string[],
kapsamIlce: [] as string[],
baslangicTarihi: '',
bitisTarihi: '',
asilSonBasvuruTarihi: '',
yedekSonBasvuruTarihi: '',
cekilisTarihi: '',
ilantarihi: '',
ilantarihi2: '',
ikramiyeTeslimTarihi: '',
ilanEdilecekGazete: '',
ilId: null,
ilceId: null,
adres: '',
katilimListesi: '',
katilimciListesiTeslimYontemiId: null,
cekilisYontemiId: null,
digerHususlar: ''
})
const lotteryData = reactive<Record<string, any>>({})
const safeLotteryData = reactive<Record<string, any>>({})
const duzenleyenData = reactive<Record<string, any>>({})
const araciUyeData = reactive<Record<string, any>>({})
const lotterySelectedProvience = ref<string>('')
const UyeName = (data: Record<string, any>): string => {
if (data.basvuruTipId === 18) return `${data.gercekAdi} ${data.gercekSoyadi}`
else if (data.basvuruTipId === 21) return `${data.tuzelUnvan}`
else if (data.basvuruTipId === 22) return `${data.dernekUnvan}`
else if (data.basvuruTipId === 23) return `${data.sirketUnvan}`
else if (data.basvuruTipId === 26) return `${data.kamuUnvan}`
return ''
}
const duzenleyenLink = computed<string | null>(() => {
if (lotteryData.baglisirketId === null && lotteryData.duzenleyenId !== null)
return '/uyeler/detay/' + lotteryData.duzenleyenId
else if (lotteryData.duzenleyenId !== null && lotteryData.baglisirketId !== null)
return (
'/uyeler/detay/' +
araciUyeData.baglisirketId +
'/yetkili-uye/detay/' +
lotteryData.duzenleyenId
)
else return null
})
const araciLink = computed<string>(() => {
return '/uyeler/detay/' + lotteryData.baglisirketId
})
const CheckForYardimAmacli = (): boolean => {
return (
usersStore.isVakifDernek ||
(usersStore.isAraciFirma && subCustomerType.value === 22)
)
}
const isLotteryForCharity = computed((): boolean => {
return lotteryPurposeId.value === 2
})
const ResetLotteryData = () => {
globalStore.ResetObject(lotteryData, baseLotteryData)
Object.assign(lotteryData, baseLotteryData)
lotteryApprove.value = null
selectedLottery.value = null
lotteryData.kapsamIl.splice(0,lotteryData.kapsamIl.length)
lotteryData.kapsamIlce.splice(0,lotteryData.kapsamIlce.length)
}
const ResetLotteryContent = () => {
Object.assign(lotteryData, baseLotteryData)
}
const LoterryStatusClass = (d: any): string => {
let cls = lotteryStatusTypes.value.filter((v) => {
return v.name === d
})
if (cls !== undefined && cls !== null && cls.length !== 0)
return 'back-grad-' + cls[0].class
else return 'back-grad-waiting'
}
const SetLotteryControlData = (data: Record<string, any>) => {
lotteryApprove.value = data.onayDurum
lotteryDrawDate.value = data.cekilisTarihi
lotteryDrawState.value = data.cekilisDuzenlemeDurum
lotteryStateDate.value = data.sonIslemTarihi
lotteryPurposeId.value = data.piyangoAmacId
lotteryFirstApproveDate.value = data.ilkIzinTarihi
lotteryBasvuruBedeliStatus.value = data.basvuruBedeliDurum
lotteryIzinBedeliStatus.value = data.izinBedeliDurum
}
return {
isNew,
lotteryId,
baseLotteryData,
selectedLottery,
lotteryApprove,
lotteryDrawState,
lotteryDrawDate,
lotteryIlanTarihi,
lotteryFirstApproveDate,
lotteryCreationDate,
lotteryStateDate,
lotteryBasvuruBedeliStatus,
lotteryIzinBedeliStatus,
subCustomerType,
lotteryPurposeId,
isLotteryForCharity,
lotteryYetkiRefresh,
lotteryData,
safeLotteryData,
duzenleyenData,
araciUyeData,
lotterySelectedProvience,
customerApproved,
duzenleyenLink,
araciLink,
UyeName,
CheckForYardimAmacli,
ResetLotteryData,
ResetLotteryContent,
LoterryStatusClass,
SetLotteryControlData
}
})

View File

@ -0,0 +1,156 @@
import { defineStore } from 'pinia'
import { ref, reactive, computed } from 'vue'
import { usePiyangoStore } from './piyangoStore'
import { useUsersStore } from '@/stores/usersStore'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoYardimAmacliValidationStore } from '../validation/piyangoYardimAmacliValidationStore'
export const usePiyangoYardimAmacliStore = defineStore('piyangoYardimAmacliStore', () => {
const usersStore = useUsersStore()
const piyangoStore = usePiyangoStore()
const validationStore = useValidationStore()
const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore()
const yardimAmacliRakamlar = ref<Record<string, any>[]>([
{ title: 'Üç Rakam (000-999)', prefix: 'uc', min: 1, max: 999, maxl: 3 },
{ title: 'Dort Rakam (0000-9999)', prefix: 'dort', min: 1000, max: 9999, maxl: 4 },
{ title: 'Beş Rakam (00000-99999)', prefix: 'bes', min: 10000, max: 99999, maxl: 5 },
{
title: 'Altı Rakam (000000-999999)',
prefix: 'alti',
min: 100000,
max: 999999,
maxl: 6
}
])
const piyangoYardimAmacliSafeFormData = reactive<Record<string, any>>({
duzenleyenId: usersStore.userId,
cekilsiId: piyangoStore.selectedLottery,
basimevi: '',
basimeviAdresi: '',
birimSatisFiyati: null,
altiRakamAdet: null,
altiRakamBaslangic: null,
altiRakamBitis: null,
besRakamAdet: null,
besRakamBaslangic: null,
besRakamBitis: null,
dortRakamAdet: null,
dortRakamBaslangic: null,
dortRakamBitis: null,
ucRakamAdet: null,
ucRakamBaslangic: null,
ucRakamBitis: null
})
const piyangoYardimAmacliFormData = reactive<Record<string, any>>({})
const piyangoYardimAmacliServerFormData = reactive<Record<string, any>>({})
const loaded = ref<boolean>(false)
const isNew = ref<boolean>(false)
const ResetFormData = () => {
loaded.value = false
if (isNew.value)
Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliSafeFormData)
else Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliServerFormData)
piyangoYardimAmacliValidationStore.formChanged = false
setTimeout(() => {
loaded.value = true
}, 30)
}
const EmptyFormData = () => {
Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliSafeFormData)
}
const CreateBiletTable = () => {
for (let i = 0; i < yardimAmacliRakamlar.value.length; i++) {
piyangoYardimAmacliFormData[
yardimAmacliRakamlar.value[i].prefix + 'RakamBaslangic'
] = null
piyangoYardimAmacliFormData[yardimAmacliRakamlar.value[i].prefix + 'RakamBitis'] =
null
piyangoYardimAmacliFormData[yardimAmacliRakamlar.value[i].prefix + 'RakamAdet'] =
null
}
}
const CalculateToplamBilet = (data: Record<string, any>) => {
if (
!validationStore.checkEmpty(
piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']
) &&
validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
) {
piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] =
'Bitiş numarasını girmelisiniz.'
} else {
delete piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis']
}
if (
validationStore.checkEmpty(
piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']
) &&
!validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
) {
piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBaslangic'] =
'Başlangıç numarasını girmelisiniz.'
} else {
delete piyangoYardimAmacliValidationStore.invalidTexts[
data.prefix + 'RakamBaslangic'
]
}
if (
!validationStore.checkEmpty(
piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']
) &&
!validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
) {
if (
parseInt(piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']) <
parseInt(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'])
) {
delete piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis']
piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] =
piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'] -
piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic'] +
1
} else {
piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] = ''
piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] =
'Bitiş numarasını başlangıç numarasından büyük olmalıdır.'
}
} else {
piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] = ''
}
piyangoYardimAmacliValidationStore.formChanged = true
}
const toplamBilet = computed(() => {
var toplam:number = 0
yardimAmacliRakamlar.value.forEach((rakam) => {
if(piyangoYardimAmacliFormData[rakam.prefix + 'RakamAdet'] !== null){
toplam += Number(piyangoYardimAmacliFormData[rakam.prefix + 'RakamAdet'])
}
})
return toplam
})
return {
yardimAmacliRakamlar,
piyangoYardimAmacliSafeFormData,
piyangoYardimAmacliFormData,
piyangoYardimAmacliServerFormData,
loaded,
isNew,
toplamBilet,
ResetFormData,
EmptyFormData,
CreateBiletTable,
CalculateToplamBilet
}
})

View File

@ -0,0 +1,59 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoContactStore } from '../stores/piyangoContactStore'
export const usePiyangoContactValidationStore = defineStore(
'piyangoContactValidationStore',
() => {
const validationStore = useValidationStore()
const piyangoContactStore = usePiyangoContactStore()
const invalidTexts = reactive<Record<string, any>>({})
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'adSoyad', 'Ad ve Soyad alanı boş bırakılamaz.')
validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'telefonNumarasi', 'Bir telefon numarası girmelisiniz.')
if (!validationStore.checkEmpty(piyangoContactStore.contactData.telefonNumarasi)) {
if(piyangoContactStore.contactData.telefonNumarasi.length !== 10){
invalidTexts.telefonNumarasi =
'Telefon numaranızı başında 0 olmadan 10 hane olarak giriniz.'
isFormValid.value = false
} else {
delete invalidTexts.telefonNumarasi
}
}
if (!validationStore.checkEmpty(piyangoContactStore.contactData.faksNumarasi)) {
if(piyangoContactStore.contactData.faksNumarasi.length !== 10){
invalidTexts.faksNumarasi =
'Faks numaranızı başında 0 olmadan 10 hane olarak giriniz.'
isFormValid.value = false
} else {
delete invalidTexts.faksNumarasi
}
}
validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'eposta', 'Mail adresini girmelisiniz.')
validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'unvan', 'Başlık alanı boş bırakılamaz.')
if (!validationStore.checkEmpty(piyangoContactStore.contactData.eposta)) {
if (!validationStore.checkEmail(piyangoContactStore.contactData.eposta)) {
invalidTexts.eposta =
'Lütfen eposta adresinizi doğru formatta giriniz. Örn: isim@alanadi.td'
isFormValid.value = false
} else {
delete invalidTexts.eposta
}
}
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return { invalidTexts, formChanged, FormCheck }
}
)

View File

@ -0,0 +1,44 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoDocumentStore } from '../stores/piyangoDocumentStore'
export const usePiyangoDocumentValidationStore = defineStore(
'piyangoDocumentValidationStore',
() => {
const piyangoDocumentStore = usePiyangoDocumentStore()
const validationStore = useValidationStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
validationStore.IsFieldEmpty(
piyangoDocumentStore.piyangoDocumentForm,
invalidTexts,
'dokumanAdi',
'Döküman için bir başlık belirtmelisiniz.'
)
validationStore.IsFieldEmpty(
piyangoDocumentStore.piyangoDocumentForm,
invalidTexts,
'dosya',
'Bir döküman eklemelisiniz.'
)
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
formChanged,
isFormValid,
invalidTexts,
FormCheck
}
}
)

View File

@ -0,0 +1,83 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoStore } from '../stores/piyangoStore'
import { usePiyangoIkramiyeStore } from '../stores/piyangoIkramiyeStore'
export const usePiyangoIkramiyeValidationStore = defineStore(
'piyangoIkramiyeValidationStore',
() => {
const validationStore = useValidationStore()
const piyangoStore = usePiyangoStore()
const piyangoIkramiyeStore = usePiyangoIkramiyeStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'cinsi',
'Bu alan boş bırakılamaz.'
)
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'marka',
'Bu alan boş bırakılamaz.'
)
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'model',
'Bu alan boş bırakılamaz.'
)
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'birimFiyat',
'İkramiyenin birim fiyatını giriniz.'
)
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'paraBirimiId',
'Para birimini seçmelisiniz'
)
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'asilTalihliAdedi',
piyangoStore.isLotteryForCharity
? 'Talihli adedini giriniz.'
: 'Asıl talihli adedini giriniz.'
)
if (!piyangoStore.isLotteryForCharity)
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'yedekTalihliAdedi',
'Yedek talihli adedini giriniz.'
)
validationStore.IsFieldEmpty(
piyangoIkramiyeStore.piyangoIkramiyeForm,
invalidTexts,
'toplamDeger',
'Toplam değer alanı boş bırakılamaz.'
)
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
formChanged,
isFormValid,
invalidTexts,
FormCheck
}
}
)

View File

@ -0,0 +1,71 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoItirazStore } from '../stores/piyangoItirazStore'
export const usePiyangoItirazValidationStore = defineStore(
'piyangoItirazValidationStore',
() => {
const piyangoItirazStore = usePiyangoItirazStore()
const validationStore = useValidationStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
validationStore.IsFieldEmpty(
piyangoItirazStore.piyangoItirazForm,
invalidTexts,
'surecTipiId',
'Süreç tipini seçmelisiniz.'
)
validationStore.IsFieldEmpty(
piyangoItirazStore.piyangoItirazForm,
invalidTexts,
'durum',
'Süreç durumunu seçmelisiniz.'
)
validationStore.IsFieldEmpty(
piyangoItirazStore.piyangoItirazForm,
invalidTexts,
'itirazTarihi',
'İtiraz tarihini seçmelisiniz.'
)
validationStore.IsFieldEmpty(
piyangoItirazStore.piyangoItirazForm,
invalidTexts,
'itirazEden',
'İtiraz eden kişi/kurumun adını yazmalısınız.'
)
validationStore.IsFieldEmpty(
piyangoItirazStore.piyangoItirazForm,
invalidTexts,
'aciklama',
'Açıklama alanı boş bırakılamaz.'
)
validationStore.IsFieldEmpty(
piyangoItirazStore.piyangoItirazForm,
invalidTexts,
'dosya',
'Dosya yüklemelisiniz.'
)
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
formChanged,
isFormValid,
invalidTexts,
FormCheck
}
}
)

View File

@ -0,0 +1,37 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoMecraStore } from '../stores/piyangoMecraStore'
export const usePiyangoMecraValidationStore = defineStore(
'piyangoMecraValidationStore',
() => {
const piyangoMecraStore = usePiyangoMecraStore()
const validationStore = useValidationStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
validationStore.IsFieldEmpty(
piyangoMecraStore.piyangoMecraForm,
invalidTexts,
'mecraAdi',
'Yayınlanacak mecranın adını yazınız.'
)
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
formChanged,
isFormValid,
invalidTexts,
FormCheck
}
}
)

View File

@ -0,0 +1,36 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
export const usePiyangoOnayValidationStore = defineStore(
'piyangoOnayValidationStore',
() => {
const validationStore = useValidationStore()
const piyangoOnayStore = usePiyangoOnayStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
validationStore.IsFieldEmpty(
piyangoOnayStore.piyangoOnayForm,
invalidTexts,
'onayDurumuIslemTipiId',
'Bir işlem tipi seçmelisinz.'
)
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
formChanged,
isFormValid,
invalidTexts,
FormCheck
}
}
)

View File

@ -0,0 +1,83 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoTeminatStore } from '../stores/piyangoTeminatStore'
import { useUsersStore } from '@/stores/usersStore'
export const usePiyangoTeminatValidationStore = defineStore(
'piyangoTeminatValidationStore',
() => {
const piyangoTeminatStore = usePiyangoTeminatStore()
const validationStore = useValidationStore()
const usersStore = useUsersStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
if (usersStore.isPanelUser) {
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'state',
'Lütfen işlem tipini seçiniz.'
)
}
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'amount',
'Lütfen tutarı giriniz.'
)
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'bankName',
'Lütfen banka adını giriniz.'
)
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'bankBranch',
'Lütfen banka şubesini giriniz.'
)
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'teminatParentType',
'Lütfen ödeme türünü seçiniz.'
)
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'teminantChildType',
'Lütfen teminat türünü seçiniz.'
)
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'teminantDate',
'Tarih alanı boş bırakılamaz.'
)
validationStore.IsFieldEmpty(
piyangoTeminatStore.piyangoTeminatFormData,
invalidTexts,
'teminantNo',
'No alanı boş bırakılamaz.'
)
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
formChanged,
isFormValid,
invalidTexts,
FormCheck
}
}
)

View File

@ -0,0 +1,675 @@
import { defineStore } from 'pinia'
import { ref, reactive, computed } from 'vue'
import { useUsersStore } from '@/stores/usersStore'
import { useValidationStore } from '@/stores/validationStore'
import { useDateStore } from '@/stores/dateStore'
import { usePiyangoStore } from '../stores/piyangoStore'
export const usePiyangoValidationStore = defineStore('piyangoValidationStore', () => {
const usersStore = useUsersStore()
const piyangoStore = usePiyangoStore()
const validationStore = useValidationStore()
const dateStore = useDateStore()
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const dateChanged = ref<boolean>(false)
const baslangicTarihiMin = ref<Date>(new Date())
//Kampanya Bitis Tarihi
const kampanyaBitisDisabled = computed((): boolean => {
return piyangoStore.lotteryData.baslangicTarihi === ''
})
const kampanyaBitisMin = computed((): Date => {
let date = new Date(piyangoStore.lotteryData.baslangicTarihi)
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let time = date.getTime()
let addHour = 1 * 60 * 60 * 1000
let newDate = new Date(year, month, day)
newDate.setTime(time + addHour)
return newDate
})
const kampanyaBitisMax = computed((): Date => {
let date = new Date(piyangoStore.lotteryData.baslangicTarihi)
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let newDate = new Date(year, month + 6, day)
return newDate
})
//Cekilis Tarihi
const cekilisTarihiDisabled = computed((): boolean => {
return (
piyangoStore.lotteryData.amacpiyangoId !== 2 &&
(piyangoStore.lotteryData.bitisTarihi === '' ||
piyangoStore.lotteryData.baslangicTarihi === '')
)
})
const cekilisTarihiMin = computed((): Date => {
if (piyangoStore.lotteryData.amacpiyangoId === 2) return new Date()
else return piyangoStore.lotteryData.bitisTarihi
})
//Ilan Tarihi
const ilanTarihiDisabled = computed((): boolean => {
if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
return (
piyangoStore.lotteryData.bitisTarihi === '' ||
piyangoStore.lotteryData.baslangicTarihi === '' ||
piyangoStore.lotteryData.cekilisTarihi === ''
)
} else {
return piyangoStore.lotteryData.cekilisTarihi === ''
}
})
const ilanTarihiMin = computed((): Date => {
return piyangoStore.lotteryData.cekilisTarihi
})
const ilanTarihiMax = computed((): Date => {
let date = new Date(piyangoStore.lotteryData.cekilisTarihi)
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let newDate = new Date(year, month, day + 7)
return newDate
})
//Ilan Tarihi 2
const ilanTarihi2Disabled = computed((): boolean => {
return (
piyangoStore.lotteryData.cekilisTarihi === '' ||
piyangoStore.lotteryData.ilantarihi === ''
)
})
const ilanTarihi2Min = computed((): Date => {
let date = new Date(piyangoStore.lotteryData.ilantarihi)
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let newDate = new Date(year, month, day + 1)
return newDate
})
const ilanTarihi2Max = computed((): Date => {
let date = new Date(piyangoStore.lotteryData.cekilisTarihi)
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let newDate = new Date(year, month, day + 7)
return newDate
})
//Asıl Son Basvuru
const asilSonBasvuruDisabled = computed((): boolean => {
if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
return (
piyangoStore.lotteryData.baslangicTarihi === '' ||
piyangoStore.lotteryData.bitisTarihi === '' ||
piyangoStore.lotteryData.cekilisTarihi === '' ||
piyangoStore.lotteryData.ilantarihi === ''
)
} else {
return (
piyangoStore.lotteryData.cekilisTarihi === '' ||
piyangoStore.lotteryData.ilantarihi === '' ||
piyangoStore.lotteryData.ilantarihi2 === ''
)
}
})
const asilSonBasvuruMin = computed((): Date => {
if (piyangoStore.lotteryData.amacpiyangoId !== 2)
return piyangoStore.lotteryData.ilantarihi
else return piyangoStore.lotteryData.ilantarihi2
})
const asilSonBasvuruMax = computed((): Date => {
let selectDate =
piyangoStore.lotteryData.amacpiyangoId !== 2
? piyangoStore.lotteryData.ilantarihi
: piyangoStore.lotteryData.ilantarihi2
let date = new Date(selectDate)
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let newDate = new Date(year, month, day + 15)
return newDate
})
//Yedek Son Basvuru
const yedekSonBasvuruDisabled = computed((): boolean => {
return (
piyangoStore.lotteryData.baslangicTarihi === '' ||
piyangoStore.lotteryData.bitisTarihi === '' ||
piyangoStore.lotteryData.cekilisTarihi === '' ||
piyangoStore.lotteryData.ilantarihi === '' ||
piyangoStore.lotteryData.asilSonBasvuruTarihi === ''
)
})
const yedekSonBasvuruMin = computed((): Date => {
return piyangoStore.lotteryData.asilSonBasvuruTarihi
})
const yedekSonBasvuruMax = computed((): Date => {
let date = new Date(piyangoStore.lotteryData.asilSonBasvuruTarihi)
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let newDate = new Date(year, month, day + 15)
return newDate
})
//Ikramiye Son Teslim
const ikramiyeTeslimDisabled = computed((): boolean => {
if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
return (
piyangoStore.lotteryData.baslangicTarihi === '' ||
piyangoStore.lotteryData.cekilisTarihi === ''
)
} else {
return piyangoStore.lotteryData.cekilisTarihi === ''
}
})
const ikramiyeTeslimMin = computed((): Date => {
return piyangoStore.lotteryData.asilSonBasvuruTarihi
})
const ikramiyeTeslimMax = computed((): Date => {
var date: Date = new Date()
if (!piyangoStore.isLotteryForCharity) {
date = new Date(piyangoStore.lotteryData.baslangicTarihi)
} else {
if (
piyangoStore.lotteryFirstApproveDate === '' ||
piyangoStore.lotteryFirstApproveDate === null
) {
date = new Date(piyangoStore.lotteryCreationDate)
} else {
date = new Date(piyangoStore.lotteryFirstApproveDate)
}
}
var year = date.getFullYear()
var month = date.getMonth()
var day = date.getDate()
let newDate = new Date(year + 1, month, day)
return newDate
})
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'baslik',
'Başlık alanı boş bırakılamaz.'
)
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'amacpiyangoId',
'Piyangoyu hangi amaçla düzenlediğinizi seçmelisiniz.'
)
if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) {
if (
((!usersStore.isVakifDernek &&
!usersStore.isAraciFirma &&
!usersStore.isPanelUser) ||
(usersStore.isPanelUser && piyangoStore.duzenleyenData.basvuruTipId !== 22)) &&
piyangoStore.lotteryData.amacpiyangoId === 2
) {
if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
isFormValid.value = false
invalidTexts.amacpiyangoId =
'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.'
}
}
if (
(usersStore.isAraciFirma && !usersStore.isPanelUser) ||
(usersStore.isPanelUser && piyangoStore.lotteryData.baglisirketId !== null)
) {
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'baglisirketId',
'Hangi kişi/kurum adına çekilişi düzenlediğiniz seçmelisiniz.'
)
if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) {
if (!validationStore.checkEmpty(piyangoStore.lotteryData.baglisirketId)) {
if (
piyangoStore.duzenleyenData.basvuruTipId !== 22 &&
piyangoStore.lotteryData.amacpiyangoId === 2
) {
if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null
isFormValid.value = false
invalidTexts.amacpiyangoId =
'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.'
}
}
}
}
if (piyangoStore.lotteryData.amacpiyangoId !== 3) {
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'kapsamIl',
'Çekilişin hangi illeri kapsadığını seçmelisiniz.'
)
if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'cekilisSartveSekilleri',
'Lütfen katılma şartlarını belirtiniz.'
)
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'baslangicTarihi',
'Kampanya başlangıç tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
) {
let baslangicTarihi = dateStore.dateFormat({
date: piyangoStore.lotteryData.baslangicTarihi,
pattern: 'yy-mm-dd-t',
splitTime: 'T',
splitDate: '-'
})
let baslangicmin = dateStore.dateFormat({
date: baslangicTarihiMin.value,
pattern: 'yy-mm-dd-t',
splitTime: 'T',
splitDate: '-'
})
let baslangicmind = dateStore.dateFormat({
date: baslangicTarihiMin.value,
pattern: 'dd-mm-yy-t'
})
if (baslangicTarihi < baslangicmin) {
isFormValid.value = false
invalidTexts.baslangicTarihi = `Kampanya Başlangıç Tarihi ${baslangicmind} tarihinden büyük olmalıdır.`
} else {
delete invalidTexts.baslangicTarihi
}
}
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'bitisTarihi',
'Kampanya bitiş tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
) {
let bitisTarihi = dateStore.dateFormat({
date: piyangoStore.lotteryData.bitisTarihi,
pattern: 'yy-mm-dd-t',
splitTime: 'T',
splitDate: '-'
})
let bitismin = dateStore.dateFormat({
date: kampanyaBitisMin.value,
pattern: 'yy-mm-dd-t',
splitTime: 'T',
splitDate: '-'
})
let bitismax = dateStore.dateFormat({
date: kampanyaBitisMax.value,
pattern: 'yy-mm-dd-t',
splitTime: 'T',
splitDate: '-'
})
let bitismind = dateStore.dateFormat({
date: kampanyaBitisMin.value,
pattern: 'dd-mm-yy-t'
})
let bitismaxd = dateStore.dateFormat({
date: kampanyaBitisMax.value,
pattern: 'dd-mm-yy-t'
})
if (bitisTarihi < bitismin || bitisTarihi > bitismax) {
isFormValid.value = false
invalidTexts.bitisTarihi = `Kampanya Bitiş Tarihi ${bitismind} - ${bitismaxd} tarihleri arasında olmalıdır.`
} else {
delete invalidTexts.bitisTarihi
}
}
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) &&
!validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi)
) {
if (
piyangoStore.lotteryData.bitisTarihi <
piyangoStore.lotteryData.baslangicTarihi
) {
invalidTexts.baslangicTarihi = `Başlangıç tarihi bitiş tarihinden küçük olamaz.`
} else {
delete invalidTexts.baslangicTarihi
}
}
}
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'cekilisTarihi',
'Çekilişin yapılacağı tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.cekilisTarihi) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) &&
!usersStore.isPanelUser
) {
let cekilisTarihi = dateStore.dateFormat({
date: piyangoStore.lotteryData.cekilisTarihi,
pattern: 'yy-mm-dd-t',
splitTime: 'T',
splitDate: '-'
})
let cekilismin = dateStore.dateFormat({
date: cekilisTarihiMin.value,
pattern: 'yy-mm-dd-t',
splitTime: 'T',
splitDate: '-'
})
let cekilismind = dateStore.dateFormat({
date: cekilisTarihiMin.value,
pattern: 'dd-mm-yy-t'
})
if (cekilisTarihi < cekilismin) {
isFormValid.value = false
invalidTexts.cekilisTarihi = `Çekiliş Tarihi ${cekilismind} tarihinden büyük olmalıdır.`
} else {
delete invalidTexts.cekilisTarihi
}
}
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'ilantarihi',
'İlan tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
) {
let ilanTarihi = dateStore.dateFormat({
date: piyangoStore.lotteryData.ilantarihi,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ilanmin = dateStore.dateFormat({
date: ilanTarihiMin.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ilanmax = dateStore.dateFormat({
date: ilanTarihiMax.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ilanmind = dateStore.dateFormat({
date: ilanTarihiMin.value,
pattern: 'dd-mm-yy'
})
let ilanmaxd = dateStore.dateFormat({
date: ilanTarihiMax.value,
pattern: 'dd-mm-yy'
})
if (ilanTarihi < ilanmin || ilanTarihi > ilanmax) {
isFormValid.value = false
invalidTexts.ilantarihi = `İlan Tarihi ${ilanmind} - ${ilanmaxd} tarihleri arasında olmalıdır.`
} else {
delete invalidTexts.ilantarihi
}
}
if (piyangoStore.lotteryData.amacpiyangoId === 2) {
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'ilantarihi2',
'2. İlan tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi2) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
) {
let ilanTarihi2 = dateStore.dateFormat({
date: piyangoStore.lotteryData.ilantarihi2,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ilan2min = dateStore.dateFormat({
date: ilanTarihi2Min.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ilan2max = dateStore.dateFormat({
date: ilanTarihi2Max.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ilan2mind = dateStore.dateFormat({
date: ilanTarihi2Min.value,
pattern: 'dd-mm-yy'
})
let ilan2maxd = dateStore.dateFormat({
date: ilanTarihi2Max.value,
pattern: 'dd-mm-yy'
})
if (ilanTarihi2 < ilan2min || ilanTarihi2 > ilan2max) {
isFormValid.value = false
invalidTexts.ilantarihi2 = `2. İlan Tarihi ${ilan2mind} - ${ilan2maxd} tarihleri arasında olmalıdır.`
} else {
delete invalidTexts.ilantarihi2
}
}
}
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'asilSonBasvuruTarihi',
'Asıl Talihliler için son başvuru tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.asilSonBasvuruTarihi) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
) {
let asilTarih = dateStore.dateFormat({
date: piyangoStore.lotteryData.asilSonBasvuruTarihi,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let asilmin = dateStore.dateFormat({
date: asilSonBasvuruMin.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let asilmax = dateStore.dateFormat({
date: asilSonBasvuruMax.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
if (asilTarih < asilmin || asilTarih > asilmax) {
isFormValid.value = false
invalidTexts.asilSonBasvuruTarihi = `Asıl Talihli son başvuru tarihi çekiliş sonucunun ilan ve tebliğ edildiği tarihten itibaren on beş gün içerisinde olmalıdır.`
} else {
delete invalidTexts.asilSonBasvuruTarihi
}
}
if (piyangoStore.lotteryData.amacpiyangoId !== 2) {
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'yedekSonBasvuruTarihi',
'Yedek talihliler için son başvuru tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.yedekSonBasvuruTarihi) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
) {
let yedekTarih = dateStore.dateFormat({
date: piyangoStore.lotteryData.yedekSonBasvuruTarihi,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let yedekmin = dateStore.dateFormat({
date: yedekSonBasvuruMin.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let yedekmax = dateStore.dateFormat({
date: yedekSonBasvuruMax.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
if (yedekTarih < yedekmin || yedekTarih > yedekmax) {
isFormValid.value = false
invalidTexts.yedekSonBasvuruTarihi = `Yedek Talihli Son Başvuru Tarihi, asıl talihliyi takip eden on beş gün içerisinde olmalıdır.`
} else {
delete invalidTexts.yedekSonBasvuruTarihi
}
}
}
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'ikramiyeTeslimTarihi',
'İkramiyelerin teslim edileceği tarihi seçmelisiniz.'
)
if (
!validationStore.checkEmpty(piyangoStore.lotteryData.ikramiyeTeslimTarihi) &&
(piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value))
) {
let ikramiyeTeslimTarih = dateStore.dateFormat({
date: piyangoStore.lotteryData.ikramiyeTeslimTarihi,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ikramiyemin = dateStore.dateFormat({
date: ikramiyeTeslimMin.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ikramiyemax = dateStore.dateFormat({
date: ikramiyeTeslimMax.value,
pattern: 'yy-mm-dd',
splitDate: '-'
})
let ikramiyemind = dateStore.dateFormat({
date: ikramiyeTeslimMin.value,
pattern: 'dd-mm-yy'
})
let ikramiyemaxd = dateStore.dateFormat({
date: ikramiyeTeslimMax.value,
pattern: 'dd-mm-yy'
})
if (ikramiyeTeslimTarih < ikramiyemin || ikramiyeTeslimTarih > ikramiyemax) {
isFormValid.value = false
invalidTexts.ikramiyeTeslimTarihi = `İkramiye Son Teslim Tarihi ${ikramiyemind} - ${ikramiyemaxd} tarihleri arasında olmalıdır.`
} else {
delete invalidTexts.ikramiyeTeslimTarihi
}
}
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'ilanEdilecekGazete',
'İlan edilecek gazete belirtmelisiniz.'
)
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'ilId',
'Lütfen il seçiniz'
)
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'ilceId',
'Lütfen ilçe seçiniz'
)
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'adres',
'Adres alanı boş bırakılamaz'
)
if (!piyangoStore.CheckForYardimAmacli()) {
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'katilimListesi',
'Katılım Listesi için açıklamaları giriniz.'
)
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'katilimciListesiTeslimYontemiId',
'Katılım listesini nasıl yükleyeceğiniz belirtiniz.'
)
}
validationStore.IsFieldEmpty(
piyangoStore.lotteryData,
invalidTexts,
'cekilisYontemiId',
'Çekiliş yönteminizi belirtiniz.'
)
}
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
isFormValid,
invalidTexts,
dateChanged,
baslangicTarihiMin,
kampanyaBitisDisabled,
kampanyaBitisMin,
kampanyaBitisMax,
cekilisTarihiDisabled,
cekilisTarihiMin,
ilanTarihiDisabled,
ilanTarihiMin,
ilanTarihiMax,
ilanTarihi2Disabled,
ilanTarihi2Min,
ilanTarihi2Max,
asilSonBasvuruDisabled,
asilSonBasvuruMin,
asilSonBasvuruMax,
yedekSonBasvuruDisabled,
yedekSonBasvuruMin,
yedekSonBasvuruMax,
ikramiyeTeslimDisabled,
ikramiyeTeslimMin,
ikramiyeTeslimMax,
FormCheck
}
})

View File

@ -0,0 +1,248 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useValidationStore } from '@/stores/validationStore'
import { usePiyangoYardimAmacliStore } from '../stores/piyangoYardimAmacliStore'
export const usePiyangoYardimAmacliValidationStore = defineStore(
'piyangoYardimAmacliValidationStore',
() => {
const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore()
const validationStore = useValidationStore()
const formChanged = ref<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
const emptyBilet = reactive<Record<string, any>>({})
const allBiletInvalid = ref<boolean>(false)
const biletInvalidMessages = ref<string[]>([])
const IsAllBiletsEmpty = () => {
for (let i = 0; i < piyangoYardimAmacliStore.yardimAmacliRakamlar.length; i++) {
emptyBilet[piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix] =
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamBaslangic'
]
) &&
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamBitis'
]
) &&
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamAdet'
]
)
}
}
const CheckBiletEmpty = () => {
IsAllBiletsEmpty()
var isvalid = true
var count = 0
Object.keys(emptyBilet).forEach((key) => {
if (!emptyBilet[key]) {
count++
}
})
if (count === piyangoYardimAmacliStore.yardimAmacliRakamlar.length) isvalid = false
if (isvalid) {
isFormValid.value = true
allBiletInvalid.value = false
} else {
biletInvalidMessages.value.push('Bilet alanları doldurulmamıştır.')
isFormValid.value = false
allBiletInvalid.value = true
}
}
const CheckBiletSatir = () => {
biletInvalidMessages.value = []
var eksikHane: boolean = false
var baslangicRakam: boolean = false
var bitisRakam: boolean = false
var bitisKucuk: boolean = false
piyangoYardimAmacliStore.yardimAmacliRakamlar.forEach((data, i) => {
//Baslangic Rakam sayisi
if (
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBaslangic'
]
) &&
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBaslangic'
].length < data.maxl
) {
isFormValid.value = false
if (!eksikHane) {
eksikHane = true
biletInvalidMessages.value.push(
'Bilet numarası girilirken eksik hane girilmiş'
)
}
invalidTexts[
data.prefix + 'RakamBaslangic'
] = `Bilet numarası en az ${data.maxl} haneli olmalıdır`
} else delete invalidTexts[data.prefix + 'RakamBaslangic']
//Bitis Rakam sayisi
if (
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBitis'
]
) &&
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[data.prefix + 'RakamBitis']
.length < data.maxl
) {
isFormValid.value = false
if (!eksikHane) {
eksikHane = true
biletInvalidMessages.value.push(
'Bilet numarası girilirken eksik hane girilmiş'
)
}
invalidTexts[
data.prefix + 'RakamBitis'
] = `Bilet numarası en az ${data.maxl} haneli olmalıdır`
} else delete invalidTexts[data.prefix + 'RakamBitis']
//Bitis numarasi girilmemis
if (
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBaslangic'
]
) &&
validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBitis'
]
)
) {
isFormValid.value = false
if (!bitisRakam) {
bitisRakam = true
biletInvalidMessages.value.push(
'Bilet numarası girilirken başlangıç numarası girilmiş, bitiş numarası girilmemiş.'
)
}
invalidTexts[data.prefix + 'RakamBitis'] = 'Bitiş numarasını girmelisiniz.'
} else {
delete invalidTexts[data.prefix + 'RakamBitis']
}
//Baslangic numarasi girilmemis
if (
validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBaslangic'
]
) &&
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBitis'
]
)
) {
isFormValid.value = false
if (!baslangicRakam) {
baslangicRakam = true
biletInvalidMessages.value.push(
'Bilet numarası girilirken bitiş numarası girilmiş, başlangıç numarası girilmemiş.'
)
}
invalidTexts[data.prefix + 'RakamBaslangic'] =
'Başlangıç numarasını girmelisiniz.'
} else {
delete invalidTexts[data.prefix + 'RakamBaslangic']
}
//Baslangic numarasi Bitis numarasindan buyuk
if (
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBaslangic'
]
) &&
!validationStore.checkEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBitis'
]
)
) {
if (
parseInt(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBaslangic'
]
) >=
parseInt(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData[
data.prefix + 'RakamBitis'
]
)
) {
isFormValid.value = false
if (!bitisKucuk) {
bitisKucuk = true
biletInvalidMessages.value.push(
'Bilet numarası girilirken bitiş numarası başlangıç numarasından küçük girilmiş.'
)
}
invalidTexts[data.prefix + 'RakamBitis'] =
'Bitiş numarasını başlangıç numarasından büyük olmalıdır.'
} else {
delete invalidTexts[data.prefix + 'RakamBitis']
}
}
})
}
const FormCheck = (): boolean => {
Object.assign(invalidTexts, {})
CheckBiletEmpty()
if (!allBiletInvalid.value) {
CheckBiletSatir()
}
validationStore.IsFieldEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData,
invalidTexts,
'basimevi',
'Lütfen Basımevi adını giriniz'
)
validationStore.IsFieldEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData,
invalidTexts,
'basimeviAdresi',
'Lütfen Basımevi adresini giriniz'
)
validationStore.IsFieldEmpty(
piyangoYardimAmacliStore.piyangoYardimAmacliFormData,
invalidTexts,
'birimSatisFiyati',
'Lütfen Bilet birim satış fiyatını giriniz'
)
isFormValid.value = Object.keys(invalidTexts).length === 0
return isFormValid.value
}
return {
formChanged,
isFormValid,
invalidTexts,
allBiletInvalid,
biletInvalidMessages,
CheckBiletEmpty,
CheckBiletSatir,
FormCheck
}
}
)

View File

@ -0,0 +1,14 @@
<template>
<AdminLayout>
<breadcrumb current-page-text="Yeni Piyango" />
<div class="form-content">
<div class="form-inner-content form-inner-content-left">
<form-piyango-bilgileri />
</div>
</div>
</AdminLayout>
</template>
<script setup lang="ts">
import AdminLayout from '@/layouts/AdminLayout.vue'
import FormPiyangoBilgileri from '../components/form/FormPiyangoBilgileri.vue'
</script>