Sayfayı Yazdır | Pencereyi Kapat

OZEL HESAP KAPATILMAMISLAR

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=4315
Tarih: 23 Kasım 2024 Saat 00:48
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: OZEL HESAP KAPATILMAMISLAR
Mesajı Yazan: social
Konu: OZEL HESAP KAPATILMAMISLAR
Mesaj Tarihi: 08 Mart 2016 Saat 15:38
arkadaslar merhaba cari hareketinde alacak kaydi olupta özel hesap kismindan kapatilmamis haraketi olani nasil gorebilirim
 
ornek alinin 50tl borcu var 50 tl alacagi var ve bakiyesi 0 diyelim ama özel hesap penceresi gösterilmesin isaretli ve alacak kaydinda pencere açilmadigi için 50 tl borca karsilik kapatma yapilmamis.
 
bende istiyorumki cari haraketinde alacak kaydi olup borca kapatma yapilmamislari listelesin
 
SELECT     (CASE WHEN TBLCAHAR.ALACAK > '0' THEN TBLCAHAR.KAPATILMIS_TUTAR > '0') END) buna benzer birsey sanirim
yardimlarinizi bekliyorum tesekkurler



Cevaplar:
Mesajı Yazan: rhan
Mesaj Tarihi: 08 Mart 2016 Saat 17:54
CREATE FUNCTION [dbo].[OZELYASLANDIR](@CARIKODU TDBCARIKOD,@DOVIZLIMI VARCHAR(1))
RETURNS
--DECLARE
@TEMP TABLE ( CARIKOD VARCHAR(35),CARIISIM VARCHAR(100),BELGENO VARCHAR(20),BELGETARIHI SMALLDATETIME,ACIKLAMA VARCHAR(50),TAHSILAT FLOAT,ODEME FLOAT,
VADEGUNU SMALLDATETIME,ASILTUTAR FLOAT,DOVIZTUR INT,DOVIZTUTAR FLOAT,PLASIYERKODU VARCHAR(50),PLASIYERISMI VARCHAR(100),PROJE VARCHAR(15),INCKEYNO INT)
AS                     
BEGIN       


IF @CARIKODU = ''
    BEGIN
        SET @CARIKODU = '%'
    END

DECLARE @CKOD VARCHAR(100),@DOVTIP INT,@TB FLOAT,@TA FLOAT,@DB FLOAT,@DA FLOAT,@KURISIM VARCHAR(100),@HESAPTUTMASEKLI VARCHAR(100)
DECLARE @CARI_KOD VARCHAR(100),@CARI_ISIM VARCHAR(100),@BELGE_NO VARCHAR(100),@TARIH SMALLDATETIME ,@ACIKLAMA VARCHAR(100),@VADE_TARIHI SMALLDATETIME,@PROJE_KODU VARCHAR(100),@DOVIZ_TURU INT,@SUBE_KODU INT,@HAREKET_TURU VARCHAR(100),@BORC FLOAT,@ALACAK FLOAT,@DOVIZ_TUTAR FLOAT,@KAPATILMIS_TUTAR FLOAT,@INC_KEY_NUMBER FLOAT,@FIRMA_DOVIZ_TIPI FLOAT,@FIRMA_DOVIZ_TUTARI FLOAT,@PLASIYER_KODU VARCHAR(100),@PLASIYER_ACIKLAMA VARCHAR(100)
DECLARE @CKODU VARCHAR(100),@CARIISIM VARCHAR(100),@BELGENO VARCHAR(100),@BELGETARIHI SMALLDATETIME,@TMP_ACIKLAMA VARCHAR(100),@TMP_BORC FLOAT,@TMP_ALACAK FLOAT,@VADE SMALLDATETIME,@SONALACAK FLOAT,@ASILTUTAR FLOAT,@DOVIZTUR INT,@DOVIZTUTAR FLOAT,@MODUL VARCHAR(100),@KA VARCHAR(100)
DECLARE @BAKIYE FLOAT,@TOPLAM FLOAT


