KDV Matrah Raporu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

KDV Matrah Raporu

Mesaj gönderen ozcank »

Arkadaşlar Merhaba;
Bir rapor yapmaya çalıştım fakat sonuç yanlış döndürüyor yardımcı olabilir misiniz?
Rapor sonucun da çift kayıt dönüyor ve biri doğru diğeri yanlış.
Kod şöyle;

Kod: Tümünü seç

--ALTER VIEW [dbo].[_FATURAKDV_MATRAH] AS 
SELECT 
CASE WHEN STHAR_HTUR IN ('J','L') THEN 'Fatura' ELSE 'BOS' END AS FATURA_TIPI,

CASE STHAR_FTIRSIP 
			   WHEN '2' THEN ('Alış') 
			   WHEN '1' THEN ('Satış') END AS TIPI,
CASE FT.TIPI 
			   WHEN '1' THEN ('Kapalı Fatura') 
			   WHEN '2' THEN ('Açık Fatura')
              WHEN '3' THEN ('Muhtelif Fatura')
               WHEN '4' THEN ('İade Fatura')
               WHEN '5' THEN ('Zayi İade Fatura') END AS FaturaTipi,

FT.BRUTTUTAR,CS.CARI_ISIM AS CARI_UNVAN, VERGI_NUMARASI,FISNO AS FUTURA_NO,FT.GENELTOPLAM,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END) AS MATRAH_KDV1,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN (STHAR_GCMIK * STHAR_NF)*0.01  ELSE 0 END) AS TUTAR_KDV1,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN 1  ELSE 1 END) AS KDV_ORAN1,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END) AS MATRAH_KDV8,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN (STHAR_GCMIK * STHAR_NF)*0.08  ELSE 0 END) AS TUTAR_KDV8,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN 8  ELSE 8 END) AS KDV_ORAN2,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END) AS MATRAH_KDV18,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN (STHAR_GCMIK * STHAR_NF)*0.18  ELSE 0 END) AS TUTAR_KDV18,
(CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN 18  ELSE 18 END) AS KDV_ORAN3,

CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END + CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END + CASE WHEN STHAR_GCKOD IN ('C','G') AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END AS TOPLAM
FROM TBLSTHAR SH
INNER JOIN TBLCASABIT CS ON (SH.STHAR_ACIKLAMA = CS.CARI_KOD) 
INNER JOIN TBLFATUIRS FT ON (SH.FISNO = FT.FATIRS_NO)
WHERE STHAR_HTUR IN ('J','L') AND SH.FISNO='000000000000006' AND STHAR_ACIKLAMA='270'
GO
dönen sonuc bu şekilde;

Fatura Satis Açik Fatura 1107.64000000 ALMALI GIDA 000000000000006 1307.02000000 1370.160000 13.701600 -Yanlış
Fatura Satis Açik Fatura 1557.00000000 ALMALI GIDA 000000000000006 1383.86000000 1370.160000 13.701600 -Doğru
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: KDV Matrah Raporu

Mesaj gönderen ozcank »

Arkadaşlar biraz daha sadeleştirdim ama kdv leri aynı satır da hesaplatamadım. Yardımcı olabilir misiniz?

Kod: Tümünü seç

SELECT 
CASE WHEN STHAR_HTUR IN ('J','L') THEN 'SATISF' ELSE 'BOS' END AS FATURA_TIPI,
STHAR_TARIH,CARI_ISIM AS CARI_UNVAN, VERGI_NUMARASI,FISNO AS FUTURA_NO,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END) AS MATRAH_KDV1,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN (STHAR_GCMIK * STHAR_NF)*0.01  ELSE 0 END) AS TUTAR_KDV1,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN 1  ELSE 1 END) AS KDV_ORAN1,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END) AS MATRAH_KDV8,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN (STHAR_GCMIK * STHAR_NF)*0.08  ELSE 0 END) AS TUTAR_KDV8,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN 8  ELSE 8 END) AS KDV_ORAN2,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END) AS MATRAH_KDV18,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN (STHAR_GCMIK * STHAR_NF)*0.18  ELSE 0 END) AS TUTAR_KDV18,
(CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN 18  ELSE 18 END) AS KDV_ORAN3,
CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='1' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END + CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='8' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END + CASE WHEN STHAR_GCKOD='C' AND STHAR_HTUR IN ('J','L') AND STHAR_KDV='18' THEN STHAR_GCMIK * STHAR_NF  ELSE 0 END AS TOPLAM
FROM TBLSTHAR SH
INNER JOIN TBLCASABIT CS ON (SH.STHAR_ACIKLAMA = CS.CARI_KOD)
WHERE STHAR_HTUR IN ('J','L') 
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: KDV Matrah Raporu

