/*

$VER: TIMOcount V 1.43 - © Freddy/SOGA :  (04-Nov-1998 12:10)

*/

/*

TODO:

PREFS: TONOS  - PULSOS

PREFS: precios y tiempos consultables desde panel principal

PREFS: MIAMI.default -por defecto

PREFS: PRECIOS Y MONEDAS DIFERENTES

IDIOMAS DISTINTOS

*/

IF SHOW("P","TIMOCOUNT")
THEN DO
 say 'Programa ya ejecutado'
 Address TIMOCOUNT
 SHOW
 EXIT
end

OPTIONS FAILAT 99
OPTIONS CACHE
OPTIONS RESULTS
SIGNAL ON BREAK_C
SIGNAL ON BREAK_D
SIGNAL ON BREAK_E
SIGNAL ON BREAK_F
SIGNAL ON HALT

lib = 'rexxsupport.library'
IF ~SHOW('L',lib) THEN CALL ADDLIB(lib,100,-30)

lib = 'rexxreqtools.library'
IF ~SHOW('L',lib) THEN CALL ADDLIB(lib,0,-30)

lib = 'rexxserdev.library'
IF ~SHOW('L',lib) THEN CALL ADDLIB(lib,0,-30,5)

call TIME('r')

/* Configuracion por defecto */

DEFLOG = 'S:TIMOCOUNT.LOG'
USALOG = 1
LOGVOZ = 0
DEFMOD = 'MIAMI'
PRECON = ''
DURCON = ''
OFFCON = ''
PREMAR = ''
POSMAR = ''
PUERTO = 'serial.device'
UNIDAD = 0
MAXTIM = 0
PREAVI = 0
PREMAX = 0
DESFASE = 22
MPELAS = 0
PREPELAS = 0
parascri = 1
marcacod = 1

/* CARGA configuración */

if exists('ENV:TIMOCOUNT.prefs')
then do
 Call Open('tcpre','ENV:TIMOCOUNT.prefs','R')
 VERSION = READLN('tcpre')
 if VERSION ~= '$VER: 1.40' then DEFLOG = VERSION
 IF VERSION = '$VER: 1.40' then DEFLOG = READLN('tcpre')
 USALOGF = READLN('tcpre')
 USALOG = USALOGF + 0
 LOGVOZF = READLN('tcpre')
 LOGVOZ = LOGVOZF + 0
 DEFMOD = READLN('tcpre')
 PRECON = READLN('tcpre')
 DURCON = READLN('tcpre')
 OFFCON = READLN('tcpre')
 PREMAR = READLN('tcpre')
 POSMAR = READLN('tcpre')
 PUERTO = READLN('tcpre')
 UNIDADF = READLN('tcpre')
 UNIDAD = UNIDADF + 0
 MAXTIMF = READLN('tcpre')
 MAXTIM = MAXTIMF + 0
 PREAVIF = READLN('tcpre')
 PREAVI = PREAVIF + 0
 PREMAXF = READLN('tcpre')
 PREMAX = PREMAXF + 0
 DESFASEF = READLN('tcpre')
 DESFASE = DESFASEF + 0
 if VERSION = '$VER: 1.40'
 then do
  MPELASF = READLN('tcpre')
  MPELAS = MPELASF + 0
  PREPELASF = READLN('tcpre')
  PREPELAS = PREPELASF + 0
 end
 Call CLOSE('tcpre')
 IF PREAVI > MAXTIM then PREAVI = MAXTIM - 15
 IF MAXTIM < 16 then PREAVI = 0
 IF PREPELAS > MPELAS then PREPELAS = MPELAS - 15
 IF MPELAS < 16 then PREPELAS = 0

end

/* ************************* */

pav = 0
paa = 0
ventacer = 0


/* Si comprendeis todo esto ya sabes mas que yo!!! ;-) */

MUIA_Timer = 0x80426435
MUIM_Notify = 0x8042c9cb
MUIM_Set = 0x8042549a
MUIA_Numeric_Value = 0x8042ae3a
MUIV_TriggerValue = 0x49893131
MUIV_EveryTime = 0x49893131
MUIA_String_AdvanceOnCR = 0x804226de
MUIA_Selected = 0x8042654b
MUIA_Application_Title = 0x804281b8
MUIA_Text_Contents = 0x8042f8dc
MUIA_String_Accept = 0x8042e3e1
MUIA_String_Reject = 0x8042179c
MUIA_String_Contents = 0x80428ffd
MUIA_Window_Height = 0x80425846
MUIA_Window_Width = 0x8042dcae
MUIA_Window_Menu = 0x8042db94
MUIA_Menuitem_Title = 0x804218be
MUIA_Window_TopEdge = 0x80427c66
MUIA_Window_Open = 0x80428aa0
MUIA_Window_CloseGadget = 0x8042a110
MUIA_Window_DragBar = 0x8042045d
MUIA_Window_DepthGadget = 0x80421923
MUIA_Window_Activate = 0x80428d2f
MUIA_Window_Title = 0x8042ad3d
MUIA_Application_Active = 0x804260ab
MUIA_Application_Author = 0x80424842
MUIA_Application_Copyright = 0x8042ef4d
MUIA_Application_Description = 0x80421fc6
MUIA_Application_Version = 0x8042b33f
MUIA_Window_ScreenTitle = 0x804234b0
MUIM_Application_AboutMUI = 0x8042d21d
MUIM_Application_OpenConfigWindow = 0x804299ba
MUIA_Menuitem_Shortcut = 0x80422030
MUIA_Group_Rows = 0x8042b68f
MUIA_Group_Columns = 0x8042f416
MUIA_TRUE = 1
MUIA_FALSE = 0
TRUE = 1
FALSE = 0
MUIA_Application_DoubleStart =         0x80423bc6

MUIA_Menuitem_Enabled =                0x8042ae0f

conectado = 0
tiempo = 0

/*   SUB Programa  MUIREXX   */

CALL OPEN('wmr','ram:timogui.rexx','W')


CALL WRITELN('wmr','/*')
CALL WRITELN('wmr','$VER: TIMOcount V 1.43 - © Freddy/SOGA :  (04-Nov-1998 12:10)')
CALL WRITELN('wmr','*/')
CALL WRITELN('wmr',' ')
CALL WRITELN('wmr','OPTIONS FAILAT 99')
CALL WRITELN('wmr','OPTIONS CACHE')
CALL WRITELN('wmr','OPTIONS RESULTS')

