home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / utilsf / login / bye.opl < prev    next >
Text File  |  1995-03-14  |  3KB  |  181 lines

  1. rem App LOGOFF
  2. rem    type 0
  3. rem    path "\opd"
  4. rem    ext "odb"
  5. rem    icon "\opd\bye.pic"
  6. rem  enda
  7.  
  8.  
  9. PROC bye:
  10.  
  11. REM BYE
  12. REM 12/16/89 23:20 pour LZ
  13. REM MODIF 01/01/90 20:56
  14. REM 06/13/92 13:22 series III
  15. REM LOGOUT AVEC COMPTABILISATION DU TEMPS
  16.  
  17.  
  18. LOCAL T$(15),N%,X%,Y%,Z%,EXIST%,DT$(30),Z$(1),H$(8),H,M,S,s1&,s2&,secnow&,LIMIT%,wk,slimit
  19. LOCAL ST,X,TC
  20. LOCAL HH,MM,SS
  21. global fj&,fm&,fa&,fh&,fn&,fs&
  22. local id%
  23. local mapid%
  24. local w1%
  25.  
  26.  
  27. LIMIT%=32
  28. loadm "\opo\timelib.opo"
  29.  
  30. IF NOT EXIST("LOGIN") 
  31.   CREATE "LOGIN",A,DATE1$,DATE2$,N%,TEMPS
  32.   CREATE "AUDIT",B,DATE1$,DATE2$,N%,TEMPS
  33.   FIRST
  34.   use a
  35.   A.DATE1$=datim$
  36.   A.DATE2$=datim$ 
  37.   A.N%=0
  38.   A.TEMPS=0
  39.   append
  40.   first
  41.   update
  42.   PRINT "New File"
  43.   CLOSE
  44. ELSE
  45.   OPEN "LOGIN",A,DATE1$,DATE2$,N%,TEMPS
  46.   IF EXIST ("AUDIT")
  47.     OPEN "AUDIT",B,DATE1$,DATE2$,N%,TEMPS
  48.   ELSE
  49.     CREATE "AUDIT",B,DATE1$,DATE2$,N%,TEMPS
  50.   ENDIF
  51. ENDIF
  52.  
  53. FIRST
  54. DT$=A.DATE1$
  55. H$=RIGHT$(DT$,8)
  56. H=VAL(LEFT$(H$,2)) :M=VAL(MID$(H$,4,2)) :S=VAL(RIGHT$(H$,2))
  57. HH=HOUR :MM=MINUTE :SS=SECOND
  58. ST=HMSOP:(H,M,S,HH,MM,SS)
  59. CLS
  60. print "LOGOFF: End of session... "
  61. print "        ";datim$  
  62. id%=gCREATE(60,30,110,50,1)
  63. gborder $203
  64.  
  65. gAT 10,10 
  66. gPRINT "Time for session:"
  67. gAT 10,20
  68. gPRINT HRS$:(ST)
  69. A.TEMPS=A.TEMPS+ST
  70. TC=A.TEMPS
  71. t$=hrs$:(tc)
  72. gAT 10,30
  73. gPRINT "Cumulative time :"
  74. gAT 10,40 
  75. gPRINT T$
  76. PAUSE -20*9
  77. key
  78. gclose id%
  79. OFF
  80. cls
  81. gCLS
  82. print "LOGON: Successful"
  83. print "LOGON: on "+datim$
  84.  
  85. secnow&=datetosecs(year,month,day,hour,minute,second)
  86.  
  87.   
  88. s1&=nextd&:(int(5),int(17),int(0),int(0))-86400*7
  89. s2&=nextd&:(int(7),int(19),int(0),int(0))
  90. wk=week(day,month,year)+(jour:=7) :slimit=19
  91. if weekend: and wk <= slimit
  92.   print "**Weekend :";left$(hrs$:(s2&-datetosecs(year,month,day,hour,minute,second)*1.),9);" **  [";slimit-wk;"]"
  93. endif
  94. id%=gCREATE(60,30,110,50,1)
  95. guse id%
  96. gBORDER $203
  97. gAT 10,10
  98. gPRINT "Last session on:"
  99. gAT 10,20
  100. gPRINT left$(dt$,15)
  101. gAT 10,30
  102. gPRINT "    ";RIGHT$(DT$,8)
  103. gAT 10,40
  104. gPRINT "Session #";a.n%
  105.  
  106. at 1,9
  107. print "<ENTER>"
  108. do
  109.   giprint "**Enter to continue**"
  110. until get=13
  111. cls
  112. rem  print "LOGON: Start of session. "
  113. rem  print "       ";datim$
  114. gclose id%
  115. gborder $204
  116. gstyle 1+8+16
  117. gat 19,23
  118. gprint "    Welcome  to  Series 3"
  119. gstyle 0
  120. gAT 18,70
  121. gprint " (Please press a key to start session )"
  122. rem w1%=gcreate (82,30,75,30,1)
  123. rem mapid%=gloadbit("logo.pic")
  124. rem guse w1%
  125. rem gcopy mapid%,0,0,75,29,3
  126. rem gclose mapid%
  127.   
  128. get
  129.  
  130. USE A 
  131. a.date2$=a.date1$
  132. a.date1$=datim$
  133. a.n%=a.n%+1
  134. UPDATE
  135. USE B
  136. if count>=limit%
  137.   first
  138.   erase
  139. endif
  140. b.date2$=a.date2$
  141. b.date1$=a.date1$
  142. b.n%=a.n%
  143. b.temps=st
  144. append
  145.  
  146. unloadm "\opo\timelib.opo"
  147. gcls
  148. cls
  149.  
  150. RETURN A.N%-1
  151. endp
  152.  
  153. proc jour:
  154.   return dow(day,month,year)
  155. endp
  156.  
  157. proc nextd&:(d&,h&,m&,s&)
  158.   local x&,fs&,d1&,d2&
  159.   if d&<jour:
  160.     d2&=d&+7
  161.   else
  162.     d2&=d&
  163.   endif
  164.   d1&=(d2&-dow(day,month,year))*86400
  165.   return datetosecs(year,month,day,0,0,0)+d1&+h&*3600+m&*3600+s&
  166. endp
  167.  
  168. proc weekend:
  169.   if jour:=5 and hour>=17
  170.     return -1
  171.   elseif jour: =6
  172.     return -1
  173.   elseif jour:=7 and hour<19
  174.     return -1
  175.   else 
  176.     return 0
  177.   endif
  178. endp
  179.      
  180.  
  181.