Function ReadSQL(W: String): String;
Var
  S: String;
Begin
  S:= REPLACESTRING(W, 'GRUPADI', 'S.GRUPADI');
  
  Result:= 'Select ' + 
	' BELGENO, ISLEM, TARIH, C.FIRMAKODU, C.FIRMAADI, S.STOKKODU, S.CINSI, H.GIREN, H.CIKAN, ' + 
	' FIYATI, ISKONTOTOPLAMI, KDVTUTARI, ' +
	' CASE WHEN ISLEMTIPI IN(2, 5) THEN H.CIKAN * NETFIYATI ELSE 0 END AS ALACAK, ' +
	' CASE WHEN ISLEMTIPI IN(3, 4) THEN H.GIREN * NETFIYATI ELSE 0 END AS BORC ' +
	' from STOKHAREKET H ' + 
	' LEFT OUTER JOIN TBLCARI C WITH(INDEX=TBLCARI_KARTNO) ON C.KARTNO = H.CARIID ' + 
	' LEFT OUTER JOIN TBLSTOKLAR S WITH(INDEX=TBLSTOKLAR_KARTNO) ON S.KARTNO = H.STOKID ' + 
	' WHERE H.ISLEMTIPI IN(2, 3, 4, 5) ';
 
  if S <> '' Then
    Result:= Result + ' AND ' + S;
  Result:= Result + ' ORDER BY TARIH, STOKKODU'; 
End;

procedure RaporLoad;
Var
  S: String;
Begin
  S:= REPLACESTRING(FFilter, 'GRUPADI', 'S.GRUPADI');
  SetViewCaption('BASLIK', 'PARADOX STOK CARİ İLİŞKİSİ');

  if S <> '' Then
    AddQueryToSQL('KullaniciQ', ' AND ' + S);
  AddQueryToSQL('KullaniciQ', ' ORDER BY TARIH, STOKKODU');	
End;

Function RaporFileName: String;
Begin
  Result:= ParsDir + 'Cari Kart Raporları\Cari Stok Iliskisi.fr3';
End;

procedure Start;
Begin
End;

Procedure Finish;
Begin
End;

Function ReadFilter(Var F: String): Boolean;
Begin
  Result:= ReadSQLFilter('TBLCARI', 'Select GETDATE() AS TARIH, FIRMAKODU, FIRMAADI, KOD1, KOD2, KOD3,KOD4, KOD5, GRUPADI' + 
     ' FROM TBLCARI', 'DELETED = 0', 
	  'FIRMAKODU; FIRMAADI; TARIH;TARIH;GRUPADI;KOD1;KOD2;KOd3;KOD4;KOD5', 
	  'Firma Kodu;Firma Adı;1. Tarih;2. Tarih;Grup Adı;1. Özel Kod;2. Özel Kod;3. Özel Kod;4. Özel Kod;5. Özel Kod', 
      'FIRMAKODU;FIRMAADI;TARIH;KOD1;KOD2;KOD3;KOD4;KOD5', 
	  'FIRMAKODU;FIRMAADI; TARIH;TARIH;GRUPADI;KOD1;KOD2;KOD3;KOD4;KOD5',
	  'Firma Kodu;Firma Adı;1. Tarih;2. Tarih;Grup Adı;1. Özel Kod;2. Özel Kod;3. Özel Kod;4. Özel Kod;5. Özel Kod',
      'FIRMAKODU', 'KARTNO', F);	
End;

Function RaporDefaultSQL: String;
Begin
  Result:= ReadSQL('');
End;

procedure Execute;
Var
  IDS: String;
Begin
  if ReadFilter(IDS) Then
  Begin
    CreateReport(IDS, ReadSQL(IDS), 
     'ISLEM;FIRMAKODU:0;FIRMAADI;STOKKODU:0;CINSI;TARIH;BELGENO;GIREN;CIKAN;FIYATI;KDVTUTARI:0;ISKONTOTOPLAMI;BORC;ALACAK', 
	 'İşlem;Firma Kodu;Firma Adı;Stok Kodu;Cinsi;Tarih;Belge No;Giren;Çıkan;Fiyatı;KDV;İskonto;Borç;Alacak', 
	  0);
	 
	CreateSummary('GIREN', skSum); 
	CreateSummary('CIKAN', skSum); 
	CreateSummary('BORC', skSum);
	CreateSummary('ALACAK', skSum);
	CreateSummary('STOKKODU', skCount); 
    CreateSummary('ISKONTOTOPLAMI', skSum);
    CreateSummary('KDVTUTARI', skSum);  
  End;
End;

Begin
End.