CALL WRITELN('wmr','Address ('d2c(39)'TIMOCOUNT'd2c(39)')')
CALL WRITELN('wmr','MUIA_Menuitem_Enabled = 0x8042ae0f')
CALL WRITELN('wmr','MUIA_Application_Title = 0x804281b8')
CALL WRITELN('wmr','MUIA_Window_Height = 0x80425846')
CALL WRITELN('wmr','MUIA_Window_Width = 0x8042dcae')
CALL WRITELN('wmr','MUIA_Window_Menu = 0x8042db94')
CALL WRITELN('wmr','MUIA_Menuitem_Title = 0x804218be')
CALL WRITELN('wmr','MUIA_Window_TopEdge = 0x80427c66')
CALL WRITELN('wmr','MUIA_Window_Open = 0x80428aa0')
CALL WRITELN('wmr','MUIA_Window_CloseGadget = 0x8042a110')
CALL WRITELN('wmr','MUIA_Window_DragBar = 0x8042045d')
CALL WRITELN('wmr','MUIA_Window_DepthGadget = 0x80421923')
CALL WRITELN('wmr','MUIA_Window_Activate = 0x80428d2f')
CALL WRITELN('wmr','MUIA_Window_Title = 0x8042ad3d')
CALL WRITELN('wmr','MUIA_Application_Active = 0x804260ab')
CALL WRITELN('wmr','MUIA_Application_Author = 0x80424842')
CALL WRITELN('wmr','MUIA_Application_Copyright = 0x8042ef4d')
CALL WRITELN('wmr','MUIA_Application_Description = 0x80421fc6')
CALL WRITELN('wmr','MUIA_Application_Version = 0x8042b33f')
CALL WRITELN('wmr','MUIM_Application_AboutMUI = 0x8042d21d')
CALL WRITELN('wmr','MUIM_Application_OpenConfigWindow = 0x804299ba')
CALL WRITELN('wmr','MUIA_Menuitem_Shortcut = 0x80422030')
CALL WRITELN('wmr','MUIA_Group_Rows = 0x8042b68f')
CALL WRITELN('wmr','MUIA_Group_Columns = 0x8042f416')
CALL WRITELN('wmr','MUIA_Selected = 0x8042654b')
CALL WRITELN('wmr','TRUE = 1')
CALL WRITELN('wmr','FALSE = 0')
CALL WRITELN('wmr','MUIA_Application_DoubleStart = 0x80423bc6')
CALL WRITELN('wmr','application ATTRS MUIA_Application_DoubleStart 0')
CALL WRITELN('wmr','application ATTRS MUIA_Application_Active 1')
CALL WRITELN('wmr','application ATTRS MUIA_Application_Title """TIMOcount V1.43 - By Freddy-SOGA"""')
CALL WRITELN('wmr','window ID TIMOW COMMAND """QUIT""" PORT TIMOPORT TITLE """TIMOcount V1.43 By Freddy-SOGA""" ATTRS MUIA_Window_Open MUIA_Window_Height """180""" MUIA_Window_Width """250""" MUIA_Window_TopEdge """100""" MUIA_Window_Title """TIMOcount V1.43 By Freddy-SOGA"""')
CALL WRITELN('wmr','  menu LABEL "Proyecto"')
CALL WRITELN('wmr','   item COMMAND """TIEMPOR""" PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'O' LABEL "Conmutar Conexión"')
CALL WRITELN('wmr','   item ATTRS MUIA_Menuitem_Title 'd2c(39)'-1'd2c(39))
CALL WRITELN('wmr','   item COMMAND '"hide"' PORT TIMOCOUNT ATTRS MUIA_Menuitem_Shortcut 'H' LABEL "Ocultar"')
CALL WRITELN('wmr','   item COMMAND """ABOT""" PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut '?' LABEL "About"')
CALL WRITELN('wmr','   item COMMAND 'd2c(39)'"method 'd2c(39)'MUIM_Application_AboutMUI'd2c(39)' 0"'d2c(39)' PORT TIMOCOUNT LABEL "Sobre el MUI"')
CALL WRITELN('wmr','   item ATTRS MUIA_Menuitem_Title 'd2c(39)'-1'd2c(39))
CALL WRITELN('wmr','   item COMMAND 'd2c(39)'"QUIT"'d2c(39)' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'd2c(39)'Q'd2c(39)' LABEL "Quitar"')
CALL WRITELN('wmr','  endmenu')
CALL WRITELN('wmr','  menu LABEL "Configurar"')
CALL WRITELN('wmr','   item ID MCONF COMMAND 'd2c(39)'"CONFIG"'d2c(39)' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'd2c(39)'C'd2c(39)' MUIA_Menuitem_Enabled 1 LABEL "Opciones"')
CALL WRITELN('wmr','   item ATTRS MUIA_Menuitem_Title 'd2c(39)'-1'd2c(39))
CALL WRITELN('wmr','   item ID CCONF COMMAND 'd2c(39)'"CARCON"'d2c(39)' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'd2c(39)'L'd2c(39)' LABEL "Carga una Configuración"')
CALL WRITELN('wmr','   item COMMAND 'd2c(39)'"GRACON"'d2c(39)' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'd2c(39)'S'd2c(39)' LABEL "Salva la Configuración"')
CALL WRITELN('wmr','   item COMMAND 'd2c(39)'"GRACOM"'d2c(39)' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'd2c(39)'A'd2c(39)' LABEL "Salva Config como..."')
CALL WRITELN('wmr','   item ATTRS MUIA_Menuitem_Title 'd2c(39)'-1'd2c(39))
CALL WRITELN('wmr','   item COMMAND 'd2c(39)'"method 'd2c(39)'MUIM_Application_OpenConfigWindow'd2c(39)'"'d2c(39)' PORT TIMOCOUNT ATTRS MUIA_Menuitem_Shortcut 'd2c(39)'P'd2c(39)' LABEL "MUI..."')
CALL WRITELN('wmr','  endmenu')

CALL WRITELN('wmr','  menu LABEL "Facturación"')
CALL WRITELN('wmr','   item COMMAND 'd2c(39)'"MUESFAC"'d2c(39)' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'd2c(39)'S'd2c(39)' LABEL "Mostrar reporte"')
CALL WRITELN('wmr','  endmenu')

CALL WRITELN('wmr','  group ID GTIMO NODE "USO" FRAME ATTRS MUIA_Group_Columns """4""" MUIA_Group_Rows """2""" LABEL "Panel TIMOcount"')
CALL WRITELN('wmr','  group horiz')
CALL WRITELN('wmr','   Label LEFT "conexión: "')
CALL WRITELN('wmr','   button HELP """Botón para conectarse\ny para desconectar""" COMMAND """TIEMPOR""" PORT TIMOPORT ATTRS 0x8042a3f1 """25"""')
CALL WRITELN('wmr','  endgroup')
CALL WRITELN('wmr','   text ID TCONT LABEL 'd2c(39)'\033c\033b OFFLINE 'd2c(39)'')
CALL WRITELN('wmr','   Group HORIZ')
CALL WRITELN('wmr','    Label "Ejecutar Scripts: "')
CALL WRITELN('wmr','    check ID CHKS1 COMMAND "CHKSC" ATTRS 0x8042654b 1')
CALL WRITELN('wmr','   endgroup')
CALL WRITELN('wmr','   Group HORIZ')
CALL WRITELN('wmr','    Label "Marcar códigos extra: "')
CALL WRITELN('wmr','    check ID CHKS2 COMMAND "CHKMC" ATTRS 0x8042654b 1')
CALL WRITELN('wmr','   endgroup')
CALL WRITELN('wmr','  endgroup')


CALL WRITELN('wmr',' GROUP HORIZ')
CALL WRITELN('wmr','  GROUP LABEL "Precio Llamada"')
CALL WRITELN('wmr','  text ID PREC COMMAND "PRECLIS" LABEL "\033c0.00"')
CALL WRITELN('wmr','  ENDGROUP')
CALL WRITELN('wmr','  GROUP LABEL "Tiempo en Línea"')
CALL WRITELN('wmr','  text ID TELIN COMMAND "TIEMLIS" LABEL "\033c00:00:00"')
CALL WRITELN('wmr','  ENDGROUP')
CALL WRITELN('wmr',' ENDGROUP')

CALL WRITELN('wmr',' GROUP HORIZ')

CALL WRITELN('wmr','  GROUP LABEL "Comienzo Llamada"')
CALL WRITELN('wmr','  text ID COLLA LABEL "\033c--:--:--"')
CALL WRITELN('wmr','  ENDGROUP')

CALL WRITELN('wmr','  GROUP LABEL "Final Llamada"')
CALL WRITELN('wmr','  text ID FILLA LABEL "\033c--:--:--"')
CALL WRITELN('wmr','  ENDGROUP')

CALL WRITELN('wmr',' ENDGROUP')