IF @DOVIZLIMI='E'
    BEGIN
        DECLARE CURCARI CURSOR FOR
        SELECT TRA.CARI_KOD,TRA.DOVIZ_TURU DOVIZTIP,TRA.BORC BORC, TRA.ALACAK ALACAK,TRA.BDOVTOP, TRA.ADOVTOP,ISNULL(KUR.ISIM,'YTL') KURISIM,HESAPTUTMASEKLI
        FROM TBLCASABIT CARIANA
        LEFT OUTER JOIN(
        SELECT CARI_KOD,CAHAR.DOVIZ_TURU,SUM(BORC) BORC ,SUM(ALACAK) ALACAK,SUM(CASE WHEN BORC>0 THEN DOVIZ_TUTAR ELSE 0 END) BDOVTOP,SUM(CASE WHEN ALACAK>0 THEN DOVIZ_TUTAR ELSE 0 END) ADOVTOP
        FROM TBLCAHAR CAHAR
        WHERE (HAREKET_TURU BETWEEN 'A' AND 'L')
        AND CAHAR.DOVIZ_TURU>=0
        AND CAHAR.DOVIZ_TURU<=99
        GROUP BY CARI_KOD,DOVIZ_TURU
         ) TRA
         ON ( CARIANA.CARI_KOD = TRA.CARI_KOD )
        LEFT OUTER JOIN NETSIS..KUR KUR ON ( KUR.SIRA = TRA.DOVIZ_TURU )
        WHERE (CARIANA.CM_BORCT + CARIANA.CM_ALACT <> 0) AND TRA.CARI_KOD LIKE @CARIKODU ORDER BY  CARIANA.CARI_KOD  ASC ,TRA.DOVIZ_TURU



        OPEN CURCARI
        FETCH NEXT FROM CURCARI INTO @CKOD,@DOVTIP,@TB,@TA,@DB,@DA,@KURISIM,@HESAPTUTMASEKLI
        WHILE @@FETCH_STATUS <> -1
            BEGIN
                IF @DOVTIP<>0
                BEGIN                
                    IF @HESAPTUTMASEKLI='K'
                    BEGIN
                        DECLARE HAREKET CURSOR FOR
                        SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD),BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,HAREKET_TURU,(CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END),(CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END),DOVIZ_TUTAR,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA,INC_KEY_NUMBER FROM TBLCAHAR WITH (NOLOCK)  
                        LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                        WHERE DOVIZ_TUTAR  <> KAPATILMIS_TUTAR AND (CARI_KOD=@CKOD) AND DOVIZ_TURU = @DOVTIP
                        ORDER BY VADE_TARIHI DESC
                     
                        OPEN HAREKET
                        FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@HAREKET_TURU,@BORC,@ALACAK,@DOVIZ_TUTAR,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@INC_KEY_NUMBER
                        WHILE @@FETCH_STATUS <> -1
                        BEGIN
                            SET @SONALACAK = (@BORC + @ALACAK)  
                            SET @ASILTUTAR = (@BORC + @ALACAK)  
                            IF @BORC > 0  SET @BORC = @BORC - @KAPATILMIS_TUTAR
                            IF @ALACAK > 0  SET @ALACAK = @ALACAK   - @KAPATILMIS_TUTAR
                            INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                               FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@HAREKET_TURU,@BORC,@ALACAK,@DOVIZ_TUTAR,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@INC_KEY_NUMBER
                            END
                        CLOSE HAREKET
                      DEALLOCATE HAREKET
                    END
                    
                        IF @HESAPTUTMASEKLI = 'Y ' AND @DB < @DA
                        BEGIN
                            SET @BAKIYE = @DA-@DB    -- ALACAK
                            
                            DECLARE HAREKET CURSOR FOR SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD), BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,(CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END),(CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END),INC_KEY_NUMBER,DOVIZ_TUTAR,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA FROM TBLCAHAR WITH (NOLOCK)  
                                                    LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                                                    WHERE (CARI_KOD=@CKOD)
                                                    AND NOT ((DOVIZ_TURU>0) AND (DOVIZ_TUTAR=0))
                                                    AND (DOVIZ_TURU=@DOVTIP)
                                                    AND (CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END)>0
                                                    ORDER BY VADE_TARIHI DESC
                            OPEN HAREKET                                    
                            SET @TOPLAM = 0
                            FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                            WHILE @@FETCH_STATUS<>-1 AND ( @BAKIYE > @TOPLAM )
                            BEGIN

                                SET @TOPLAM = @TOPLAM + @ALACAK       
                                SET @SONALACAK = @ALACAK
                                SET @ASILTUTAR = @ALACAK
                                IF @TOPLAM >= @BAKIYE
                                   BEGIN
                                     SET @SONALACAK = @ALACAK
                                     SET @ALACAK = (@TOPLAM - @BAKIYE - @ALACAK) * -1
                                     IF  @SONALACAK = @ALACAK SET @SONALACAK = @ALACAK
                                   ELSE
                                      SET @SONALACAK = @ALACAK
                                   END
                                
                                INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                                FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                             END
                          CLOSE HAREKET
                          DEALLOCATE HAREKET
                        END

                        IF @HESAPTUTMASEKLI = 'Y ' AND @DA < @DB
                        BEGIN
                            SET @BAKIYE = @DB-@DA    -- BORC
                            DECLARE HAREKET CURSOR FOR SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD), BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,(CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END),(CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END),INC_KEY_NUMBER,DOVIZ_TUTAR,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA FROM TBLCAHAR WITH (NOLOCK)  
                                                    LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                                                    WHERE (CARI_KOD=@CKOD)
                                                    AND NOT ((DOVIZ_TURU>0) AND (DOVIZ_TUTAR=0))
                                                    AND (DOVIZ_TURU=@DOVTIP)
                                                    AND (CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END)>0
                                                    ORDER BY VADE_TARIHI DESC

                            OPEN HAREKET                                    
                            SET @TOPLAM = 0
                            FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                            WHILE @@FETCH_STATUS<>-1 AND ( @BAKIYE > @TOPLAM )
                            BEGIN
                                
                                SET @TOPLAM = @TOPLAM + @BORC       
                                SET @SONALACAK = @BORC
                                SET @ASILTUTAR = @BORC
                                IF @TOPLAM >= @BAKIYE
                                   BEGIN
                                     SET @SONALACAK = @BORC
                                     SET @BORC = (@TOPLAM - @BAKIYE - @BORC) * -1
                                     IF  @SONALACAK = @BORC SET @SONALACAK = @BORC
                                   ELSE
                                     SET @SONALACAK = @BORC
                                   END
                                
                                INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                                FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA                               
                             END
                          CLOSE HAREKET
                          DEALLOCATE HAREKET
                        END
                END

                    IF @DOVTIP=0
                    BEGIN

                        IF @HESAPTUTMASEKLI='K'
                        BEGIN
                            DECLARE HAREKET CURSOR FOR
                            SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD),BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,HAREKET_TURU,(CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END),(CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END),DOVIZ_TUTAR,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA,INC_KEY_NUMBER FROM TBLCAHAR WITH (NOLOCK)  
                            LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                            WHERE BORC+ALACAK  <> KAPATILMIS_TUTAR AND (CARI_KOD=@CKOD) AND DOVIZ_TURU = @DOVTIP
                            ORDER BY VADE_TARIHI DESC
                         
                            OPEN HAREKET
                            FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@HAREKET_TURU,@BORC,@ALACAK,@DOVIZ_TUTAR,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@INC_KEY_NUMBER
                            WHILE @@FETCH_STATUS <> -1
                            BEGIN
                                SET @SONALACAK = (@BORC + @ALACAK)  
                                SET @ASILTUTAR = (@BORC + @ALACAK)  
                                IF @BORC > 0  SET @BORC = @BORC - @KAPATILMIS_TUTAR
                                IF @ALACAK > 0  SET @ALACAK = @ALACAK   - @KAPATILMIS_TUTAR
                                INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                                   FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@HAREKET_TURU,@BORC,@ALACAK,@DOVIZ_TUTAR,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@INC_KEY_NUMBER
                                END
                            CLOSE HAREKET
                          DEALLOCATE HAREKET
                        END
                        
                        
                        IF @HESAPTUTMASEKLI = 'Y ' AND @TB < @TA
                        BEGIN
                            SET @BAKIYE = @TA-@TB    -- ALACAK
                            
                            DECLARE HAREKET CURSOR FOR SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD), BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,(CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END),(CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END),INC_KEY_NUMBER,DOVIZ_TUTAR,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA FROM TBLCAHAR WITH (NOLOCK)  
                                                    LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                                                    WHERE (CARI_KOD=@CKOD)
                                                    AND (DOVIZ_TURU=@DOVTIP)
                                                    AND (CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END)>0
                                                    ORDER BY VADE_TARIHI DESC
                            OPEN HAREKET                                    
                            SET @TOPLAM = 0
                            FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                            WHILE @@FETCH_STATUS<>-1 AND ( @BAKIYE > @TOPLAM )
                            BEGIN

                                SET @TOPLAM = @TOPLAM + @ALACAK       
                                SET @SONALACAK = @ALACAK
                                SET @ASILTUTAR = @ALACAK
                                IF @TOPLAM >= @BAKIYE
                                   BEGIN
                                     SET @SONALACAK = @ALACAK
                                     SET @ALACAK = (@TOPLAM - @BAKIYE - @ALACAK) * -1
                                     IF  @SONALACAK = @ALACAK SET @SONALACAK = @ALACAK
                                   ELSE
                                      SET @SONALACAK = @ALACAK
                                   END
                                
                                INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                                FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA                               
                             END
                          CLOSE HAREKET
                          DEALLOCATE HAREKET
                        END

                        IF @HESAPTUTMASEKLI = 'Y ' AND @TA < @TB
                        BEGIN
                            SET @BAKIYE = @TB-@TA    -- BORC
                            DECLARE HAREKET CURSOR FOR SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD), BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,(CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END),(CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END),INC_KEY_NUMBER,DOVIZ_TUTAR,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA FROM TBLCAHAR WITH (NOLOCK)  
                                                    LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                                                    WHERE (CARI_KOD=@CKOD)
                                                    AND (DOVIZ_TURU=@DOVTIP)
                                                    AND (CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END)>0
                                                    ORDER BY VADE_TARIHI DESC

                            OPEN HAREKET                                    
                            SET @TOPLAM = 0
                            FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                            WHILE @@FETCH_STATUS<>-1 AND ( @BAKIYE > @TOPLAM )
                            BEGIN
                                
                                SET @TOPLAM = @TOPLAM + @BORC        
                                SET @SONALACAK = @BORC
                                SET @ASILTUTAR = @BORC
                                
                                IF @TOPLAM >= @BAKIYE
                                   BEGIN
                                     SET @SONALACAK = @BORC
                                     SET @BORC = (@TOPLAM - @BAKIYE - @BORC) * -1
                                     IF  @SONALACAK = @BORC SET @SONALACAK = @BORC
                                   ELSE
                                      SET @SONALACAK = @BORC
                                   END
                                
                                INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                                FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA                           
                             END
                          CLOSE HAREKET
                          DEALLOCATE HAREKET
                        END
                END


            FETCH NEXT FROM CURCARI INTO @CKOD,@DOVTIP,@TB,@TA,@DB,@DA,@KURISIM,@HESAPTUTMASEKLI
    
            END

        CLOSE CURCARI
        DEALLOCATE CURCARI

    END

