Add "Müdürlük" and "Çekiliş Görevlisi" fields to PiyangoOnay components. Update validation logic to ensure these fields are required based on "onayDurumuIslemTipiId". Enhance data handling in the service layer for new fields and update the form structure accordingly.
This commit is contained in:
166
sql_query_updated.sql
Normal file
166
sql_query_updated.sql
Normal file
@ -0,0 +1,166 @@
|
||||
SELECT c.Id, c.PiyangoId, c.Baslik, ISNULL(c.CreateDate, '0001-01-01') AS OlusturmaTarihi, MIN(ISNULL(cb.BaslangicTarihi, '0001-01-01')) AS BaslangicTarihi, MIN(ISNULL(cb.BitisTarihi, '0001-01-01')) AS BitisTarihi,
|
||||
|
||||
/* DÜZENLEYEN (mevcut)*/ COALESCE (NULLIF (d .DernekUnvan, ''), NULLIF (d .GercekTicariUnvan, ''), NULLIF (d .kamuUnvan, ''), NULLIF (d .SirketUnvan, ''), NULLIF (d .TuzelUnvan, ''), LTRIM(RTRIM(COALESCE (d .GercekAdi,
|
||||
|
||||
'') + ' ' + COALESCE (d .GercekSoyadi, ''))), iblist.IrtibatAdSoyad, 'Bilinmiyor') AS Duzenleyen, ISNULL(d .Id, 0) AS DuzenleyenId,
|
||||
|
||||
/* MÜDÜRLÜK (yeni - 2. başlık)*/
|
||||
CASE
|
||||
WHEN odlast.Mudurluk = 1 THEN '1 No''lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü'
|
||||
WHEN odlast.Mudurluk = 2 THEN '2 No''lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü'
|
||||
WHEN odlast.Mudurluk = 3 THEN '3 No''lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü'
|
||||
ELSE ISNULL(birim.BirimAdi, '')
|
||||
END AS Mudurluk,
|
||||
|
||||
MIN(cy.Deger) AS CekilisYontemi, MIN(cb.CekilisYontemiId) AS CekilisYontemiId, MIN(cb.KatilimciListesiTeslimYontemiId) AS KatilimciListesiTeslimYontemiId, MIN(klt.Deger) AS KatilimciListesiTeslimYontemi, ik.Ikramiyeler,
|
||||
|
||||
ISNULL(odlast.OnayDurumuIslemTipiId, 0) AS DurumId, ISNULL(odlast.IslemTipi, 'Yeni Piyango') AS Durum, MIN(ISNULL(cb.CekilisTarihi, '0001-01-01')) AS CekilisTarihi, ap.AmacAdi AS piyangoamac,
|
||||
|
||||
c.amacpiyangoId AS piyangoAmacId, ISNULL(oc.OnayVerecekKisi1Id, 0) AS OnayVerecekKisi1Id, ISNULL(oc.OnayVerecekKisi2Id, 0) AS OnayVerecekKisi2Id, ISNULL(oc.OnayVerecekKisi3Id, 0) AS OnayVerecekKisi3Id,
|
||||
|
||||
c.izinBedelNo, c.BasvuruBedelNo, c.izinBedeliDurum, c.basvuruBedeliDurum, c.baglisirketId, /* Atanmis (mevcut)*/ CASE WHEN ISNULL(oc.OnayVerecekKisi1Id, 0) > 0 OR
|
||||
|
||||
ISNULL(oc.OnayVerecekKisi2Id, 0) > 0 OR
|
||||
|
||||
ISNULL(oc.OnayVerecekKisi3Id, 0) > 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END AS Atanmis, ISNULL(atananlar.AlananIsimler, '') AS Atananlar, /* ARACI FİRMA (yeni - 5. başlık)*/ CASE WHEN EXISTS
|
||||
|
||||
(SELECT 1
|
||||
|
||||
FROM AspNetUserRoles ur INNER JOIN
|
||||
|
||||
AspNetRoles r ON ur.RoleId = r.Id
|
||||
|
||||
WHERE ur.UserId = d .ParentUserId AND r.Name = 'AraciFirma') THEN COALESCE (NULLIF (parentUser.DernekUnvan, ''), NULLIF (parentUser.GercekTicariUnvan, ''), NULLIF (parentUser.kamuUnvan, ''),
|
||||
|
||||
NULLIF (parentUser.SirketUnvan, ''), NULLIF (parentUser.TuzelUnvan, ''), LTRIM(RTRIM(COALESCE (parentUser.GercekAdi, '') + ' ' + COALESCE (parentUser.GercekSoyadi, ''))), '') ELSE '' END AS AraciFirma,
|
||||
|
||||
/* İZİN TARİHİ (yeni - 7. başlık)*/ odlast.IzinTarihi AS IzinTarihi, /* İZİN SAYISI (yeni - 8. başlık)*/ odlast.IzinSayisi AS IzinSayisi,
|
||||
|
||||
/* ÇEKİLİŞ GÖREVLİSİ (yeni - 12. başlık)*/
|
||||
CASE
|
||||
WHEN odlast.CekilisGorevlisi = 1 THEN 'Antalya Şube Müdürlüğü'
|
||||
WHEN odlast.CekilisGorevlisi = 2 THEN 'Gaziantep Şube Müdürlüğü'
|
||||
WHEN odlast.CekilisGorevlisi = 3 THEN 'Aksaray Şube Müdürlüğü'
|
||||
WHEN odlast.CekilisGorevlisi = 4 THEN 'Kadıköy Şube Müdürlüğü'
|
||||
WHEN odlast.CekilisGorevlisi = 5 THEN 'Karşıyaka Şube Müdürlüğü'
|
||||
WHEN odlast.CekilisGorevlisi = 6 THEN 'Muğla Şube Müdürlüğü'
|
||||
WHEN odlast.CekilisGorevlisi = 7 THEN 'Trabzon Şube Müdürlüğü'
|
||||
WHEN odlast.CekilisGorevlisi = 8 THEN 'Noter'
|
||||
WHEN odlast.CekilisGorevlisi = 9 THEN 'Başkanlık Personeli'
|
||||
ELSE COALESCE (LTRIM(RTRIM(COALESCE (personel.GercekAdi, '') + ' ' + COALESCE (personel.GercekSoyadi, ''))), LTRIM(RTRIM(COALESCE (birimSefi.GercekAdi, '') + ' ' + COALESCE (birimSefi.GercekSoyadi, ''))), '')
|
||||
END AS CekilisGorevlisi,
|
||||
|
||||
/* GAZETE İLAN TARİHİ (yeni - 13. başlık)*/ MIN(cb.ilantarihi) AS GazeteIlanTarihi, /* GAZETE ADI (yeni - 14. başlık)*/ MIN(cb.ilanEdilecekGazete)
|
||||
|
||||
AS GazeteAdi, /* KDV Oranı = 0.20 (sabit)*/ CASE WHEN ikramiyeTutar.ToplamTutar IS NOT NULL AND izinBedelOrani.Oran IS NOT NULL THEN CAST((ikramiyeTutar.ToplamTutar * izinBedelOrani.Oran / 100.0)
|
||||
|
||||
* 1.20 AS DECIMAL(18, 2)) ELSE NULL END AS IzinBedeliTutari, /* İKRAMİYE TUTARI (yeni - 16. başlık)*/ ISNULL(ikramiyeTutar.ToplamTutar, 0) AS IkramiyeTutari,
|
||||
|
||||
/* TEMİNAT TARİHİ (yeni - 17. başlık)*/ ts .TeminantDate AS TeminatTarihi, /* TEMİNAT SAYISI (yeni - 18. başlık)*/ ts .TeminantNo AS TeminatSayisi, /* TEMİNAT BANKASI (yeni - 19. başlık)*/ ts .BankName AS TeminatBankasi,
|
||||
|
||||
/* TEMİNAT TUTARI (yeni - 20. başlık)*/ ts .Amount AS TeminatTutari, /* T. PARA CİNSİ (yeni - 21. başlık)*/ ISNULL(paraBirimi.ParaBirimiSembol, '') AS ParaBirimiSembol,
|
||||
|
||||
/* T. İADE TARİHİ (yeni - 22. başlık)*/ ts .RefundDate AS TeminatIadeTarihi, /* T. İADE SAYISI (yeni - 23. başlık)*/ ts .RefundCount AS TeminatIadeSayisi
|
||||
|
||||
FROM Cekilisler c LEFT JOIN
|
||||
|
||||
CekilisBilgiler cb ON cb.CekilisId = c.Id LEFT JOIN
|
||||
|
||||
AspNetUsers d ON d .Id = c.DuzenleyenId LEFT JOIN
|
||||
|
||||
Birimler birim ON birim.Id = d .BirimId /* MÜDÜRLÜK için*/ LEFT JOIN
|
||||
|
||||
AspNetUsers parentUser ON parentUser.Id = d .ParentUserId /* ARACI FİRMA için*/ LEFT JOIN
|
||||
|
||||
AspNetUsers personel ON personel.Id = c.PersonelId /* ÇEKİLİŞ GÖREVLİSİ için*/ LEFT JOIN
|
||||
|
||||
AspNetUsers birimSefi ON birimSefi.Id = c.BirimSefiId /* ÇEKİLİŞ GÖREVLİSİ için*/ LEFT JOIN
|
||||
|
||||
PiyangoAmacs ap ON ap.Id = c.amacpiyangoId LEFT JOIN
|
||||
|
||||
OnayCekilisler oc ON oc.CekilisId = c.Id LEFT JOIN
|
||||
|
||||
CekilisYontemleri cy ON cb.CekilisYontemiId = cy.Id LEFT JOIN
|
||||
|
||||
KatilimciListesiTeslimYontemleri klt ON cb.KatilimciListesiTeslimYontemiId = klt.Id /* APPLY ile son OnayDurumu (İZİN TARİHİ, İZİN SAYISI, MÜDÜRLÜK ve ÇEKİLİŞ GÖREVLİSİ dahil)*/ OUTER APPLY
|
||||
|
||||
(SELECT TOP 1 od.OnayDurumuIslemTipiId, od.IslemTipi, od.IzinTarihi, od.IzinSayisi, od.Mudurluk, od.CekilisGorevlisi
|
||||
|
||||
FROM OnayCekilisler oc2 INNER JOIN
|
||||
|
||||
OnayDurumlari od ON oc2.Id = od.OnayCekilisId
|
||||
|
||||
WHERE oc2.CekilisId = c.Id
|
||||
|
||||
ORDER BY od.Tarih DESC) odlast /* APPLY ile ikramiyeler string*/ OUTER APPLY
|
||||
|
||||
(SELECT STUFF
|
||||
|
||||
((SELECT ', ' + i2.Marka + ' ' + i2.Model
|
||||
|
||||
FROM Ikramiyeler i2
|
||||
|
||||
WHERE i2.CekilisId = c.Id FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'), 1, 2, '')) ik(Ikramiyeler) /* APPLY ile ikramiye tutarı toplamı*/ OUTER APPLY
|
||||
|
||||
(SELECT SUM(i3.BirimFiyat * i3.AsilTalihliAdedi) AS ToplamTutar
|
||||
|
||||
FROM Ikramiyeler i3
|
||||
|
||||
WHERE i3.CekilisId = c.Id) ikramiyeTutar /* APPLY ile aktif izin bedel oranı (ilk aktif oran)*/ OUTER APPLY
|
||||
|
||||
(SELECT TOP 1 ibo.Oran
|
||||
|
||||
FROM IzinBedelOranlari ibo
|
||||
|
||||
WHERE ibo.Aktif = 1
|
||||
|
||||
ORDER BY ibo.Id) izinBedelOrani /* APPLY ile para birimi sembolü (ilk ikramiyenin para birimi)*/ OUTER APPLY
|
||||
|
||||
(SELECT TOP 1 pb.ParaBirimiSembol
|
||||
|
||||
FROM Ikramiyeler i4 LEFT JOIN
|
||||
|
||||
ParaBirimleri pb ON pb.Id = i4.ParaBirimiId
|
||||
|
||||
WHERE i4.CekilisId = c.Id AND pb.ParaBirimiSembol IS NOT NULL
|
||||
|
||||
ORDER BY i4.Id) paraBirimi /* APPLY ile irtibat bilgileri string*/ OUTER APPLY
|
||||
|
||||
(SELECT STUFF
|
||||
|
||||
((SELECT ', ' + ib2.AdSoyad
|
||||
|
||||
FROM IrtibatBilgiler ib2
|
||||
|
||||
WHERE ib2.CekilisId = c.Id FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'), 1, 2, '')) iblist(IrtibatAdSoyad) /* APPLY ile atanan kullanıcı isimleri*/ OUTER APPLY
|
||||
|
||||
(SELECT STUFF
|
||||
|
||||
((SELECT ', ' + u.GercekAdi + ' ' + u.GercekSoyadi
|
||||
|
||||
FROM AspNetUsers u
|
||||
|
||||
WHERE u.Id IN (ISNULL(oc.OnayVerecekKisi1Id, 0), ISNULL(oc.OnayVerecekKisi2Id, 0), ISNULL(oc.OnayVerecekKisi3Id, 0)) FOR XML PATH(''), TYPE ).value('.',
|
||||
|
||||
'NVARCHAR(MAX)'), 1, 2, '')) atananlar(AlananIsimler) /* APPLY ile teminat bilgileri (son teminat kaydı)*/ OUTER APPLY
|
||||
|
||||
(SELECT TOP 1 ts2.TeminantDate, ts2.TeminantNo, ts2.BankName, ts2.Amount, ts2.RefundDate, ts2.RefundCount
|
||||
|
||||
FROM TeminantStates ts2
|
||||
|
||||
WHERE ts2.CekilisId = c.Id
|
||||
|
||||
ORDER BY ts2.Id DESC) ts
|
||||
|
||||
GROUP BY c.Id, c.PiyangoId, c.Baslik, c.CreateDate, d .DernekUnvan, d .GercekTicariUnvan, d .kamuUnvan, d .SirketUnvan, d .TuzelUnvan, d .GercekAdi, d .GercekSoyadi, d .Id, d .ParentUserId,
|
||||
|
||||
birim.BirimAdi, ap.AmacAdi, c.amacpiyangoId, oc.OnayVerecekKisi1Id, oc.OnayVerecekKisi2Id, oc.OnayVerecekKisi3Id, c.izinBedelNo, c.BasvuruBedelNo, c.izinBedeliDurum,
|
||||
|
||||
c.basvuruBedeliDurum, c.baglisirketId, ik.Ikramiyeler, iblist.IrtibatAdSoyad, odlast.OnayDurumuIslemTipiId, odlast.IslemTipi, odlast.IzinTarihi, odlast.IzinSayisi,
|
||||
|
||||
atananlar.AlananIsimler, personel.GercekAdi, personel.GercekSoyadi, birimSefi.GercekAdi, birimSefi.GercekSoyadi, parentUser.DernekUnvan, parentUser.GercekTicariUnvan,
|
||||
|
||||
parentUser.kamuUnvan, parentUser.SirketUnvan, parentUser.TuzelUnvan, parentUser.GercekAdi, parentUser.GercekSoyadi, ikramiyeTutar.ToplamTutar, izinBedelOrani.Oran,
|
||||
|
||||
paraBirimi.ParaBirimiSembol, ts .TeminantDate, ts .TeminantNo, ts .BankName, ts .Amount, ts .RefundDate, ts .RefundCount, odlast.Mudurluk, odlast.CekilisGorevlisi;
|
||||
|
||||
@ -52,6 +52,24 @@
|
||||
return piyangoDataStore.piyangoOnayDurumlari
|
||||
})
|
||||
|
||||
const mudurlukListesi = ref<Record<string, any>[]>([
|
||||
{ id: 1, name: '1 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' },
|
||||
{ id: 2, name: '2 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' },
|
||||
{ id: 3, name: '3 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' }
|
||||
])
|
||||
|
||||
const cekilisGorevlisiListesi = ref<Record<string, any>[]>([
|
||||
{ id: 1, name: 'Antalya Şube Müdürlüğü' },
|
||||
{ id: 2, name: 'Gaziantep Şube Müdürlüğü' },
|
||||
{ id: 3, name: 'Aksaray Şube Müdürlüğü' },
|
||||
{ id: 4, name: 'Kadıköy Şube Müdürlüğü' },
|
||||
{ id: 5, name: 'Karşıyaka Şube Müdürlüğü' },
|
||||
{ id: 6, name: 'Muğla Şube Müdürlüğü' },
|
||||
{ id: 7, name: 'Trabzon Şube Müdürlüğü' },
|
||||
{ id: 8, name: 'Noter' },
|
||||
{ id: 9, name: 'Başkanlık Personeli' }
|
||||
])
|
||||
|
||||
const tableHeader = ref<Record<string, any>[]>([
|
||||
{
|
||||
name: 'tarih',
|
||||
@ -125,6 +143,28 @@
|
||||
name: 'kapsamDisiSebebi',
|
||||
title: 'Kapsam Dışı Sebebi'
|
||||
},
|
||||
{
|
||||
name: 'mudurluk',
|
||||
title: 'Müdürlük',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.mudurluk === null || v.mudurluk === undefined || v.mudurluk === '') {
|
||||
return ''
|
||||
}
|
||||
const mudurluk = mudurlukListesi.value.find((item: Record<string, any>) => item.id === v.mudurluk)
|
||||
return mudurluk ? mudurluk.name : ''
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'cekilisGorevlisi',
|
||||
title: 'Çekiliş Görevlisi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
if (v.cekilisGorevlisi === null || v.cekilisGorevlisi === undefined || v.cekilisGorevlisi === '') {
|
||||
return ''
|
||||
}
|
||||
const gorevli = cekilisGorevlisiListesi.value.find((item: Record<string, any>) => item.id === v.cekilisGorevlisi)
|
||||
return gorevli ? gorevli.name : ''
|
||||
}
|
||||
},
|
||||
])
|
||||
|
||||
const EditOnay = (d: Record<string, any>) => {
|
||||
@ -132,7 +172,9 @@
|
||||
...piyangoOnayStore.piyangoOnayBaseForm,
|
||||
...d,
|
||||
izinAciklamasi: d.izinAciklamasi != null ? d.izinAciklamasi : '',
|
||||
kapsamDisiSebebi: d.kapsamDisiSebebi != null ? d.kapsamDisiSebebi : null
|
||||
kapsamDisiSebebi: d.kapsamDisiSebebi != null ? d.kapsamDisiSebebi : null,
|
||||
mudurlukId: d.mudurluk != null ? d.mudurluk : null,
|
||||
cekilisGorevlisiId: d.cekilisGorevlisi != null ? d.cekilisGorevlisi : null
|
||||
})
|
||||
piyangoOnayStore.onayFormPanel = true
|
||||
}
|
||||
|
||||
@ -39,6 +39,10 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== getKapsamDisiId()) {
|
||||
piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi = null
|
||||
}
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== 4) {
|
||||
piyangoOnayStore.piyangoOnayForm.mudurlukId = null
|
||||
piyangoOnayStore.piyangoOnayForm.cekilisGorevlisiId = null
|
||||
}
|
||||
dataForm.append(
|
||||
'onayDurumuIslemTipiId',
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
|
||||
@ -61,6 +65,18 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
? String(piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi)
|
||||
: ''
|
||||
)
|
||||
dataForm.append(
|
||||
'mudurluk',
|
||||
piyangoOnayStore.piyangoOnayForm.mudurlukId != null
|
||||
? String(piyangoOnayStore.piyangoOnayForm.mudurlukId)
|
||||
: ''
|
||||
)
|
||||
dataForm.append(
|
||||
'cekilisGorevlisi',
|
||||
piyangoOnayStore.piyangoOnayForm.cekilisGorevlisiId != null
|
||||
? String(piyangoOnayStore.piyangoOnayForm.cekilisGorevlisiId)
|
||||
: ''
|
||||
)
|
||||
|
||||
form = await dataStore.dataPost('OnayDurumu/', {
|
||||
data: dataForm,
|
||||
|
||||
@ -16,7 +16,9 @@ export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
|
||||
izinSayisi: '',
|
||||
izinTarihi: '',
|
||||
izinAciklamasi: '',
|
||||
kapsamDisiSebebi: null
|
||||
kapsamDisiSebebi: null,
|
||||
mudurlukId: null,
|
||||
cekilisGorevlisiId: null
|
||||
})
|
||||
const piyangoOnayForm = reactive<Record<string, any>>({})
|
||||
const piyangoPanelOnayForm = reactive<Record<string, any>>({})
|
||||
|
||||
@ -51,6 +51,20 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
'İzin tarihi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'mudurlukId',
|
||||
'Müdürlük seçmelisiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'cekilisGorevlisiId',
|
||||
'Çekiliş görevlisi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
<tab-piyango-bilgileri v-else />
|
||||
</template>
|
||||
<template #katilim-listesi><tab-piyango-katilimci-listesi /></template>
|
||||
<template #cekilis-tutanagi><tab-piyango-talihli-listesi /></template>
|
||||
<template #talihliler><tab-piyango-talihli-listesi /></template>
|
||||
<template #itiraz-sikayet><tab-piyango-itiraz /></template>
|
||||
<template #piyango-loglari><tab-piyango-loglari /></template>
|
||||
@ -75,6 +76,7 @@
|
||||
usersStore.isPanelUser) &&
|
||||
piyangoStore.lotteryPurposeId !== 3
|
||||
) {
|
||||
|
||||
tabList.value.push(
|
||||
{ text: 'Katılım Listesi', id: 'katilim-listesi' },
|
||||
{ text: 'Talihliler', id: 'talihliler' },
|
||||
@ -89,6 +91,7 @@
|
||||
}
|
||||
tabList.value.push({ text: 'Onay Durumu', id: 'onay-durumu' })
|
||||
|
||||
|
||||
if (piyangoStore.lotteryApprove !== 0 && piyangoStore.lotteryPurposeId !== 3) {
|
||||
tabList.value.push({ text: 'Teminat Listesi', id: 'teminat-listesi' })
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@
|
||||
style:{width:'15%'}
|
||||
},
|
||||
{
|
||||
name: 'kisiAdi',
|
||||
name: 'email',
|
||||
title: 'Kişi',
|
||||
sort: true,
|
||||
style:{width:'20%'}
|
||||
|
||||
Reference in New Issue
Block a user