CALL WRITELN('wmr','  group NODE "USO" FRAME ATTRS MUIA_Group_Columns """1""" MUIA_Group_Rows """1""" LABELS "Hora Actual"')
CALL WRITELN('wmr','   text ID TCLOK COMMAND """TIMEPRE""" PORT TIMOPORT LABEL 'd2c(39)'\033c'time()||d2c(39))
CALL WRITELN('wmr','  endgroup')

CALL WRITELN('wmr',' endwindow')

CALL CLOSE('wmr')

address command('ECHO >ram:TIMOG.BAT "STACK 8196"')
address command('ECHO >>ram:TIMOG.BAT "run <>NIL: muirexx ram:timogui.rexx PORT TIMOCOUNT HELP=TIMOcount.guide"')
address command('ECHO >>ram:TIMOG.BAT "waitforport TIMOCOUNT"')
address command('EXECUTE >NIL: ram:TIMOG.BAT')
address command('DELETE >NIL: ram:TIMOG.BAT')

ADDRESS ('TIMOCOUNT')

colgar = 0

If ~OPENPORT('TIMOPORT') then say 'Puerto no se abre'
CALL Delay(50)
/* Call Waitpkt('TIMOPORT') */


DO FOREVER

 IF ~show("P","TIMOCOUNT")
 THEN DO
  call cancelst()
  LEAVE
 end

 paquete=Getpkt('TIMOPORT')

 Call delay(50)

 ADDRESS TIMOCOUNT('text ID TCLOK COMMAND '"TIMEPRE"' PORT TIMOPORT LABEL \033c'time())

 if tires = 1
 then do

  IF DEFMOD = 'MIAMI'
  then do

   if ~Show("P","MIAMI.1")
   then do
    CALL Open('tmi','ram:CARTEMIA.bat','W')
    CALL WriteLN('tmi','STACK 8196')
    CALL WriteLN('tmi','run >NIL: Miami:Miami DONTCONNECT')
    CALL WriteLN('tmi','Waitforport MIAMI.1')
    CALL Close('tmi')
    address command('execute >NIL: ram:CARTEMIA.bat')
    address command('delete >NIL: ram:CARTEMIA.bat')
   end

   window ID MIDO TITLE '"Conectandose a Internet"' ATTRS 0x8042dcae 175
    group FRAME LABEL '"Miami Marcando"'
     object CLASS '"Busy.mcc"' ATTRS MUIA_Weight 0
    endgroup
   endwindow

   ADDRESS MIAMI.1("ONLINE")

   window ID MIDO CLOSE
   ISONLINE
   remiam = RC
   if remiam = 0
   then do
    Call LOGEAR(date()' - 'time()' - Llamada fallida (BUSY/DNS CRASH/NO CARRIER/ERROR)')
    colgar = 1
   end

  end


  IF DEFMOD = 'MIAMI' then CALL LOGEAR(date()' - 'time()' - Llamada Teléfonica')
  IF DEFMOD = 'VOZ' then CALL LOGEAR(date()' - 'time()' - Llamada VOZ o SIMUL')

  Call TIME('r')
  ELDESFASE = 160-DESFASE
  if DEFMOD = 'VOZ' then ELDESFASE = 160
  segunant = ELDESFASE
  tiempo = 0
  tires = 0

  TEXT ID TCONT LABEL '\033c ONLINE '
  TEXT ID COLLA LABEL '\033c'TIME()

  IF DEFMOD ~= 'VOZ' & DURCON ~= '' & parascri = 1
  then do
   window ID DUDO TITLE '"SCRIPT ON-LINE"' ATTRS 0x8042dcae 175
    group FRAME LABEL '"Ejecutando SCRIPT en conexion"'
     object CLASS '"Busy.mcc"' ATTRS MUIA_Weight 0
    endgroup
   endwindow

   Address command('run >NIL: execute 'DURCON)

   window ID DUDO CLOSE

  end

 end

 if conectado = 1
 then do
  tiempo = TIME('e')
  horas = TRUNC(tiempo/3600)
  ntiempo = tiempo - (horas*3600)
  minutos = TRUNC(ntiempo/60)
  mtiempo = ntiempo - (minutos*60)
  segundos = TRUNC(mtiempo)
  losegs = TRUNC(tiempo)
  if losegs < ELDESFASE
  then do
   peset = 11.4
  end

  IF DEFMOD='MIAMI'
  then do
   TOT = losegs+desfase

   IF MAXTIM ~= 0
   then do

    IF TOT >= RMAXTIME then colgar = 1

    IF RMAXTIME-TOT <= PREAVI
    then do
     if avisado = 0
     then do
      if preavi ~= 0
      then do
       petiquet = '\033cEste es el aviso de los\n\033c'PREAVI' segundos antes de\n\033cla desconexión automática'
       ADDRESS TIMOCOUNT("SHOW")
       window id PRAVI COMMAND "PRAVICLOSE" PORT TIMOPORT TITLE '"Aviso TIMOcount"'
       GROUP
        LABEL petiquet
        GROUP HORIZ HELP '"\033cMinutos a añadir en caso de\n\033cemplear el botón [Más Tiempo]"' NODE "USO"
         LABEL "minutos:"
         slider ID MSTIM 0x80421ce7 1 0x8042e404 0 0x8042d78a 99
        ENDGROUP
       ENDGROUP
       space horiz 10
       GROUP HORIZ NODE "USO"
        button COMMAND "MASTIM" PORT TIMOPORT LABEL "Más Tiempo"
        button COMMAND "PRAVICLOSE" PORT TIMOPORT LABEL "Ok"
        button COMMAND "TIEMPORS" PORT TIMOPORT LABEL "Colgar YA"
       ENDGROUP
       space horiz 5
       endwindow
       avisabi = 1
       avisado = 1
      end
     end
    end
   end
  

  end

  if losegs > ELDESFASE
  then do
   precio = 0.075332
   if time(h)> 21 then precio = 0.027332
   if time(h)< 8 then precio = 0.027332
   if date(w) = 'Saturday' & time(h) > 13 then precio = 0.027332
   if date(w) = 'Sunday' then precio = 0.027332
   if left(date(),6) = '01 Jan' then precio = 0.027332
   if left(date(),6) = '01 May' then precio = 0.027332
   if left(date(),6) = '15 Aug' then precio = 0.027332
   if left(date(),6) = '12 Oct' then precio = 0.027332
   if left(date(),6) = '08 Dec' then precio = 0.027332
   if left(date(),6) = '25 Dec' then precio = 0.027332

   segundaho = losegs - segunant
   segunant = losegs
   peset = peset + (precio*segundaho)
  end


  pes = TRUNC(peset*1.16)
  ses = peset*1.16
  dec = ses-pes
  flo = left(dec,4)
  pesetaa = pes||'.'||right(flo,2)

  IF MPELAS ~= 0
   then do

    IF pesetaa >= RMPELAS then colgar = 1

    IF RMPELAS-pesetaa <= PREPELAS
    then do
     if peavisado = 0
     then do
      if prepelas ~= 0
      then do
       petiquet = '\033cEste aviso informa que faltan\n\033c'PREPELAS' pesetas para alcanzar el limite\n\033cfijado para desconexión automática'
       ADDRESS TIMOCOUNT("SHOW")
       window id PREPEAVI COMMAND "PREAVICLOSE" PORT TIMOPORT TITLE '"Aviso TIMOcount"'
       GROUP
        LABEL petiquet
        GROUP HORIZ HELP '"\033cPesetas a añadir en caso de\n\033cemplear el botón [Más dinero]"' NODE "USO"
         LABEL "pesetas:"
         slider ID MSPEL 0x80421ce7 1 0x8042e404 0 0x8042d78a 999
        ENDGROUP
       ENDGROUP
       space horiz 10
       GROUP HORIZ NODE "USO"
        button COMMAND "MASDIN" PORT TIMOPORT LABEL "Más dinero"
        button COMMAND "PREAVICLOSE" PORT TIMOPORT LABEL "Ok"
        button COMMAND "TIEMPERS" PORT TIMOPORT LABEL "Colgar YA"
       ENDGROUP
       space horiz 5
       endwindow
       peavisabi = 1
       peavisado = 1
      end
     end
    end
   end

  tconec = '\033c'pesetaa
  if precio = 0.075332 then tconec = '\033c\033b'pesetaa

  ADDRESS TIMOCOUNT
  TEXT ID TELIN LABEL '\033c'right('0'horas,2)':'right('0'minutos,2)':'right('0'segundos,2)
  TEXT ID PREC LABEL tconec
