/*

    Script per generare il file di configurazione per
    Scatti 2.1.

    Richiede rexxreqtools.library e rexxsupport.library

*/

IF ~Exists('libs:rexxsupport.library') THEN DO
    SAY 'Questo script richiede la rexxsupport.library'
    SAY 'Fai riferimento alla documentazione'
    SAY 'per preparare il file di configurazione.'
    EXIT
END

IF ~Exists('libs:rexxreqtools.library') THEN DO
    SAY 'Questo script richiede la rexxreqtools.library'
    SAY 'Fai riferimento alla documentazione'
    SAY 'per preparare il file di configurazione.'
    EXIT
END

IF ~Show('l','rexxsupport.library') THEN AddLib('rexxsupport.library',0,-30)
IF ~Show('l','rexxreqtools.library') THEN AddLib('rexxreqtools.library',0,-30)

nl = '0a'x
file = ''

body = 'Programma per la configurazione di "Scatti 2.1"'nl,
'di'nl'Giovanni Addabbo'nl'email: gaddabbo@imar.net'
gadget = 'Continua|Fine'
CALL MESSAGGIO

INIZIO:

urb = 'no'

body =  'Ora dovrai fornire alcuni dati necessari'nl,
        'per il funzionamento di "Scatti".'nl||nl,
        'La prima scelta riguarda la directory di lavoro:'nl,
        'consiglio di indicare una directory in Ram'nl,
        'per ridurre gli accessi al disco.'
gadget = 'Va bene|Fine'
CALL MESSAGGIO

dir = 'Ram:t'
CALL FILEREQ
lav = scelta

body =  'Ora dovrai scegliere la directory di'nl,
        'di destinazione per il file di stoccaggio'nl,
        'temporaneo dei dati. Consiglio di NON INDICARE'nl,
        'una directory in RAM in modo da evitarne la'nl,
        'perdita in caso di eventuali crash durante il'nl,
        'collegamento.'
CALL MESSAGGIO

dir = 'Sys:s'
CALL FILEREQ
temp = scelta

body =  'Scegli ora la directory di destinazione'nl,
        'per i file di log in cui saranno conservati'nl,
        'i dati relativi ai collegamenti effettuati.'nl,
        'Per ogni mese sarà creato un file dal nome'nl,
        '"Scatti_mm_aa.log"  (es: Scatti_01_96.log).'
CALL MESSAGGIO

dir = 'Sys:s'
CALL FILEREQ
log = scelta

body =  'Quale tariffa Telecom devo applicare?'
gadget = 'Urbana|Interurbana'
t = Rtezrequest(body,gadget,'CfgScatti','rtez_defaultresponse = 1 rtez_flags = ezreqf_centertext')
IF t = 1 THEN urb = 'si'

body =  'Indica la durata in secondi di uno scatto'nl,
        'per ogni fascia oraria richiesta.'nl,
        'I valori preimpostati sono quelli correntemente'nl,
        'in vigore per la Tariffa Urbana a Tempo.'
gadget = 'Continua|Fine'
CALL MESSAGGIO

body =  'Tariffa ora di punta:'nl,
        'Durata in secondi di uno scatto'
str = '170'
CALL STRINGA
pun = str

body =  'Tariffa intera:'nl,
        'Durata in secondi di uno scatto'
str = '220'
CALL STRINGA
int = str

IF urb ~ = 'si' THEN DO
    body =  'Tariffa serale:'nl,
            'Durata in secondi di uno scatto'
    str = '300'
    CALL STRINGA
    ser = str
END


body =  'Tariffa notturna:'nl,
        'Durata in secondi di uno scatto'
str = '400'
CALL STRINGA
not = str
IF urb = 'si' THEN ser = not

COSTO:
body =  'Costo di uno scatto IVA compresa:'nl,
        '(Inserire un numero INTERO, senza decimali)'
str = '151'
CALL STRINGA
IF Datatype(str,'w') = 0 THEN CALL COSTO
unit = str


body = 'Inserisci ora il tempo occorrente'nl,
       'in secondi, perchè il modem stabilisca'nl,
       'la connessione. E'' il tempo che'nl,
       'i due modem impiegano per effettuare'nl,
       'l'' handshaking.'
str = '20'
CALL STRINGA
con = str

body =  'Devo generare il log file'nl,
        'per Phonebill?'
gadget = 'Si|No'
t = Rtezrequest(body,gadget,'CfgScatti','rtez_defaultresponse = 1 rtez_flags = ezreqf_centertext')
IF t = 1 THEN pb = 'si'
    ELSE pb = 'no'

body =  'Riepilogo dei dati inseriti:'nl||nl,
        'Directory file temporaneo: 'temp||nl,
        'Directory file log:        'log||nl,
        'Directory di lavoro:       'lav||nl,
        'Secondi tariffa di punta:  'pun||nl,
        'Secondi tariffa intera:    'int||nl

IF urb ~= 'si' THEN body = body||' Secondi tariffa serale:    'ser||nl

body = body||' Secondi tariffa notturna:  'not||nl,
        'Costo di uno scatto:       'unit||nl,
        'Tempo per il Connect:      'con||nl,
        'Phonebill                  'pb

gadget = 'Salva|Salva Come|Errati|Fine'
t = Rtezrequest(body,gadget,'CfgScatti','rtez_defaultresponse = 1')

IF t = 0 THEN EXIT
IF t = 3 THEN CALL INIZIO
IF t = 2 THEN DO
    dir = 'Envarc:';nome = 'Scatti.cfg'
    scelta = Rtfilerequest(dir,nome,'Scegli il File',,'rtfi_flags = freqf_save')
    IF scelta = "" THEN EXIT
    cfg = scelta
END

IF t = 1 THEN cfg = 'Envarc:Scatti.cfg'

IF ~Open('config',cfg,'w') THEN DO
    SAY 'Errore: Non è possibile aprire in scrittura'
    SAY 'il file di configurazione 'cfg' !!!'
    EXIT
    END


WriteLn('config','CFG SCATTI 2.0')
WriteLn('config',temp)
WriteLn('config',log)
WriteLn('config',lav)
WriteLn('config',pun)
WriteLn('config',int)
WriteLn('config',ser)
WriteLn('config',not)
WriteLn('config',unit)
WriteLn('config',con)
WriteLn('config',pb)
Close('config')

ADDRESS command

IF Left(cfg,7) = 'Envarc:' THEN DO
    ADDRESS command
    'copy >nil: 'cfg' env:'
END

EXIT

MESSAGGIO:
t = Rtezrequest(body,gadget,'CfgScatti','rtez_defaultresponse = 1 rtez_flags = ezreqf_centertext')
IF t = 0 THEN EXIT
RETURN

FILEREQ:
scelta = Rtfilerequest(dir,,'Scegli la Directory',,'rtfi_flags = freqf_nofiles')
IF scelta = "" THEN EXIT
RETURN

STRINGA:
str = rtgetstring(str,body,'CfgScatti',,'rtgs_flags = gsreqf_centertext')
IF str = "" THEN EXIT
RETURN

