Function ReadSQL(W: String): String;
Begin
  if W = '' Then
    W:= '1';
	
  Result:= ' SELECT  '#13#10 +
    '  ''HAMMADDE'' AS ISLEM, S.STOKKODU, S.CINSI, SUM(UD.MIKTAR * D.MIKTAR) AS MIKTAR, BX.BIRIMADI, ISNULL(S.MALIYET, BX.ALISFIYATI1) AS MALIYETF, '#13#10 +
    '  SUM(UD.MIKTAR * D.MIKTAR) * S.MALIYET AS TUTARI '#13#10 +
    ' FROM TBLSTOKURETIMISEMRIDETAY D '#13#10 +
    ' LEFT OUTER JOIN TBLSTOKURETIMISEMRI I ON D.BASLIKID = I.ID '#13#10 +
    ' LEFT OUTER JOIN TBLSTOKURUNAGACI U ON U.ID = I.URUNAGACIID '#13#10 +
    ' LEFT OUTER JOIN TBLSTOKURUNAGACIDETAY UD ON UD.BASLIKID = U.ID AND UD.BEDENID IN(-1, D.BEDEN) AND UD.RENKID IN(-1, D.RENK) '#13#10 +
    ' LEFT OUTER JOIN TBLSTOKLAR S WITH(INDEX=TBLSTOKLAR_KARTNO) ON S.KARTNO = UD.DETAYID '#13#10 +
    ' LEFT OUTER JOIN TBLBIRIMLEREX BX WITH(INDEX=TBLBIRIMLEREX_KARTNO) ON S.ANABIRIM = BX.KARTNO '#13#10 +
    ' WHERE D.BASLIKID = ' + W + #13#10 +
    ' GROUP BY S.STOKKODU, S.CINSI, BIRIMADI, S.MALIYET, ALISFIYATI1 '#13#10 +
    ' UNION ALL '#13#10 +
    ' SELECT  '#13#10 +
    '   ''FASON'', ''FASON ÜCRETİ'', ''FASON ÜCRETİ'', NULL, NULL, SUM(TUTARI), SUM(TUTARI)  '#13#10 +
    ' FROM TBLSTOKURETIMISEMRIHAREKET  '#13#10 +
    ' WHERE ISEMRINO = ' + W + #13#10 +
;
End;


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

procedure RaporLoad;
Begin
  if FFilter <> '' Then
  Begin
    SetQueryParam('baslikQ', 'ISEMRIID', StrToInt(FFilter));
    SetQueryParam('detayQ', 'ISEMRIID', StrToInt(FFilter));
  End;
End;

Function RaporFileName: String;
Begin
  Result:= ParsDir + 'Fason\Iş Emri Maliyet.fr3';
End;

procedure Start;
Begin
End;

Procedure Finish;
Begin
End;

Function ReadFilter(Var F: String): Boolean;
Var
  IDS: String;
Begin
  IDS:= SelectRecord('SELECT ' +
        '   E.ID, BELGENO, TARIH, MIKTARI, OZELKOD1, OZELKOD2, STOKKODU, CINSI ' +
        ' FROM TBLSTOKURETIMISEMRI E ' +
        ' LEFT OUTER JOIN TBLSTOKURUNAGACI A ON A.ID = E.URUNAGACIID ' +
        ' LEFT OUTER JOIN TBLSTOKLAR S WITH(INDEX=TBLSTOKLAR_KARTNO) ON S.KARTNO = A.CIKISSTOK ' +
        ' WHERE E.DURUM = 240', 
     'BELGENO;STOKKODU;CINSI;TARIH;MIKTARI', 
	 'Belge No;Ürün Kodu;Ürün Adı;Tarih;Miktarı', 
	 'ID', 
	 'Kod / Adı & Belge No', 
	 'STOKKODU;CINSI;BELGENO', 
	 False);
	 
  Result:= IDS <> '';
  if Result Then
    F:= IDS;     
End;

procedure Execute;
Var
  IDS: String;
Begin
  if ReadFilter(IDS) Then
  Begin
    CreateReport(IDS, readSQL(IDS), 
     'ISLEM;STOKKODU:0;CINSI;MIKTAR;BIRIMADI;MALIYETF;TUTARI', 
	 'İşlem;Stok Kodu;Cinsi;Miktarı;BirimiFiyatı;Tutarı', 
	  0);
	  
    CreateSummary('TUTARI', skSum); 
	CreateSummary('MIKTAR', skSum); 
  End;
End;

Begin
End.