/*  ADDRESS TIMOCOUNT('text ID TCONT COMMAND "TIEMPOR" PORT TIMOPORT LABEL 'Tconec)*/

 end

/* control de tiempo */

 If paquete ~=Null()
 then do
  cmd=getarg(paquete,0)
  CALL Reply(paquete,0)

  if cmd="TIEMPOR" then CALL TIEMPOR()

  if cmd="QUIT"
  then do
   Call Cancel()
   LEAVE
  end

  if cmd="ABOT" then CALL ABOT()
  if cmd="CONFIG" then CALL CONFI()
  if cmd="CARCON" then CALL CARCON()
  if cmd="GRACON" then Call GRACON()
  if cmd="GRACONC" then Call GRACONC()
  if cmd="USACON" then Call USACON()
  if cmd="GRACOM" then Call GRACOM()

  if cmd = "TIMEPRE" then address command('run >NIL: sys:prefs/time')

  if cmd="LOGPOP"
  then do
   popasl ID LPOP
   DEFLOG = RESULT
  end

  IF cmd="DPUER"
  then do
   POPLIST ID DPUER
   PUERTO = RESULT
  end

  IF cmd="MUESFAC"
  then do
   address command('run >NIL: more 'deflog)
  end

  IF cmd="UNID"
  then do
   STRING ID UNID
   UNIDAD = RESULT
  end

  if cmd="CHKSC"
  then do
   check ID CHKS1 ATTRS MUIA_Selected
   parascri = RESULT
  end

  if cmd="CHKMC"
  then do
   check ID CHKS2 ATTRS MUIA_Selected
   marcacod = RESULT
  end


  if cmd="CHKLOG"
  then do
   check ID CHK1 ATTRS MUIA_Selected
   USALOG = RESULT
  end

  if cmd="LOGVOZ"
  then do
   check ID CHK2 ATTRS MUIA_Selected
   LOGVOZ = RESULT
  end

  if cmd="CIMOD"
  then do
   cycle ID CIMOD
   DEFMOD = RESULT
  end

  if cmd="PREMAR"
  then do
   string ID PREMA
   PREMAR = RESULT
  end

  if cmd="POSMAR"
  then do
   string ID POSMA
   POSMAR = RESULT
  end

  if cmd = "PRECON"
  then do
   popasl ID PRECO
   PRECON = RESULT
  end

  if cmd = "DURCON"
  then do
   popasl ID DURCO
   DURCON = RESULT
  end

  if cmd = "OFFCON"
  then do
   popasl ID OFFCO
   OFFCON = RESULT
  end

  if cmd="DESFASE"
  then do
   string ID DESFA
   DESFASE = RESULT
  end

  if cmd="PRAVICLOSE"
  then do
   WINDOW ID PRAVI CLOSE
   avisabi = 0
  end

  if cmd="PREAVICLOSE"
  then do
   WINDOW ID PREPEAVI CLOSE
   peavisabi = 0
  end

  if cmd = "MASTIM" then call MASTIM()
  if cmd = "MASDIN" then call MASDIN()

  if cmd = "TIEMPORS"
  then do
   WINDOW ID PRAVI CLOSE
   colgar = 1
   avisabi = 0
  end

  if cmd = "TIEMPERS"
  then do
   WINDOW ID PREPEAVI CLOSE
   colgar = 1
   peavisabi = 0
  end

  if cmd="CONFICLOSE"
  then do
   WINDOW ID TCONF CLOSE
   WINDOW ID TIMOW ATTRS MUIA_Window_ScreenTitle """TIMOcount 1.43 by Freddy/SOGA"""
   ventacer = 0
  end

 end

 if colgar = 1 then CALL TIEMPOR()

end

address command('delete >NIL: ram:timogui.rexx')
EXIT

CONFI:

OPTIONS RESULTS
ventacer = 1
ADDRESS ('TIMOCOUNT')
 window ID TCONF COMMAND """CONFICLOSE""" PORT TIMOPORT TITLE """Opciones TIMOcount 1.43 by Freddy/SOGA""" ATTRS MUIA_Window_Title """Opciones TIMOcount 1.43"""
  menu LABEL "Proyecto"
   item COMMAND """TIEMPOR""" PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'O' LABEL "Conmutar Conexión"
   item ATTRS MUIA_Menuitem_Title '-1'
   item COMMAND '"hide"' PORT TIMOCOUNT ATTRS MUIA_Menuitem_Shortcut 'H' LABEL "Ocultar"
   item COMMAND """ABOT""" PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut '?' LABEL "About"
   item COMMAND '"method 'MUIM_Application_AboutMUI' 0"' PORT TIMOCOUNT LABEL "Sobre el MUI"
   item ATTRS MUIA_Menuitem_Title '-1'
   item COMMAND '"QUIT"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL "Quitar"
  endmenu
  menu LABEL "Configurar"
   item ID MCONF COMMAND '"CONFIG"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'C' MUIA_Menuitem_Enabled 0 LABEL "Opciones"
   item ATTRS MUIA_Menuitem_Title '-1'
   item ID CCONF COMMAND '"CARCON"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'L' LABEL "Carga una Configuración"
   item COMMAND '"GRACON"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'S' LABEL "Salva la Configuración"
   item COMMAND '"GRACOM"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'A' LABEL "Salva Config como..."
   item ATTRS MUIA_Menuitem_Title '-1'
   item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"' PORT TIMOCOUNT ATTRS MUIA_Menuitem_Shortcut 'P' LABEL "MUI..."
  endmenu

  space BAR HORIZ 6

  GROUP REGISTER ATTRS 0x80421ce7 "1" LABELS "Modem,Tiempos,Precios,Logs&Scripts"
/* *** */

