DO WHILE .T. SET COLOR TO 11 @ 4,0 CLEAR IF RNUM = 0 @ 5,0 SAY 'RECORD or INV # - ' GET RNUM READ PRESSED = LASTKEY() IF PRESSED = 27 RETURN ENDIF ELSE @ 5,0 SAY 'RECORD # - ' + STR(RNUM,8,0) ENDIF SELECT 1 IF RNUM > 10000 LOCATE FOR INUMBER = RNUM ? ' ' ? 'Searching ... please wait' IF EOF() ? ' ' ? 'Invoice not found' ? ' ' wait @ 4,0 CLEAR LOOP ENDIF ELSE GOTO RNUM IF INUMBER = 0 ? CHR(7) ? ' ' ? 'NOT A INVOICE' ? ' ' WAIT RETURN ENDIF ENDIF STORE CUSTNUM TO MCUSTNUM SELECT 2 SET ORDER TO 1 @ 4,0 CLEAR SEEK MCUSTNUM STORE 4 TO ROW @ ROW,0 SAY NAME @ ROW,60 SAY STR(PHONE,13,0) STORE ROW+1 TO ROW @ ROW,0 SAY ADDRESS STORE ROW+1 TO ROW @ ROW,0 SAY CSZ STORE ROW+2 TO ROW SET COLOR TO 2 STORE 8 TO ROW @ ROW,0 SAY SEP SET COLOR TO 11 SELECT 1 GOTO RNUM STORE COMMENTS TO MCOMMENTS @ ROW-1,0 SAY 'COMMENTS - ' GET MCOMMENTS STORE LCOMMENT1 TO MLCOMMENT1 STORE LDATE1 TO MLDATE1 STORE LCOMMENT2 TO MLCOMMENT2 STORE LDATE2 TO MLDATE2 STORE LCOMMENT3 TO MLCOMMENT3 STORE LDATE3 TO MLDATE3 STORE ROW+1 TO ROW SET COLOR TO 11 @ ROW,0 SAY 'INV # ' + STR(INUMBER,5,0) STORE TOTCOST+TAX TO YY @ ROW,15 SAY 'DUE DATE - ' + DTOC(IDUEDATE) @ ROW,40 SAY 'AMT DUE - ' + STR(YY,10,2) IF IDUEDATE <= DATE() @ ROW,62 SAY 'NOT PAST DUE' ELSE STORE IDUEDATE - DATE() TO II @ ROW,62 SAY STR(II,3,0) + ' DAYS PAST DUE' ENDIF SET COLOR TO 2 STORE ROW+1 TO ROW STORE 11 TO ROW @ ROW,0 SAY SEP SET COLOR TO 11 *@ ROW,33 SAY ' PAYMENT LIST ' STORE ROW+1 TO ROW IF AMTPAID = 0 STORE ROW+1 TO ROW @ ROW,0 SAY 'NO PAYMENTS MADE' STORE ROW+1 TO ROW STORE 0 TO MAMTPAID STORE TOTCOST+TAX-MAMTPAID TO YY ELSE SET COLOR TO 7 @ 11,1 SAY ' DATE ' @ 11,11 SAY ' CHECK NUM ' @ 11,26 SAY ' AMT PAID ' @ 11,39 SAY ' DEP # ' SET COLOR TO 11 @ ROW,0 SAY DTOC(IRECDATE) + ' ' + CHECKNUM + ' ' + STR(AMTPAID,10,2) + ' ' + DEPNUM STORE ROW+1 TO ROW IF AMTPAID1 <> 0 @ ROW,0 SAY DTOC(IRECDATE1) + ' ' + CHECKNUM1 + ' ' + STR(AMTPAID1,10,2) + ' ' + DEPNUM1 STORE ROW+1 TO ROW ENDIF IF AMTPAID2 <> 0 @ ROW,0 SAY DTOC(IRECDATE2) + ' ' + CHECKNUM2 + ' ' + STR(AMTPAID2,10,2) + ' ' + DEPNUM2 STORE ROW+1 TO ROW ENDIF IF AMTPAID3 <> 0 @ ROW,0 SAY DTOC(IRECDATE3) + ' ' + CHECKNUM3 + ' ' + STR(AMTPAID3,10,2) + ' ' + DEPNUM3 STORE ROW+1 TO ROW ENDIF @ ROW,25 SAY '----------' STORE ROW+1 TO ROW STORE AMTPAID+AMTPAID1+AMTPAID2+AMTPAID3 TO MAMTPAID STORE TOTCOST+TAX-MAMTPAID TO YY @ ROW,22 SAY MAMTPAID @ ROW,40 SAY 'AMT DUE - ' + STR(YY,10,2) STORE ROW+1 TO ROW ENDIF STORE 19 TO ROW SET COLOR TO 2 @ ROW,0 SAY SEP SET COLOR TO 11 STORE ROW+1 TO ROW STORE ' ' TO SEL *IF STR(YY,12,2) = STR(MAMTPAID,12,2) * @ ROW,40 SAY 'INVOICE IS PAID IN FULL!!!' *ENDIF @ ROW,0 SAY 'LATE COMMENTS - ' GET MLCOMMENT1 @ ROW,70 GET MLDATE1 STORE ROW+1 TO ROW @ ROW,0 SAY ' ' GET MLCOMMENT2 @ ROW,70 GET MLDATE2 STORE ROW+1 TO ROW @ ROW,0 SAY ' ' GET MLCOMMENT3 @ ROW,70 GET MLDATE3 CLEAR GETS @ 24,0 SAY 'Enter payments or late comments (Y/N) - ' GET SEL PICTURE '!' READ DO LOCKWAIT REPLACE COMMENTS WITH MCOMMENTS REPLACE LCOMMENT1 WITH MLCOMMENT1 REPLACE LDATE1 WITH MLDATE1 REPLACE LCOMMENT2 WITH MLCOMMENT2 REPLACE LDATE2 WITH MLDATE2 REPLACE LCOMMENT3 WITH MLCOMMENT3 REPLACE LDATE3 WITH MLDATE3 UNLOCK IF PRESSED = 27 .OR. SEL <> 'Y' STORE 0 TO RNUM EXIT ENDIF STORE ROW+2 TO ROW @ ROW+4,0 SAY SPACE(80) DO WHILE .T. STORE ' ' TO RDATE STORE 0.00 TO LLP STORE DTOC(DATE()) TO MDDD SET FUNCTION 10 TO SUBSTR(MDDD,1,2) + SUBSTR(MDDD,4,2) + SUBSTR(MDDD,9,2) STORE IRECDATE TO LL1 IF DTOC(IRECDATE) <> ' / / ' .AND. DTOC(IRECDATE1) <> ' / / '.AND. DTOC(IRECDATE2) <> ' / / '.AND. DTOC(IRECDATE3) <> ' / / ' ? CHR(7) @ 23,0 CLEAR @ 23,0 SAY 'INVOICE CANNOT BE POSTED TO OVER 4 TIMES !!!' WAIT EXIT ENDIF STORE ' ' TO RT STORE DATE() TO MDATE STORE COMMENTS TO MCOMMENTS STORE SPACE(LEN(CHECKNUM)) TO MCHECKNUM STORE SPACE(LEN(DEPNUM)) TO MDEPNUM STORE LCOMMENT1 TO MLCOMMENT1 STORE LDATE1 TO MLDATE1 STORE LCOMMENT2 TO MLCOMMENT2 STORE LDATE2 TO MLDATE2 STORE LCOMMENT3 TO MLCOMMENT3 STORE LDATE3 TO MLDATE3 STORE 0 TO MAMT STORE 20 TO ROW @ ROW,0 CLEAR clear gets @ ROW,0 SAY 'LATE COMMENTS - ' GET MLCOMMENT1 @ ROW,70 GET MLDATE1 STORE ROW+1 TO ROW @ ROW,0 SAY ' ' GET MLCOMMENT2 @ ROW,70 GET MLDATE2 STORE ROW+1 TO ROW @ ROW,0 SAY ' ' GET MLCOMMENT3 @ ROW,70 GET MLDATE3 STORE ROW+1 TO ROW @ ROW,0 SAY "DATE - " GET MDATE PICTURE '99/99/99' SET DELIMITER ON @ ROW,20 say 'CHK# - ' GET MCHECKNUM SET DELIMITER OFF @ ROW,43 SAY 'AMT - ' GET MAMT PICTURE '99999.99' SET DELIMITER ON @ ROW,60 SAY 'DEP# - ' GET MDEPNUM READ DO LOCKWAIT REPLACE COMMENTS WITH MCOMMENTS REPLACE LCOMMENT1 WITH MLCOMMENT1 REPLACE LDATE1 WITH MLDATE1 REPLACE LCOMMENT2 WITH MLCOMMENT2 REPLACE LDATE2 WITH MLDATE2 REPLACE LCOMMENT3 WITH MLCOMMENT3 REPLACE LDATE3 WITH MLDATE3 UNLOCK IF CL = 1 PRESSED = LASTKEY() IF PRESSED = 27 .OR. MAMT = 0 EXIT ENDIF ENDIF IF (MDATE > DATE() + 290 .OR. MDATE < DATE() -290) @ 24,0 CLEAR @ 23,78 SAY ' ' ? CHR(7) STORE ' ' TO M2 @ 24,0 SAY 'RECEIVE DATE OUT OF RANGE ... PRESS RETURN TO CONTINUE ' GET M2 READ LOOP ENDIF IF VAL(SUBSTR(MDEPNUM,1,2)) < 1 .OR.VAL(SUBSTR(MDEPNUM,1,2)) > 12 .OR.VAL(SUBSTR(MDEPNUM,3,2)) < 1 .OR.VAL(SUBSTR(MDEPNUM,3,2)) > 31 .OR.VAL(SUBSTR(MDEPNUM,5,2)) > 20 @ 24,0 CLEAR @ 23,78 SAY ' ' ? CHR(7) STORE ' ' TO M2 @ 24,0 SAY 'DEPOSIT DATE INCORRECT ... PRESS RETURN TO CONTINUE ' GET M2 READ LOOP ENDIF STORE 'N' TO LL @ 24,0 clear IF MAMT <> 0 STORE MAMTPAID+MAMT TO YY STORE TOTCOST+TAX TO XX IF STR(YY,12,2) = STR(XX,12,2) STORE 'Y' TO LL @ 24,0 SAY 'Invoice PAID IN FULL ... OK (Y/N) - ' get ll PICTURE '!' ELSE ? CHR(7) IF MAMTPAID + MAMT < TOTCOST+TAX @ 24,0 SAY 'Invoice PARTIAL PAID ... OK (Y/N) - ' get ll PICTURE '!' ELSE @ 24,0 SAY 'Invoice OVER PAID ... PRESS ENTER TO RE-ENTER - ' get ll PICTURE '!' READ EXIT ENDIF ENDIF READ IF LL <> 'Y' LOOP ELSE DO LOCKWAIT IF AMTPAID = 0 REPLACE AMTPAID WITH MAMT REPLACE CHECKNUM WITH MCHECKNUM REPLACE IRECDATE WITH MDATE REPLACE DEPNUM WITH MDEPNUM ELSE IF AMTPAID1 = 0 REPLACE AMTPAID1 WITH MAMT REPLACE CHECKNUM1 WITH MCHECKNUM REPLACE IRECDATE1 WITH MDATE REPLACE DEPNUM1 WITH MDEPNUM ELSE IF AMTPAID2 = 0 REPLACE AMTPAID2 WITH MAMT REPLACE CHECKNUM2 WITH MCHECKNUM REPLACE IRECDATE2 WITH MDATE REPLACE DEPNUM2 WITH MDEPNUM ELSE IF AMTPAID3 = 0 REPLACE AMTPAID3 WITH MAMT REPLACE CHECKNUM3 WITH MCHECKNUM REPLACE IRECDATE3 WITH MDATE REPLACE DEPNUM3 WITH MDEPNUM ELSE ? CHR(7) ? ' ' ? 'ERROR .... TRANSACTION SPACE FULL ... TRANSACTION NOT SAVED' ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF UNLOCK EXIT ENDDO ENDDO