Function ReadSQL(W: String): String;
Var
  S: String;
Begin
  S:= REPLACESTRING(W, 'ANAGRUP', 'ETKENMADDE');
  S:= REPLACESTRING(S, 'DEPOKODU', 'DP.KOD');
  S:= REPLACESTRING(S, 'DEPOADI', 'DP.ACIKLAMA');

  Result:= 'Select ' + #13#10 +
	' A.*, A.DEPO * A.ALISFIYATI1 AS ALISTUTARI, A.DEPO * A.SATISFIYATI1 AS SATISTUTARI ' + #13#10 +
	' FROM( ' + #13#10 +
    'Select ' +  #13#10 +
	'   D.DEPOID, S.KARTNO, STOKKODU, CINSI, S.ETKENMADDE AS ANAGRUP, S.GRUPADI AS ALTGRUP, B.BIRIMADI, B.BARKOD, ' +  #13#10 +
	'   KOD1, KOD2, KOD3, KOD4, KOD5, B.SATISFIYATI1, ISNULL(SD.SEMBOL, ''TL'') AS PB1, B.ALISFIYATI1, ISNULL(AD.SEMBOL, ''TL'') AS APB1, B.CARPAN, ' +  #13#10 +
	'   CASE S.KDVDAHIL WHEN 1 THEN CAST(S.KDV AS VARCHAR(2)) + '' D'' ELSE CAST(S.KDV AS VARCHAR(2)) + '' H'' END AS KDV, ' +  #13#10 +
	'   B.MINUMUMFIYAT AS MINSATISFIYATI, B.MAXIMUMFIYAT MAXALISFIYATI, ' +  #13#10 +
	'   D.DEPO ' + #13#10 +
	' from DEPOSTOKDURUMU D' + #13#10 +
	' LEFT OUTER JOIN TBLSTOKLAR S WITH(INDEX=TBLSTOKLAR_KARTNO) ON S.KARTNO = D.STOKID' + #13#10 +
	' LEFT OUTER JOIN TBLBIRIMLEREX B WITH(INDEX=TBLBIRIMLEREX_KARTNO) ON B.KARTNO = S.ANABIRIM ' +  #13#10 +
	' LEFT OUTER JOIN TBLDOVIZLER SD ON SD.KARTNO = B.SATISFIYATIPB1 ' +  #13#10 +
	' LEFT OUTER JOIN TBLDOVIZLER AD ON AD.KARTNO = B.ALISFIYATIPB1 ' +  #13#10 +
	' LEFT OUTER JOIN TBLDEPOLAR DP ON DP.KARTNO = D.DEPOID ' +
	' WHERE S.DELETED = 0 ';
  if S <> '' Then
    Result:= Result + ' AND ' + S;
  Result:= Result + #13#10 + ' ) AS A ORDER BY STOKKODU';
End;

procedure RaporLoad;
Begin
  SetViewCaption('BASLIK', 'PARADOX STOK DEĞER RAPORU LİSTESİ');
  SetQuerySQL('KullaniciQ', ReadSQL(FFilter));
End;

Function RaporFileName: String;
Begin
  Result:= ParsDir + 'Stok Raporları\Stok Listeleri\Depo Bazli Stok Değer Raporu.fr3';
End;

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

procedure Start;
Begin
End;

Procedure Finish;
Begin
End;

Function ReadFilter(Var F: String): Boolean;
Var
  B: Boolean;
  IDS: String;
Begin
// TableName, SQL, SearchFilter, Fields, Captions, SelectListFields, FilteredFields, FilteredCaptions, OrderBy, IndexField, var Filter
  Result:= ReadSQLFilter('TBLSTOKLAR', 
        'Select ' +  
		'  D.KOD AS DEPOKODU, D.ACIKLAMA AS DEPOADI, 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 ' +  
		' LEFT OUTER JOIN TBLDEPOLAR D ON ISNULL(D.DELETED, 0) = 0 ' +
		' WHERE S.DELETED = 0', 
		'DELETED = 0', 
		'DEPOKODU;DEPOADI;STOKKODU;CINSI;ANAGRUP;GRUPADI;BIRIMADI;BARKOD;KOD1;KOD2;KOD3;KOD4;KOD5;PB1;KDV', 
		'Depo Kodu;Depo Adı;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',
        'DEPOKODU;DEPOADI;STOKKODU;CINSI;ANAGRUP;ALTGRUP;KOD1;KOD2;KOD3;KOD4;KOD5', 
		'DEPOKODU;DEPOADI;STOKKODU;CINSI;ANAGRUP;ALTGRUP;BIRIMADI;BARKOD;KOD1;KOD2;KOD3;KOD4;KOD5',
		'Depo Kodu;Depo Adı;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;

procedure Execute;
Var
  IDS: String;
Begin
  if ReadFilter(IDS) Then
  Begin
    CreateReport(IDS, ReadSQL(IDS), 
     'STOKKODU;CINSI;ANAGRUP;GRUPADI;BARKOD:0;KOD1;KOD2;KOD3:0;KOD4:0;KOD5:0;KDV;MINSATISFIYATI:0;MAXALISFIYATI:0;' +
	 'DEPO;BIRIMADI;SATISFIYATI1;PB1:0;ALISFIYATI1;APB1:0;SATISTUTARI;ALISTUTARI',
	 'Stok Kodu;Cinsi;Ana Grup;Alt Grup;Barkod;Özel Kod 1;Özel Kod 2;Özel Kod 3;Özel Kod 4;Özel Kod 5;KDV;Minumum Satış Fiyatı;Maximum Alış Fiyatı;' + 
	 'Depo Durumu;Birim Adı;1. Satış Fiyatı;Satış Para Birimi;1. Alış Fiyatı;Alış Para Birimi;Satış Tutarı;Alış Tutarı',
	  0);
	  
	CreateSummary('STOKKODU', skCount);
	CreateSummary('ALISTUTARI', skSum);
	CreateSummary('SATISTUTARI', skSum);
  End;
End;

Begin
End.