/* *** */
     address command('list >ram:timodevs.lst devs:#?.device lformat "%n"')
     CALL OPEN('tdl','ram:timodevs.lst','R')
     etiqs = ''

     DO UNTIL EOF('tdl')
      dispo = READLN('tdl')
      etiqs = etiqs||dispo','
     END
     Call CLOSE('tdl')
     ADDRESS COMMAND('DELETE >NIL: ram:timodevs.lst')
     if POS(puerto,etiqs) = 0 then etiqs = puerto','etiqs
     enu = length(etiqs)
     eti = left(etiqs,enu-2)
     etiqs = '"'eti'"'


   /* MODEM */
   GROUP

     GROUP ID DIGRO HELP '"\033cIndica dispositivo\n\033cserie y unidad donde\n\033cesta conectado el modem"' FRAME Label "Dispositivo Modem"
      POPLIST ID DPUER HELP '"\033cDispositivo del modem"' COMMAND '"DPUER"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 MUIA_String_Contents PUERTO LABELS etiqs
      STRING ID UNID HELP '"\033cUnidad del dispositivo"' COMMAND '"UNID"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 CONTENT UNIDAD
     ENDGROUP


      ayupom = '"\033cIndica la cadena a\n\033cmarcar después de conectarse\n\033cpor ejemplo: \0335\033bT**10#\n\033n\0332\033c(activa contestador de Telefónica con tonos)"'

     GROUP ID MAGRO HELP """\033cIndica cadenas a\n\033cmarcar con el telefono""" FRAME LABEL "Cadenas de Marcado"
     GROUP HORIZ
      label LEFT '"Previo:"'
      string ID PREMA HELP """\033cIndica la cadena a\n\033cmarcar antes de conectarse\n\033cpor ejemplo: \0335\033bT#10#\n\033n\0332\033c(desactiva contestador de Telefónica con tonos)""" COMMAND '"PREMAR"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 MUIA_String_Contents PREMAR
     ENDGROUP
     GROUP HORIZ
      label LEFT '"Posterior:"'
      string ID POSMA HELP ayupom COMMAND '"POSMAR"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 MUIA_String_Contents POSMAR
     ENDGROUP
     ENDGROUP


     GROUP ID CIGRO1 HELP """\033cSelecciona Modo Conectarse\n\033co Modo VOZ (o simulación)""" FRAME LABEL "Funcionamiento"
      cycle ID CIMOD COMMAND '"CIMOD"' PORT TIMOPORT ATTRS 0x80421ce7 1 LABEL "MIAMI,VOZ"
     ENDGROUP


     GROUP ID DFGRO HELP '"\033cIndica los segundos que tarda\n\033cel modem remoto entre que descuelga\n\033chasta que responde CONNECT"' FRAME LABEL "Desfase"
      string ID DESFA COMMAND '"DESFASE"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 CONTENT DESFASE
     ENDGROUP

  ENDGROUP

     mhoras = TRUNC(MAXTIM/3600)
     mdif = MAXTIM-(mhoras*3600)
     mminutos = TRUNC(mdif/60)
     msegundos = MAXTIM-((mhoras*3600)+(mminutos*60))

/* TIEMPOS */
   GROUP

     GROUP ID HTIG HELP '"\033cTiempo limite de conexión\n\033c0 = indefinido"' FRAME ATTRS 0x8042f416 "2" LABEL "Tiempo Máximo"

      label LEFT "Horas"
      slider ID MHOR HELP '"\033cHoras máximas de conexión"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 99 0x8042ae3a MHORAS
      label LEFT "Minutos"
      slider ID MMIN HELP '"\033cMinutos máximos de conexión"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 59 0x8042ae3a MMINUTOS
      label LEFT "Segundos"
      slider ID MSEG HELP '"\033cSegundos máximos de conexión"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 59 0x8042ae3a MSEGUNDOS

     ENDGROUP


     IF PREAVI > MAXTIM then PREAVI = MAXTIM - 15
     IF MAXTIM < 16 then PREAVI = 0

     phoras = TRUNC(PREAVI/3600)
     pdif = PREAVI-(phoras*3600)
     pminutos = TRUNC(pdif/60)
     psegundos = PREAVI-((phoras*3600)+(pminutos*60))

     GROUP ID PREAG HELP '"\033cTiempo previo de aviso antes de colgar\n\033c0 = sin aviso"' FRAME ATTRS 0x8042f416 "2" LABEL "Aviso Previo"

      label LEFT "Horas"
      slider ID PHOR HELP '"\033cHoras de anticipación del aviso"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 99 0x8042ae3a PHORAS
      label LEFT "Minutos"
      slider ID PMIN HELP '"\033cMinutos de anticipación del aviso"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 59 0x8042ae3a PMINUTOS
      label LEFT "Segundos"
      slider ID PSEG HELP '"\033cSegundos de anticipación del aviso"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 59 0x8042ae3a PSEGUNDOS

     ENDGROUP

    ENDGROUP

/* PRECIOS */
  GROUP

     GROUP ID PRTIG HELP '"\033cPrecio limite de conexión\n\033c0 = indefinido"' FRAME LABEL "Precio Máximo"
      label LEFT "Pesetas"
      slider ID MPRE HELP '"\033cPesetas máximas a gastar por conexión"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 4999 0x8042ae3a MPELAS
     ENDGROUP

     IF PREPELAS > MPELAS then PREPELAS = MPELAS - 15
     IF MPELAS < 16 then PREPELAS = 0

     GROUP ID PREPA HELP '"\033cAviso previo antes de\n\033calcanzar el precio máximo\n\033c0 = sin aviso"' FRAME LABEL "Aviso Previo"
      label LEFT "Pesetas"
      slider ID PREPE HELP '"\033cAvisar cuando falte\n\033ceste dinero antes de colgar\n\033cal llegar al precio maximo"' ATTRS 0x80421ce7 1 0x8042e404 0 0x8042d78a 999 0x8042ae3a PREPELAS
     ENDGROUP

    ENDGROUP


   GROUP
    GROUP ID TOTAL HELP """\033cParametros, Controles\n\033cy variables definibles\n\033cpor el usuario""" NODE "CONFIG" ATTRS 0x8042f416 1
     GROUP ID COLOG HELP """\033cIndica cómo y dónde deben\n\033cregistrarse las llamadas\n\033crealizadas mediante\n\033cTIMOcount""" FRAME Label "LogFile"
      GROUP HORIZ HELP """\033cIndica si se deben\n\033cregistrar las llamadas\n\033crealizadas o no"""
       check ID CHK1 COMMAND '"CHKLOG"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_Selected USALOG
       label """Grabar fichero de conexiones"""
      ENDGROUP
      GROUP HORIZ
       popasl ID LPOP COMMAND '"LOGPOP"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 MUIA_String_Contents deflog
      ENDGROUP
      GROUP HELP """\033c¿Registra Llamadas de\n\033cVoz o Simuladas en\n\033cfichero de reporte?""" FRAME
       GROUP HORIZ
        space horiz 50
        label """Facturar VOZ:"""
        check ID CHK2 COMMAND '"LOGVOZ"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_Selected LOGVOZ
       ENDGROUP
      ENDGROUP
     ENDGROUP

     GROUP ID SGROS HELP """\033cIndica scripts para\n\033cejecutar en diversas\n\033csituaciones""" FRAME LABEL "Scripts de Conexión"
      GROUP HORIZ
      LABEL '"\033rAntes"'
      popasl ID PRECO HELP """\033cIndica script a\n\033cejecutar antes de usar\n\033cMiami para llamar""" COMMAND '"PRECON"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 MUIA_String_Contents PRECON
      ENDGROUP
      GROUP HORIZ
      LABEL '"\033rDurante"'
      popasl ID DURCO HELP """\033cIndica script a\n\033cejecutar durante la\n\033cconexión con Miami""" COMMAND '"DURCON"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 MUIA_String_Contents DURCON
      ENDGROUP
      GROUP HORIZ
      LABEL '"\033rDespués"'
      popasl ID OFFCO HELP """\033cIndica script a\n\033cejecutar tras finalizar la\n\033cconexión con Miami""" COMMAND '"OFFCON"' PORT TIMOPORT ATTRS 0x80421ce7 1 MUIA_String_AdvanceOnCR 1 MUIA_String_Contents OFFCON
      ENDGROUP
     ENDGROUP
    ENDGROUP
   ENDGROUP
ENDGROUP


 GROUP HORIZ NODE "USO"
  button ID BSAV COMMAND "GRACONC" PORT TIMOPORT ATTRS 0x80421ce7 "1" label "Salvar"
  button ID BUSE COMMAND "USACON" PORT TIMOPORT ATTRS 0x80421ce7 "1" label "Usar"
  button ID BCAN COMMAND "CONFICLOSE" PORT TIMOPORT ATTRS 0x80421ce7 "1" label "Cancelar"
 ENDGROUP

 ENDWINDOW

 cycle ID CIMOD LABEL DEFMOD

RETURN 0

EXIT

GRACON:

/* GRABA configuración */

 Call Open('tcpre','ENV:TIMOCOUNT.prefs','W')
 CALL WriteLN('tcpre','$VER: 1.40')
 Call WriteLN('tcpre',DEFLOG)
 Call WriteLN('tcpre',USALOG)
 Call WriteLN('tcpre',LOGVOZ)
 Call WriteLN('tcpre',DEFMOD)
 Call WriteLN('tcpre',PRECON)
 Call WriteLN('tcpre',DURCON)
 Call WriteLN('tcpre',OFFCON)
 Call WriteLN('tcpre',PREMAR)
 Call WriteLN('tcpre',POSMAR)
 Call WriteLN('tcpre',PUERTO)
 Call WriteLN('tcpre',UNIDAD)

 slider ID MHOR
 mhoras = RESULT
 slider ID MMIN
 mminutos = RESULT
 slider ID MSEG
 msegundos = RESULT
 MAXTIM = msegundos+(mminutos*60)+(mhoras*3600)

 Call WriteLN('tcpre',MAXTIM)

 slider ID PHOR
 phoras = RESULT
 slider ID PMIN
 pminutos = RESULT
 slider ID PSEG
 psegundos = RESULT
 PREAVI = psegundos+(pminutos*60)+(phoras*3600)

 slider ID MPRE
 MPELAS = RESULT
 slider ID PREPE
 PREPELAS = RESULT

 IF PREAVI > MAXTIM then PREAVI = MAXTIM - 15
 IF MAXTIM < 16 then PREAVI = 0

 IF PREPELAS > MPELAS then PREPELAS = MPELAS - 15
 IF MPELAS < 16 then PREPELAS = 0

 Call WriteLN('tcpre',PREAVI)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',MPELAS)
 Call WriteLN('tcpre',PREPELAS)
 Call CLOSE('tcpre')
 Call Open('tcpre','ENVARC:TIMOCOUNT.prefs','W')
 CALL WriteLN('tcpre','$VER: 1.40')
 Call WriteLN('tcpre',DEFLOG)
 Call WriteLN('tcpre',USALOG)
 Call WriteLN('tcpre',LOGVOZ)
 Call WriteLN('tcpre',DEFMOD)
 Call WriteLN('tcpre',PRECON)
 Call WriteLN('tcpre',DURCON)
 Call WriteLN('tcpre',OFFCON)
 Call WriteLN('tcpre',PREMAR)
 Call WriteLN('tcpre',POSMAR)
 Call WriteLN('tcpre',PUERTO)
 Call WriteLN('tcpre',UNIDAD)
 Call WriteLN('tcpre',MAXTIM)
 Call WriteLN('tcpre',PREAVI)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',MPELAS)
 Call WriteLN('tcpre',PREPELAS)
 Call CLOSE('tcpre')

WINDOW ID TIMOW ATTRS MUIA_Window_ScreenTitle """Configuración Salvada"""
WINDOW ID TCONF ATTRS MUIA_Window_ScreenTitle """Configuración Salvada"""

RETURN 0

EXIT


USACON:

/* USA configuración */

 Call Open('tcpre','ENV:TIMOCOUNT.prefs','W')
 CALL WriteLN('tcpre','$VER: 1.40')
 Call WriteLN('tcpre',DEFLOG)
 Call WriteLN('tcpre',USALOG)
 Call WriteLN('tcpre',LOGVOZ)
 Call WriteLN('tcpre',DEFMOD)
 Call WriteLN('tcpre',PRECON)
 Call WriteLN('tcpre',DURCON)
 Call WriteLN('tcpre',OFFCON)
 Call WriteLN('tcpre',PREMAR)
 Call WriteLN('tcpre',POSMAR)
 Call WriteLN('tcpre',PUERTO)
 Call WriteLN('tcpre',UNIDAD)

 slider ID MHOR
 mhoras = RESULT
 slider ID MMIN
 mminutos = RESULT
 slider ID MSEG
 msegundos = RESULT
 MAXTIM = msegundos+(mminutos*60)+(mhoras*3600)

 Call WriteLN('tcpre',MAXTIM)

 slider ID PHOR
 phoras = RESULT
 slider ID PMIN
 pminutos = RESULT
 slider ID PSEG
 psegundos = RESULT
 PREAVI = psegundos+(pminutos*60)+(phoras*3600)

 slider ID MPRE
 MPELAS = RESULT
 slider ID PREPE
 PREPELAS = RESULT

 IF PREAVI > MAXTIM then PREAVI = MAXTIM - 15
 IF MAXTIM < 16 then PREAVI = 0

 IF PREPELAS > MPELAS then PREPELAS = MPELAS - 15
 IF MPELAS < 16 then PREPELAS = 0

 Call WriteLN('tcpre',PREAVI)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',MPELAS)
 Call WriteLN('tcpre',PREPELAS)
 Call CLOSE('tcpre')
 WINDOW ID TCONF CLOSE
 WINDOW ID TIMOW ATTRS MUIA_Window_ScreenTitle """TIMOcount 1.43 by Freddy/SOGA"""
 ventacer = 0

RETURN 0

EXIT

GRACONC:

/* GRABA configuración */

 Call Open('tcpre','ENV:TIMOCOUNT.prefs','W')
 CALL WriteLN('tcpre','$VER: 1.40')
 Call WriteLN('tcpre',DEFLOG)
 Call WriteLN('tcpre',USALOG)
 Call WriteLN('tcpre',LOGVOZ)
 Call WriteLN('tcpre',DEFMOD)
 Call WriteLN('tcpre',PRECON)
 Call WriteLN('tcpre',DURCON)
 Call WriteLN('tcpre',OFFCON)
 Call WriteLN('tcpre',PREMAR)
 Call WriteLN('tcpre',POSMAR)
 Call WriteLN('tcpre',PUERTO)
 Call WriteLN('tcpre',UNIDAD)

 slider ID MHOR
 mhoras = RESULT
 slider ID MMIN
 mminutos = RESULT
 slider ID MSEG
 msegundos = RESULT
 MAXTIM = msegundos+(mminutos*60)+(mhoras*3600)

 Call WriteLN('tcpre',MAXTIM)

 slider ID PHOR
 phoras = RESULT
 slider ID PMIN
 pminutos = RESULT
 slider ID PSEG
 psegundos = RESULT
 PREAVI = psegundos+(pminutos*60)+(phoras*3600)

 slider ID MPRE
 MPELAS = RESULT
 slider ID PREPE
 PREPELAS = RESULT

 IF PREAVI > MAXTIM then PREAVI = MAXTIM - 15
 IF MAXTIM < 16 then PREAVI = 0

 IF PREPELAS > MPELAS then PREPELAS = MPELAS - 15
 IF MPELAS < 16 then PREPELAS = 0

 Call WriteLN('tcpre',PREAVI)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',MPELAS)
 Call WriteLN('tcpre',PREPELAS)
 Call CLOSE('tcpre')
 Call Open('tcpre','ENVARC:TIMOCOUNT.prefs','W')
 CALL WriteLN('tcpre','$VER: 1.40')
 Call WriteLN('tcpre',DEFLOG)
 Call WriteLN('tcpre',USALOG)
 Call WriteLN('tcpre',LOGVOZ)
 Call WriteLN('tcpre',DEFMOD)
 Call WriteLN('tcpre',PRECON)
 Call WriteLN('tcpre',DURCON)
 Call WriteLN('tcpre',OFFCON)
 Call WriteLN('tcpre',PREMAR)
 Call WriteLN('tcpre',POSMAR)
 Call WriteLN('tcpre',PUERTO)
 Call WriteLN('tcpre',UNIDAD)
 Call WriteLN('tcpre',MAXTIM)
 Call WriteLN('tcpre',PREAVI)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',MPELAS)
 Call WriteLN('tcpre',PREPELAS)
 Call CLOSE('tcpre')

WINDOW ID TIMOW ATTRS MUIA_Window_ScreenTitle """Configuración Salvada"""
WINDOW ID TCONF CLOSE
WINDOW ID TIMOW ATTRS MUIA_Window_ScreenTitle """TIMOcount 1.43 by Freddy/SOGA"""
ventacer = 0

RETURN 0

EXIT

GRACOM:

/* GRABA configuración COMO */

 defpre = 'ENV:TIMOCOUNT.prefs'
 defpre = rtfilerequest('ENV:','TIMOCOUNT.prefs','Salvar configuración como...')
 Call Open('tcpre',defpre,'W')
 CALL WriteLN('tcpre','$VER: 1.40')
 Call WriteLN('tcpre',DEFLOG)
 Call WriteLN('tcpre',USALOG)
 Call WriteLN('tcpre',LOGVOZ)
 Call WriteLN('tcpre',DEFMOD)
 Call WriteLN('tcpre',PRECON)
 Call WriteLN('tcpre',DURCON)
 Call WriteLN('tcpre',OFFCON)
 Call WriteLN('tcpre',PREMAR)
 Call WriteLN('tcpre',POSMAR)
 Call WriteLN('tcpre',PUERTO)
 Call WriteLN('tcpre',UNIDAD)

 slider ID MHOR
 mhoras = RESULT
 slider ID MMIN
 mminutos = RESULT
 slider ID MSEG
 msegundos = RESULT
 MAXTIM = msegundos+(mminutos*60)+(mhoras*3600)

 Call WriteLN('tcpre',MAXTIM)

 slider ID PHOR
 phoras = RESULT
 slider ID PMIN
 pminutos = RESULT
 slider ID PSEG
 psegundos = RESULT
 PREAVI = psegundos+(pminutos*60)+(phoras*3600)

 slider ID MPRE
 MPELAS = RESULT
 slider ID PREPE
 PREPELAS = RESULT

 IF PREAVI > MAXTIM then PREAVI = MAXTIM - 15
 IF MAXTIM < 16 then PREAVI = 0

 IF PREPELAS > MPELAS then PREPELAS = MPELAS - 15
 IF MPELAS < 16 then PREPELAS = 0

 Call WriteLN('tcpre',PREAVI)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',MPELAS)
 Call WriteLN('tcpre',PREPELAS)
 Call CLOSE('tcpre')
 Call Open('tcpre','ENVARC:TIMOCOUNT.prefs','W')
 CALL WriteLN('tcpre','$VER: 1.40')
 Call WriteLN('tcpre',DEFLOG)
 Call WriteLN('tcpre',USALOG)
 Call WriteLN('tcpre',LOGVOZ)
 Call WriteLN('tcpre',DEFMOD)
 Call WriteLN('tcpre',PRECON)
 Call WriteLN('tcpre',DURCON)
 Call WriteLN('tcpre',OFFCON)
 Call WriteLN('tcpre',PREMAR)
 Call WriteLN('tcpre',POSMAR)
 Call WriteLN('tcpre',PUERTO)
 Call WriteLN('tcpre',UNIDAD)
 Call WriteLN('tcpre',MAXTIM)
 Call WriteLN('tcpre',PREAVI)
 Call WriteLN('tcpre',PREMAX)
 Call WriteLN('tcpre',DESFASE)
 Call WriteLN('tcpre',MPELAS)
 Call WriteLN('tcpre',PREPELAS)
 Call CLOSE('tcpre')

WINDOW ID TIMOW ATTRS 0x804234b0 """Configuración Salvada"""

RETURN 0

EXIT

CARCON:

/* CARGA configuración */

defpre = 'ENV:TIMOCOUNT.prefs'

defpre = rtfilerequest('ENV:','TIMOCOUNT.prefs','Fichero de configuración')

if ~exists(defpre)
then do
 WINDOW ID TIMOW ATTRS MUIA_Window_ScreenTitle """Fichero no encontrado"""
 WINDOW ID TCONF ATTRS MUIA_Window_ScreenTitle """Fichero no encontrado"""
end

if exists(defpre)
then do
 CALL Open('tcpre','ENV:TIMOCOUNT.prefs','R')
 VERSION = READLN('tcpre')
 if VERSION ~= '$VER: 1.40' then DEFLOG = VERSION
 IF VERSION = '$VER: 1.40' then DEFLOG = READLN('tcpre')
 USALOGF = READLN('tcpre')
 USALOG = USALOGF + 0
 LOGVOZF = READLN('tcpre')
 LOGVOZ = LOGVOZF + 0
 DEFMOD = READLN('tcpre')
 PRECON = READLN('tcpre')
 DURCON = READLN('tcpre')
 OFFCON = READLN('tcpre')
 PREMAR = READLN('tcpre')
 POSMAR = READLN('tcpre')
 PUERTO = READLN('tcpre')
 UNIDADF = READLN('tcpre')
 UNIDAD = UNIDADF + 0
 MAXTIMF = READLN('tcpre')
 MAXTIM = MAXTIMF + 0
 PREAVIF = READLN('tcpre')
 PREAVI = PREAVIF + 0
 PREMAXF = READLN('tcpre')
 PREMAX = PREMAXF + 0
 DESFASEF = READLN('tcpre')
 DESFASE =  DESFASEF + 0
 if VERSION = '$VER: 1.40'
 then do
  MPELASF = READLN('tcpre')
  MPELAS = MPELASF + 0
  PREPELASF = READLN('tcpre')
  PREPELAS = PREPELASF + 0
 end
 Call CLOSE('tcpre')
 IF PREAVI > MAXTIM then PREAVI = MAXTIM - 15
 IF MAXTIM < 16 then PREAVI = 0
 IF PREPELAS > MPELAS then PREPELAS = MPELAS - 15
 IF MPELAS < 16 then PREPELAS = 0

 if ventacer ~= 0 then call CONFI()

RETURN 0

EXIT


TIEMPOR:

tranqui = 0
colgar = 0
if conectado = 0
then do
tiempo = 0
 segunant = ELDESFASE
 peset = 0
 pesetas = 0
 tires = 1
 tranqui = 1
 conectado = 1
 avisado = 0
 avisabi = 0
 peavisado = 0
 peavisabi = 0
 RMAXTIME = MAXTIM
 RMPELAS = MPELAS
 IF DEFMOD= 'MIAMI'
 then do
  item ID MCONF COMMAND '"CONFIG"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'C' MUIA_Menuitem_Enabled 0 LABEL "Opciones"
  item ID CCONF COMMAND '"CARCON"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'L' MUIA_Menuitem_Enabled 0 LABEL "Carga una Configuración"
  IF DEFMOD ~= 'VOZ' & PRECON ~= '' & parascri = 1 then address command('run >NIL: execute 'precon)
  IF DEFMOD ~= 'VOZ' & PREMAR ~= '' & marcacod = 1 then CALL MARCATEXT(PREMAR)
 end
end

