Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [phptimeclock]
- ;\\Don't let word wrap getcha, some lines are long
- ;\\ask for user&pass and create variables, Read(variable[,filename][,maxdigits][,option][,attempts][,timeout])
- exten => s,1,Answer
- exten => s,n(again),Wait(1)
- exten => s,n,Read(user,tm_userid,,,3,5)
- exten => s,n,NoOp(${user})
- exten => s,n,Wait(2)
- exten => s,n,Read(pass,tm_pass,,,3,5)
- exten => s,n,NoOp(${pass})
- ;\\Connect to db, if connection fails goto error context,MYSQL(Connect connid dhhost dbuser dbpass dbname)
- exten => s,n,MYSQL(Connect connid xxx.xxx.xxx.xxx phptimeclock phptimeclock phptimeclock)
- exten => s,n,NoOp(${connid})
- exten => s,n,GotoIf($["${connid}" = ""]?error,1)
- ;\\check empfullname and employee_passwd in employees table - if yes get tstamp set variable
- exten => s,n,MYSQL(Query resultid ${connid} SELECT tstamp FROM employees WHERE empfullname=${user} AND employee_passwd= encrypt("${pass}","xy"))
- exten => s,n,MYSQL(Fetch fetchid ${resultid} tstamp)
- exten => s,n,MYSQL(Clear ${resultid})
- exten => s,n,NoOp(${fetchid})
- exten => s,n,GotoIf($["${fetchid}" = "0"]?fail:next)
- exten => s,n(fail),Playback(tm_login_incorrect)
- exten => s,n,goto(again)
- exten => s,n(next),NoOp("moving On")
- exten => s,n,NoOp(${tstamp})
- ;check tstamp for null, first time login will be null so we set stat to in and jump to n(bad) line to complete Punch In, if not Null the stat will be changed in next section
- exten => s,n,Set(stat="in")
- exten => s,n,GotoIf($["${tstamp}" = "NULL"]?initial)
- ;\\check inout status from info where fullname=empfullname and timestamp=tstamp,
- exten => s,n,MYSQL(Query resultid ${connid} SELECT info.inout FROM info WHERE fullname=${user} AND timestamp= tstamp)
- exten => s,n,MYSQL(Fetch fetchid ${resultid} inout)
- exten => s,n,MYSQL(Clear ${resultid})
- exten => s,n,NoOp(${inout})
- ;\\check inout, toggle and set stat, So if their last action was Punch In now Punch Out or reverse
- exten => s,n,set(stat=${IF($[ ${inout} = in]?out:in)}) ; Set(foo=${IF($[ ${x} = 7]?tval:fval)})
- exten => s,n,NoOp(${stat})
- ;\\entry from Goto in tstamp was null
- exten => s,n(initial),NoOp(initial login)
- ;\\Make timestamp
- exten => s,n,MYSQL(Query resultid ${connid} SELECT unix_timestamp( utc_timestamp( ) ) )
- exten => s,n,MYSQL(Fetch fetchid ${resultid} time)
- exten => s,n,MYSQL(Clear ${resultid})
- exten => s,n,NoOp(${time})
- ;\\We use caller number to see where the punch comes from
- exten => s,n,NoOp("CallerID is "${CALLERID(num)})
- ;\\insert punch record in info tbl
- exten => s,n,MYSQL(Query resultid ${connid} UPDATE employees SET tstamp='${time}' WHERE empfullname=${user})
- exten => s,n,MYSQL(Clear ${resultid})
- ;\\then update tstamp in employees tble, this is used to set the users last action
- exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO info SET fullname=${user}, info.inout=${stat}, timestamp=${time}, ipaddress=${CALLERID(num)})
- exten => s,n,MYSQL(Fetch fetchid ${resultid})
- exten => s,n,MYSQL(Clear ${resultid})
- ;\\Say goodbye
- exten => s,n,GotoIf($["${stat}" = "in"]?in:out)
- exten => s,n(in),Playback(tm_clocked_in)
- exten => s,n,goto(done)
- exten => s,n(out),Playback(tm_clocked_out)
- exten => s,n,goto(done)
- ;\\So we can see if connection id and result id is increasing
- exten => s,n(done),NoOp("Connection ID is "${connid})
- exten => s,n,NoOp("Result ID is "${resultid})
- exten => s,n,Wait(1)
- exten => s,n,MYSQL(Clear ${resultid})
- exten => s,n,MYSQL(Disconnect ${connid})
- exten => h,1,mysql(clear ${resultid})
- exten => h,n,mysql(disconnect ${connid}
- exten => error,1,NoOp,MYSQL(Disconnect ${connid})
- exten => error,n,Playback(tm_contact_admin)
- exten => error,n,Hangup
- ;end of timeclock context
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement