FUNCTION runscript(_self, _cScriptName)
//-DEFAULTSCRIPT-//
// -----------------------------------------
// 'VU-Abrechnung'
// -----------------------------------------
// benötigte Script's
global Deckblatt := _cScriptName + "01.txt"
global _Info := _cScriptName + "02.txt"
global TitelOK := _cScriptName + "03.txt"
global Titel := _cScriptName + "04.txt"
global TitelSchaden := _cScriptName + "05.txt"
global SumSchadRahmen := _cScriptName + "06.txt"
global AusgabeKopfzeile := _cScriptName + "07.txt"
global AusgabeFusszeile := _cScriptName + "08.txt"
global AusgabeText := _cScriptName + "09.txt"
global Column := _cScriptName + "10.txt"
global SumRahmen := _cScriptName + "11.txt"
global TitelAkonto := _cScriptName + "12.txt"
global SumAkontoRahmen := _cScriptName + "13.txt"


local n
local nOKSum
local nSchadSum
local nAkontoSum
local nPraemienSum
local nCourtSum 
local nGesamtSum
local cWaehrung
local cText	

local aInfo
local aListeOK
local aSpalten
local aSpaltenSchaden
local aSpaltenAkonto
local aListeSchadensbuchung
local aListeAKontobuchung
local aSpaltenAkonto

aInfo := _self:aInfo
aListeOK := _self:aListeOK
aSpalten := _self:aSpalten
aSpaltenSchaden := _self:aSpaltenSchaden
aListeSchadensbuchung := _self:aListeSchadensbuchung
aSpaltenAkonto := _self:aSpaltenAkonto
aListeAKontobuchung := _self:aListeAKontobuchung

// Titelblatt
IF _SELF:lNoDeckBlatt == .F.
  ExecuteScript(DeckBlatt, _self, aInfo)
ENDIF

_SELF:seite_neue_seite()
_SELF:seite_waehle_papierformat( _self:_papier_A4(), _self:_format_querformat() )
_SELF:seite_setze_raender( 200, 100, 200, 100 )
_SELF:wYStart := 100
_SELF:wYMax := 1800
_SELF:wYTemp := _SELF:wYStart

// _Info
ExecuteScript(_Info, _self, aInfo)

cWaehrung := _self:pdf_GetWaehrungBezeich(aInfo[14])

nOKSum := 0
nPraemienSum := 0
nCourtSum := 0
nSchadSum := 0
nAkontoSum := 0