if conectado = 1 & tranqui = 0
then do
 conectado = 0
  IF DEFMOD = 'MIAMI'
  then do
   if avisabi = 1
   then do
    WINDOW ID PRAVI CLOSE
    avisabi = 0
   end
   if peavisabi = 1
   then do
    WINDOW ID PREPEAVI CLOSE
    peavisabi = 0
   end

   ADDRESS MIAMI.1("OFFLINE")
   ADDRESS MIAMI.1("QUIT")
   IF DEFMOD ~= 'VOZ' & POSMAR ~= '' & marcacod = 1 then CALL MARCATEXT(POSMAR)
   IF DEFMOD ~= 'VOZ' & OFFCON ~= '' & parascri = 1 then address command('run >NIL: execute 'offcon)
   item ID MCONF COMMAND '"CONFIG"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'C' MUIA_Menuitem_Enabled 1 LABEL "Opciones"
   item ID CCONF COMMAND '"CARCON"' PORT TIMOPORT ATTRS MUIA_Menuitem_Shortcut 'L' MUIA_Menuitem_Enabled 1 LABEL "Carga una Configuración"
  end
  tiempo = TIME('e')
  horas = TRUNC(tiempo/3600)
  ntiempo = tiempo - (horas*3600)
  minutos = TRUNC(ntiempo/60)
  mtiempo = ntiempo - (minutos*60)
  segundos = TRUNC(mtiempo)
  losegs = TRUNC(tiempo)
  if losegs > ELDESFASE
  then do
   precio = 0.075332
   if time(h)> 21 then precio = 0.027332
   if time(h)< 8 then precio = 0.027332
   if date(w) = 'Saturday' & time(h) > 13 then precio = 0.027332
   if date(w) = 'Sunday' then precio = 0.027332
   if left(date(),6) = '01 Jan' then precio = 0.027332
   if left(date(),6) = '01 May' then precio = 0.027332
   if left(date(),6) = '15 Aug' then precio = 0.027332
   if left(date(),6) = '12 Oct' then precio = 0.027332
   if left(date(),6) = '08 Dec' then precio = 0.027332
   if left(date(),6) = '25 Dec' then precio = 0.027332

   segundaho = losegs - segunant
   segunant = losegs
   peset = peset + (precio*segundaho)
  end

  if trunc(tiempo) < ELDESFASE
  then do
   peset = 11.4
  end

  pes = TRUNC(peset*1.16)
  ses = peset*1.16
  dec = ses-pes
  flo = left(dec,4)

  pesetas = pes'.'right(flo,2)

  Tconec = '\033c\033b'pesetas
  ADDRESS TIMOCOUNT('text ID TELIN 'right("0"horas,2)":"right("0"minutos,2)":"right("0"segundos,2))
  ADDRESS TIMOCOUNT('text ID PREC LABEL 'Tconec)
  text ID TCONT LABEL '\033c\033b\0337 OFFLINE '
  text ID FILLA LABEL '\033c'time()


  CALL LOGEAR(date()' - 'time()' - Duración: 'right('0'horas,2)':'right('0'minutos,2)':'right('0'segundos,2))
  CALL LOGEAR('                   Precio llamada(IVA inc.): 'pesetas' pesetas')
end

RETURN 0

EXIT

MASTIM:

slider ID MSTIM
masmins = RESULT
RMAXTIME = RMAXTIME+(masmins*60)
WINDOW ID PRAVI CLOSE
avisabi = 0
avisado = 0

RETURN 0

EXIT

MASDIN:

slider ID MSPEL
maspels = RESULT
RMPELAS = RMPELAS+maspels
WINDOW ID PREPEAVI CLOSE
peavisabi = 0
peavisado = 0

RETURN 0

EXIT

LOGEAR:

parse arg tai

IF DEFMOD = 'MIAMI'
then do
 if USALOG = 1
 then do
  address command('echo >>'DEFLOG' "'tai'"')
 end
end

IF DEFMOD = 'VOZ'
then do
 if LOGVOZ = 1
 then do
  address command('echo >>'DEFLOG' "'tai'"')
 end
end

RETURN 0

EXIT

MARCATEXT:

/* */
 parse arg loquemar

 window ID MCDO TITLE '"Marcando cadena configurada"' ATTRS 0x8042dcae 175
  group FRAME LABEL '"Modem Marcando"'
   object CLASS '"Busy.mcc"' ATTRS MUIA_Weight 0
  endgroup
 endwindow

 dh = SerOpen( PUERTO,UNIDAD )
 cierto = SerSetParms( dh, 38400, 8, 'N', 1 )
 texti = 'ATD'loquemar||d2c(13)
 tamte = length(texti)
 Call SerWrite( dh, texti, tamte )
/*
 block = allocmem( tamte )
 addr = c2d( block )
 nada = SerRead( dh, addr, tamte )
 na = FREEMEM(block, tamte)
*/
 Call Delay(175)
 espe = TRUNC(tamte/4)
 espera = TRUNC(espe*50)
 call Delay(espera)

 texti = 'ATH0'd2c(13)
 tamte = length(texti)
 Call SerWrite( dh, texti, tamte )
 Call Delay(50)

 na = SerFlush( dh, 'R' )
 na = SerFlush( dh, 'W' )
 na = SerClear( dh )
 na = SerClose( dh )

window ID MCDO CLOSE

RETURN 0

EXIT

ABOT:

ADDRESS ('TIMOCOUNT')

etiquela = '\033cContador - Facturador de\n\033cllamadas a Internet y VOZ'

window ID POTO TITLE '"Sobre TIMOcount"' PORT TIMOCOUNT COMMAND '"window ID POTO CLOSE"' ATTRS 0x8042dcae 325
 GROUP FRAME NODE "Main"
  text ATTRS 0x8042a3f1 300 LABEL "\n\033c\0334TIMOcount V1.43\033n\n\0332\033cby Freddy/SOGA\n"
  text ATTRS 0x8042a3f1 320 LABEL etiquela
  space HORIZ 10
  Label "\033cAlfredo Soro"
  Label "\033calmapro@masbytes.es"
 ENDGROUP
 space HORIZ 10
 button PORT TIMOCOUNT COMMAND '"window ID POTO CLOSE"' ATTRS 0x80421ce7 1 0x8042a3f1 60 LABEL "OK"
ENDWINDOW

RETURN 0

EXIT

Cancel:
Address('TIMOCOUNT')
address command('delete >NIL: ram:timogui.rexx')
Call Closeport('TIMOPORT')
QUIT FORCE
Exit

Cancelst:
Call Closeport('TIMOPORT')
address command('delete >NIL: ram:timogui.rexx')
Exit
EXIT
EXIT

HALT:
Say '*** BREAK'
Say 'ABORTADO'
address command('delete >NIL: ram:timogui.rexx')
Address('TIMOCOUNT')
QUIT FORCE
Call Closeport('TIMOPORT')

Exit

BREAK_C:
Say '*** BREAK'
Say 'ABORTADO'
address command('delete >NIL: ram:timogui.rexx')

Address('TIMOCOUNT')
QUIT FORCE
Call Closeport('TIMOPORT')

Exit

BREAK_D:
Say '*** BREAK'
Say 'ABORTADO'
address command('delete >NIL: ram:timogui.rexx')
Address('TIMOCOUNT')
QUIT FORCE
Call Closeport('TIMOPORT')

Exit

BREAK_E:
Say '*** BREAK'
Say 'ABORTADO'
address command('delete >NIL: ram:timogui.rexx')
Address('TIMOCOUNT')
QUIT FORCE
Call Closeport('TIMOPORT')

Exit

BREAK_F:
Say '*** BREAK'
Say 'ABORTADO'
address command('delete >NIL: ram:timogui.rexx')
Address('TIMOCOUNT')
QUIT FORCE
Call Closeport('TIMOPORT')

Exit

