dialog Observer {
title "Observer"
size -1 -1 340 155
option dbu
button "Cancel", 1, 10 40 20 10, cancel
button "OK", 2, 40 40 20 10, ok
button Store New Info, 3, 10 60 50 10, default
text "Rte", 4, 10 10 20 10
combo 5, 30 10 30 10, edit drop
text "Account", 6, 10 20 20 10
combo 7, 30 20 60 10, edit drop
text "Name", 8, 100 12 25 8
edit "", 9, 130 10 50 10, autohs
text "Address", 10, 100 22 25 8
edit "", 11, 130 20 50 10, autohs
text "Apt.", 12, 185 22 15 8
edit "", 13, 205 20 20 10, autohs
text "Phone", 14, 100 32 25 8
edit "", 15, 130 30 50 10, autohs
combo 16, 130 40 50 10, edit drop
check "Active", 17, 185 32 25 8, left
text "Billing", 19, 115 85 50 10, center
text "Delivery", 20, 100 42 25 8
text "Expires", 21, 185 40 50 8, center
edit "", 22, 185 50 50 10, autohs right
text "Start", 23, 5 85 50 10, center
text "Stop", 24, 60 85 50 10, center
edit "", 34, 130 60 50 10, right
text "Balance", 28, 100 62 25 8
text "Pay Date", 29, 225 85 50 10, center
text "Billing", 30, 100 52 25 8
list 18, 5 95 50 50, size extsel
text "Delivery", 36, 170 85 50 10, center
list 37, 60 95 50 50, size extsel
list 38, 115 95 50 50, size extsel
list 39, 225 95 50 50, size extsel
text "Payment", 41, 100 72 25 8
edit "", 42, 130 70 50 10, autohs right
list 43, 170 95 50 50, size extsel
text "Pay Amount", 44, 280 85 50 10, center
combo 27, 130 50 50 10, edit drop
list 45, 280 95 50 50, size extsel
}
on *:DIALOG:Observer:INIT:*: {
if !$hget($dname) { .hmake $dname 100 }
if $exists($+($dname,.hsh)) { .hload $dname $+($dname,.hsh) }
if !$hget($dname,Rtes) { echo -a 8,1ALERT!!! No routes established }
else { didtok $dname 5 44 $hget($dname,Rtes) }
;
did -a $dname 16 Daily
did -a $dname 16 Sat. Only
did -a $dname 16 MP/LL
;
did -a $dname 27 Office
did -a $dname 27 Monthly
did -a $dname 27 Bi-wkly
;
}
on *:DIALOG:Observer:sclick:5: {
var %rte = $did($dname,5).seltext, %accts = $hfind($dname,$+(%rte,.,*,.Name),0,W)
var %acct.name = $hfind($dname,$+(%rte,.,*,.Name),1,W)
var %acct = $gettok(%acct.name,2,46)
did -ra $dname 7 %acct
var %b = 2
while %b <= %accts {
var %acct.name = $hfind($dname,$+(%rte,.,*,.Name),%b,W)
var %acct = $gettok(%acct.name,2,46)
did -a $dname 7 %acct
inc %b
}
}
on *:DIALOG:Observer:sclick:7: {
var %acct = $did($dname,7).seltext
did -ra $dname 9 $hget($dname,$+(%rte,.,%acct,.Name)
did -ra $dname 11 $hget($dname,$+(%rte,.,%acct,.Address)
did -ra $dname 13 $hget($dname,$+(%rte,.,%acct,.Apt)
did -ra $dname 15 $hget($dname,$+(%rte,.,%acct,.Phone)
did $iif($hget($dname,$+(%rte,.,%acct,.Active),-c,-u) $dname 17
did -ra $dname 22 $asctime($hget($dname,$+(%rte,.,%acct,.Expiry),mmm dd yyyy)
;need to get total number of lines stored with .hadd -m $dname $+(%rte,.,%acct,.data.,%a) %line
var %list = 18,37,38,43,39,45
var %list.entry = 1
while %list.entry <= $numtok(%list,44) {
var %entry = $hfind($dname,$+(%rte,.,%acct,.data.*),%line,W)
var %entry = $hget($dname,%entry)
did -ra $gettok(%list,1,44) $gettok(%entry,%list.entry,44)
inc %list.entry
}
var %line = 2, %lines = $hfind($dname,$+(%rte,.,%acct,.data.*),0,W)
while %line <= %lines {
var %list.entry = 1
while %list.entry <= $numtok(%list,44) {
var %entry = $hfind($dname,$+(%rte,.,%acct,.data.*),%line,W)
var %entry = $hget($dname,%entry)
did -a $gettok(%list,1,44) $gettok(%entry,%list.entry,44)
inc %list.entry
}
}
did -kc $dname 16 $hget($dname,$+(%rte,.,%acct,.Delivery)
did -kc $dname 27 $hget($danem,$+(%rte,.,%acct,.Billing)
var %balance = $calc(($ctime($did($dname,22)) - $ctime) / 1209600)
if ($left($did($dname,16),1) == D) || ($did($dname,16).sel == 1) {
did -ra $dname 34 $+($,$round($calc(%balance * 6.8),2))
}
elseif ($left($did($dname,16),1) == S) || ($did($dname,16).sel == 2) {
did -ra $dname 34 $+($,$round($calc(%balance * 3),2))
}
}
on *:dialog:Observer:sclick:17:{
var %id = $iif($did($dname,17).state,18,37)
did -a $dname %id $asctime($ctime,mmm dd yyyy)
}
on *:DIALOG:Observer:sclick:2,3: {
var %rte = $iif(!$did($dname,5).seltext,$did($dname,5),$did($dname,5).seltext)
[color:red].hadd -m $dname Rtes $didtok($dname,5,44) [/color]
var %acct = $iif(!$did($dname,7).seltext,$did($dname,7),$did($dname,7).seltext)
.hadd -m $dname $+(%rte,.,%acct,.Name) $did($dname,9)
.hadd -m $dname $+(%rte,.,%acct,.Address) $did($dname,11)
.hadd -m $dname $+(%rte,.,%acct,.Apt) $did($dname,13)
.hadd -m $dname $+(%rte,.,%acct,.Phone) $did($dname,15)
.hadd -m $dname $+(%rte,.,%acct,.Active) $did($dname,17).state
.hadd -m $dname $+(%rte,.,%acct,.Delivery) $did($dname,16)
.hadd -m $dname $+(%rte,.,%acct,.Billing) $did($dname,27)
.hadd -m $dname $+(%rte,.,%acct,.Expiry) $ctime($did($dname,22))
[color:red] var %list = 18,37,38,43,39,45
while %list {
var %lines = $addtok(%lines,$did($dname,$gettok(%list,1,44)).lines,44)
var %list = $remtok(%list,$gettok(%list,1,44),1,44)
}
var %lines = $gettok($sorttok(%lines,44,rn),1,44)
var %a = 1
var %list = 18,37,38,43,39,45
while %a <= %lines {
var %line
var %b = 1
while %b <= $numtok(%list,44) {
var %line = $puttok(%line,$did($dname,$gettok(%list,%b,44),%a),%b,44)
inc %b
}
.hadd -m $dname $+(%rte,.,%acct,.data.,%a) %line
inc %a
}
[/color] }