Function ReadSQL(W: String): String;
Var
  S: String;
Begin
  S:= CreateProtokolStokQueryFilter(W);
  
  Result:= 'Set DateFormat DMY ' + #13#10 +
      ' Select ' + #13#10 +
      '   P.KOD, P.PROTOKOLADI, ' + #13#10 +
      '   S.STOKKODU, S.CINSI, S.ETKENMADDE AS ANAGRUP, S.GRUPADI AS ALTGRUP,' + #13#10 +
      '   CASE FIATTIP ' + #13#10 +
      '     WHEN 0 THEN ''SABİT FİYAT'' ' + #13#10 +
      '     WHEN 1 THEN ''FİYAT GRUBU'' ' + #13#10 +
      '   ELSE ' + #13#10 +
      '     ''GEÇERSİZ'' ' + #13#10 +
      '   END AS FIATTIP, ' + #13#10 +
      '   FIAT, ISKONTO1, ISKONTO2, ISKONTO3, ISKONTO4, OPSIYONGUN ' + #13#10 +
      ' from TBLPROTOKOLSTOK PS ' + #13#10 +
      ' LEFT OUTER JOIN TBLPROTOKOLBASLIK P ON P.ID = PS.PROTOKOLID ' + #13#10 +
      ' INNER JOIN TBLSTOKLAR S ON S.KARTNO IN(SELECT KARTNO FROM TBLSTOKLAR WHERE ' + S + ') ' + #13#10 +
      ' WHERE PROTOKOLID IN( ' + #13#10 +
      ' Select ' + #13#10 +
      '   ID ' + #13#10 +
      ' from TBLPROTOKOLBASLIK P ' + #13#10 +
      ' WHERE ' + #13#10 +
      '   BASLAMA <= CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 104)) AND ' + #13#10 +
      '   BITIS >= CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 104)) ' + #13#10 +
      ' )'  ;
End;

procedure RaporLoad;
Begin
  SetViewCaption('BASLIK', 'PARADOX STOKLAR LİSTESİ');

  SetQuerySQL('KullaniciQ', ReadSQL(FFilter));
  AddQueryToSQL('KullaniciQ', 'ORDER BY STOKKODU');
End;

Function RaporFileName: String;
Begin
  Result:= ParsDir + 'Stok Raporları\Stok Listeleri\Protokol Stoklari Listesi.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 ' +  
		'  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;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;

procedure Execute;
Var
  SQL, IDS: String;
Begin
  if ReadFilter(IDS) Then
  Begin
    SQL:= ReadSQL(IDS);
	if SQL <> '' Then
	Begin
      CreateReport(IDS, SQL, 
        'STOKKODU;CINSI;ANAGRUP;GRUPADI;0;KOD1;KOD2;KOD3:0;KOD4:0;KOD5:0,FIATTIP;FIAT;ISKONTO1;ISKONTO2;ISKONTO3;ISKONTO4;OPSIYONGUN', 
	    'Stok Kodu;Cinsi;Ana Grup;Alt Grup;Özel Kod 1;Özel Kod 2;Özel Kod 3;Özel Kod 4;Özel Kod 5;Fiyat Tipi;Fiyat;1. İskonto;2. İskonto;3. İskonto;4. İskonto;Ödeme Günü',
	    0);
	  
	  CreateSummary('STOKKODU', skCount);
	End;
  End;
End;

Begin
End.