home *** CD-ROM | disk | FTP | other *** search
- PROCEDURE Costmenu
- SELECT 1
- USE Gettemp
- SELECT 2
- USE Postfile
- SELECT 4
- USE Supplier INDEX Supplier
- SELECT 5
- USE Personne
- *
- DO WHILE .T.
- CLEAR
- @ 2, 0 SAY '* * * * * * B I L L S & T I M E S H E E T S * * * * * *'
- @ 4,15 SAY ' 1> ENTER EMPLOYEE TIME SHEETS'
- @ 6,15 SAY ' 2> ENTER SUPPLIER BILLS'
- @ 8,15 SAY ' 3> UPDATE the Costbase'
- @ 10,15 SAY ' 4> EDIT the Postfile'
- @ 12, 0 SAY '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'
- @ 14,15 SAY 'Choose a number or press <ENTER> to exit.'
- @ 15, 0
- *
- WAIT ' ' TO Costing
- *
- DO CASE
- CASE Costing = '1'
- @ ROW(),0 SAY 'Preparing Employee Time Sheets'
- DO Costtime
- CASE Costing = '2'
- @ ROW(),0 SAY 'Preparing Supplier Bills'
- SELECT 8
- USE Invoices
- DO Costbill
- CASE Costing = '3'
- @ ROW(),0 SAY 'Preparing to UPDATE Costbase'
- SELECT 3
- USE Costbase INDEX Costname,Costjobs
- DO Costupda
- CASE Costing = '4'
- @ ROW(),0 SAY 'Selecting Posting File'
- Changing = 'Y'
- DO WHILE LEN(Changing) <> 0
- SELECT 2
- GO TOP
- IF EOF()
- CLEAR
- ? ' There are no entries in the Posting file.'
- WAIT
- Changing = ''
- ELSE
- GO BOTTOM
- CLEAR
- @ 3,10 SAY 'Edit Postfile '
- @ 5,10 SAY 'There are '+STR(RECNO(),5)+' file entries.'
- WAIT 'Which entry do you want to EDIT?' TO Recno
- *
- * Next line converts the Character value of Which into a
- * Numeric value. This is necessary in the 'ELSE' part.
- * The EDIT command must be given a NUMERIC value to edit.
- IF &Recno <= 0 .OR. &Recno > RECNO()
- ?
- WAIT ' Out of range: do you want to continue (Y or N)?' ;
- TO Changing
- ELSE
- GOTO &Recno
- CLEAR
- @ 1, 0 SAY 'Postfile Edit'
- @ 3, 0 SAY ' Entry'+ STR(RECNO(),5)
- @ 5, 0 SAY ' Check Date' GET Check_Date
- @ 6, 0 SAY ' Check Number' GET Check_Nmbr
- @ 7, 0 SAY ' Client' GET Client PICTURE '!!!'
- @ 8, 0 SAY ' Job Number' GET Job_Nmbr
- @ 9, 0 SAY ' Amount' GET Amount
- @ 10, 0 SAY ' Name' GET Name PICTURE '!!!!!!!!!!!!!!!!!!!!'
- @ 11, 0 SAY ' Description' GET Descrip PICTURE '!!!!!!!!!!!!!!!!!!!!'
- @ 12, 0 SAY ' Bill Number' GET Bill_Nmbr PICTURE '!!!!!!!'
- @ 13, 0 SAY ' Bill Date' GET Bill_Date
- @ 14, 0 SAY ' Hours' GET HOURS
- @ 15, 0 SAY ' Employee Number' GET Emp_Nmbr
- @ 19,10 SAY '^W to save, ESC to cancel changes.'
- READ
- @ 19,0
- WAIT 'Press (ENTER) to exit, any key to continue';
- TO Changing
- ENDIF
- ENDIF
- ENDDO Changing
- CASE LEN(Costing) = 0
- @ ROW(),0 SAY 'Returning to Main Menu'
- CLOSE DATABASE
- RETURN
- *
- OTHERWISE
- *
- ENDCASE Costing
- ENDDO
- *
- PROCEDURE Paymenu
- SELECT 2
- USE Postfile
- SELECT 3
- USE Costbase Index Costname,Costjobs
- SELECT 4
- USE Supplier INDEX Supplier
- SELECT 5
- USE Personne
- SELECT 6
- USE Checkfil
- DO WHILE .T.
- CLEAR
- @ 3, 0 SAY '* * * * * P A Y B I L L S & S A L A R I E S * * * * *'
- @ 5,20 SAY ' 1> PAY SALARIES'
- @ 7,20 SAY ' 2> PAY BILLS'
- @ 9, 0 SAY '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'
- @ 11,20 SAY 'Choose a number or press <ENTER>'
- @ 12, 0
- *
- WAIT ' ' TO Paying
- *
- DO CASE
- CASE Paying = '1'
- @ ROW(),0 SAY 'Preparing to Pay Salaries'
- SELECT 7
- USE WAGES
- DO Payemps
- CASE Paying = '2'
- @ ROW(),0 SAY 'Preparing to Pay Bills'
- * Count to see if there are any undeleted records in the
- * Postfile. If not, do the Paybills command file. If
- * there are some, ask if user still wants to pay bills.
- SELECT 2
- COUNT FOR .NOT. DELETED() TO Any
- IF Any = 0
- DO PayBills
- ELSE
- ?
- ? 'The Posting file contains '+STR(Any,5)+' bills'
- ? 'that have not been posted to the Costbase yet.'
- WAIT 'Do you still want to pay bills now (Y or N)?' To Continue
- IF UPPER(Continue) = 'Y'
- DO Paybills
- ENDIF
- ENDIF
- CASE LEN(Paying) = 0
- @ ROW(),0 SAY 'Returning to Main Menu'
- CLEAR ALL
- RETURN
- *
- OTHERWISE
- *
- ENDCASE Paying
- ENDDO
- PROCEDURE Depmenu
- SELECT 1
- USE Deptemp
- SELECT 8
- USE Deposits
- SELECT 10
- USE Invoices INDEX Invoices
- DO WHILE .T.
- CLEAR
- @ 3, 0 SAY '* * * * * D E P O S I T S & C H E C K B O O K * * * * *'
- @ 5,20 SAY ' 1> Enter In Coming Money'
- @ 7,20 SAY ' 2> Change our Check Number '
- @ 9,20 SAY ' 3> Change Checkbook Balance'
- @ 11, 0 SAY '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'
- @ 13,20 SAY 'Choose a number or press <ENTER>'
- @ 14, 0
- *
- WAIT ' ' TO Incoming
- *
- DO CASE
- CASE Incoming = '1'
- @ ROW(),0 SAY 'Loading In Coming Money'
- DO Deposits
- CASE Incoming = '2'
- RESTORE FROM Konstant
- CLEAR
- @ 3,20 SAY 'CHANGE CHECK NUMBER'
- @ 5, 0 SAY 'This is the next check number' GET NextCheck
- @ 6, 0 SAY 'To leave it unchanged, press <ENTER>'
- @ 7, 0 SAY 'To change it, type in the new number.'
- READ
- SAVE TO Konstant
- CASE Incoming = '3'
- RESTORE FROM Konstant
- CLEAR
- @ 3,20 SAY 'CHANGE CHECKBOOK BALANCE'
- @ 5, 0 SAY 'The current balance is:' GET MBalance
- @ 6, 0 SAY 'To leave it unchanged, press <ENTER>'
- @ 7, 0 SAY 'To change it, type in the new value.'
- READ
- SAVE TO Konstant
- CASE LEN(Incoming) = 0
- @ ROW(),0 SAY 'Returning to Main Menu'
- CLEAR ALL
- RETURN
- *
- OTHERWISE
- *
- ENDCASE Incoming
- ENDDO
- PROCEDURE Invmenu
- SELECT 1
- USE Invget
- SELECT 7
- USE Claddres
- SELECT 8
- USE Invoices INDEX Invoices
- SELECT 9
- USE Billings INDEX Billings, Billjobs
- *
- DO WHILE .T.
- CLEAR
- @ 2, 0 SAY '* * * * * * * C L I E N T B I L L I N G * * * * * * *'
- @ 4,20 SAY '1> Bill Clients by Job'
- @ 6,20 SAY '2> Edit/Print Invoices in Entry File'
- @ 8,20 SAY '3> Print Invoice Forms'
- @ 10, 0 SAY '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'
- @ 12,20 SAY 'Choose a number or press <ENTER>'
- @ 13, 0
- *
- WAIT ' ' TO Invoicing
- *
- DO CASE
- CASE Invoicing = '1'
- @ ROW(),0 SAY 'Preparing to Bill Clients by Job'
- DO Invoices
- CASE Invoicing = '2'
- @ ROW(),0 SAY 'Preparing Invoices in Entry File'
- DO Invedit
- CASE Invoicing = '3'
- @ ROW(),0 SAY 'Preparing to Print Invoice Forms'
- SELECT 1
- GO TOP
- CLEAR
- IF EOF()
- WAIT ;
- 'There are no INVOICES to be printed. Type any key to continue'
- ELSE
- * Invoices are all checked to see that only jobs for one client
- * are entered against an invoice. Necessary because they could
- * have been changed by editing.
- PUBLIC Aborted
- Aborted = .F.
- DO Invcheck
- IF .NOT. Aborted
- DO Invprint
- DO Invupdat
- ENDIF
- ENDIF
- CASE LEN(Invoicing) = 0
- @ ROW(),0 SAY 'Returning to Main Menu'
- CLEAR ALL
- RETURN
- *
- OTHERWISE
- *
- ENDCASE Invoicing
- ENDDO
- PROCEDURE Jobcosts
- SELECT 2
- USE Postfile
- SELECT 3
- USE Costbase INDEX Costjobs,Costname
- SELECT 9
- USE Billings INDEX Billjobs,Billings
- *
- * First, check to see whether there are still costs that have not been
- * posted into the Costbase from the Postfile
- SELECT 2
- COUNT FOR .NOT. DELETED() TO Any
- IF Any > 0
- ?
- ? 'There are '+STR(Any,5)+' entries in the Postfile.'
- WAIT 'Do you still want to do the Job Costs (Y or N). ' TO Continue
- IF UPPER(Continue) <> 'Y'
- RETURN
- ENDIF
- ENDIF
- *
- RESTORE FROM Konstant
- *
- * Initialize memory variables
- Random = 0
- Again = ' '
- *
- DO WHILE LEN(Again) <> 0
- MClient = ' '
- MJob_Nmbr = ' '
- Hardcopy = ' '
- Number = 'N'
- *
- CLEAR
- @ 2,11 SAY ' JOB COST SUMMARY :'
- @ 4,11 SAY 'ENTER CLIENT CODE ' GET MClient PICTURE '!!!'
- @ 5,11 SAY ' ENTER JOB NUMBER ' GET MJob_Nmbr PICTURE '!!!!'
- @ 6,11 SAY ' P to PRINT ' GET Hardcopy PICTURE '!'
- @ 7,11 SAY 'SHOW BILL NUMBERS ' GET Number PICTURE '!'
- *
- Getting = SPACE(1)
- DO WHILE LEN(Getting) <> 0
- READ SAVE
- @ 8,0 CLEAR
- IF ' ' $ MClient
- @ 9,10 SAY 'CLIENT code is 3 characters.'
- ENDIF
- IF VAL(MJob_Nmbr) >99 .AND. VAL(MJob_Nmbr) <1000 .OR. VAL(MJob_Nmbr) <=0
- * Clear to end of screen
- @ 10,10 SAY 'The JOB NUMBER is wrong.'
- @ 11,15 SAY 'Agency jobs are 2 digits,'
- @ 12,15 SAY 'Client jobs are 4 digits.'
- ENDIF
- @ 14,10 SAY 'Type any key to correct it,'
- WAIT '<ENTER> to finish.' TO Getting
- @ 14,0
- ENDDO
- Again = Getting
- CLEAR GETS
- *
- @ 8,0 CLEAR
- ACCEPT ' OPTIONAL JOB DESCRIPTION ' TO Message
- Message = TRIM(UPPER(Message))
- *
- ?
- ?
- CLEAR
- IF Hardcopy = 'P'
- SET PRINT ON
- ENDIF
- *
- IF Number = 'Y'
- Switch = 'Bill #'
- ELSE
- Switch = SPACE(0)
- ENDIF
- *
- ? DTOC(Date()) + ': COST SUMMARY' + ' FOR &MClient-'
- ?? &MJob_Nmbr
- ? SPACE(12) + Message
- ?
- ? 'DATE NAME DESCRIPTION AMOUNT';
- +' &Switch'
- ?
- SELECT 3
- IF Number = 'Y'
- Switch = ',Bill_Nmbr'
- ELSE
- Switch = ''
- ENDIF
- *
- STORE 0 TO Costs, Inside, Buyouts, HowMany, LineCnt, Spacer
- FIND &MJob_Nmbr
- IF RECNO() <> 0
- DO WHILE Job_Nmbr = VAL(MJob_Nmbr) .AND. .NOT. EOF()
- IF .NOT. DELETED()
- ? Bill_Date, Name, Descrip+' ', Amount &Switch
- *
- IF Check_Nmbr = '--'
- Inside = Inside + Amount
- ELSE
- Buyouts = Buyouts + Amount
- ENDIF
- Costs = Costs + Amount
- *
- LineCnt = LineCnt + 1
- Spacer = Spacer + 1
- *
- IF Spacer = 10
- Spacer = 0
- ?
- ENDIF
- *
- IF LineCnt = 50
- * formfeed with print on
- IF Hardcopy = 'P'
- SET CONSOLE OFF
- ? CHR(12)
- SET CONSOLE ON
- SET PRINT OFF
- ENDIF
- *
- STORE 0 TO LineCnt, Spacer
- *
- ? 'DATE NAME DESCRIPTION';
- + SPACE(16) + 'AMOUNT'
- ?
- ENDIF
- ENDIF
- SKIP
- ENDDO
- ENDIF
- *
- ? SPACE(54) + '----------'
- ? STR(Inside,9,2) +' inside costs + '+ STR(Buyouts,9,2);
- + ' buyouts = TOTAL: ' + STR(Costs,9,2)
- ?
- Min = Inside + 1.18 * Buyouts
- ? SPACE(15) + 'IF ALL COSTS ARE IN, bill this amount: ' + STR(Min,9,2)
- ?
- LineCnt = LineCnt + 5
- Spacer = 0
- IF LineCnt = 40
- LineCnt = 0
- IF Hardcopy = 'P'
- SET CONSOLE OFF
- ? CHR(12)
- SET CONSOLE ON
- SET PRINT OFF
- ENDIF
- ELSE
- ?
- ?
- ?
- ENDIF
- *
- SELECT 9
- ? 'BILLED TO DATE FOR &MClient-'
- ?? &MJob_Nmbr
- ?
- ? 'DATE INV# TAXABLE TAX TAX FREE DESCRIPTION'
- ?
- LineCnt = LineCnt + 4
- STORE 0 TO Costs, T, S, F
- *
- STORE 0 TO Costs, Inside, Buyouts, HowMany, LineCnt, Spacer
- FIND &MJob_Nmbr
- IF RECNO() <> 0
- DO WHILE Job_Nmbr = VAL(MJob_Nmbr) .AND. .NOT. EOF()
- IF .NOT. DELETED()
- ? Inv_Date, Inv_Nmbr, STR(Taxable,9,2) + ' ' +;
- STR(Sales_Tax,9,2) + ' ', TaxFree, Descrip
- T = T + Taxable
- S = S + Sales_Tax
- F = F + TaxFree
- LineCnt = LineCnt + 1
- Spacer = Spacer + 1
- *
- IF Spacer = 10
- Spacer = 0
- ?
- ENDIF
- *
- IF LineCnt = 50
- LineCnt = 0
- Spacer = 0
- *
- IF Hardcopy = 'P'
- SET CONSOLE OFF
- ? CHR(12)
- SET CONSOLE ON
- SET PRINT OFF
- ENDIF
- *
- ? 'DATE INV# TAXABLE TAX TAX FREE';
- + ' DESCRIPTION'
- ?
- ENDIF
- ENDIF
- SKIP
- ENDDO
- ENDIF
- *
- Costs = T + S + F
- ? SPACE(15) + '--------- --------- ---------'
- ? ' SUB-TOTALS: '+STR(T,9,2) + ' '+STR(S,9,2)+' ' + STR(F,9,2)
- ? SPACE(37) + '----------'
- ? SPACE(30) + 'BILLED ' + STR(T+F,9,2)
- IF S > 0
- ?? ' + tax.'
- ENDIF
- *
- IF Hardcopy = 'P'
- SET CONSOLE OFF
- ? CHR(12)
- SET CONSOLE ON
- SET PRINT OFF
- ENDIF
- *
- ? 'Type any key to continue,'
- WAIT 'press <ENTER> to exit.' TO Again
- ENDDO Again
- *
- CLEAR ALL
- RETURN
- *
- PROCEDURE Indexing
- USE Costbase
- GO BOTTOM
- Temp = STR(RECNO(),5)
- SET TALK ON
- *
- CLEAR
- @ 5,0 SAY 'Indexing ' + Temp + ' Costbase records'
- ? 'by JOB NUMBER to Costjobs.ndx:'
- ERASE Costjobs.ndx
- INDEX ON Job_Nmbr TO Costjobs
- ?
- ?
- ? 'Indexing ' + Temp + ' Costbase records'
- ? 'by SUPPLIER NAME to Costname.ndx:'
- ERASE Costname.ndx
- INDEX ON Name to Costname
- *
- USE Billings
- GO BOTTOM
- Temp = STR(RECNO(),5)
- ?
- ?
- ? 'Indexing ' + Temp + ' Billings records'
- ? 'by INVOICE NUMBER to Billings.ndx:'
- ERASE Billings.ndx
- INDEX ON Inv_Nmbr TO Billings
- ?
- ?
- ? 'Indexing ' + Temp + ' Billings records'
- ? 'by JOB NUMBER to Billjobs.ndx:'
- ERASE Billjobs.ndx
- INDEX ON Job_Nmbr TO Billjobs
- *
- USE Invoices
- GO BOTTOM
- Temp = STR(RECNO(),5)
- ?
- ?
- ? 'Indexing ' + Temp + ' Invoice records'
- ? 'by INVOICE NUMBER to Invoices.ndx:'
- ERASE Invoices.ndx
- INDEX ON Inv_Nmbr TO Invoices
- USE
- *
- SET TALK OFF
- RETURN
-