diff --git a/src/module/cekilisler/components/TabPiyangoDosyaKapama.vue b/src/module/cekilisler/components/TabPiyangoDosyaKapama.vue new file mode 100644 index 0000000..81fddf0 --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoDosyaKapama.vue @@ -0,0 +1,10 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoDosyaKapama.vue b/src/module/cekilisler/components/form/FormPiyangoDosyaKapama.vue new file mode 100644 index 0000000..273432e --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoDosyaKapama.vue @@ -0,0 +1,648 @@ + + diff --git a/src/module/cekilisler/service/piyangoDosyaKapamaService.ts b/src/module/cekilisler/service/piyangoDosyaKapamaService.ts new file mode 100644 index 0000000..2f041c5 --- /dev/null +++ b/src/module/cekilisler/service/piyangoDosyaKapamaService.ts @@ -0,0 +1,53 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { usePiyangoStore } from '../stores/piyangoStore' +import { usePiyangoDosyaKapamaStore } from '../stores/piyangoDosyaKapamaStore' +import { usePiyangoDosyaKapamaValidationStore } from '../validation/piyangoDosyaKapamaValidationStore' + +export const usePiyangoDosyaKapamaService = defineStore( + 'piyangoDosyaKapamaService', + () => { + const dataStore = useDataStore() + const piyangoStore = usePiyangoStore() + const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore() + const piyangoDosyaKapamaValidationStore = usePiyangoDosyaKapamaValidationStore() + + const GetDosyaKapama = async () => { + let data: Record | any = await dataStore.dataGet( + 'Mecra/Cekilis/' + piyangoStore.selectedLottery + ) + + if (data !== 'errorfalse') { + Object.assign(piyangoDosyaKapamaStore.dosyaKapamaData, data.data) + Object.assign(piyangoDosyaKapamaStore.safeDosyaKapamaata, data.data) + } + } + + const SaveDosyaKapama = async () => { + if (piyangoDosyaKapamaValidationStore.FormCheck()) { + let dt: any + dataStore.panelData.yayinlanacagiTarih = new Date( + dataStore.panelData.yayinlanacagiTarih + ) + if (!piyangoDosyaKapamaStore.isUpdate) { + piyangoMecraStore.piyangoMecraForm.cekilisId = piyangoStore.selectedLottery + dt = await dataStore.dataPost('Mecra', { + data: piyangoMecraStore.piyangoMecraForm + }) + } else { + dt = await dataStore.dataPut('Mecra/' + piyangoMecraStore.piyangoMecraForm.id, { + data: piyangoMecraStore.piyangoMecraForm + }) + } + if (dt !== 'errorfalse') { + piyangoDosyaKapamaStore.isUpdate = false + await GetDosyaKapama() + } + } else { + piyangoDosyaKapamaValidationStore.isFormValid = true + } + } + + return { GetDosyaKapama, SaveDosyaKapama } + } +) diff --git a/src/module/cekilisler/stores/piyangoDosyaKapamaStore.ts b/src/module/cekilisler/stores/piyangoDosyaKapamaStore.ts new file mode 100644 index 0000000..22780cc --- /dev/null +++ b/src/module/cekilisler/stores/piyangoDosyaKapamaStore.ts @@ -0,0 +1,37 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useGlobalStore } from '@/stores/globalStore' + +export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore', () => { + const globalStore = useGlobalStore() + + const baseDosyaKapamaData = reactive>({ + adSoyad: '', + telefonNumarasi: '', + faksNumarasi: '', + eposta: '', + unvan: '' + }) + const dosyaKapamaData = reactive>({}) + const safeDosyaKapamaata = reactive>({}) + const isUpdate = ref(false) + + const ResetFormData = () => { + globalStore.ResetObject(dosyaKapamaData, baseDosyaKapamaData) + Object.assign(dosyaKapamaData, baseDosyaKapamaData) + } + + const RestoreFormData = () => { + globalStore.ResetObject(dosyaKapamaData, baseDosyaKapamaData) + Object.assign(dosyaKapamaData, safeDosyaKapamaata) + } + + return { + baseDosyaKapamaData, + dosyaKapamaData, + safeDosyaKapamaata, + isUpdate, + ResetFormData, + RestoreFormData + } +}) diff --git a/src/module/cekilisler/validation/piyangoDosyaKapamaValidationStore.ts b/src/module/cekilisler/validation/piyangoDosyaKapamaValidationStore.ts new file mode 100644 index 0000000..ead9e10 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoDosyaKapamaValidationStore.ts @@ -0,0 +1,37 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoDosyaKapamaStore } from '../stores/piyangoDosyaKapamaStore' + +export const usePiyangoMecraValidationStore = defineStore( + 'piyangoMecraValidationStore', + () => { + const piyangoDosyaKapamaStore = usePiyangoDosyaKapamaStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + piyangoDosyaKapamaStore.dosyaKapamaData, + 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 + } + } +) diff --git a/src/module/cekilisler/views/PiyangoDetay.vue b/src/module/cekilisler/views/PiyangoDetay.vue index 6300cea..d6f6644 100644 --- a/src/module/cekilisler/views/PiyangoDetay.vue +++ b/src/module/cekilisler/views/PiyangoDetay.vue @@ -26,6 +26,9 @@ + @@ -85,6 +88,10 @@ if (piyangoStore.lotteryApprove !== 0) { tabList.value.push({ text: 'Teminat Listesi', id: 'teminatlistesi' }) } + + if (usersStore.isPanelUser && piyangoStore.lotteryDrawState) { + tabList.value.push({ text: 'Dossya Kapama', id: 'dosyakapama' }) + } } onBeforeMount(async () => {