DROP PROCEDURE R_MALIYET_1 ;@
DROP PROCEDURE R_MALIYET ;@
DROP PROCEDURE R_STOK_1 ;@
DROP PROCEDURE R_RECETE ;@


CREATE PROCEDURE R_RECETE (
    D1 DATE,
    D2 DATE,
    SUBESI VARCHAR (50) CHARACTER SET WIN1254)
RETURNS (
    TARIH DATE,
    URUN_KODU NUMERIC (13, 0),
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    MIKTAR_TURU VARCHAR (25) CHARACTER SET WIN1254,
    BIRIM_FIYAT_TURU VARCHAR (25) CHARACTER SET WIN1254,
    MIKTAR DOUBLE PRECISION,
    TUTAR DOUBLE PRECISION)
AS
BEGIN
if (SUBESI='') then
begin
   FOR SELECT
       a.TARIH,
       b.URUN_KODU,
       b.URUN_ADI,
       b.MIKTAR_TURU,
       b.BIRIM_FIYAT_TURU,
       sum(a.ADET * b.MIKTAR),
       sum(a.ADET * b.MIKTAR * b.BIRIM_FIYATI)
   FROM YEDEK_RAPOR a, V_RECETE b
   where (a.TARIH between :D1 and :D2) and a.URUN_KODU=b.RECETE_KODU AND a.urun_kodu < 1061 and a.urun_turu between 1 and 2
   group by a.TARIH,b.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU,b.BIRIM_FIYAT_TURU
   INTO :TARIH,:URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:BIRIM_FIYAT_TURU,:MIKTAR,:TUTAR DO SUSPEND ;

   FOR SELECT
       a.TARIH,
       b.URUN_KODU,
       b.URUN_ADI,
       b.MIKTAR_TURU,
       b.BIRIM_FIYAT_TURU,
       sum(a.ADET),
       sum(a.ADET * b.BIRIM_FIYATI)
   FROM YEDEK_RAPOR a, URUNLER b
   where (a.TARIH between :D1 and :D2) and a.URUN_KODU=b.URUN_KODU AND a.urun_kodu >1060 and a.urun_turu=1
   group by a.TARIH,b.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU,b.BIRIM_FIYAT_TURU
   INTO :TARIH,:URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:BIRIM_FIYAT_TURU,:MIKTAR,:TUTAR DO SUSPEND ;
end

ELSE
begin
   FOR SELECT
       a.TARIH,
       b.URUN_KODU,
       b.URUN_ADI,
       b.MIKTAR_TURU,
       b.BIRIM_FIYAT_TURU,
       sum(a.ADET * b.MIKTAR),
       sum(a.ADET * b.MIKTAR * b.BIRIM_FIYATI)
   FROM YEDEK_RAPOR a, V_RECETE b
   where a.SUBESI=:SUBESI AND (a.TARIH between :D1 and :D2) and a.URUN_KODU=b.RECETE_KODU AND a.urun_kodu < 1061 and a.urun_turu between 1 and 2
   group by a.TARIH,b.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU,b.BIRIM_FIYAT_TURU
   INTO :TARIH,:URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:BIRIM_FIYAT_TURU,:MIKTAR,:TUTAR DO SUSPEND ;
  
   FOR SELECT
       a.TARIH,
       b.URUN_KODU,
       b.URUN_ADI,
       b.MIKTAR_TURU,
       b.BIRIM_FIYAT_TURU,
       sum(a.ADET),
       sum(a.ADET * b.BIRIM_FIYATI)
   FROM YEDEK_RAPOR a, URUNLER b
   where a.SUBESI=:SUBESI AND (a.TARIH between :D1 and :D2) and a.URUN_KODU=b.URUN_KODU AND a.urun_kodu >1060 and a.urun_turu=1
   group by a.TARIH,b.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU,b.BIRIM_FIYAT_TURU
   INTO :TARIH,:URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:BIRIM_FIYAT_TURU,:MIKTAR,:TUTAR DO SUSPEND ;
end

END
;@


CREATE PROCEDURE R_MALIYET (
    D1 DATE,
    D2 DATE,
    SUBESI VARCHAR (50) CHARACTER SET WIN1254)
RETURNS (
    TARIH DATE,
    URUN_KODU NUMERIC (13, 0),
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    MIKTAR_TURU VARCHAR (25) CHARACTER SET WIN1254,
    BIRIM_FIYAT_TURU VARCHAR (25) CHARACTER SET WIN1254,
    MIKTAR DOUBLE PRECISION,
    TUTAR DOUBLE PRECISION)
AS
BEGIN
FOR
SELECT
    a.TARIH,
    b.URUN_KODU,
    b.URUN_ADI,
    b.MIKTAR_TURU,
    b.BIRIM_FIYAT_TURU,
    sum(a.MIKTAR * b.MIKTAR),
    sum(a.MIKTAR * b.MIKTAR * b.BIRIM_FIYATI)
FROM R_RECETE(:D1,:D2,:SUBESI) a, V_RECETE b
where a.URUN_KODU=b.RECETE_KODU AND a.urun_kodu < 901
group by
    a.TARIH,
    b.URUN_KODU,
    b.URUN_ADI,
    b.MIKTAR_TURU,
    b.BIRIM_FIYAT_TURU

  INTO
  :TARIH,:URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:BIRIM_FIYAT_TURU,:MIKTAR,:TUTAR
  DO
  SUSPEND ;
  
FOR SELECT
    TARIH,
    URUN_KODU,
    URUN_ADI,
    MIKTAR_TURU,
    BIRIM_FIYAT_TURU,
    Sum(MIKTAR),
    Sum(TUTAR)
FROM R_RECETE(:D1,:D2,:SUBESI)
where urun_kodu >1060
group by
    TARIH,
    URUN_KODU,
    URUN_ADI,
    MIKTAR_TURU,
    BIRIM_FIYAT_TURU
/*
UNION

  select
    CAST('01.01.2005' as DATE),
    URUN_KODU,
    URUN_ADI,
    MIKTAR_TURU,
    BIRIM_FIYAT_TURU,
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION)
  from URUNLER
  where urun_turu =0 and urun_kodu<>1000000 --iskonto
*/
  INTO
  :TARIH,:URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:BIRIM_FIYAT_TURU,:MIKTAR,:TUTAR
  DO
  SUSPEND ;
END
;@

CREATE PROCEDURE R_MALIYET_1 (
    D1 DATE,
    DEPO INTEGER,
    SUBESI VARCHAR (50) CHARACTER SET WIN1254)
RETURNS (
    ISLEM_TARIHI DATE,
    URUN_KODU NUMERIC (13, 0),
    PARA_BIRIMI VARCHAR (25) CHARACTER SET WIN1254,
    FIYAT DOUBLE PRECISION,
    KUR DOUBLE PRECISION,
    KDV SMALLINT,
    MIKTAR DOUBLE PRECISION,
    ISKONTO DOUBLE PRECISION,
    ISLEM_TIPI SMALLINT,
    ISLEM_DURUMU SMALLINT,
    DEPO_ADI VARCHAR (50) CHARACTER SET WIN1254,
    EVRAK_TURU VARCHAR (25) CHARACTER SET WIN1254,
    EVRAK_NO VARCHAR (25) CHARACTER SET WIN1254,
    GARANTI SMALLINT,
    SERI_NO VARCHAR (25) CHARACTER SET WIN1254,
    KULLANICI VARCHAR (25) CHARACTER SET WIN1254,
    ACIKLAMA VARCHAR (200) CHARACTER SET WIN1254,
    KAYIT_TARIHI TIMESTAMP,
    ISLEM_KODU INTEGER,
    CARI_KODU INTEGER,
    CKE_ISLEM_KODU INTEGER)
AS
BEGIN

--ISLEM_TARIHI DATE;
--URUN_KODU NUMERIC (13, 0);
PARA_BIRIMI='YTL';
FIYAT=0;
KUR=1;
KDV=0;
--MIKTAR DOUBLE PRECISION;
--ISKONTO DOUBLE PRECISION,
ISLEM_TIPI=2003; --  SATI (-)
ISLEM_DURUMU=1;

if (:SUBESI='MERKEZ' or :SUBESI='') then
DEPO_ADI='MERKEZ';
else
DEPO_ADI='X';

EVRAK_TURU='RESTO';
EVRAK_NO=:D1;
GARANTI=0;
SERI_NO=0;
KULLANICI=USER;
ACIKLAMA='';
--KAYIT_TARIHI TIMESTAMP,
--ISLEM_KODU INTEGER,
CARI_KODU=:DEPO;
CKE_ISLEM_KODU=0;

FOR
SELECT
    a.TARIH,
    b.URUN_KODU,
    sum(a.MIKTAR * b.MIKTAR*-1)
FROM R_RECETE(:D1,:D1,:SUBESI) a, V_RECETE b
where a.URUN_KODU=b.RECETE_KODU AND a.urun_kodu < 901
group by
    a.TARIH,
    b.URUN_KODU
    
  INTO
    :ISLEM_TARIHI,:URUN_KODU,:MIKTAR
  DO
  SUSPEND ;

FOR SELECT
    TARIH,
    URUN_KODU,
    Sum(MIKTAR*-1)
FROM R_RECETE(:D1,:D1,:SUBESI)
where urun_kodu >1060
group by
    TARIH,
    URUN_KODU

  INTO
    :ISLEM_TARIHI,:URUN_KODU,:MIKTAR
  DO
  SUSPEND ;
END
;@


CREATE PROCEDURE R_STOK_1 (
    D2 DATE,
    DEPO INTEGER,
    SUBESI VARCHAR (50) CHARACTER SET WIN1254)
RETURNS (
    URUN_KODU NUMERIC (13, 0),
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    MIKTAR_TURU VARCHAR (25) CHARACTER SET WIN1254,
    MIKTAR DOUBLE PRECISION,
    SAYIM DOUBLE PRECISION,
    FARK DOUBLE PRECISION,
    MI INTEGER)
AS
BEGIN
--   +2003=RESTO'dan satlanlar 'SATI' stokj ckyor
--   -2003=RESTO'dan direk giriler 'ALIM' stok giriyor
--   -2004=Saym 'ALIM' stook giriyor (SLEM DURUMU =0 SE GECC)

if (SUBESI='MERKEZ') then
BEGIN
   FOR select
       a.URUN_KODU,
       b.URUN_ADI,
       b.MIKTAR_TURU,
       sum(a.MIKTAR),
       CAST(0 as DOUBLE PRECISION),
       CAST(0 as DOUBLE PRECISION),
       CAST(0 as integer)
       from STOK a, URUNLER b
       where a.ISLEM_TARIHI <=:D2 AND a.ISLEM_DURUMU=1 AND a.URUN_KODU=b.URUN_KODU AND a.ISLEM_TIPI in (2,-2)
       group by a.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU
   INTO :URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:MIKTAR,:SAYIM,:FARK,:MI DO SUSPEND ;
END

ELSE
BEGIN
   FOR select
       a.URUN_KODU,
       b.URUN_ADI,
       b.MIKTAR_TURU,
       sum(a.MIKTAR)*-1,
       CAST(0 as DOUBLE PRECISION),
       CAST(0 as DOUBLE PRECISION),
       CAST(0 as integer)
       from STOK a, URUNLER b
       where a.CARI_KODU=:DEPO AND a.ISLEM_TARIHI <=:D2 AND a.ISLEM_DURUMU=1 AND a.URUN_KODU=b.URUN_KODU AND a.ISLEM_TIPI in (2,-2)
       group by a.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU
   INTO :URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:MIKTAR,:SAYIM,:FARK,:MI DO SUSPEND ;
END

FOR select
    a.URUN_KODU,
    b.URUN_ADI,
    b.MIKTAR_TURU,
    sum(a.MIKTAR),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as integer)
    from STOK a, URUNLER b
    where a.CARI_KODU=:DEPO AND a.ISLEM_TARIHI <=:D2 AND a.ISLEM_DURUMU=1 AND a.URUN_KODU=b.URUN_KODU AND a.ISLEM_TIPI in (2003,-2003,-2004)
    group by a.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU
INTO :URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:MIKTAR,:SAYIM,:FARK,:MI DO SUSPEND ;
   
FOR select --saym degerleri
    a.URUN_KODU,
    b.URUN_ADI,
    b.MIKTAR_TURU,
    CAST(0 as DOUBLE PRECISION),
    sum(a.FIYAT),
    sum(a.MIKTAR),
    count(b.URUN_KODU)
    from STOK a, URUNLER b
    where a.CARI_KODU=:DEPO AND a.ISLEM_DURUMU=0 AND a.URUN_KODU=b.URUN_KODU AND a.ISLEM_TIPI=-2004
    group by a.URUN_KODU,b.URUN_ADI,b.MIKTAR_TURU
INTO :URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:MIKTAR,:SAYIM,:FARK,:MI DO SUSPEND ;

FOR select -- her urunun Bo hali
    URUN_KODU,
    URUN_ADI,
    MIKTAR_TURU,
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as integer)
    from URUNLER
    where urun_turu =0 and urun_kodu <> 1000000 --iskonto
INTO :URUN_KODU,:URUN_ADI,:MIKTAR_TURU,:MIKTAR,:SAYIM,:FARK,:MI DO SUSPEND ;

END
;@


DROP PROCEDURE P_DATA ;@
ALTER TABLE DATA ALTER COLUMN ADET TYPE DOUBLE PRECISION ;@

CREATE PROCEDURE P_DATA (
    MN INTEGER)
RETURNS (
    ISLEM_KOD INTEGER,
    URUN_KODU NUMERIC (13, 0),
    TOPLAM DOUBLE PRECISION,
    ACIKLAMA VARCHAR (250) CHARACTER SET WIN1254,
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    U_ADI_2 VARCHAR (100) CHARACTER SET WIN1254,
    U_ADI_3 VARCHAR (100) CHARACTER SET WIN1254,
    U_ADI_4 VARCHAR (100) CHARACTER SET WIN1254,
    URUN_TURU SMALLINT,
    SATIS_KOD INTEGER,
    MASA_NO INTEGER,
    MASA VARCHAR (25) CHARACTER SET WIN1254,
    ADET DOUBLE PRECISION,
    BIRIM_FIYATI DOUBLE PRECISION,
    TUTAR DOUBLE PRECISION,
    ISLEM SMALLINT,
    KULLANICI VARCHAR (50) CHARACTER SET WIN1254,
    TARIH DATE,
    SAAT TIME,
    HESAP SMALLINT,
    TAHSILAT SMALLINT,
    YAZICI_GRUBU SMALLINT,
    CARI_KODU INTEGER,
    CARI VARCHAR (60) CHARACTER SET WIN1254,
    KASA VARCHAR (50) CHARACTER SET WIN1254)
AS
DECLARE VARIABLE MYVAR  DOUBLE PRECISION;
DECLARE VARIABLE MYSTR  VARCHAR (250) CHARACTER SET WIN1254;
DECLARE VARIABLE SON SMALLINT;
BEGIN
SON=1;
if(MN>0) then
begin
FOR SELECT
    ISLEM_KOD,URUN_KODU,URUN_ADI,U_ADI_2,U_ADI_3,U_ADI_4,URUN_TURU,SATIS_KOD,MASA_NO,MASA,ADET,BIRIM_FIYATI,TUTAR,
    ISLEM,KULLANICI,TARIH,SAAT, HESAP,TAHSILAT,YAZICI_GRUBU,CARI_KODU,CARI,KASA
    FROM  DATA
    where islem=1 and MASA_NO=:MN and (URUN_TURU between 2 and 3) and adet > 0
INTO
    :ISLEM_KOD,:URUN_KODU,:URUN_ADI,:U_ADI_2,:U_ADI_3,:U_ADI_4,:URUN_TURU,:SATIS_KOD,:MASA_NO,:MASA,:ADET,:BIRIM_FIYATI,:TUTAR,
    :ISLEM,:KULLANICI,:TARIH,:SAAT,:HESAP,:TAHSILAT,:YAZICI_GRUBU,:CARI_KODU,:CARI,:KASA
DO
BEGIN
     MYSTR='';
     ACIKLAMA='';
     MYVAR=0;
     TOPLAM=0;

     FOR SELECT TUTAR, URUN_ADI FROM  DATA where URUN_TURU=1 AND SATIS_KOD=:ISLEM_KOD
     INTO :MYVAR,:MYSTR
     DO
     begin
     TOPLAM=TOPLAM+MYVAR;
     ACIKLAMA=ACIKLAMA || :MYSTR || ',';
     end
     SUSPEND;
     SON=0;
END
if(SON=1) then
SUSPEND ;
end

ELSE if(MN=0) then
begin
FOR SELECT
    ISLEM_KOD,URUN_KODU,URUN_ADI,U_ADI_2,U_ADI_3,U_ADI_4,URUN_TURU,SATIS_KOD,MASA_NO,MASA,ADET,BIRIM_FIYATI,TUTAR,
    ISLEM,KULLANICI,TARIH,SAAT, HESAP,TAHSILAT,YAZICI_GRUBU,CARI_KODU,CARI,KASA
    FROM  DATA
    where (URUN_TURU between 2 and 3) and adet > 0 AND (ISLEM IS NULL OR ISLEM=-1)
INTO
    :ISLEM_KOD,:URUN_KODU,:URUN_ADI,:U_ADI_2,:U_ADI_3,:U_ADI_4,:URUN_TURU,:SATIS_KOD,:MASA_NO,:MASA,:ADET,:BIRIM_FIYATI,:TUTAR,
    :ISLEM,:KULLANICI,:TARIH,:SAAT,:HESAP,:TAHSILAT,:YAZICI_GRUBU,:CARI_KODU,:CARI,:KASA
DO
BEGIN
     MYSTR='';
     ACIKLAMA='';
     MYVAR=0;
     TOPLAM=0;

     FOR SELECT TUTAR, URUN_ADI FROM  DATA where URUN_TURU=1 AND SATIS_KOD=:ISLEM_KOD
     INTO :MYVAR,:MYSTR
     DO
     begin
     TOPLAM=TOPLAM+MYVAR;
     ACIKLAMA=ACIKLAMA || :MYSTR || ',';
     end
     SUSPEND;
     SON=0;
END
if(SON=1) then
SUSPEND ;
end

END
;@


DROP PROCEDURE P_CARI ;@
CREATE PROCEDURE P_CARI (
    ARA VARCHAR (100) CHARACTER SET WIN1254,
    KRT SMALLINT)
RETURNS (
    CARI_KODU INTEGER,
    ISIM VARCHAR (50) CHARACTER SET WIN1254,
    UNVAN VARCHAR (200) CHARACTER SET WIN1254,
    ADRES VARCHAR (200) CHARACTER SET WIN1254,
    SEMT VARCHAR (50) CHARACTER SET WIN1254,
    SEHIR VARCHAR (50) CHARACTER SET WIN1254,
    ULKE VARCHAR (50) CHARACTER SET WIN1254,
    POSTA_KODU VARCHAR (25) CHARACTER SET WIN1254,
    TEL_1 VARCHAR (25) CHARACTER SET WIN1254,
    TEL_2 VARCHAR (25) CHARACTER SET WIN1254,
    TEL_3 VARCHAR (25) CHARACTER SET WIN1254,
    TEL_4 VARCHAR (25) CHARACTER SET WIN1254,
    FAX VARCHAR (25) CHARACTER SET WIN1254,
    MOBIL VARCHAR (25) CHARACTER SET WIN1254,
    VD VARCHAR (50) CHARACTER SET WIN1254,
    VDNO VARCHAR (25) CHARACTER SET WIN1254,
    MAIL VARCHAR (50) CHARACTER SET WIN1254,
    WEB VARCHAR (50) CHARACTER SET WIN1254,
    KULLANICI VARCHAR (50) CHARACTER SET WIN1254,
    KART_TURU VARCHAR (25) CHARACTER SET WIN1254,
    KART_DURUMU VARCHAR (25) CHARACTER SET WIN1254,
    ACIKLAMA VARCHAR (200) CHARACTER SET WIN1254,
    HESAP_BIRIMI VARCHAR (25) CHARACTER SET WIN1254,
    KATAGORI CHAR (1) CHARACTER SET WIN1254,
    YUZDE SMALLINT,
    ADRES_2 VARCHAR (200) CHARACTER SET WIN1254,
    OZEL VARCHAR (25) CHARACTER SET WIN1254,
    ILGILI VARCHAR (25) CHARACTER SET WIN1254)
AS
DECLARE VARIABLE MYSTR VARCHAR(1024) CHARACTER SET WIN1254;
BEGIN