IF @DOVIZLIMI='H'
    BEGIN
        DECLARE CURCARI CURSOR FOR
        SELECT CARI_KOD,0,CM_BORCT,CM_ALACT,0,0,'YTL',HESAPTUTMASEKLI FROM TBLCASABIT WHERE CARI_KOD LIKE @CARIKODU ORDER BY CARI_KOD
        
        

        OPEN CURCARI
        FETCH NEXT FROM CURCARI INTO @CKOD,@DOVTIP,@TB,@TA,@DB,@DA,@KURISIM,@HESAPTUTMASEKLI
        WHILE @@FETCH_STATUS <> -1
            BEGIN
                    IF @HESAPTUTMASEKLI='K'
                    BEGIN
                        DECLARE HAREKET CURSOR FOR
                        SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD),BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,HAREKET_TURU,(CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END),(CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END),DOVIZ_TUTAR,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA,INC_KEY_NUMBER FROM TBLCAHAR WITH (NOLOCK)  
                        LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                        WHERE BORC+ALACAK  <> KAPATILMIS_TUTAR AND (CARI_KOD=@CKOD) AND DOVIZ_TURU = @DOVTIP
                        ORDER BY VADE_TARIHI DESC
                     
                        OPEN HAREKET
                        FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@HAREKET_TURU,@BORC,@ALACAK,@DOVIZ_TUTAR,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@INC_KEY_NUMBER
                        WHILE @@FETCH_STATUS <> -1
                        BEGIN
                            SET @SONALACAK = (@BORC + @ALACAK)  
                            SET @ASILTUTAR = (@BORC + @ALACAK)  
                            IF @BORC > 0  SET @BORC = @BORC - @KAPATILMIS_TUTAR
                            IF @ALACAK > 0  SET @ALACAK = @ALACAK   - @KAPATILMIS_TUTAR
                            INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                               FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@HAREKET_TURU,@BORC,@ALACAK,@DOVIZ_TUTAR,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@INC_KEY_NUMBER
                            END
                        CLOSE HAREKET
                      DEALLOCATE HAREKET
                    END

                    IF @HESAPTUTMASEKLI = 'Y ' AND @TB < @TA
                    BEGIN
                        SET @BAKIYE = @TA-@TB    -- ALACAK
                        DECLARE HAREKET CURSOR FOR SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD), BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,BORC,ALACAK,INC_KEY_NUMBER,DOVIZ_TUTAR,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA FROM TBLCAHAR WITH (NOLOCK)  
                                                LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                                                WHERE (CARI_KOD=@CKOD)
                                                --AND (CASE WHEN ALACAK>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE ALACAK END)>0
                                                AND ALACAK>0
                                                ORDER BY VADE_TARIHI DESC
                        OPEN HAREKET                                    
                        SET @TOPLAM = 0
                        FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                        WHILE @@FETCH_STATUS<>-1 AND ( @BAKIYE > @TOPLAM )
                        BEGIN
                            
                            SET @TOPLAM = @TOPLAM + @ALACAK       
                            SET @SONALACAK = @ALACAK
                            SET @ASILTUTAR = @ALACAK
                            IF @TOPLAM >= @BAKIYE
                               BEGIN
                                 SET @SONALACAK = @ALACAK
                                 SET @ALACAK = (@TOPLAM - @BAKIYE - @ALACAK) * -1
                                 IF  @SONALACAK = @ALACAK SET @SONALACAK = @ALACAK
                               ELSE
                                  SET @SONALACAK = @ALACAK
                               END
                            
                            INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                            FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                         END
                      CLOSE HAREKET
                      DEALLOCATE HAREKET
                    END

                    IF @HESAPTUTMASEKLI = 'Y ' AND @TA < @TB
                    BEGIN
                        SET @BAKIYE = @TB-@TA    -- BORC
                        DECLARE HAREKET CURSOR FOR SELECT CARI_KOD,(SELECT CARI_ISIM FROM TBLCASABIT WITH (NOLOCK) WHERE TBLCASABIT.CARI_KOD = TBLCAHAR.CARI_KOD), BELGE_NO,TARIH,ACIKLAMA,VADE_TARIHI,TBLCAHAR.PROJE_KODU,DOVIZ_TURU,TBLCAHAR.SUBE_KODU,BORC,ALACAK,INC_KEY_NUMBER,DOVIZ_TUTAR,FIRMA_DOVIZ_TIPI,FIRMA_DOVIZ_TUTARI,KAPATILMIS_TUTAR,TBLCAHAR.PLASIYER_KODU,PLASIYER_ACIKLAMA FROM TBLCAHAR WITH (NOLOCK)  
                                                LEFT OUTER JOIN TBLCARIPLASIYER WITH (NOLOCK) ON (TBLCAHAR.PLASIYER_KODU = TBLCARIPLASIYER.PLASIYER_KODU)             
                                                WHERE (CARI_KOD=@CKOD)
                                                --AND (CASE WHEN BORC>0 AND DOVIZ_TURU <> 0 THEN DOVIZ_TUTAR ELSE BORC END)>0
                                                AND BORC>0
                                                ORDER BY VADE_TARIHI DESC
                        OPEN HAREKET                                    
                        SET @TOPLAM = 0
                        FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                        WHILE @@FETCH_STATUS<>-1 AND ( @BAKIYE > @TOPLAM )
                        BEGIN
                            
                            SET @TOPLAM = @TOPLAM + @BORC       
                            SET @SONALACAK = @BORC
                            SET @ASILTUTAR = @BORC
                            IF @TOPLAM >= @BAKIYE
                               BEGIN
                                 SET @SONALACAK = @BORC
                                 SET @BORC = (@TOPLAM - @BAKIYE - @BORC) * -1
                                 IF  @SONALACAK = @BORC SET @SONALACAK = @BORC
                               ELSE
                                  SET @SONALACAK = @BORC
                               END
                            
                            INSERT INTO @TEMP VALUES (@CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@BORC,@ALACAK,@VADE_TARIHI,@ASILTUTAR,@DOVIZ_TURU,@DOVIZ_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA,@PROJE_KODU,@INC_KEY_NUMBER)
                            FETCH NEXT FROM HAREKET INTO @CARI_KOD,@CARI_ISIM,@BELGE_NO,@TARIH,@ACIKLAMA,@VADE_TARIHI,@PROJE_KODU,@DOVIZ_TURU,@SUBE_KODU,@BORC,@ALACAK,@INC_KEY_NUMBER,@DOVIZ_TUTAR,@FIRMA_DOVIZ_TIPI,@FIRMA_DOVIZ_TUTARI,@KAPATILMIS_TUTAR,@PLASIYER_KODU,@PLASIYER_ACIKLAMA
                         END
                      CLOSE HAREKET
                      DEALLOCATE HAREKET
                    END


            FETCH NEXT FROM CURCARI INTO @CKOD,@DOVTIP,@TB,@TA,@DB,@DA,@KURISIM,@HESAPTUTMASEKLI
    
            END


        CLOSE CURCARI
        DEALLOCATE CURCARI



    END
    
    

