/* euro.converter.rexx */

  OPTIONS RESULTS

  SIGNAL ON IOERR
  SIGNAL ON HALT

  /* main prg */
  CALL prep
  CALL cdb
  CALL goodbye

/* === procs === */

PREP:

  copyright = "Copyright © 1999 Donald Dalley"
    version = "1.00"
    verdate = "January 7, 1999"

     locked = 0
      count = 0
         ok = 0

  'DATABASE STATUS'
  /* changed */
  IF (RESULT = 1) THEN DO
    'REQUEST BODY="AmiBroker''s database has changed.||Is it OK to continue?" TITLE "   'copyright'" BUTTONS="OK|Quit"'
    IF (RESULT = 0) THEN EXIT
  END

  'REQUEST STRING BODY="Euro Converter||euro.converter.rexx v'version'|'verdate'||Enter current exchange rate,|as quoted in a newspaper.||.XXXX increases values|1.XXXX decreases values" TITLE "   'copyright'" BUTTONS="OK|Quit"'
  rate = RESULT
  IF (result = "") THEN EXIT

  'GUI LOCK'
  locked = 1
  'DEBUG OFF'

RETURN

CDB:

  'SELECT STOCK=@LAST'
  'GETSELECTED STOCK'
  last = RESULT
  'SELECT STOCK=@FIRST'

  DO FOREVER
    CALL cs
    IF ticker = last THEN LEAVE
    'SELECT STOCK=@NEXT'
    count = count + 1
  END

RETURN

CS:

  'ZOOM ALL'

  'GETSELECTED STOCK'
  ticker = RESULT

  'GETSELECTED DATE'
  date = RESULT
  lastdate = RESULT

  'GETQUOTATION' ticker date 'CLOSE'
  IF POS("-", RESULT) > 0 THEN DO
    count = count + 1
    RETURN
  END

  CALL cd
  ok = ok + 1

RETURN

CD:

  'SELECT DATE=@FIRST'
  firstdate = RESULT

  DO UNTIL date = lastdate
    'GETSELECTED DATE'
    date = RESULT
    'GETQUOTATION' ticker date 'CLOSE OPEN HIGH LOW VOLUME'
    PARSE VAR RESULT close open high low volume .

     IF open > 0 THEN  open = open / rate
     IF high > 0 THEN  high = high / rate
     IF low  > 0 THEN   low = low / rate
    IF close > 0 THEN close = close / rate

    CALL send2ab
    'SELECT DATE=@NEXT'
  END

RETURN

SEND2AB:

  'ADDQUOTATION STOCK='ticker' DATE='date' CLOSE='close' OPEN='open' HIGH='high' LOW='low' VOLUME='volume''

RETURN

IOERR:
HALT:

  'REQUEST BODY="'ERRORTEXT(RC)' in line 'sigl',|on quote: 'ticker date volume close open high low'.||You probably requested a stop." TITLE="Trapped Error:"'
  CALL goodbye

RETURN

GOODBYE:

  'REFRESH'
  IF count > 0 THEN 'REQUEST BODY="'ok' of 'count' stocks were converted.||You may now Save the database." TITLE "   Goodbye"'
    ELSE 'REQUEST BODY="You quit early." TITLE "   Goodbye"'

  IF locked = 1 THEN 'GUI UNLOCK'
  'DEBUG ON'
  EXIT