// - Liste der OK-OP's ------------------------------------------------------------------
IF Len(aListeOK) > 0
  // erster Titel
  ExecuteScript(TitelOK, _self, aSpalten)

  FOR n := 1 TO Len(aListeOK)		

    nOKSum := nOKSum + Val(aListeOK[n][11])
    nPraemienSum := nPraemienSum + Val(aListeOK[n][6])
    nCourtSum := nCourtSum + Val(aListeOK[n][7])

    ExecuteScript(Column, _self, aSpalten)
	
    _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
    _SELF:waehle_farbe( _self:_farbe_schwarz() )
    _SELF:waehle_farb_pinsel()
    _SELF:waehle_schrift( "Arial", 25, _self:_schrift_roman(), _self:_attr_normal() )
	
    _SELF:wYTemp := _SELF:wYTemp + 10
			
    _SELF:txt_bereich(aSpalten[1]+5,_SELF:wYTemp,aSpalten[2]-5,_SELF:wYTemp+40,_self:_txt_links(),AllTrim(aListeOK[n][1]))//Policennummer
    _SELF:txt_bereich(aSpalten[2]+5,_SELF:wYTemp,aSpalten[3]-5,_SELF:wYTemp+40,_self:_txt_links(),AllTrim(aListeOK[n][2]))//Kunde
    _SELF:txt_bereich(aSpalten[3]+5,_SELF:wYTemp,aSpalten[4]-5,_SELF:wYTemp+40,_self:_txt_rechts(),AllTrim(aListeOK[n][3]))//berechnet
    _SELF:txt_bereich(aSpalten[4]+5,_SELF:wYTemp,aSpalten[5]-5,_SELF:wYTemp+40,_self:_txt_rechts(),AllTrim(aListeOK[n][4]))//OP-Nr.
    _SELF:txt_bereich(aSpalten[5]+5,_SELF:wYTemp,aSpalten[6]-5,_SELF:wYTemp+40,_self:_txt_rechts(),AllTrim(aListeOK[n][5]))//fällig am
    _SELF:txt_bereich(aSpalten[6]+5,_SELF:wYTemp,aSpalten[7]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(aListeOK[n][6])+" "+cWaehrung)//Prämie
    _SELF:txt_bereich(aSpalten[7]+5,_SELF:wYTemp,aSpalten[8]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(aListeOK[n][7])+" "+cWaehrung)//Courtage
    _SELF:txt_bereich(aSpalten[8]+5,_SELF:wYTemp,aSpalten[9]-5,_SELF:wYTemp+40,_self:_txt_links(),AllTrim(aListeOK[n][8]))//Status
    _SELF:txt_bereich(aSpalten[9]+5,_SELF:wYTemp,aSpalten[10]-5,_SELF:wYTemp+40,_self:_txt_zentriert(),AllTrim(aListeOK[n][9]))//VUBETEIL
    _SELF:txt_bereich(aSpalten[10]+5,_SELF:wYTemp,aSpalten[11]-5,_SELF:wYTemp+40,_self:_txt_links(),AllTrim(aListeOK[n][10]))//VUVSNR
    _SELF:txt_bereich(aSpalten[11]+5,_SELF:wYTemp,aSpalten[12]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(aListeOK[n][11])+" "+cWaehrung)//wir rechnen abrechnen
				
    _SELF:wYTemp := _SELF:wYTemp + 30
	
    // Umbruch ?
    IF _SELF:wYTemp + 50  > _SELF:wYMax
      _SELF:seite_neue_seite()
      _SELF:wYTemp := _SELF:wYStart
      ExecuteScript(TitelOK, _self, aSpalten)
    ENDIF
  NEXT n					

  // Summenzeile
  ExecuteScript(SumRahmen, _self, aSpalten)

  _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
  _SELF:waehle_farbe( _self:_farbe_schwarz() )
  _SELF:waehle_farb_pinsel()
  _SELF:waehle_schrift( "Arial", 25, _self:_schrift_roman(), _self:_attr_fett() )

  _SELF:wYTemp := _SELF:wYTemp + 10
  _SELF:txt_bereich(aSpalten[11]+5,_SELF:wYTemp,aSpalten[12]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(Str(nOKSum,10,2))+" "+cWaehrung)
  _SELF:txt_bereich(aSpalten[6]+5,_SELF:wYTemp,aSpalten[7]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(Str(nPraemienSum,10,2))+" "+cWaehrung)
  _SELF:txt_bereich(aSpalten[7]+5,_SELF:wYTemp,aSpalten[8]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(Str(nCourtSum,10,2))+" "+cWaehrung)

  _SELF:wYTemp := _SELF:wYTemp + 30

ENDIF

// - Liste der Schadensbuchungen -------------------------------------------------------------

IF Len(aListeSchadensbuchung) > 0

  _SELF:wYTemp := _SELF:wYTemp + 80

  // Umbruch ?
  IF _SELF:wYTemp + 50  > _SELF:wYMax
    _SELF:seite_neue_seite()
    _SELF:wYTemp := _SELF:wYStart
  ENDIF

  ExecuteScript(Titel, _self, "Schadensbuchungen", aSpalten)
  ExecuteScript(TitelSchaden, _self, aSpaltenSchaden)

  FOR n := 1 TO Len(aListeSchadensbuchung)

    nSchadSum := nSchadSum + Val(aListeSchadensbuchung[n][11])

    ExecuteScript(Column, _self, aSpaltenSchaden)
	
    _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
    _SELF:waehle_farbe( _self:_farbe_schwarz() )
    _SELF:waehle_farb_pinsel()
    _SELF:waehle_schrift( "Arial", 25, _self:_schrift_roman(), _self:_attr_normal() )
	
    _SELF:wYTemp := _SELF:wYTemp + 10
			
    _SELF:txt_bereich(aSpaltenSchaden[1]+5,_SELF:wYTemp,aSpaltenSchaden[2]-5,_SELF:wYTemp+40,_self:_txt_links(),AllTrim(aListeSchadensbuchung[n][1]))//Policennummer
    _SELF:txt_bereich(aSpaltenSchaden[2]+5,_SELF:wYTemp,aSpaltenSchaden[3]-5,_SELF:wYTemp+40,_self:_txt_links(),AllTrim(aListeSchadensbuchung[n][2]))//Kunde
    _SELF:txt_bereich(aSpaltenSchaden[3]+5,_SELF:wYTemp,aSpaltenSchaden[4]-5,_SELF:wYTemp+40,_self:_txt_rechts(),AllTrim(aListeSchadensbuchung[n][3]))//berechnet
    _SELF:txt_bereich(aSpaltenSchaden[4]+5,_SELF:wYTemp,aSpaltenSchaden[5]-5,_SELF:wYTemp+40,_self:_txt_rechts(),AllTrim(aListeSchadensbuchung[n][4]))//OP-Nr.
    _SELF:txt_bereich(aSpaltenSchaden[5]+5,_SELF:wYTemp,aSpaltenSchaden[6]-5,_SELF:wYTemp+40,_self:_txt_links(),AllTrim(aListeSchadensbuchung[n][12]))//VU-Schadensnummer
    _SELF:txt_bereich(aSpaltenSchaden[6]+5,_SELF:wYTemp,aSpaltenSchaden[7]-5,_SELF:wYTemp+40,_self:_txt_zentriert(),AllTrim(aListeSchadensbuchung[n][8]))//Status
    _SELF:txt_bereich(aSpaltenSchaden[7]+5,_SELF:wYTemp,aSpaltenSchaden[8]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(aListeSchadensbuchung[n][7])+" "+cWaehrung)//Courtage/Auszahlung
    _SELF:txt_bereich(aSpaltenSchaden[9]+5,_SELF:wYTemp,aSpaltenSchaden[10]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(aListeSchadensbuchung[n][11])+" "+cWaehrung)//ab
				
    _SELF:wYTemp := _SELF:wYTemp + 30
	
    // Umbruch ?
    IF _SELF:wYTemp + 50  > _SELF:wYMax
      _SELF:seite_neue_seite()
      _SELF:wYTemp := _SELF:wYStart
      ExecuteScript(TitelOK, _self, aSpalten)
    ENDIF
  NEXT n					

// Summenzeile
  ExecuteScript(SumSchadRahmen, _self, aSpaltenSchaden)

  _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
  _SELF:waehle_farbe( _self:_farbe_schwarz() )
  _SELF:waehle_farb_pinsel()
  _SELF:waehle_schrift( "Arial", 25, _self:_schrift_roman(), _self:_attr_fett() )

  _SELF:wYTemp := _SELF:wYTemp + 10

  _SELF:txt_bereich(aSpaltenSchaden[9]+5,_SELF:wYTemp,aSpaltenSchaden[10]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(Str(nSchadSum,10,2))+" "+cWaehrung)//ab

  _SELF:wYTemp := _SELF:wYTemp + 30


ENDIF	

// - Liste der à-Kontozahlungen -------------------------------------------------------------

IF Len(aListeAKontobuchung) > 0

  _SELF:wYTemp := _SELF:wYTemp + 80

  // Umbruch ?
  IF _SELF:wYTemp + 50  > _SELF:wYMax
    _SELF:seite_neue_seite()
    _SELF:wYTemp := _SELF:wYStart
  ENDIF

  ExecuteScript(Titel, _self, "à-Kontozahlungen", aSpalten)
  ExecuteScript(TitelAkonto, _self, aSpaltenAkonto)

  FOR n := 1 TO Len(aListeAKontobuchung)

    nAkontoSum := nAkontoSum + Val(aListeAKontobuchung[n][11])

    ExecuteScript(Column, _self, aSpaltenAkonto)
	
    _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
    _SELF:waehle_farbe( _self:_farbe_schwarz() )
    _SELF:waehle_farb_pinsel()
    _SELF:waehle_schrift( "Arial", 25, _self:_schrift_roman(), _self:_attr_normal() )
	
    _SELF:wYTemp := _SELF:wYTemp + 10
			
    _SELF:txt_bereich(aSpaltenAkonto[1]+5,_SELF:wYTemp,aSpaltenAkonto[3]-5,_SELF:wYTemp+40,_self:_txt_links(),"")
    _SELF:txt_bereich(aSpaltenAkonto[3]+5,_SELF:wYTemp,aSpaltenAkonto[4]-5,_SELF:wYTemp+40,_self:_txt_rechts(),AllTrim(aListeAKontobuchung[n][3]))//berechnet
    _SELF:txt_bereich(aSpaltenAkonto[4]+5,_SELF:wYTemp,aSpaltenAkonto[5]-5,_SELF:wYTemp+40,_self:_txt_rechts(),AllTrim(aListeAKontobuchung[n][4]))//OP-Nr.
    _SELF:txt_bereich(aSpaltenAkonto[5]+5,_SELF:wYTemp,aSpaltenAkonto[6]-5,_SELF:wYTemp+40,_self:_txt_links(),"")
    _SELF:txt_bereich(aSpaltenAkonto[6]+5,_SELF:wYTemp,aSpaltenAkonto[7]-5,_SELF:wYTemp+40,_self:_txt_zentriert(),AllTrim(aListeAKontobuchung[n][8]))//Status
    _SELF:txt_bereich(aSpaltenAkonto[7]+5,_SELF:wYTemp,aSpaltenAkonto[9]-5,_SELF:wYTemp+40,_self:_txt_rechts(),"")
    _SELF:txt_bereich(aSpaltenAkonto[9]+5,_SELF:wYTemp,aSpaltenAkonto[10]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(aListeAKontobuchung[n][11])+" "+cWaehrung)//ab
				
    _SELF:wYTemp := _SELF:wYTemp + 30
	
    // Umbruch ?
    IF _SELF:wYTemp + 50  > _SELF:wYMax
      _SELF:seite_neue_seite()
      _SELF:wYTemp := _SELF:wYStart
      ExecuteScript(TitelOK, _self, aSpalten)
    ENDIF
  NEXT n					