RETURN

END

-------------
İnnova Antalya Proje Danışmanlık
Orhan ÇÖPÜROĞLU

0544 241 45 55
0242 311 45 56


Mesajı Yazan: rhan
Mesaj Tarihi: 08 Mart 2016 Saat 17:56
SELECT * FROM [dbo].[OZELYASLANDIR]('', 'H')


-------------
İnnova Antalya Proje Danışmanlık
Orhan ÇÖPÜROĞLU

0544 241 45 55
0242 311 45 56


Mesajı Yazan: social
Mesaj Tarihi: 08 Mart 2016 Saat 18:32
tesekkurler ama bu benim istedigimi karsilamiyor


Mesajı Yazan: Conari
Mesaj Tarihi: 09 Mart 2016 Saat 13:09
select * from tblcahar where alacak>0 and KAPATILMIS_TUTAR<>ALACAK
 
Dövizliler için, döviz tipi kontrolü eklenmeli ve döviz tutarina bakilmali


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: social
Mesaj Tarihi: 23 Mart 2016 Saat 12:15
Orjinalini yazan: Conari Conari Yazdı:

select * from tblcahar where alacak>0 and KAPATILMIS_TUTAR<>ALACAK
 
Dövizliler için, döviz tipi kontrolü eklenmeli ve döviz tutarina bakilmali


BUNA ALACAK BAKIYESI 1 TL UZERINDE OLANLARI ALMAMASINI SAGLAMAK LAZIM,sorun soyle oluyor mesela 1057,70 borc bakiyeli musteriden 1057,71 tahsilat yapilmis ve kapatmasi yapilmis,alacak bakiyesi 0,01kr kaldigindan oturu rapora bunu getiriyor hemde 0,01kr olarak degilde 1057,71 olarak tam tahsilatini getiriyor


Mesajı Yazan: Conari
Mesaj Tarihi: 24 Mart 2016 Saat 17:34
Hocam zaten * from dedik hepsi gelsin, diye sen bir kere istedigin alanlari seçeceksin.
 
he kalan bakiyesi 1 TL altinda olanlar gelmesin diyorsan..
 
select *, ALACAK-KAPATILMIS_TUTAR  AS KALAN from tblcahar where alacak>0 and KAPATILMIS_TUTAR<>ALACAK  AND (ALACAK-KAPATILMIS_TUTAR)>1


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net