IF(:ARA IS NOT NULL ) then
BEGIN
     MYSTR='SELECT * FROM CARILER';
     if (KRT=0) then
     MYSTR=MYSTR || ' WHERE CARI_KODU=' || :ARA ;
     ELSE if (KRT=1) then
     MYSTR=MYSTR || ' WHERE ISIM LIKE ''' || :ARA || '''' ;
     ELSE if (KRT=2) then
          BEGIN
          MYSTR=MYSTR || ' WHERE ';
          MYSTR=MYSTR || ' TEL_1 LIKE ''' || :ARA || ''' OR';
          MYSTR=MYSTR || ' TEL_2 LIKE ''' || :ARA || ''' OR';
          MYSTR=MYSTR || ' TEL_3 LIKE ''' || :ARA || ''' OR';
          MYSTR=MYSTR || ' TEL_4 LIKE ''' || :ARA || ''' OR';
          MYSTR=MYSTR || ' FAX   LIKE ''' || :ARA || ''' OR';
          MYSTR=MYSTR || ' MOBIL LIKE ''' || :ARA || '''';
          END

   FOR EXECUTE STATEMENT MYSTR
   INTO
   :CARI_KODU ,
   :ISIM,
   :UNVAN,
   :ADRES,
   :SEMT,
   :SEHIR,
   :ULKE,
   :POSTA_KODU,
   :TEL_1,
   :TEL_2,
   :TEL_3,
   :TEL_4,
   :FAX,
   :MOBIL,
   :VD,
   :VDNO,
   :MAIL,
   :WEB,
   :KULLANICI,
   :KART_TURU,
   :KART_DURUMU,
   :ACIKLAMA,
   :HESAP_BIRIMI,
   :KATAGORI,
   :YUZDE,
   :ADRES_2,
   :OZEL,
   :ILGILI
   DO
   SUSPEND ;
END
END
;@


DROP PROCEDURE KAYIT  ;@
DROP PROCEDURE KAYIT_1  ;@
DROP PROCEDURE KAYIT_2  ;@

DROP PROCEDURE P_KURYE ;@
DROP PROCEDURE P_MYCELL ;@

DROP PROCEDURE P_SON_ISLEM ;@

DROP PROCEDURE RP ;@
DROP PROCEDURE RP_1 ;@
DROP PROCEDURE RP_2 ;@

DROP VIEW V_RP ;@
DROP VIEW V_DENGE ;@

CREATE VIEW V_DENGE (
    URUN_KODU,
    URUN_ADI,
    URUN_TURU,
    TARIH,
    ISLEM,
    KULLANICI,
    MASA,
    SUBESI,
    KASA,
    CARI,
    CARI_KODU,
    KASIYER,
    ADET,
    TUTAR,
    MASA_NO,
    TAH_KOD,
    SAAT,
    URUN_ISMI,
    GRUP1,
    GRUP2,
    GRUP3,
    ACIKLAMA)
AS
SELECT
     a.PLUNO,
     b.URUN_ADI,
     a.DEPNO,
     a.TARIH,
     a.CANCELSTATUS,
     a.KULLANICI,
     CAST('Market' as VARCHAR (25) CHARACTER SET WIN1254),
     a.SUBE,
     a.KASA,
     CAST('Market' as VARCHAR (60) CHARACTER SET WIN1254),
     CAST(0 AS INTEGER),
     CAST(a.KULLANICI as VARCHAR (25) CHARACTER SET WIN1254),
     a.WEIGHT,
     a.PRICE,
     CAST(0 AS SMALLINT),
     a.TICKETNO,
     a.SAAT,
     b.URUN_ADI,
     b.GRUP1,
     b.GRUP2,
     b.GRUP3,
     CAST('' as VARCHAR (250) CHARACTER SET WIN1254)
FROM DETAIL a
LEFT JOIN URUNLER b ON
a.PLUNO=b.URUN_KODU
where a.CANCELSTATUS = 2
;@

CREATE VIEW V_RP (
    URUN_KODU,
    URUN_ADI,
    URUN_TURU,
    TARIH,
    ISLEM,
    KULLANICI,
    MASA,
    SUBESI,
    KASA,
    CARI,
    CARI_KODU,
    KASIYER,
    ADET,
    TUTAR,
    MASA_NO,
    TAH_KOD,
    SAAT,
    URUN_ISMI,
    GRUP1,
    GRUP2,
    GRUP3,
    ACIKLAMA)
AS
SELECT
     a.URUN_KODU,
     a.URUN_ADI,
     a.URUN_TURU,
     a.TARIH,
     a.ISLEM,
     a.KULLANICI,
     a.MASA,
     a.SUBESI,
     a.KASA,
     a.CARI,
     a.CARI_KODU,
     a.KASIYER,
     a.ADET,
     a.TUTAR,
     a.MASA_NO,
     a.TAH_KOD,
   a.SAAT,
   a.URUN_ADI,
   b.GRUP1,
   b.GRUP2,
   b.GRUP3,
     a.ACIKLAMA
FROM DATA a
LEFT JOIN URUNLER b ON
a.URUN_KODU=b.URUN_KODU
where a.ISLEM=2

;@

CREATE PROCEDURE P_SON_ISLEM (
    GST DATE)
RETURNS (
    TAH_KOD INTEGER,
    URUN_KODU NUMERIC (13, 0),
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    MASA_NO INTEGER,
    KULLANICI VARCHAR (50) CHARACTER SET WIN1254,
    TARIH DATE,
    SAAT TIME,
    KASA VARCHAR (50) CHARACTER SET WIN1254,
    ADET DOUBLE PRECISION,
    TUTAR DOUBLE PRECISION)
AS
BEGIN

FOR SELECT
    TAH_KOD,URUN_KODU,URUN_ADI,MASA_NO,KULLANICI,TARIH,SAAT,KASA,ADET,TUTAR
    FROM  yedek_rapor
    where TARIH=:GST and islem=2 and (URUN_TURU between 2 and 3) and adet > 0 and (URUN_KODU not between 911 and 960)
INTO
    :TAH_KOD,:URUN_KODU,:URUN_ADI,
    :MASA_NO,:KULLANICI,:TARIH,:SAAT,:KASA,:ADET,:TUTAR
DO
SUSPEND ;

FOR SELECT
    TAH_KOD,URUN_KODU,CAST('eni Toplami' as VARCHAR (100) CHARACTER SET WIN1254),
    MASA_NO,KULLANICI,TARIH,SAAT,KASA,ADET,TUTAR
    FROM  yedek_rapor
    where TARIH=:GST and islem=2 and (URUN_KODU between 911 and 1060) and adet > 0
INTO
    :TAH_KOD,:URUN_KODU,:URUN_ADI,:MASA_NO,:KULLANICI,:TARIH,:SAAT,:KASA,:ADET,:TUTAR
DO
SUSPEND ;

END
;@

CREATE PROCEDURE RP_2 (
    TARIH DATE)
RETURNS (
    A VARCHAR (2) CHARACTER SET WIN1254,
    ALAN VARCHAR (60) CHARACTER SET WIN1254,
    TUTAR DOUBLE PRECISION)
AS
BEGIN
FOR
select '01' A, 'Normal Sat            ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 1 and 2) and adet > 0 and MASA not in('Veresiye','Kurye','Market')
union
select '02' A, 'Veresiye Sat          ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 1 and 2) and adet > 0 and MASA = 'Veresiye'
union
select '03' A, 'Kurye                   ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 1 and 2) and adet > 0 and MASA = 'Kurye'
union
select '03' A, 'Market Sat            ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 1 and 1) and adet > 0 and MASA = 'Market'
union
select '04' A, 'Brt Sat TOPLAMI     ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 1 and 2) and adet > 0
union
select '08' A, 'ndirimler TOPLAMI      ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 3 and 3)
union
select '09' A, 'Net Sati TOPLAMI       ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 1 and 3)  and adet > 0
union
select '10' A, 'Direk Para Girii       ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 4 and 4)  and TUTAR > 0
union
select '11' A, 'Direk Para k       ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 4 and 4)  and TUTAR < 0
union
select '12' A, 'Veresiye Tahsilat      ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 5 and 5) and MASA = 'Veresiye'
union
select '12' A, 'Kuryeden Tahsilat       ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 5 and 5) and MASA = 'Kurye'
union
select '13' A, 'Normal Tahsilat         ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 6 and 6)
union
select '14' A, 'Market Tahsilat         ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 7 and 7)
union
select '15' A, 'Net Tahsilat TOPLAMI    ' ALAN, sum(TUTAR) TUTAR from YEDEK_RAPOR
   where TARIH=:TARIH and (URUN_TURU between 4 and 7)

    INTO :A,:ALAN,:TUTAR
    DO
    SUSPEND ;
END
;@


CREATE PROCEDURE RP_1 (
    TARIH DATE)
RETURNS (
    CARI VARCHAR (60) CHARACTER SET WIN1254,
    CARI_KODU INTEGER,
    BUGUN DOUBLE PRECISION,
    TOPLAM DOUBLE PRECISION,
    TAHSILAT DOUBLE PRECISION)
AS
BEGIN
    FOR
    select
      CARI,
      CARI_KODU,
      (select SUM(TUTAR) FROM YEDEK_RAPOR where MASA='Veresiye' and CARI_KODU=a.CARI_KODU and (URUN_TURU between 1 and 3) and TARIH=:TARIH),
      (select SUM(TUTAR) FROM YEDEK_RAPOR where MASA='Veresiye' and CARI_KODU=a.CARI_KODU and (URUN_TURU between 1 and 3) ),
      (select SUM(TUTAR) FROM YEDEK_RAPOR where MASA='Veresiye' and CARI_KODU=a.CARI_KODU and (URUN_TURU between 5 and 5) )
    FROM  YEDEK_RAPOR a
    where ISLEM = 2 and MASA='Veresiye' and adet > 0
    group by CARI, CARI_KODU
    INTO :CARI,:CARI_KODU,:BUGUN,:TOPLAM,:TAHSILAT
    DO
    SUSPEND ;
END
;@

CREATE PROCEDURE RP (
    ARA1 VARCHAR (250) CHARACTER SET WIN1254)
RETURNS (
    URUN_KODU NUMERIC (13, 0),
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    URUN_TURU SMALLINT,
    TARIH DATE,
    ISLEM SMALLINT,
    KULLANICI VARCHAR (50) CHARACTER SET WIN1254,
    MASA VARCHAR (25) CHARACTER SET WIN1254,
    SUBESI VARCHAR (50) CHARACTER SET WIN1254,
    KASA VARCHAR (50) CHARACTER SET WIN1254,
    CARI VARCHAR (60) CHARACTER SET WIN1254,
    CARI_KODU INTEGER,
    KASIYER VARCHAR (25) CHARACTER SET WIN1254,
    TUTAR DOUBLE PRECISION,
    ADET DOUBLE PRECISION,
    MASA_NO SMALLINT,
    TAH_KOD INTEGER,
    SAAT TIME,
    URUN_ISMI VARCHAR (60) CHARACTER SET WIN1254,
    GRUP1 VARCHAR (25) CHARACTER SET WIN1254,
    GRUP2 VARCHAR (25) CHARACTER SET WIN1254,
    GRUP3 VARCHAR (25) CHARACTER SET WIN1254,
    ACIKLAMA  VARCHAR (60) CHARACTER SET WIN1254)
AS
DECLARE VARIABLE MYSTR1 VARCHAR (1024) CHARACTER SET WIN1254;
BEGIN
     MYSTR1='SELECT
     URUN_KODU,
     URUN_ADI,
     URUN_TURU,
     TARIH,
     ISLEM,
     KULLANICI,
     MASA,
     SUBESI,
     KASA,
     CARI,
     CARI_KODU,
     KASIYER,
     ADET,
     TUTAR,
     MASA_NO,
     TAH_KOD,
     SAAT,
     URUN_ISMI,
     GRUP1,
     GRUP2,
     GRUP3,
     ACIKLAMA
     FROM YEDEK_RAPOR WHERE ';

  FOR EXECUTE STATEMENT MYSTR1 || :ARA1
  
  INTO :URUN_KODU,:URUN_ADI,:URUN_TURU,:TARIH,:ISLEM,:KULLANICI,:MASA,:SUBESI,:KASA,
       :CARI,:CARI_KODU,:KASIYER,:ADET,:TUTAR,:MASA_NO,:TAH_KOD,
       :SAAT,:URUN_ISMI,:GRUP1,:GRUP2,:GRUP3,:ACIKLAMA
  DO
  SUSPEND ;
END
 ;@

CREATE PROCEDURE P_MYCELL (
    GST DATE)
RETURNS (
    TUTAR DOUBLE PRECISION,
    TOPLAM DOUBLE PRECISION,
    ADET DOUBLE PRECISION,
    AKT DOUBLE PRECISION)
AS
BEGIN
FOR SELECT Sum(TUTAR)
  FROM RP('TARIH=''' || :GST || ''' and (URUN_TURU BETWEEN 1 and 3)') INTO :TUTAR DO
  
FOR SELECT Sum(TUTAR)
  FROM RP('TARIH=''' || :GST || ''' and (URUN_TURU BETWEEN 4 and 7)') INTO :TOPLAM DO
  
FOR SELECT Count(DISTINCT TARIH)
  FROM RP('TARIH<>''' || :GST || ''' and (URUN_TURU BETWEEN 1 and 3)') INTO :ADET DO

FOR SELECT Sum(TUTAR)
  FROM RP('TARIH=''' || :GST || ''' and (URUN_TURU BETWEEN 1 and 3) AND ISLEM=2') INTO :AKT DO
SUSPEND ;
END
;@

CREATE PROCEDURE KAYIT_2 
AS
BEGIN
	INSERT INTO YEDEK_RAPOR select * FROM V_RP;
	DELETE FROM DATA  WHERE ISLEM=2;
END ;@

CREATE PROCEDURE KAYIT_1 (
    S_KODU INTEGER)
AS
/* DECLARE VARIABLE ISLEM_NO integer; */
BEGIN
	INSERT INTO YEDEK_RAPOR select * FROM V_RP WHERE tah_kod=:S_KODU;
    DELETE FROM DATA WHERE islem=2 and tah_kod=:S_KODU;
END ;@

CREATE PROCEDURE KAYIT (
    S_KODU INTEGER)
AS
/* DECLARE VARIABLE ISLEM_NO integer; */
BEGIN
	INSERT INTO YEDEK_RAPOR select * FROM V_DENGE WHERE TAH_KOD=:S_KODU;
    DELETE FROM DETAIL WHERE CANCELSTATUS=2 and TICKETNO=:S_KODU;
    
   	INSERT INTO YEDEK_RAPOR select * FROM V_RP WHERE tah_kod=:S_KODU;
    DELETE FROM DATA WHERE islem=2 and tah_kod=:S_KODU;
    
END ;@


CREATE PROCEDURE P_KURYE (
    TARIH DATE,
    KURYE VARCHAR (50) CHARACTER SET WIN1254)
RETURNS (
    CARI_KODU INTEGER,
    ISIM VARCHAR (50) CHARACTER SET WIN1254,
    KASA VARCHAR (50) CHARACTER SET WIN1254,
    TOPLAM DOUBLE PRECISION,
    TAHSILAT DOUBLE PRECISION)
AS
BEGIN
if(:KURYE='') then
begin
     FOR
     select
     CARI_KODU,
     ISIM,
     CAST(0 as DOUBLE PRECISION),
     CAST(0 as DOUBLE PRECISION)
     FROM  CARILER where KART_TURU='Kurye'
     
     union

     select
     CAST(0 as INTEGER),
     KULLANICI,
     SUM(TUTAR),
     CAST(0 as DOUBLE PRECISION)
     FROM  YEDEK_RAPOR
     where MASA_NO=251 AND (urun_turu between 1 and 3) and masa='Kurye' and TARIH=:TARIH
     GROUP BY KULLANICI
  
     union

     select
     CAST(0 as INTEGER),
     KULLANICI,
     CAST(0 as DOUBLE PRECISION),
     SUM(TUTAR)
     FROM  YEDEK_RAPOR
     where MASA_NO=251 AND (urun_turu between 5 and 5) and masa='Kurye' and TARIH=:TARIH
     GROUP BY KULLANICI
     INTO
     :CARI_KODU,
     :ISIM,
     :TOPLAM,
     :TAHSILAT
     DO
     SUSPEND ;
end

else
begin
     FOR
     select
     KASA,
     SUM(TUTAR),
     CAST(0 as DOUBLE PRECISION)
     FROM  YEDEK_RAPOR
     where MASA_NO=251 AND (urun_turu between 1 and 3) and masa='Kurye' and TARIH=:TARIH AND KULLANICI=:KURYE
     GROUP BY KASA

     union

     select
     KASA,
     CAST(0 as DOUBLE PRECISION),
     SUM(TUTAR)
     FROM  YEDEK_RAPOR
     where MASA_NO=251 AND (urun_turu between 5 and 5) and masa='Kurye' and TARIH=:TARIH AND KULLANICI=:KURYE
     GROUP BY KASA
     INTO
     :KASA,
     :TOPLAM,
     :TAHSILAT
     DO
     SUSPEND ;
end
END
;@


DROP VIEW V_RESTO_FTR ;@
CREATE VIEW V_RESTO_FTR (
    MASA_NO,
    TAHSILAT,
    A,
    B,
    C,
    TOPLAM)
AS
SELECT
    MASA_NO,
    TAHSILAT,
    CAST(0 as DOUBLE PRECISION),
    Sum(TUTAR),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION)
FROM
    data a, urunler b
WHERE
  a.urun_kodu=b.urun_kodu AND ISLEM=1 AND grup2='ICECEK' and a.urun_kodu not between 901 and 910
GROUP BY
    MASA_NO,
    TAHSILAT
    
UNION

SELECT
    MASA_NO,
    TAHSILAT,
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    Sum(TUTAR),
    CAST(0 as DOUBLE PRECISION)
FROM
    data a, urunler b
WHERE
  a.urun_kodu=b.urun_kodu AND ISLEM=1 AND grup2='ALKOL' and a.urun_kodu not between 901 and 910
GROUP BY
    MASA_NO,
    TAHSILAT
    
UNION

SELECT
    MASA_NO,
    TAHSILAT,
    Sum(TUTAR),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION)
FROM
    data a, urunler b
WHERE
  a.urun_kodu=b.urun_kodu AND ISLEM=1 AND grup2 NOT IN ('ICECEK','ALKOL') and a.urun_kodu not between 901 and 910
GROUP BY
    MASA_NO,
    TAHSILAT
    
UNION

SELECT
    MASA_NO,
    TAHSILAT,
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    Sum(TUTAR)
FROM
    data a, urunler b
WHERE
  a.urun_kodu=b.urun_kodu AND ISLEM=1 and a.urun_kodu not between 901 and 910
GROUP BY
    MASA_NO,
    TAHSILAT
;@

DROP TRIGGER DETAIL_BI ;@
ALTER TABLE DETAIL ALTER COLUMN WEIGHT TYPE  DOUBLE PRECISION ;@

CREATE TRIGGER DETAIL_BI FOR DETAIL
BEFORE INSERT POSITION 0
AS
BEGIN
NEW.ISLEM_NO = GEN_ID(GEN_DATA, 1);

if(NEW.INDIRIM IS NULL)                then NEW.INDIRIM=1;
if(NEW.musteri IS NULL)                then NEW.musteri=NEW.VENDORNO;

if     (new.PLUNO <901) then
begin
   NEW.weight=NEW.weight/1000;
   NEW.DEPNO=2;
end
else if(new.PLUNO >910)                then NEW.DEPNO=1;
else if(new.PLUNO between 901 and 910) then NEW.DEPNO=3;

if(NEW.vendorno=53 and new.cancelstatus <> 9) then
  BEGIN
  NEW.scaleno=53;
  NEW.ticketno=0;
  NEW.musteri='Teraziden ade';
  NEW.price  =NEW.price * -1;
  NEW.weight =NEW.weight * -1;
  if(new.cancelstatus <> -11) then  NEW.cancelstatus =0;
  END

if(NEW.vendorno=55 and new.cancelstatus <> 9) then
  BEGIN
  NEW.scaleno=55;
  NEW.ticketno=0;
  NEW.musteri='Kasadan ade';
  NEW.price  =NEW.price * -1;
  NEW.weight =NEW.weight * -1;
  if(new.cancelstatus <> -11) then
  NEW.cancelstatus =0;
  END
END
;@

ALTER TRIGGER DATA_BI
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if(NEW.ISLEM_KOD IS NULL) then NEW.ISLEM_KOD=GEN_ID(GEN_DATA,1);
NEW.REEL='NOW';
END
;@


DROP VIEW V_CK ;@ 
CREATE VIEW V_CK (
    ISLEM_KODU,
    ISLEM_TARIHI,
    CARI_KODU,
    ISIM,
    ISLEM_TIP,
    ISLEM_TIPI,
    ISLEM_DURUMU,
    KASA_ISMI,
    TUTAR_BIRIMI,
    TUTAR_KURU,
    TUTAR,
    EVRAK_TURU,
    EVRAK_NO,
    ISLEM_VADESI,
    HESAP_TUTAR_BIRIMI,
    HESAP_TUTAR_KURU,
    HESAP_TUTARI,
    FATURA_CARI_KODU,
    KULLANICI,
    ACIKLAMA,
    KAYIT_TARIHI,
    IT_YL,
    IT_AY,
    IT_GN,
    IV_YL,
    IV_AY,
    IV_GN,
    EVRAK_ISLEM_KODU)
AS
SELECT
    ISLEM_KODU,
    ISLEM_TARIHI,
    a.CARI_KODU,
    b.ISIM,
    (select ISIM from cariler c where c.cari_kodu=a.islem_tipi),
    ISLEM_TIPI,
    ISLEM_DURUMU,
    KASA_ISMI,
    TUTAR_BIRIMI,
    TUTAR_KURU,
    TUTAR,
    EVRAK_TURU,
    EVRAK_NO,
    ISLEM_VADESI,
    HESAP_TUTAR_BIRIMI,
    HESAP_TUTAR_KURU,
    HESAP_TUTARI,
    FATURA_CARI_KODU,
    a.KULLANICI,
    a.ACIKLAMA,
    KAYIT_TARIHI,
    EXTRACT(YEAR FROM ISLEM_TARIHI),
    EXTRACT(MONTH FROM ISLEM_TARIHI),
    EXTRACT(DAY FROM ISLEM_TARIHI),
    EXTRACT(YEAR FROM ISLEM_VADESI),
    EXTRACT(MONTH FROM ISLEM_VADESI),
    EXTRACT(DAY FROM ISLEM_VADESI),
    EVRAK_ISLEM_KODU
FROM CK a, CARILER b
WHERE
    a.CARI_KODU=b.CARI_KODU
;@


DROP PROCEDURE GIDER_TOP ;@
CREATE PROCEDURE GIDER_TOP (
    AY INTEGER)
RETURNS (
    GIDER_KODU2 INTEGER,
    GIDER_ADI2 VARCHAR (100) CHARACTER SET WIN1254,
    GIDER_GRUBU2 VARCHAR (100) CHARACTER SET WIN1254,
    TL2 DOUBLE PRECISION)
AS
BEGIN
  IF (:AY>0) THEN
     BEGIN
          FOR
             SELECT
             CAST(a.ISLEM_TIPI as INTEGER),
             b.ISIM,
             b.UNVAN,                       /* CHARACTER SET WIN1254  */
             SUM(a.TUTAR)
             FROM CK a, CARILER b
             WHERE
             (ISLEM_TIPI BETWEEN 9000 AND 9999) AND
             a.ISLEM_TIPI=b.CARI_KODU and a.ISLEM_DURUMU=1 AND EXTRACT(MONTH FROM a.ISLEM_TARIHI)=:AY
             GROUP BY b.ISIM, b.UNVAN, a.ISLEM_TIPI

          UNION

             SELECT
             CARI_KODU,
             ISIM,
             UNVAN,
             CAST(0 as DOUBLE PRECISION)
             FROM CARILER
             WHERE
             (CARI_KODU BETWEEN 9000 AND 9999)
             INTO :GIDER_KODU2, :GIDER_ADI2, :GIDER_GRUBU2, :TL2
          DO
          SUSPEND ;
     END

  else if (:AY=0) THEN
     BEGIN
          FOR
             SELECT
             CAST(a.ISLEM_TIPI as INTEGER),
             b.ISIM,
             b.UNVAN,
             SUM(a.TUTAR)
             FROM CK a, CARILER b
             WHERE
             (ISLEM_TIPI BETWEEN 9000 AND 9999) AND
             a.ISLEM_TIPI=b.CARI_KODU and a.ISLEM_DURUMU=1 and a.ISLEM_TARIHI is not null
             GROUP BY b.ISIM, b.UNVAN, a.ISLEM_TIPI

          UNION

             SELECT
             CARI_KODU,
             ISIM,
             UNVAN,
             CAST(0 as DOUBLE PRECISION)
             FROM CARILER
             WHERE
             (CARI_KODU BETWEEN 9000 AND 9999)
             INTO :GIDER_KODU2, :GIDER_ADI2, :GIDER_GRUBU2, :TL2
          DO
          SUSPEND ;
     END
END
;@

DROP VIEW V_KASA  ;@ 
CREATE VIEW V_KASA (
    ISLEM_KODU,
    ISLEM_TARIHI,
    CARI_KODU,
    ISIM,
    ISLEM_TIP,
    ISLEM_TIPI,
    ISLEM_DURUMU,
    KASA_ISMI,
    TUTAR_BIRIMI,
    TUTAR_KURU,
    TUTAR,
    EVRAK_TURU,
    EVRAK_NO,
    ISLEM_VADESI,
    FATURA_CARI_KODU,
    KULLANICI,
    ACIKLAMA,
    KAYIT_TARIHI,
    IT_YL,
    IT_AY,
    IT_GN,
    EVRAK_ISLEM_KODU)
AS
SELECT
    ISLEM_KODU,
    ISLEM_TARIHI,
    a.CARI_KODU,
    ISIM,
    (select ISIM from cariler c where c.cari_kodu=a.islem_tipi),
    ISLEM_TIPI,
    ISLEM_DURUMU,
    KASA_ISMI,
    TUTAR_BIRIMI,
    TUTAR_KURU,
    TUTAR,
    EVRAK_TURU,
    EVRAK_NO,
    ISLEM_VADESI,
    FATURA_CARI_KODU,
    a.KULLANICI,
    a.ACIKLAMA,
    KAYIT_TARIHI,
    EXTRACT(YEAR FROM ISLEM_TARIHI),
    EXTRACT(MONTH FROM ISLEM_TARIHI),
    EXTRACT(DAY FROM ISLEM_TARIHI),
    EVRAK_ISLEM_KODU
FROM CK a, CARILER b
WHERE
    a.CARI_KODU=b.CARI_KODU AND
    a.ISLEM_DURUMU > 0 AND
    a.ISLEM_TIPI not in (3,-3,2,-2)

;@ 

DROP VIEW V_EVRAK  ;@ 
CREATE VIEW V_EVRAK (
    ISLEM_KODU,
    ISLEM_TARIHI,
    CARI_KODU,
    ISIM,
    ISLEM_TIP,
    ISLEM_TIPI,
    ISLEM_DURUMU,
    KASA_ISMI,
    TUTAR_BIRIMI,
    TUTAR_KURU,
    TUTAR,
    EVRAK_TURU,
    EVRAK_NO,
    ISLEM_VADESI,
    EVRAK_ISLEM_KODU,
    KULLANICI,
    ACIKLAMA,
    KAYIT_TARIHI,
    BANKA_ADI,
    SUBE_ADI,
    SERI_NO,
    HESAP_NO,
    KESIDE_YERI,
    KEFIL)
AS
SELECT
    a.ISLEM_KODU,
    ISLEM_TARIHI,
    a.CARI_KODU,
    ISIM,
    (select ISIM from cariler d where d.cari_kodu=a.islem_tipi),
    ISLEM_TIPI,
    ISLEM_DURUMU,
    a.KASA_ISMI,
    TUTAR_BIRIMI,
    TUTAR_KURU,
    TUTAR,
    EVRAK_TURU,
    EVRAK_NO,
    ISLEM_VADESI,
    EVRAK_ISLEM_KODU,
    a.KULLANICI,
    a.ACIKLAMA,
    KAYIT_TARIHI,
    c.BANKA_ADI,
    c.SUBE_ADI,
    c.SERI_NO,
    c.HESAP_NO,
    c.KESIDE_YERI,
    c.KEFIL
FROM CK a, CARILER b, EVRAKLAR c
WHERE
    c.ISLEM_KODU=a.EVRAK_ISLEM_KODU and a.CARI_KODU=b.CARI_KODU
;@

DROP VIEW V_YEDEK_FTR  ;@ 
CREATE VIEW V_YEDEK_FTR (
    MASA_NO,
    TAH_KOD,
    A,
    B,
    C,
    TOPLAM)
AS
SELECT
    MASA_NO,
    TAH_KOD,
    CAST(0 as DOUBLE PRECISION),
    Sum(TUTAR),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION)
FROM
    YEDEK_RAPOR
WHERE
  ISLEM=2 AND grup2='ICECEK' and (urun_kodu not between 901 and 910) and (urun_turu between 1 and 3)
GROUP BY
    MASA_NO,
    TAH_KOD
    
UNION

SELECT
    MASA_NO,
    TAH_KOD,
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    Sum(TUTAR),
    CAST(0 as DOUBLE PRECISION)
FROM
    YEDEK_RAPOR
WHERE
  ISLEM=2 AND grup2='ALKOL' and (urun_kodu not between 901 and 910) and (urun_turu between 1 and 3)
GROUP BY
    MASA_NO,
    TAH_KOD
    
UNION

SELECT
    MASA_NO,
    TAH_KOD,
    Sum(TUTAR),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION)
FROM
    YEDEK_RAPOR
WHERE
  ISLEM=2 AND grup2 NOT IN ('ICECEK','ALKOL') and (urun_kodu not between 901 and 910) and (urun_turu between 1 and 3)
GROUP BY
    MASA_NO,
    TAH_KOD
    
UNION

SELECT
    MASA_NO,
    TAH_KOD,
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    CAST(0 as DOUBLE PRECISION),
    Sum(TUTAR)
FROM
    YEDEK_RAPOR
WHERE
  ISLEM=2 and (urun_kodu not between 901 and 910) and (urun_turu between 1 and 3)
GROUP BY
    MASA_NO,
    TAH_KOD
;@


DROP PROCEDURE P_PDA ;@
CREATE PROCEDURE P_PDA (
    GRUP3 VARCHAR (25) CHARACTER SET WIN1254)
RETURNS (
    URUN_KODU NUMERIC (13, 0),
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    BIRIM_FIYATI DOUBLE PRECISION,
    PDA VARCHAR (250) CHARACTER SET WIN1254)
AS
DECLARE VARIABLE ACIKLAMA VARCHAR (250) CHARACTER SET WIN1254;
DECLARE VARIABLE MYSTR  VARCHAR (250) CHARACTER SET WIN1254;
DECLARE VARIABLE S  VARCHAR (250) CHARACTER SET WIN1254;
DECLARE VARIABLE SON SMALLINT;
BEGIN

SON=1;
FOR SELECT
    URUN_KODU,URUN_ADI,BIRIM_FIYATI,ACIKLAMA
    FROM  URUNLER
    WHERE (urun_turu between 1 and 2) AND URUN_ADI <> '' AND URUN_KODU < 1061 AND GRUP3=:GRUP3
    ORDER BY tus
INTO
    :URUN_KODU,:URUN_ADI,:BIRIM_FIYATI,:ACIKLAMA
DO
BEGIN
     MYSTR='';
     PDA='';
     if(:ACIKLAMA IS NULL or :ACIKLAMA='') then
     S='SELECT URUN_ADI FROM URUNLER where URUN_TURU=1 AND urun_kodu in(0)';
     else
     S='SELECT URUN_ADI FROM URUNLER where URUN_TURU=1 AND urun_kodu in(' || :ACIKLAMA || ')' ;
     FOR EXECUTE STATEMENT S
     INTO :MYSTR
     DO
     begin
     PDA=PDA || :MYSTR || ',';
     end
     SUSPEND;
     SON=0;
END
if(SON=1) then
SUSPEND ;
END
;@

ALTER PROCEDURE KASA_AYRINTILARI (
    KS VARCHAR (50) CHARACTER SET WIN1254)
RETURNS (
    SIRA SMALLINT,
    TUTAR_BIRIMI VARCHAR (25) CHARACTER SET WIN1254,
    TUTAR DOUBLE PRECISION)
AS
DECLARE VARIABLE S SMALLINT;
BEGIN
S=0;
     FOR
          SELECT
            :S,
            TUTAR_BIRIMI,
            SUM(TUTAR)
          FROM CK a
          WHERE TUTAR_BIRIMI IS NOT NULL and
                KASA_ISMI=:KS and
                ISLEM_DURUMU > 0 and
                ISLEM_TIPI IN (1,11,111,1111,-1,-11,-111,-1111,4,-4,5,-5)
          GROUP BY TUTAR_BIRIMI

          UNION

          SELECT
             SIRA,
             PARA,
             CAST(0 as DOUBLE PRECISION)
             FROM doviz_kurlari

             INTO :SIRA, :TUTAR_BIRIMI, :TUTAR
     DO
     SUSPEND ;
END
;@

ALTER PROCEDURE KASA_TOP (
    IT DATE)
RETURNS (
    SIRA SMALLINT,
    TUTAR_BIRIMI VARCHAR (25) CHARACTER SET WIN1254,
    EKSI DOUBLE PRECISION,
    ARTI DOUBLE PRECISION,
    TUTAR DOUBLE PRECISION,
    ISLEM_TARIHI DATE,
    TOPLAM DOUBLE PRECISION)
AS
DECLARE VARIABLE S SMALLINT;
BEGIN
S=0;
     FOR
          SELECT
            :S,
            TUTAR_BIRIMI,
            (SELECT SUM(TUTAR) FROM CK WHERE TUTAR <0 and ISLEM_TARIHI=:IT and TUTAR_BIRIMI=a.TUTAR_BIRIMI),
            (SELECT SUM(TUTAR) FROM CK WHERE TUTAR >0 and ISLEM_TARIHI=:IT and TUTAR_BIRIMI=a.TUTAR_BIRIMI),
            (SELECT SUM(TUTAR) FROM CK WHERE ISLEM_TARIHI=:IT and TUTAR_BIRIMI=a.TUTAR_BIRIMI),
             SUM(TUTAR)
          FROM CK a
          WHERE TUTAR_BIRIMI IS NOT NULL and ISLEM_DURUMU > 0 and ISLEM_TIPI IN (1,11,111,1111,-1,-11,-111,-1111,4,-4,5,-5)
          GROUP BY TUTAR_BIRIMI

          UNION

          SELECT
             SIRA,
             PARA,
             CAST(0 as DOUBLE PRECISION),
             CAST(0 as DOUBLE PRECISION),
             CAST(0 as DOUBLE PRECISION),
             CAST(0 as DOUBLE PRECISION)
             FROM doviz_kurlari

             INTO :SIRA, :TUTAR_BIRIMI, :EKSI, :ARTI, :TUTAR, :TOPLAM
     DO
     SUSPEND ;
END
;@

ALTER PROCEDURE KK 
RETURNS (
    KASA_ISMI VARCHAR (50) CHARACTER SET WIN1254,
    D1 DOUBLE PRECISION,
    D2 DOUBLE PRECISION,
    D3 DOUBLE PRECISION,
    D4 DOUBLE PRECISION,
    D5 DOUBLE PRECISION)
AS
BEGIN
     FOR
          SELECT
            KASA_ISMI,
            (SELECT SUM(TUTAR) FROM CK WHERE TUTAR_BIRIMI=(SELECT PARA FROM DOVIZ_KURLARI WHERE SIRA=1) and ISLEM_DURUMU > 0 and ISLEM_TIPI < 10000 AND KASA_ISMI=a.KASA_ISMI),
            (SELECT SUM(TUTAR) FROM CK WHERE TUTAR_BIRIMI=(SELECT PARA FROM DOVIZ_KURLARI WHERE SIRA=2) and ISLEM_DURUMU > 0 and ISLEM_TIPI < 10000 AND KASA_ISMI=a.KASA_ISMI),
            (SELECT SUM(TUTAR) FROM CK WHERE TUTAR_BIRIMI=(SELECT PARA FROM DOVIZ_KURLARI WHERE SIRA=3) and ISLEM_DURUMU > 0 and ISLEM_TIPI < 10000 AND KASA_ISMI=a.KASA_ISMI),
            (SELECT SUM(TUTAR) FROM CK WHERE TUTAR_BIRIMI=(SELECT PARA FROM DOVIZ_KURLARI WHERE SIRA=4) and ISLEM_DURUMU > 0 and ISLEM_TIPI < 10000 AND KASA_ISMI=a.KASA_ISMI),
            (SELECT SUM(TUTAR) FROM CK WHERE TUTAR_BIRIMI=(SELECT PARA FROM DOVIZ_KURLARI WHERE SIRA=5) and ISLEM_DURUMU > 0 and ISLEM_TIPI < 10000 AND KASA_ISMI=a.KASA_ISMI)
          FROM KASALAR a
          ORDER BY KASA_KODU /* ISLEM_TIPI IN (1,11,111,1111,-1,-11,-111,-1111,4,-4,5,-5)  */
          INTO :KASA_ISMI, :D1, :D2, :D3, :D4, :D5
     DO
     SUSPEND ;
END
;@

ALTER PROCEDURE P_AS (
    YENI_OR_EDIT SMALLINT,
    AS_ISLEM_KODU INTEGER,
    AS_CARI_KODU INTEGER,
    AS_ISLEM_TARIHI TIMESTAMP,
    AS_EVRAK_TURU VARCHAR (25) CHARACTER SET WIN1254,
    AS_EVRAK_NO VARCHAR (25) CHARACTER SET WIN1254,
    AS_ISLEM_TIPI SMALLINT,
    AS_HESAP_TUTARI DOUBLE PRECISION,
    AS_HESAP_TUTAR_BIRIMI VARCHAR (25) CHARACTER SET WIN1254,
    AS_HESAP_TUTAR_KURU DOUBLE PRECISION,
    AS_ISLEM_DURUMU SMALLINT,
    AS_ISLEM_VADESI TIMESTAMP)
RETURNS (
    AS_IK INTEGER)
AS
DECLARE VARIABLE YEREL_ISLEM_KODU INTEGER;
DECLARE VARIABLE KART VARCHAR (25) CHARACTER SET WIN1254;
DECLARE VARIABLE DEPO VARCHAR (50) CHARACTER SET WIN1254;
BEGIN

select kart_turu from cariler where cari_kodu=:AS_CARI_KODU
into :KART;
if (KART='Sube') then
DEPO='X';
else
DEPO='MERKEZ';

if (AS_ISLEM_TIPI < 0) then AS_HESAP_TUTARI=AS_HESAP_TUTARI*-1;

	YEREL_ISLEM_KODU = GEN_ID(GEN_CK,1);    /* Sradaki lem kodunu alyoruz ...23rfaergfhlashgfkjskjfkjsf*/
    AS_IK=:YEREL_ISLEM_KODU;
    
	INSERT INTO CK
       (
       ISLEM_KODU,                   /* CHARACTER SET WIN1254 */
       CARI_KODU,
       ISLEM_TARIHI,
       EVRAK_TURU,
       EVRAK_NO,       	
       ISLEM_TIPI,
       HESAP_TUTARI,
       HESAP_TUTAR_BIRIMI,
       HESAP_TUTAR_KURU,
       ISLEM_DURUMU,
       ISLEM_VADESI,
       KAYIT_TARIHI,
       FATURA_CARI_KODU
       )
	VALUES
       (
       :YEREL_ISLEM_KODU,
       :AS_CARI_KODU,
       :AS_ISLEM_TARIHI,
       :AS_EVRAK_TURU,
       :AS_EVRAK_NO,
	   :AS_ISLEM_TIPI,
	   :AS_HESAP_TUTARI,
	   :AS_HESAP_TUTAR_BIRIMI,
	   :AS_HESAP_TUTAR_KURU,
       :AS_ISLEM_DURUMU,                   /* "durum=1" -> ilem geerli  */
	   :AS_ISLEM_VADESI,
	   'NOW',
	   0
	   );
	
	IF(:YENI_OR_EDIT=2) THEN            /* Eer lem "EDIT" ise ...*/
	    BEGIN
          UPDATE CK   SET ISLEM_DURUMU=0, ACIKLAMA=' * EDIT *' WHERE ISLEM_KODU    =:AS_ISLEM_KODU;  /* Asl kayt iptal...*/
		  UPDATE STOK SET ISLEM_DURUMU=0, ACIKLAMA=' * EDIT *' WHERE CKE_ISLEM_KODU=:AS_ISLEM_KODU;  /* Asl kaytlar iptal...*/
	    END
	    
	UPDATE STOK SET                          /* "GEC'yi 'AS' ilemine gre gncelliyoruz ...*/
        CKE_ISLEM_KODU=:YEREL_ISLEM_KODU,
		ISLEM_TARIHI='NOW',
        ISLEM_DURUMU=1,
        DEPO_ADI=:DEPO
        WHERE CKE_ISLEM_KODU IS NULL;
END
;@

DROP PROCEDURE URUN ;@
CREATE PROCEDURE URUN (
    ARA VARCHAR (100) CHARACTER SET WIN1254,
    KRT SMALLINT)
RETURNS (
    URUN_KODU NUMERIC (13, 0),
    GRUP1 VARCHAR (25) CHARACTER SET WIN1254,
    GRUP2 VARCHAR (25) CHARACTER SET WIN1254,
    GRUP3 VARCHAR (25) CHARACTER SET WIN1254,
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    BIRIM_FIYATI DOUBLE PRECISION,
    A DOUBLE PRECISION,
    INDIRIM SMALLINT,
    KDV SMALLINT)
AS
DECLARE VARIABLE MYSTR VARCHAR(250) CHARACTER SET WIN1254;
BEGIN
    MYSTR='SELECT URUN_KODU, GRUP1, GRUP2, GRUP3, URUN_ADI, BIRIM_FIYATI, A,  INDIRIM, KDV FROM URUNLER';

    if(KRT=0) then
    MYSTR=MYSTR || ' WHERE URUN_KODU=' || :ARA ;
    ELSE if (KRT=1) then
    MYSTR=MYSTR || ' WHERE URUN_ADI=''' || :ARA  || '''';

    FOR EXECUTE STATEMENT MYSTR
    INTO :URUN_KODU, :GRUP1, :GRUP2, :GRUP3, :URUN_ADI, :BIRIM_FIYATI, :A, :INDIRIM, :KDV
    DO
    SUSPEND ;
END
 ;@

DROP VIEW V_STOK  ;@
CREATE VIEW V_STOK (
    ISLEM_KODU,
    ISLEM_TARIHI,
    CARI_KODU,
    ISIM,
    CKE_ISLEM_KODU,
    URUN_KODU,
    URUN_ADI,
    FIYAT,
    KUR,
    PARA_BIRIMI,
    KDV,
    MIKTAR,
    ISKONTO,
    MIKTAR_TURU,
    ISLEM_TIP,
    ISLEM_TIPI,
    ISLEM_DURUMU,
    DEPO_ADI,
    EVRAK_TURU,
    EVRAK_NO,
    GARANTI,
    SERI_NO,
    KULLANICI,
    ACIKLAMA,
    KAYIT_TARIHI,
    AY,
    YL,
    MIKTARI,
    TUTARI,
    KDVSI,
    TOPLAMI,
    YTL_FIYATI,
    YTL_TUTARI,
    YTL_KDVSI,
    YTL_TOPLAMI,
    NET_TUTARI,
    NET_KDVSI,
    NET_TOPLAMI,
    NET_YTL_TUTARI,
    NET_YTL_KDVSI,
    NET_YTL_TOPLAMI)
AS
SELECT
    ISLEM_KODU,
    ISLEM_TARIHI,
    a.CARI_KODU,
    b.ISIM,
    CKE_ISLEM_KODU,
    a.URUN_KODU,
    c.URUN_ADI,
    FIYAT,
    KUR,
    PARA_BIRIMI,
    a.KDV,
    MIKTAR,
    ISKONTO,
    c.MIKTAR_TURU,
    (select ISIM from cariler d where d.cari_kodu=a.islem_tipi),
    ISLEM_TIPI,
    ISLEM_DURUMU,
    DEPO_ADI,
    EVRAK_TURU,
    EVRAK_NO,
    GARANTI,
    SERI_NO,
    a.KULLANICI,
    a.ACIKLAMA,
    KAYIT_TARIHI,
    EXTRACT(MONTH FROM ISLEM_TARIHI),
    EXTRACT(YEAR FROM  ISLEM_TARIHI),
    (MIKTAR)*(ISLEM_TIPI/2) ,         /*miktar*/
    (MIKTAR*FIYAT)*(ISLEM_TIPI/2) ,                      /*tutar */
    ((MIKTAR*FIYAT/100)*a.KDV)*(ISLEM_TIPI/2),           /*kdvsi  */
    ((FIYAT*MIKTAR)+(MIKTAR*FIYAT/100)*a.KDV)*(ISLEM_TIPI/2),     /*toplam*/
    (FIYAT*KUR)*(ISLEM_TIPI/2),              /*ytl fiayt*/
    (FIYAT*KUR*MIKTAR)*(ISLEM_TIPI/2),                      /*ytl tutar*/
    ((FIYAT*KUR*MIKTAR/100)*a.KDV)*(ISLEM_TIPI/2),          /*ytl kdvsi*/
    ((FIYAT*KUR*MIKTAR)+(FIYAT*KUR*MIKTAR/100)*a.KDV)*(ISLEM_TIPI/2),    /*ytl toplam*/
    (FIYAT*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))*(ISLEM_TIPI/2) ,                  /*net tutar*/
    (((FIYAT*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))/100)*a.KDV)*(ISLEM_TIPI/2),      /*net kdvsi*/
    ((FIYAT*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))+(((FIYAT*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))/100)*a.KDV))*(ISLEM_TIPI/2), /*net Toplam*/
    (FIYAT*KUR*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))*(ISLEM_TIPI/2),                 /*net ytl fiayt*/
    (((FIYAT*KUR*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))/100)*a.KDV)*(ISLEM_TIPI/2),      /*net kdvsi*/
    ((FIYAT*KUR*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))+(((FIYAT*KUR*MIKTAR-(FIYAT*MIKTAR/100*ISKONTO))/100)*a.KDV))*(ISLEM_TIPI/2) /*net Toplam*/
FROM
   STOK a, CARILER b, URUNLER c
where
   a.cari_kodu=b.cari_kodu AND
   a.urun_kodu=c.urun_kodu
;@

DROP PROCEDURE RP_MASA ;@
CREATE PROCEDURE RP_MASA (
    ARA1 VARCHAR (250) CHARACTER SET WIN1254)
RETURNS (
    MASA_NO SMALLINT,
    TAH_KOD INTEGER,
    TUTAR DOUBLE PRECISION,
    A TIME,
    B TIME,
    IND INTEGER)
AS
DECLARE VARIABLE MYSTR1 VARCHAR (1024) CHARACTER SET WIN1254;
BEGIN
     MYSTR1='SELECT
    MASA_NO,
    TAH_KOD,
    SUM(TUTAR),
    (SELECT MIN(SAAT) FROM YEDEK_RAPOR WHERE (URUN_TURU between 1 and 3) and adet > 0 AND TAH_KOD=A.TAH_KOD),
    (SELECT MIN(SAAT) FROM YEDEK_RAPOR WHERE (URUN_TURU=6) and adet > 0 AND TAH_KOD=A.TAH_KOD),
    (SELECT COUNT (URUN_KODU) FROM YEDEK_RAPOR WHERE (URUN_TURU=3) AND TAH_KOD=A.TAH_KOD)
    FROM YEDEK_RAPOR A
    WHERE (URUN_TURU between 1 and 3) and adet > 0 ';
  FOR EXECUTE STATEMENT MYSTR1 || :ARA1 || ' GROUP BY MASA_NO, TAH_KOD '
  INTO :MASA_NO,:TAH_KOD,:TUTAR,:A,:B,:IND
  DO
  SUSPEND ;
END
;@


DROP PROCEDURE CARI_TOP ;@
CREATE PROCEDURE CARI_TOP (
    BAZ2 VARCHAR (25) CHARACTER SET WIN1254)
RETURNS (
    STOKTA DOUBLE PRECISION,
    CARI_KODU INTEGER,
    ISIM VARCHAR (50) CHARACTER SET WIN1254,
    KART_TURU VARCHAR (25) CHARACTER SET WIN1254,
    KART_DURUMU VARCHAR (25) CHARACTER SET WIN1254,
    HESAP_TUTAR_BIRIMI VARCHAR (25) CHARACTER SET WIN1254,
    HESAP_TUTAR_BIRIMI22 VARCHAR (25) CHARACTER SET WIN1254,
    HESAP_TUTARI DOUBLE PRECISION,
    HESAP_TUTARI22 DOUBLE PRECISION)
AS
DECLARE VARIABLE HESAP_BIRIMI VARCHAR (25) CHARACTER SET WIN1254;
BEGIN
HESAP_BIRIMI='YTL';
    FOR
    SELECT
       CAST(0 as DOUBLE PRECISION),
       --CAST((SELECT Sum(m.MIKTAR*n.BIRIM_FIYATI) FROM STOK m, URUNLER n where m.cari_kodu=a.cari_kodu and m.urun_kodu=n.urun_kodu and b.kart_turu='Sube') as DOUBLE PRECISION),
       a.CARI_KODU,
       b.ISIM,
       b.KART_TURU,
       b.KART_DURUMU,
       a.HESAP_TUTAR_BIRIMI,
       :BAZ2,                                     --baz alnacak para birimi
       Sum(a.HESAP_TUTARI),
       Sum(a.HESAP_TUTARI*(SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=a.HESAP_TUTAR_BIRIMI) / (SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=:BAZ2))
       FROM CK a, CARILER b, DOVIZ_KURLARI c
       WHERE
       a.CARI_KODU >=10000 and
       a.ISLEM_DURUMU in(1, 2) and
       a.CARI_KODU=b.CARI_KODU and
       a.HESAP_TUTAR_BIRIMI=c.PARA 
       
       GROUP BY b.ISIM, b.KART_TURU, b.KART_DURUMU, a.CARI_KODU, a.HESAP_TUTAR_BIRIMI
    UNION
       SELECT
       CAST(0 as DOUBLE PRECISION),
       CARI_KODU,
       ISIM,
       KART_TURU,
       KART_DURUMU,
       :HESAP_BIRIMI,
       :BAZ2,
       CAST(0 as DOUBLE PRECISION),
       CAST(0 as DOUBLE PRECISION)
       FROM CARILER
       WHERE
       CARI_KODU >=10000
    UNION
       SELECT
       Sum(a.HESAP_TUTARI*(SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=a.HESAP_TUTAR_BIRIMI) / (SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=:BAZ2)),
       a.CARI_KODU,
       b.ISIM,
       b.KART_TURU,
       b.KART_DURUMU,
       a.HESAP_TUTAR_BIRIMI,
       :BAZ2,
       CAST(0 as DOUBLE PRECISION),
       CAST(0 as DOUBLE PRECISION)
       FROM CK a, CARILER b, DOVIZ_KURLARI c
       WHERE
       b.kart_turu='Sube' and
       a.CARI_KODU >=10000 and
       a.HESAP_TUTAR_BIRIMI=c.PARA AND
       a.CARI_KODU=b.CARI_KODU and
       a.ISLEM_DURUMU in(-1,1,2) and
       (a.EVRAK_TURU IS NULL OR a.EVRAK_TURU = 'FATURA')
       GROUP BY b.ISIM, b.KART_TURU, b.KART_DURUMU, a.CARI_KODU, a.HESAP_TUTAR_BIRIMI

    INTO :STOKTA, :CARI_KODU, :ISIM, :KART_TURU, :KART_DURUMU, :HESAP_TUTAR_BIRIMI, :HESAP_TUTAR_BIRIMI22, :HESAP_TUTARI, :HESAP_TUTARI22
    DO
    SUSPEND ;
END
;@


ALTER PROCEDURE GG_TOP (
    BAZ2 VARCHAR (25) CHARACTER SET WIN1254,
    AY INTEGER,
    CKODU INTEGER)
RETURNS (
    CARI_KODU INTEGER,
    ISLEM_TIP VARCHAR (50) CHARACTER SET WIN1254,
    ISLEM_TIPI INTEGER,
    HESAP_TUTAR_BIRIMI VARCHAR (25) CHARACTER SET WIN1254,
    HESAP_TUTARI DOUBLE PRECISION)
AS
/*DECLARE VARIABLE CARI_KODUx NUMERIC (15, 0);*/
BEGIN
IF (:AY=0) then
BEGIN
    FOR
    SELECT
       CARI_KODU,
       (select ISIM from cariler c where c.cari_kodu=a.islem_tipi),
       ISLEM_TIPI,
       :BAZ2,
       Sum(a.HESAP_TUTARI*(SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=a.HESAP_TUTAR_BIRIMI) / (SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=:BAZ2))
       FROM CK a, DOVIZ_KURLARI b
       WHERE    a.HESAP_TUTAR_BIRIMI=b.PARA AND ISLEM_DURUMU in(1, 2) AND CARI_KODU=:CKODU
       GROUP BY CARI_KODU, ISLEM_TIPI

     UNION

     SELECT
       CAST(0 as INTEGER),
       ISIM,
       CAST(CARI_KODU as smallint),
       :BAZ2,
       CAST(0 as DOUBLE PRECISION)
       FROM cariler
       WHERE CARI_KODU BETWEEN -1111 AND 1111
       INTO :CARI_KODU, :ISLEM_TIP, :ISLEM_TIPI, :HESAP_TUTAR_BIRIMI, :HESAP_TUTARI
       DO
       SUSPEND ;
END
ELSE IF(:AY>0) THEN
BEGIN
    FOR
    SELECT
       CARI_KODU,
       (select ISIM from cariler c where c.cari_kodu=a.islem_tipi),
       ISLEM_TIPI,
       :BAZ2,
       Sum(a.HESAP_TUTARI*(SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=a.HESAP_TUTAR_BIRIMI) / (SELECT KUR FROM DOVIZ_KURLARI WHERE PARA=:BAZ2))
       FROM CK a, DOVIZ_KURLARI b
       WHERE    a.HESAP_TUTAR_BIRIMI=b.PARA AND ISLEM_DURUMU in(1, 2) AND EXTRACT(MONTH FROM a.ISLEM_TARIHI)=:AY AND CARI_KODU=:CKODU
       GROUP BY CARI_KODU, ISLEM_TIPI

     UNION

     SELECT
       CAST(0 as INTEGER),
       ISIM,
       CAST(CARI_KODU as smallint),
       :BAZ2,
       CAST(0 as DOUBLE PRECISION)
       FROM cariler
       WHERE CARI_KODU BETWEEN -1111 AND 1111
       INTO :CARI_KODU, :ISLEM_TIP, :ISLEM_TIPI, :HESAP_TUTAR_BIRIMI, :HESAP_TUTARI
       DO
       SUSPEND ;
END
END
;@


ALTER TRIGGER STOK_BI
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.islem_kodu=GEN_ID(GEN_STOK,1);
if (NEW.ISKONTO IS NULL) THEN NEW.ISKONTO=0;
if (NEW.cke_islem_kodu=-8) THEN NEW.cke_islem_kodu=-9;
END
;@


DROP PROCEDURE P_DEPO ;@
CREATE PROCEDURE P_DEPO 
AS
BEGIN

UPDATE STOK SET CKE_ISLEM_KODU=-8, ISLEM_DURUMU=1 WHERE CKE_ISLEM_KODU=-9;
INSERT INTO STOK  SELECT * FROM STOK WHERE CKE_ISLEM_KODU=-8;        --AMA KAYIT ALINIRKEN -9 YAPTI BEFORE NDERET OLAYINDA

UPDATE STOK SET CKE_ISLEM_KODU=0 WHERE CKE_ISLEM_KODU=-8;
UPDATE STOK SET CKE_ISLEM_KODU=0, ISLEM_TIPI=ISLEM_TIPI*-1, DEPO_ADI='MERKEZ', MIKTAR=MIKTAR*-1 WHERE CKE_ISLEM_KODU=-9;

END
;@

DROP PROCEDURE R_DEPO ;@
CREATE PROCEDURE R_DEPO (
    URUN_KODU NUMERIC (13, 0))
RETURNS (
    ISIM VARCHAR (50) CHARACTER SET WIN1254,
    MIKTAR DOUBLE PRECISION)
AS
BEGIN
FOR SELECT
    B.ISIM,
    SUM(A.MIKTAR)
    FROM STOK A, CARILER B
    WHERE URUN_KODU=:URUN_KODU AND B.KART_TURU='Sube' AND ISLEM_TIPI IN(2003,-2004) AND A.CARI_KODU=B.CARI_KODU
    GROUP BY A.URUN_KODU, B.ISIM
INTO :ISIM,:MIKTAR DO SUSPEND ;

FOR SELECT
    B.ISIM,
    SUM(A.MIKTAR)*-1
    FROM STOK A, CARILER B
    WHERE URUN_KODU=:URUN_KODU AND B.KART_TURU='Sube' AND ISLEM_TIPI IN(-2,2) AND A.CARI_KODU=B.CARI_KODU
    GROUP BY A.URUN_KODU, B.ISIM
INTO :ISIM,:MIKTAR DO SUSPEND ;

FOR SELECT
    CAST('MERKEZ' as VARCHAR (50) CHARACTER SET WIN1254),
    SUM(MIKTAR)
    FROM STOK 
    WHERE URUN_KODU=:URUN_KODU AND ISLEM_TIPI IN(-2,2)
    GROUP BY DEPO_ADI
INTO :ISIM,:MIKTAR DO SUSPEND ;

FOR SELECT
    ISIM,
    CAST(0 as DOUBLE PRECISION)
    FROM CARILER
    WHERE KART_TURU = 'Sube'
INTO :ISIM,:MIKTAR DO SUSPEND ;

END
;@


DROP PROCEDURE R_URUN_TOP ;@
CREATE PROCEDURE R_URUN_TOP 
RETURNS (
    MIKTAR DOUBLE PRECISION,
    URUN_KODU NUMERIC (13, 0),
    GRUP1 VARCHAR (50) CHARACTER SET WIN1254,
    GRUP2 VARCHAR (50) CHARACTER SET WIN1254,
    GRUP3 VARCHAR (50) CHARACTER SET WIN1254,
    URUN_ADI VARCHAR (100) CHARACTER SET WIN1254,
    KDV SMALLINT,
    DEPO_ADI VARCHAR (50) CHARACTER SET WIN1254)
AS
BEGIN

FOR SELECT
sum(a.MIKTAR*-1) ,
a.URUN_KODU,
b.GRUP1,
b.GRUP2,
b.GRUP3,
b.URUN_ADI,
b.KDV,
a.DEPO_ADI
FROM STOK a, URUNLER b
WHERE     a.ISLEM_DURUMU='1' AND a.DEPO_ADI='X' AND a.ISLEM_TIPI IN(2,-2) AND a.URUN_KODU=b.URUN_KODU
group by  a.URUN_KODU, b.GRUP1, b.GRUP2, b.GRUP3, b.URUN_ADI, b.KDV, a.DEPO_ADI

  INTO :MIKTAR,:URUN_KODU,:GRUP1,:GRUP2,:GRUP3,:URUN_ADI,:KDV,:DEPO_ADI
  DO
  SUSPEND ;

FOR SELECT
sum(a.MIKTAR) ,
a.URUN_KODU,
b.GRUP1,
b.GRUP2,
b.GRUP3,
b.URUN_ADI,
b.KDV,
a.DEPO_ADI
FROM STOK a, URUNLER b
WHERE     a.ISLEM_DURUMU='1' AND a.DEPO_ADI='X' AND a.ISLEM_TIPI IN(-2004,2003) AND a.URUN_KODU=b.URUN_KODU
group by  a.URUN_KODU, b.GRUP1, b.GRUP2, b.GRUP3, b.URUN_ADI, b.KDV, a.DEPO_ADI

  INTO :MIKTAR,:URUN_KODU,:GRUP1,:GRUP2,:GRUP3,:URUN_ADI,:KDV,:DEPO_ADI
  DO
  SUSPEND ;

FOR SELECT
sum(a.MIKTAR) ,
a.URUN_KODU,
b.GRUP1,
b.GRUP2,
b.GRUP3,
b.URUN_ADI,
b.KDV,
a.DEPO_ADI
FROM STOK a, URUNLER b
WHERE     a.ISLEM_DURUMU='1' AND a.ISLEM_TIPI IN(2,-2) AND a.URUN_KODU=b.URUN_KODU
group by  a.URUN_KODU, b.GRUP1, b.GRUP2, b.GRUP3, b.URUN_ADI, b.KDV, a.DEPO_ADI

  INTO :MIKTAR,:URUN_KODU,:GRUP1,:GRUP2,:GRUP3,:URUN_ADI,:KDV,:DEPO_ADI
  DO
  SUSPEND ;

FOR SELECT
CAST(0 as DOUBLE PRECISION),
URUN_KODU,
GRUP1,
GRUP2,
GRUP3,
URUN_ADI,
KDV,
CAST('MERKEZ' as VARCHAR (50) CHARACTER SET WIN1254 )
FROM URUNLER

  INTO :MIKTAR,:URUN_KODU,:GRUP1,:GRUP2,:GRUP3,:URUN_ADI,:KDV,:DEPO_ADI
  DO
  SUSPEND ;
END
;@

ALTER TRIGGER STOK_BI
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.islem_kodu=GEN_ID(GEN_STOK,1);
NEW.kayit_tarihi='NOW';
if (NEW.ISKONTO IS NULL) THEN NEW.ISKONTO=0;
if (NEW.cke_islem_kodu=-8) THEN NEW.cke_islem_kodu=-9;
END
;@


















ALTER TABLE R ALTER COLUMN ISLEM_KODU TO SIRA ;@
alter table "R" drop "A"  ;@
alter table "R" drop "B"  ;@
alter table "R" drop "C"  ;@
alter table "R" drop "D"  ;@
alter table "R" drop "E"  ;@
alter table "R" drop "P"  ;@
ALTER TABLE R ADD ACIKLAMA "varchar 060" COLLATE PXW_TURK  ;@ CREATE INDEX IDX_R ON R (SIRA) ;@
ALTER TABLE R ADD TUR "integer" ;@ CREATE INDEX IDX_R2 ON R (TUR) ;@

alter table YEDEK_RAPOR add ACIKLAMA "varchar 060" ;@
CREATE INDEX IDX_YEDEKR17 ON YEDEK_RAPOR (ACIKLAMA) ;@

alter table KULLANICILAR add X16 "smalint" ;@
CREATE INDEX IDX_KULLANICILAR01 ON KULLANICILAR (ISLEMCI) ;@
CREATE INDEX IDX_KULLANICILAR02 ON KULLANICILAR (SIFRE) ;@
CREATE INDEX IDX_KULLANICILAR03 ON KULLANICILAR (X16) ;@

CREATE TABLE PDKS (ISLEMCI "varchar 050" COLLATE PXW_TURK) ;@
ALTER TABLE PDKS ADD TARIH "date" ;@
ALTER TABLE PDKS ADD SAAT "time" ;@
ALTER TABLE PDKS ADD ISLEM_KODU "integer" NOT NULL  ;@
alter table PDKS add constraint PK_PDKS primary key (ISLEM_KODU)  ;@

CREATE INDEX IDX_PDKS01 ON PDKS (ISLEMCI)  ;@
CREATE INDEX IDX_PDKS02 ON PDKS (TARIH)  ;@
CREATE INDEX IDX_PDKS03 ON PDKS (SAAT)  ;@

CREATE TRIGGER PDKS_BI FOR PDKS
BEFORE INSERT POSITION 0
AS
BEGIN
NEW.ISLEM_KODU=GEN_ID(GEN_DATA,1);
END
;@


CREATE TABLE 	RPR (RAPOR_KODU 	"integer" NOT NULL) ;@
ALTER TABLE 	RPR ADD R_ADI1 	"varchar 060" COLLATE PXW_TURK ;@
ALTER TABLE 	RPR ADD R_ADI2 	"varchar 060" COLLATE PXW_TURK ;@
ALTER TABLE 	RPR ADD R_ADI3 	"varchar 060" COLLATE PXW_TURK ;@
ALTER TABLE 	RPR ADD R_PATH 	"varchar 060" COLLATE PXW_TURK ;@
ALTER TABLE 	RPR ADD ACIKLAMA "varchar 250" COLLATE PXW_TURK ;@
ALTER TABLE 	RPR ADD OZELLIK 	"smalint" ;@

alter table RPR add constraint PK_RPR primary key (RAPOR_KODU)  ;@

CREATE INDEX IDX_RPR01 ON RPR (R_ADI1)  ;@
CREATE INDEX IDX_RPR02 ON RPR (R_ADI2)  ;@
CREATE INDEX IDX_RPR03 ON RPR (R_ADI3)  ;@
CREATE INDEX IDX_RPR04 ON RPR (R_PATH)  ;@
CREATE INDEX IDX_RPR05 ON RPR (OZELLIK)  ;@

CREATE TRIGGER RPR_BI FOR RPR
BEFORE INSERT POSITION 0
AS
BEGIN
NEW.RAPOR_KODU=GEN_ID(gen_cariler,1);
END
;@


CREATE PROCEDURE ISLEM_KODU 
RETURNS (
    KOD INTEGER)
AS
BEGIN
KOD   = GEN_ID(GEN_DATA,1);
END
;@


DROP TABLE XCK ;@
alter table URUNLER add "BIRIM_FIYATI_2" "N (DEGER)"  ;@


ALTER TABLE CARILER ADD OZEL "varchar 025" COLLATE PXW_TURK  ;@  	CREATE INDEX IDX_OZEL ON CARILER  (OZEL) ;@
ALTER TABLE CARILER ADD ILGILI "varchar 025" COLLATE PXW_TURK  ;@  	CREATE INDEX IDX_ILGILI ON CARILER  (ILGILI) ;@


ALTER TABLE YEDEK_RAPOR add MASA_NO "smalint" ;@		CREATE INDEX IDX_YEDEKR10 ON YEDEK_RAPOR (MASA_NO) ;@
ALTER TABLE YEDEK_RAPOR add TAH_KOD INTEGER ;@		CREATE INDEX IDX_YEDEKR11 ON YEDEK_RAPOR (TAH_KOD) ;@
ALTER TABLE YEDEK_RAPOR ADD SAAT "time" ;@ 		CREATE INDEX IDX_YEDEKR12 ON YEDEK_RAPOR (SAAT) ;@
ALTER TABLE YEDEK_RAPOR ADD URUN_ISMI "varchar 060" ;@ 	CREATE INDEX IDX_YEDEKR13 ON YEDEK_RAPOR (URUN_ISMI) ;@
ALTER TABLE YEDEK_RAPOR ADD GRUP1 "varchar 025" ;@ 		CREATE INDEX IDX_YEDEKR14 ON YEDEK_RAPOR (GRUP1) ;@
ALTER TABLE YEDEK_RAPOR ADD GRUP2 "varchar 025" ;@		CREATE INDEX IDX_YEDEKR15 ON YEDEK_RAPOR (GRUP2) ;@
ALTER TABLE YEDEK_RAPOR ADD GRUP3 "varchar 025" ;@		CREATE INDEX IDX_YEDEKR16 ON YEDEK_RAPOR (GRUP3) ;@

CREATE INDEX IDX_CARI_KODU ON CARILER (CARI_KODU);@
CREATE INDEX IDX_ISIM ON CARILER (ISIM);@
CREATE INDEX IDX_TEL_1 ON CARILER (TEL_1);@
CREATE INDEX IDX_TEL_2 ON CARILER (TEL_2);@
CREATE INDEX IDX_TEL_3 ON CARILER (TEL_3);@
CREATE INDEX IDX_TEL_4 ON CARILER (TEL_4);@
CREATE INDEX IDX_FAX ON CARILER (FAX);@
CREATE INDEX IDX_MOBIL ON CARILER (MOBIL);@

CREATE INDEX IDX_DATA1 ON DATA (URUN_KODU);@
CREATE INDEX IDX_DATA2 ON DATA (MASA);@
CREATE INDEX IDX_DATA3 ON DATA (SATIS_KOD);@
CREATE INDEX IDX_DATA4 ON DATA (KASA);@
CREATE INDEX IDX_DATA5 ON DATA (KULLANICI);@
CREATE INDEX IDX_DATA6 ON DATA (TARIH,SAAT);@
CREATE INDEX IDX_DATA7 ON DATA (YAZICI_GRUBU);@
CREATE INDEX IDX_DATA8 ON DATA (CARI_KODU);@
CREATE INDEX IDX_DATA9 ON DATA (CARI);@
CREATE INDEX IDX_DATA10 ON DATA (KASIYER);@ 
CREATE INDEX IDX_DATA10 ON DATA (TAH_KOD);@ 

CREATE INDEX IDX_RECETELER1 ON RECETELER (RECETE_KODU);@
CREATE INDEX IDX_RECETELER2 ON RECETELER (URUN_KODU);@

CREATE INDEX IDX_URUNLER1 ON URUNLER (URUN_KODU);@
CREATE INDEX IDX_URUNLER2 ON URUNLER (GRUP3);@
CREATE INDEX IDX_URUNLER3 ON URUNLER (TUS);@

CREATE INDEX IDX_YEDEKR1 ON YEDEK_RAPOR (URUN_KODU);@
CREATE INDEX IDX_YEDEKR2 ON YEDEK_RAPOR (TARIH);@
CREATE INDEX IDX_YEDEKR3 ON YEDEK_RAPOR (KULLANICI);@
CREATE INDEX IDX_YEDEKR4 ON YEDEK_RAPOR (MASA);@
CREATE INDEX IDX_YEDEKR5 ON YEDEK_RAPOR (SUBESI);@
CREATE INDEX IDX_YEDEKR6 ON YEDEK_RAPOR (KASA);@
CREATE INDEX IDX_YEDEKR7 ON YEDEK_RAPOR (CARI);@
CREATE INDEX IDX_YEDEKR8 ON YEDEK_RAPOR (CARI_KODU);@
CREATE INDEX IDX_YEDEKR9 ON YEDEK_RAPOR (KASIYER);@


CREATE INDEX IDX_CK_01 ON CK  (ISLEM_TARIHI) ;@
CREATE INDEX IDX_CK_02 ON CK  (ISLEM_TIPI) ;@
CREATE INDEX IDX_CK_03 ON CK  (ISLEM_DURUMU) ;@
CREATE INDEX IDX_CK_04 ON CK  (KASA_ISMI) ;@
CREATE INDEX IDX_CK_05 ON CK  (TUTAR_BIRIMI) ;@
CREATE INDEX IDX_CK_06 ON CK  (EVRAK_TURU) ;@
CREATE INDEX IDX_CK_07 ON CK  (EVRAK_NO) ;@
CREATE INDEX IDX_CK_08 ON CK  (ISLEM_VADESI) ;@
CREATE INDEX IDX_CK_09 ON CK  (HESAP_TUTAR_BIRIMI) ;@
CREATE INDEX IDX_CK_10 ON CK  (KULLANICI) ;@
CREATE INDEX IDX_CK_11 ON CK  (FATURA_CARI_KODU) ;@
CREATE INDEX IDX_CK_12 ON CK  (EVRAK_ISLEM_KODU) ;@

CREATE INDEX IDX_STOK_01 ON STOK (ISLEM_TARIHI) ;@
CREATE INDEX IDX_STOK_02 ON STOK (ISLEM_TIPI) ;@
CREATE INDEX IDX_STOK_03 ON STOK (ISLEM_DURUMU) ;@
CREATE INDEX IDX_STOK_04 ON STOK (DEPO_ADI) ;@
CREATE INDEX IDX_STOK_05 ON STOK (GARANTI) ;@
CREATE INDEX IDX_STOK_06 ON STOK (EVRAK_TURU) ;@
CREATE INDEX IDX_STOK_07 ON STOK (EVRAK_NO) ;@
CREATE INDEX IDX_STOK_08 ON STOK (SERI_NO) ;@
CREATE INDEX IDX_STOK_09 ON STOK (KDV) ;@
CREATE INDEX IDX_STOK_10 ON STOK (KULLANICI) ;@
CREATE INDEX IDX_STOK_11 ON STOK (PARA_BIRIMI) ;@
CREATE INDEX IDX_STOK_12 ON STOK (URUN_KODU) ;@
CREATE INDEX IDX_STOK_13 ON STOK (CARI_KODU) ;@
CREATE INDEX IDX_STOK_14 ON STOK (CKE_ISLEM_KODU) ;@

DROP DOMAIN "N (BARKOD)_1"   ;@
DROP VIEW V_RECETE_1 ;@
DROP VIEW V_REALTY ;@
DROP VIEW V_REEL ;@
DROP TABLE URUN_AYRINTILARI ;@
DROP VIEW RAPOR ;@ 
DROP VIEW RAPOR_DENGE ;@ 
DROP VIEW SON_ISLEMLER ;@ 
DROP VIEW V_XXXXXX ;@ 
DROP TABLE YEDEK ;@ 


DROP VIEW V_DEPO ;@
DROP VIEW URUN_TOP ;@
DROP PROCEDURE R_STOK ;@
DROP PROCEDURE P_ISLEM_KODU ;@
DROP PROCEDURE SATIS_KODU ;@


ALTER TABLE DATA ADD TAH_KOD INTEGER  ;@  
drop index IDX_DATA10 ;@   	CREATE INDEX IDX_DATA10 ON DATA (KASIYER);@ 
drop index IDX_DATA11 ;@   	CREATE INDEX IDX_DATA11 ON DATA (TAH_KOD);@ 


update KULLANICILAR set X16=1 where X16 is null ;@





