409 lines
13 KiB
Plaintext
Executable File
409 lines
13 KiB
Plaintext
Executable File
MESSAGE "Writing deposit procedures to library..."
|
|
|
|
PROC CLOSED Deposit_Table_Wait(M_Tbl, R, C, F_Num)
|
|
USEVARS Autolib, Rpt_St
|
|
PRIVATE Answer_Menu, Fld_Prompt, Old_Amt, New_Amt
|
|
DYNARRAY Fld_Prompt[]
|
|
|
|
PROC Ask_Deposit_Book()
|
|
PRIVATE
|
|
File_No, Id, Re, From_Date, To_Date, Button
|
|
File_No = ""
|
|
Id = ""
|
|
Re = ""
|
|
From_Date = ""
|
|
To_Date = ""
|
|
FORMKEY
|
|
SHOWPULLDOWN
|
|
ENDMENU
|
|
CLEARSPEEDBAR
|
|
PROMPT "Enter selection criteria. Press Search to find matches, Cancel to quit."
|
|
MOUSE SHOW
|
|
SHOWDIALOG "Deposit Book Selection Criteria"
|
|
@4, 15 HEIGHT 15 WIDTH 50
|
|
@1, 6 ?? "File No(s)."
|
|
ACCEPT @1,20
|
|
WIDTH 18 "A60" PICTURE "*!"
|
|
TAG ""
|
|
TO File_No
|
|
@3, 6 ?? "Id(s)"
|
|
ACCEPT @3,20
|
|
WIDTH 18 "A60" PICTURE "*!"
|
|
TAG ""
|
|
TO Id
|
|
@5, 6 ?? "Regarding"
|
|
ACCEPT @5,20
|
|
WIDTH 18 "A60" PICTURE "*!"
|
|
TAG ""
|
|
TO Re
|
|
@7, 6 ?? "From Date"
|
|
ACCEPT @7,20
|
|
WIDTH 11 "D" PICTURE "#[#]/##/##"
|
|
TAG ""
|
|
TO From_Date
|
|
@9, 6 ?? "To Date"
|
|
ACCEPT @9,20
|
|
WIDTH 11 "D" PICTURE "#[#]/##/##"
|
|
TAG ""
|
|
TO To_Date
|
|
PUSHBUTTON @11,12 WIDTH 10
|
|
"~S~earch"
|
|
OK
|
|
DEFAULT
|
|
VALUE ""
|
|
TAG "OK"
|
|
TO Button
|
|
PUSHBUTTON @11,25 WIDTH 10
|
|
"~C~ancel"
|
|
CANCEL
|
|
VALUE ""
|
|
TAG "Cancel"
|
|
TO Button
|
|
ENDDIALOG
|
|
PROMPT ""
|
|
|
|
RETURN
|
|
if (RetVal = True) then
|
|
MESSAGE "Searching..."
|
|
ECHO SLOW
|
|
|
|
{Ask} TYPEIN "PAYMENTS" ENTER CHECK
|
|
if NOT ISBLANK(From_Date) then
|
|
TYPEIN (">= " + STRVAL(From_Date))
|
|
endif
|
|
if NOT ISBLANK(From_Date) And NOT ISBLANK(To_Date) then
|
|
TYPEIN (", ")
|
|
endif
|
|
if NOT ISBLANK(To_Date) then
|
|
TYPEIN ("<= " + STRVAL(To_Date))
|
|
endif
|
|
[File_No] = File_No
|
|
[Id] = Id
|
|
[Regarding] = Regarding
|
|
DO_IT!
|
|
Subset_Table = PRIVDIR() + "SUBSET"
|
|
RENAME TABLE() Subset_Table
|
|
MOVETO ("Payments(Q)")
|
|
CLEARIMAGE ; erase query image
|
|
MOVETO Subset_Table
|
|
if ISEMPTY(Subset_Table) then
|
|
CLEARIMAGE
|
|
No_Matches_Found()
|
|
else ; copy form and display on screen
|
|
COPYFORM "Payments" "2" Subset_Table "1"
|
|
View_Answer_Table(Subset_Table, 4, 0)
|
|
SLEEP 10000
|
|
; Payments_Answer_Wait()
|
|
endif
|
|
endif
|
|
FORMKEY
|
|
MOUSE HIDE
|
|
ENDPROC; Ask_Deposit_Book
|
|
|
|
PROC Edit_Mode_Menu()
|
|
MENUENABLE "Main\Mode"
|
|
MENUDISABLE "Edit\Mode"
|
|
MENUDISABLE "Reports"
|
|
ENDPROC; Edit_Mode_Menu
|
|
|
|
PROC Main_Mode_Menu()
|
|
MENUENABLE "Edit\Mode"
|
|
MENUENABLE "Reports"
|
|
MENUDISABLE "Main\Mode"
|
|
ENDPROC; Main_Mode_Menu
|
|
|
|
PROC Edit_Mode()
|
|
if (SYSMODE() = "Main") then
|
|
COEDITKEY
|
|
Edit_Mode_Menu()
|
|
Arrive_Row()
|
|
Arrive_Field()
|
|
NEWWAITSPEC
|
|
MESSAGE "MENUSELECT"
|
|
TRIGGER "ARRIVEFIELD", "ARRIVEROW", "DEPARTROW"
|
|
KEY -60, -66, -83, 43, 45
|
|
; DO_IT Clear Delete + -
|
|
; F2 F8 DEL
|
|
endif
|
|
RETURN 1
|
|
ENDPROC; Edit_Mode
|
|
|
|
PROC Main_Mode()
|
|
if (HELPMODE() = "LookupHelp") then ; if in lookup help and pressed
|
|
RETURN 0 ; F2 to select, do not exit wait loop
|
|
endif
|
|
if NOT ISVALID() then ; if field data is not valid,
|
|
MESSAGE "Error: The data for this field is not valid."
|
|
RETURN 1 ; do not exit wait
|
|
endif
|
|
if ISFIELDVIEW() then ; if in field view, exit field view
|
|
DO_IT!
|
|
RETURN 1
|
|
endif
|
|
DO_IT! ; return to main mode
|
|
if (SYSMODE() = "Main") then ; record posted successfully
|
|
Main_Mode_Menu()
|
|
Arrive_Field()
|
|
NEWWAITSPEC
|
|
MESSAGE "MENUSELECT"
|
|
TRIGGER "ARRIVEFIELD"
|
|
KEY -66, -67
|
|
; Clear Edit
|
|
; F8 F9
|
|
else ECHO NORMAL ; key violation exists
|
|
DO_IT!
|
|
endif
|
|
RETURN 1
|
|
ENDPROC; Main_Mode
|
|
|
|
PROC Arrive_Field()
|
|
SPEEDBAR "~F10~ Menu":-68
|
|
PROMPT Fld_Prompt[FIELD()]
|
|
RETURN 0
|
|
ENDPROC; Arrive_Field
|
|
|
|
PROC Arrive_Row()
|
|
RETURN 0
|
|
ENDPROC; Arrive_Row
|
|
|
|
PROC Update_Balances()
|
|
PRIVATE Prev_Bal, Rec_No, Row_No
|
|
RETURN
|
|
ECHO OFF
|
|
Rec_No = RECNO()
|
|
Row_No = ROWNO()
|
|
if ATFIRST() then
|
|
[Balance] = [Amount]
|
|
else UP
|
|
Prev_Bal = [Balance]
|
|
DOWN
|
|
[Balance] = Prev_Bal + [Amount]
|
|
endif
|
|
Prev_Bal = [Balance]
|
|
WHILE NOT ATLAST()
|
|
DOWN
|
|
[Balance] = Prev_Bal + [Amount]
|
|
Prev_Bal = [Balance]
|
|
ENDWHILE
|
|
MOVETO RECORD Rec_No
|
|
FOR I FROM 1 TO Row_No - 1
|
|
UP
|
|
ENDFOR
|
|
MOVETO RECORD Rec_No
|
|
ECHO NORMAL
|
|
ENDPROC; Update_Balances
|
|
|
|
PROC Post_It()
|
|
RETURN
|
|
if ISBLANK([Item_No]) then
|
|
[Item_No] = 1
|
|
endif
|
|
WHILE TRUE
|
|
POSTRECORD NOPOST LEAVELOCKED
|
|
if RetVal then
|
|
QUITLOOP
|
|
else [Item_No] = [Item_No] + 1
|
|
endif
|
|
ENDWHILE
|
|
if (Old_Amt <> [Amount]) then
|
|
Update_Balances()
|
|
endif
|
|
ENDPROC; Post_It
|
|
|
|
PROC Depart_Row() ; do not leave row if essential information is lacking
|
|
RETURN 0
|
|
; test for valid field data
|
|
if NOT ISVALID() then
|
|
Message_Box("Invalid Field Entry", "The data for this field is invalid.")
|
|
RETURN 1
|
|
endif
|
|
; depart row if record is new & blank
|
|
if RECORDSTATUS("New") AND NOT RECORDSTATUS("Modified") then
|
|
RETURN 0
|
|
endif
|
|
; delete row if all fields are blank
|
|
if ISBLANK([File_No]) AND ISBLANK([Date]) AND ISBLANK([Acnt_No]) AND
|
|
ISBLANK([Amount]) AND ISBLANK([Billed]) then
|
|
DEL
|
|
RETURN 0
|
|
endif
|
|
; test for missing field entries
|
|
if ISBLANK([Date]) then
|
|
Message_Box("Incomplete Entry", "This record requires a date for the transaction.")
|
|
MOVETO [Date]
|
|
PROMPT Fld_Prompt[FIELD()]
|
|
RETURN 1
|
|
endif
|
|
if ISBLANK([File_No]) then
|
|
Message_Box("Incomplete Entry", "This record requires a file number for the transaction.")
|
|
MOVETO [File_No]
|
|
PROMPT Fld_Prompt[FIELD()]
|
|
RETURN 1
|
|
endif
|
|
if ISBLANK([Acnt_No]) then
|
|
Message_Box("Incomplete Entry", "This record requires an account number.")
|
|
MOVETO [Acnt_No]
|
|
PROMPT Fld_Prompt[FIELD()]
|
|
RETURN 1
|
|
endif
|
|
if ISBLANK([Amount]) then
|
|
Message_Box("Incomplete Entry", "This record requires an amount.")
|
|
MOVETO [Amount]
|
|
PROMPT Fld_Prompt[FIELD()]
|
|
RETURN 1
|
|
endif
|
|
if ISBLANK([Billed]) then
|
|
Message_Box("Incomplete Entry", "Please enter (Y/N) for billed.")
|
|
MOVETO [Billed]
|
|
PROMPT Fld_Prompt[FIELD()]
|
|
RETURN 1
|
|
endif
|
|
Post_It() ; post record & update balances if needed
|
|
RETURN 0
|
|
ENDPROC; Depart_Row
|
|
|
|
PROC Deposit_Table_Wait_Proc(TriggerType, EventInfo, CycleNumber)
|
|
PRIVATE Key_Code, Menu_Pick, Temp_File_No, Temp_Date, Temp_Empl_Num
|
|
if (TriggerType = "ARRIVEFIELD") then
|
|
RETURN Arrive_Field()
|
|
endif
|
|
if (TriggerType = "DEPARTFIELD") then
|
|
RETURN Depart_Field()
|
|
endif
|
|
if (TriggerType = "ARRIVEROW") then
|
|
RETURN Arrive_Row()
|
|
endif
|
|
if (TriggerType = "DEPARTROW") then
|
|
RETURN Depart_Row()
|
|
endif
|
|
if (EventInfo["TYPE"] = "MESSAGE") then
|
|
Menu_Pick = EventInfo["MENUTAG"]
|
|
SWITCH
|
|
CASE (Menu_Pick = "Edit\Mode") : RETURN Edit_Mode()
|
|
CASE (Menu_Pick = "Main\Mode") : if (Depart_Row() = 0) then
|
|
if ISEMPTY(M_Tbl) then
|
|
RETURN Clear_Table()
|
|
else RETURN Main_Mode()
|
|
endif
|
|
else RETURN 1
|
|
endif
|
|
CASE (Menu_Pick = "R_Summary") : ECHO OFF
|
|
Print_Report("Payments", "1", "")
|
|
Trust_Table_Menu()
|
|
Arrive_Field()
|
|
RETURN 1
|
|
CASE (Menu_Pick = "R_Detailed"): ECHO OFF
|
|
Print_Report("Payments", "2", "")
|
|
Trust_Table_Menu()
|
|
Arrive_Field()
|
|
RETURN 1
|
|
CASE (Menu_Pick = "R_Cancel") : RETURN 1
|
|
CASE (Menu_Pick = "Return\Yes") : if (SYSMODE() = "Main") then
|
|
RETURN Clear_Table()
|
|
else if (Depart_Row() = 0) then
|
|
RETURN Clear_Table()
|
|
else RETURN 1
|
|
endif
|
|
endif
|
|
CASE (Menu_Pick = "Return\No") : RETURN 1
|
|
OTHERWISE : SOUND 400 100 RETURN 1
|
|
ENDSWITCH
|
|
endif
|
|
if (EventInfo["TYPE"] = "KEY") then
|
|
Key_Code = EventInfo["KEYCODE"]
|
|
SWITCH
|
|
; F9 - COEDIT
|
|
CASE (Key_Code = -67) : RETURN Edit_Mode()
|
|
; F2 - DO_IT!
|
|
CASE (Key_Code = -60) : if (Depart_Row() = 0) then
|
|
if ISEMPTY(M_Tbl) then
|
|
RETURN Clear_Table()
|
|
else RETURN Main_Mode()
|
|
endif
|
|
else RETURN 1
|
|
endif
|
|
; F8 - CLEAR
|
|
CASE (Key_Code = -66) : if (SYSMODE() = "Main") then
|
|
RETURN Clear_Table()
|
|
else if (Depart_Row() = 0) then
|
|
RETURN Clear_Table()
|
|
else RETURN 1
|
|
endif
|
|
endif
|
|
; DELETE
|
|
CASE (Key_Code = -83) : if (Display_Delete_Box() = 1) then
|
|
Update_Balances()
|
|
endif
|
|
RETURN 1
|
|
; + to add one day to current date
|
|
CASE (Key_Code = 43) : RETURN Change_Date(43)
|
|
; - to subtract one day from current date
|
|
CASE (Key_Code = 45) : RETURN Change_Date(45)
|
|
OTHERWISE : SOUND 400 100 RETURN 1
|
|
ENDSWITCH
|
|
endif
|
|
SOUND 400 100 RETURN 1
|
|
ENDPROC; Deposit_Table_Wait_Proc
|
|
|
|
PROC Main_Mode_Wait()
|
|
Arrive_Field()
|
|
WAIT TABLE
|
|
PROC "Deposit_Table_Wait_Proc"
|
|
MESSAGE "MENUSELECT"
|
|
TRIGGER "ARRIVEFIELD"
|
|
KEY -66, -67
|
|
; Clear Edit
|
|
; F8 F9
|
|
ENDWAIT
|
|
ENDPROC; Main_Mode_Wait
|
|
|
|
PROC Edit_Mode_Wait()
|
|
Arrive_Row()
|
|
Arrive_Field()
|
|
WAIT TABLE
|
|
PROC "Deposit_Table_Wait_Proc"
|
|
MESSAGE "MENUSELECT"
|
|
TRIGGER "ARRIVEFIELD", "ARRIVEROW", "DEPARTROW"
|
|
KEY -60, -66, -83, 43, 45
|
|
; DO_IT Clear Delete + -
|
|
; F2 F8 DEL
|
|
ENDWAIT
|
|
ENDPROC; Edit_Mode_Wait
|
|
|
|
; main body of procedure follows
|
|
Fld_Prompt["Date"] = " Date of transaction"
|
|
Fld_Prompt["File_No"] = " F1 to select file no. from file cabinet"
|
|
Fld_Prompt["Empl_Num"] = " F1 to select employee for this transaction"
|
|
Fld_Prompt["T_Code"] = " F1 to select code describing transaction"
|
|
Fld_Prompt["Acnt_No"] = " Account number for this entry"
|
|
Fld_Prompt["Amount"] = " Dollar amount of this transaction"
|
|
Fld_Prompt["Billed"] = " Y if transaction has been billed, N if not"
|
|
Fld_Prompt["Note"] = " Notation to help describe this entry"
|
|
Answer_Menu = "Deposit_Answer_Menu"
|
|
ECHO OFF
|
|
VIEW M_Tbl
|
|
Deposit_Table_Menu()
|
|
WINDOW MOVE GETWINDOW() TO -100, -100
|
|
PICKFORM F_Num
|
|
WINDOW HANDLE CURRENT TO Form_Win
|
|
DYNARRAY Win_Atts[]
|
|
Win_Atts["ORIGINROW"] = R
|
|
Win_Atts["ORIGINCOL"] = C
|
|
Win_Atts["CANMOVE"] = False
|
|
Win_Atts["CANRESIZE"] = False
|
|
Win_Atts["CANCLOSE"] = False
|
|
WINDOW SETATTRIBUTES Form_Win FROM Win_Atts
|
|
ECHO NORMAL
|
|
KEYENABLE -31
|
|
if (SYSMODE() = "Main") then
|
|
Main_Mode_Wait()
|
|
else Edit_Mode_Wait()
|
|
endif
|
|
KEYDISABLE -31
|
|
CLEARSPEEDBAR
|
|
MESSAGE ""
|
|
PROMPT ""
|
|
ENDPROC
|
|
WRITELIB Off_Lib Deposit_Table_Wait
|
|
|
|
RELEASE PROCS ALL |