Function ReadSQL(W: String): String;
Var
  S: String;
Begin
  S:= REPLACESTRING(W, 'GRUPADI', 'S.GRUPADI');
  S:= REPLACESTRING(W, 'KOD', 'S.KOD');
  
  Result:= 'Select ' + 
	' BELGENO, ISLEM, TARIH, C.FIRMAKODU, C.FIRMAADI, S.STOKKODU, S.CINSI, H.GIREN, H.CIKAN, ' + 
	' FIYATI, H.GIREN * FIYATI AS ALACAK, H.CIKAN * FIYATI 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');
  S:= REPLACESTRING(FFilter, 'KOD', 'S.KOD');
  SetViewCaption('BASLIK', 'PARADOX STOK HAREKETLERİ');
  
  if S <> '' Then
    AddQueryToSQL('KullaniciQ', ' AND ' + S);
  AddQueryToSQL('KullaniciQ', ' ORDER BY TARIH, STOKKODU');	
End;

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

procedure Start;
Begin
End;

Procedure Finish;
Begin
End;

Function ReadFilter(Var F: String): Boolean;
Begin
  Result:= ReadSQLFilter('TBLSTOKLAR', 
        'Select ' +  
		'  STOKKODU, CINSI, S.ETKENMADDE AS ANAGRUP, S.GRUPADI AS ALTGRUP, B.BIRIMADI, B.BARKOD, ' +  
		'  KOD1, KOD2, KOD3, KOD4, KOD5, ISNULL(SD.SEMBOL, ''TL'') AS PB1, S.KDV ' + 
		' from TBLSTOKLAR S ' +  
		' LEFT OUTER JOIN TBLBIRIMLEREX B WITH(INDEX=TBLBIRIMLEREX_KARTNO) ON B.KARTNO = S.ANABIRIM ' +  
		' LEFT OUTER JOIN TBLDOVIZLER SD ON SD.KARTNO = B.SATISFIYATIPB1 ' +  
		' WHERE S.DELETED = 0', 
		'DELETED = 0', 
		'STOKKODU;CINSI;ANAGRUP;GRUPADI;BIRIMADI;BARKOD;KOD1;KOD2;KOD3;KOD4;KOD5;PB1;KDV', 
		'Stok Kodu;Cinsi;Ana Grup;Alt Grup;Birim Adı;Barkod;Özel Kod 1;Özel Kod 2;Özel Kod 3;Özel Kod 4;Özel Kod 5;Satış Para Birimi;KDV',
        'STOKKODU;CINSI;ANAGRUP;ALTGRUP;KOD1;KOD2;KOD3;KOD4;KOD5', 
		'STOKKODU;CINSI;ANAGRUP;ALTGRUP;BIRIMADI;BARKOD;KOD1;KOD2;KOD3;KOD4;KOD5',
		'Stok Kodu;Cinsi;Ana Grup;Alt Grup;Birim Adı;Barkod;Özel Kod 1;Özel Kod 2;Özel Kod 3;Özel Kod 4;Özel Kod 5',
        'STOKKODU', '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;BORC;ALACAK', 
	 'İşlem;Firma Kodu;Firma Adı;Stok Kodu;Cinsi;Tarih;Belge No;Giren;Çıkan;Fiyatı;Borç;Alacak', 
	  0);
	 
	CreateSummary('GIREN', skSum); 
	CreateSummary('CIKAN', skSum); 
	CreateSummary('BORC', skSum);
	CreateSummary('ALACAK', skSum);
	CreateSummary('STOKKODU', skCount); 
  End;
End;

Begin
End.