Mesaj gönderen freeman35 »

WHERE STHAR_HTUR IN ('J','L') bu varken case içine koşul yaman mantıklı mı?
where STHAR_GCKOD='C' AND ( STHAR_HTUR='J' or STHAR_HTUR='L') /* 1- where kullanımında 3-5 değişkeni in ile kullanma, 2-char değil integer gibi sayı tipi kullan
case STHAR_KDV='1' THEN .... sadeleştir.
ayrıca burada case ede gerek olmazdı, eğer STHAR_KDV sayı tipinde olsaydı. (STHAR_GCMIK * STHAR_NF)* (STHAR_KDV / 100)
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: KDV Matrah Raporu

Mesaj gönderen ozcank »

Merhaba freeman35 kardeşim SQL Kodunu dediğin gibi bu şekilde revize ettim fakat bir türlü ORAN ları eklediğimde tek satırda gösteremedim.
Oran kısımları devre dışı bıraktığım da tek satır gösteriyor, Oran ları devreye alınca üç satır a çıkıyor. Nerde yanlışlık yapıyorum bir bakabilir misiniz?

Kod: Tümünü seç

  SELECT a.KOD2,a.fatirs_no,a.gib_fatirs_no,a.tarih, c.cari_isim,c.VERGI_DAIRESI,c.VERGI_NUMARASI,CaSek.TCKIMLIKNO, a.bruttutar, a.SAT_ISKT, (a.GEN_ISK1T+a.GEN_ISK2T+a.GEN_ISK3T) AS GENEL_ISKonto,
  a.TIPI,a.GENELTOPLAM,
  sum(CASE WHEN b.STHAR_KDV='1'THEN (b.STHAR_NF*b.STHAR_KDV*b.STHAR_GCMIK)/100 ELSE 0 END ) AS Matrah_KDV1,
 --(CASE WHEN b.STHAR_KDV='1' THEN '1'  ELSE 0 END) AS ORAN1,
  Sum(CASE WHEN b.STHAR_KDV='8' THEN (b.STHAR_NF*b.STHAR_KDV*b.STHAR_GCMIK)/100 ELSE 0 END) AS Matrah_KDV8,
 --(CASE WHEN b.STHAR_KDV='8' THEN '8'  ELSE 0 END) AS ORAN8,
  Sum(CASE WHEN b.STHAR_KDV='18' THEN (b.STHAR_NF*b.STHAR_KDV*b.STHAR_GCMIK)/100 ELSE 0 END) AS Matrah_KDV18,
 --(CASE WHEN b.STHAR_KDV='18' THEN '18'  ELSE 0 END) AS ORAN18,
  CASE a.TIPI
  WHEN '1' THEN ('Kapalı Fatura')
  WHEN '2' THEN ('Açık Fatura')
  WHEN '3' THEN ('Muhtelif Fatura')
  WHEN '4' THEN ('İade Fatura')
  WHEN '5' THEN ('Zayi İade Fatura') End As FATURATIPI,
  CASE WHEN ozk.OZELKOD=a.KOD2 THEN (ozk.ACIKLAMA) END AS Aciklama
  FROM (TBLFATUIRS as a inner join TBLSTHAR as b on a.FATIRS_NO = b.FISNO Left Join TBLOZELKOD2 AS ozk on ozk.OZELKOD=a.KOD2)
  Inner Join TBLCASABIT as c on a.cari_kodu = c.cari_kod
  Inner Join TBLCASABITEK as CaSek on CaSek.Cari_Kod = c.Cari_Kod
  WHERE a.FTIRSIP='1' AND b.FISNO='000000000001470' AND STHAR_ACIKLAMA='00098'
  Group by ozk.ACIKLAMA,ozk.OZELKOD,a.KOD2,a.TIPI,a.fatirs_no,a.gib_fatirs_no,a.tarih, c.cari_isim,C.VERGI_DAIRESI,C.VERGI_NUMARASI,CaSek.TCKIMLIKNO, a.bruttutar, a.SAT_ISKT, (a.GEN_ISK1T+a.GEN_ISK2T+a.GEN_ISK3T), a.geneltoplam
  --,b.STHAR_KDV
  
Kullanıcı avatarı
sunye
Üye
Mesajlar: 105
Kayıt: 24 Ağu 2004 04:49
Konum: izmir

Re: KDV Matrah Raporu

Mesaj gönderen sunye »

Sanırım Netsis için detaylı KDV matrah raporu oluşturmak istiyorsunuz.

Kod: Tümünü seç


USE [STANDARD9]
GO

/****** Object:  View [dbo].[_EDA_FATURA]    Script Date: 30.05.2019 22:14:04 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW  [dbo].[_EDA_FATURA] AS
SELECT 
	SH.FISNO AS FATURA_NO, 
	SH.STHAR_TARIH AS FATURA_TARIHI, 
	SH.STHAR_ACIKLAMA AS CARI_KOD, 
	SH.STHAR_HTUR, 
	SH.STHAR_FTIRSIP,
	CS.CARI_ISIM, 
	CS.VERGI_DAIRESI, 
	CS.VERGI_NUMARASI,
	SUM(CASE WHEN STHAR_KDV=18 THEN (STHAR_NF*STHAR_GCMIK)  ELSE 0 END) MATRAH18,  
	SUM(CASE WHEN STHAR_KDV=18 THEN ((STHAR_NF*STHAR_GCMIK)+REDMIK)*(STHAR_KDV/100) ELSE 0 END) KDV18, 
	SUM(CASE WHEN STHAR_KDV=8 THEN (STHAR_NF*STHAR_GCMIK)  ELSE 0 END) MATRAH8, 
	SUM(CASE WHEN STHAR_KDV=8 THEN ((STHAR_NF*STHAR_GCMIK)+REDMIK)*(STHAR_KDV/100) ELSE 0 END) KDV8, 
	SUM(CASE WHEN STHAR_KDV=1 THEN (STHAR_NF*STHAR_GCMIK)  ELSE 0 END) MATRAH1, 
	SUM(CASE WHEN STHAR_KDV=1 THEN ((STHAR_NF*STHAR_GCMIK)+REDMIK)*(STHAR_KDV/100) ELSE 0 END) KDV1, 
	SUM(CASE WHEN STHAR_KDV=0 THEN (STHAR_NF*STHAR_GCMIK)  ELSE 0 END) MATRAH0, 
	SUM(CASE WHEN STHAR_KDV=0 THEN ((STHAR_NF*STHAR_GCMIK)+REDMIK)*(STHAR_KDV/100) ELSE 0 END) KDV0, 
	FT.GEN_ISK1T AS GENEL_ISKONTO1, 
	FT.GEN_ISK2T AS GENEL_ISKONTO2, 
	FT.GEN_ISK3T AS GENEL_ISKONTO3, 
	FT.GENELTOPLAM, 
	CASE WHEN FT.TIPI='2' THEN 'AÇIK' WHEN FT.TIPI='3' THEN 'MUHTELİF' WHEN FT.TIPI='4' THEN 'ZAYİ İADE' WHEN FT.TIPI='5' THEN 'İTHALAT İHRACAT' WHEN FT.TIPI='1' THEN 'KAPALI' END AS TIP 
	FROM TBLSTHAR SH 
	LEFT OUTER JOIN TBLCASABIT CS ON CS.CARI_KOD=SH.STHAR_ACIKLAMA 
	LEFT OUTER JOIN TBLFATUIRS FT ON FT.FATIRS_NO=SH.FISNO AND FT.CARI_KODU=SH.STHAR_ACIKLAMA 
	GROUP BY SH.FISNO, SH.STHAR_TARIH, SH.STHAR_ACIKLAMA, CS.CARI_ISIM, FT.GEN_ISK1T, FT.GEN_ISK2T,  FT.GEN_ISK3T, FT.GENELTOPLAM, FT.TIPI, CS.VERGI_DAIRESI, CS.VERGI_NUMARASI, 	SH.STHAR_HTUR,	SH.STHAR_FTIRSIP
GO
Netsis Raporlar modülünden Serbest Rapor olarak çalıştırabilirsin.
Bildiğim tek şey, hiç bir şey bilmediğim.
Cevapla