// Summenzeile
  ExecuteScript(SumSchadRahmen, _self, aSpaltenAkonto)

  _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
  _SELF:waehle_farbe( _self:_farbe_schwarz() )
  _SELF:waehle_farb_pinsel()
  _SELF:waehle_schrift( "Arial", 25, _self:_schrift_roman(), _self:_attr_fett() )

  _SELF:wYTemp := _SELF:wYTemp + 10

  _SELF:txt_bereich(aSpaltenAkonto[9]+5,_SELF:wYTemp,aSpaltenAkonto[10]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(Str(nAkontoSum,10,2))+" "+cWaehrung)//ab

ENDIF


// Gesamt-Summenzeile
nGesamtSum := nOKSum + nAkontoSum + nSchadSum

IF nGesamtSum <> 0

 _SELF:wYTemp := _SELF:wYTemp + 50
 // Umbruch ?
 IF _SELF:wYTemp + 70  > _SELF:wYMax
   _SELF:seite_neue_seite()
   _SELF:wYTemp := _SELF:wYStart
   ExecuteScript(TitelOK, _self, aSpalten)
 ENDIF

 // Rahmen
 _SELF:waehle_stift( _self:_stift_durchgezogen(), 2 )
 _SELF:waehle_farbe( _self:_farbe_schwarz() )
 _SELF:waehle_farb_pinsel()

 // waagerechte Linien
 _SELF:gdi_line(aSpaltenSchaden[8],_SELF:wYTemp,aSpaltenSchaden[10],_SELF:wYTemp)
 _SELF:gdi_line(aSpaltenSchaden[8],_SELF:wYTemp+40,aSpaltenSchaden[10],_SELF:wYTemp+40)
 _SELF:gdi_line(aSpaltenSchaden[8],_SELF:wYTemp+44,aSpaltenSchaden[10],_SELF:wYTemp+44)
 // senkrechte Linien
 _SELF:gdi_line(aSpaltenSchaden[8],_SELF:wYTemp,aSpaltenSchaden[8],_SELF:wYTemp+40)
 _SELF:gdi_line(aSpaltenSchaden[10],_SELF:wYTemp,aSpaltenSchaden[10],_SELF:wYTemp+40)

 // Gesamt-Summe
 _SELF:waehle_stift( _self:_stift_durchgezogen(), 1 )
 _SELF:waehle_farbe( _self:_farbe_schwarz() )
 _SELF:waehle_farb_pinsel()
 _SELF:waehle_schrift( "Arial", 25, _self:_schrift_roman(), _self:_attr_normal() )
 _SELF:wYTemp := _SELF:wYTemp + 10
 _SELF:txt_bereich(aSpaltenSchaden[8]+5,_SELF:wYTemp,aSpaltenSchaden[9]-5,_SELF:wYTemp+40,_self:_txt_rechts(),"Gesamtbetrag:")
 _SELF:txt_bereich(aSpaltenSchaden[9]+5,_SELF:wYTemp,aSpaltenSchaden[10]-5,_SELF:wYTemp+40,_self:_txt_rechts(),_self:pdf_SetDecPoint(Str(nGesamtSum,10,2))+" "+cWaehrung)

 // Text
 cText := ""
 IF nGesamtSum > 0
  cText := "Wir überweisen den Gesamtbetrag auf folgendes Konto: "
  cText := cText + "KtoNr: "+_SELF:pdfGetVUKonto(aInfo[9])
  cText := cText + ", "+_SELF:pdfGetVUBank(aInfo[9])
  cText := cText + " ("+_SELF:pdfGetVUBLZ(aInfo[9])+")"
 ELSE
  cText := "Bitte überweisen den Gesamtbetrag auf folgendes Konto: "
  cText := cText + "KtoNr: "+_SELF:pdfGetMaklerVuAbrKonto()
  cText := cText + ", "+_SELF:pdfGetMaklerVuAbrBank()
  cText := cText + " ("+_SELF:pdfGetMaklerVuAbrBLZ()+")"
 ENDIF

 _SELF:wYTemp := _SELF:wYTemp + 50
 // Umbruch ?
 IF _SELF:wYTemp + 70  > _SELF:wYMax
   _SELF:seite_neue_seite()
   _SELF:wYTemp := _SELF:wYStart
   ExecuteScript(TitelOK, _self, aSpalten)
 ENDIF
 _SELF:txt_gerichtet(_SELF:wYTemp,_self:_txt_links(),cText)


ENDIF

RETURN 0
