STORE DATE() TO SDATE SET BELL OFF SET DEVICE TO SCREEN CLEAR STORE 'EOF() .OR. PO <> LINV .OR. ROW > 21' TO LLP1 STORE 'PO <> LINV' TO LLP2 STORE 'EOF() .OR. PO <> LINV' TO LLP3 @ 0,35 SAY 'PURCHASE ORDERS' *TO INCREMENT NUMBERS IF VAL(ENCUST) = 99999 STORE VAL(ENCUST) +1 TO ENCUST DO WHILE .T. IF ENCUST <10 STORE STR(ENCUST,1,0) TO ENCUST EXIT ENDIF IF ENCUST <100 STORE STR(ENCUST,2,0) TO ENCUST EXIT ENDIF IF ENCUST <1000 STORE STR(ENCUST,3,0) TO ENCUST EXIT ENDIF STORE STR(ENCUST,8,0) TO ENCUST EXIT ENDDO ENDIF SET DELIMITER ON STORE ENCUST + SPACE(20) TO ENCUST STORE SUBSTR(ENCUST,1,10) TO ENCUST SELECT 9 USE @ 4,0 SAY 'ENTER PO NUMBER - ' GET ENCUST PICTURE '!!!!!!!!!!!!!!!!!!!!' READ IF CL = 1 PRESSED = LASTKEY() IF PRESSED = 27 RETURN ENDIF ENDIF IF VAL(ENCUST) = 0 .AND. SUBSTR(ENCUST,1,5) = ' ' LOOP ENDIF IF LA = 'A' **ADD NEW RECORD SELECT 2 GOTO TOP SET EXCLUSIVE ON SELECT 9 IF ALIAS() <> 'LASTNUM' STORE 'LASTNUM' TO DNET DO NETERROR ENDIF GOTO 1 STORE PO TO MINUM ENDIF SELECT 2 @ 24,0 SAY 'CHECKING DUPLICATES FOR ' + STR(MINUM,8,0) GOTO BOTTOM SKIP -10 DO WHILE .NOT. EOF() IF PO = MINUM ? CHR(7) @ 23,0 SAY 'ERROR ... DUPLICATE PO NUMBERS FOUND !!!' + STR(MINUM,5,0) WAIT RETURN ENDIF SKIP ENDDO DO WHILE .T. SELECT 4 SEEK MINUM IF .NOT. EOF() IF PO = MINUM DO LOCKWAIT REPLACE PO WITH 0 UNLOCK ENDIF SKIP 0 ELSE EXIT ENDIF ENDDO SELECT 2 STORE 'Y' TO MCREATE STORE 'Y' TO DNETAPPEND DO NETERROR REPLACE PO WITH MINUM UNLOCK SKIP 0 ENDIF SELECT 2 STORE MINUM TO LINV DO LOCKWAIT REPLACE DATE WITH DATE() UNLOCK SELECT 9 IF ALIAS() <> 'LASTNUM' STORE 'LASTNUM' TO DNET DO NETERROR ENDIF @ 24,0 SAY 'INCREMENTING LAST NUMBER IN LASTNUM.DBF ' GOTO 1 DO LOCKWAIT STORE PO + 1 TO LI REPLACE PO WITH LI UNLOCK USE IF EX = 'N' SET EXCLUSIVE OFF ELSE SET EXCLUSIVE ON ENDIF ELSE STORE 'N' TO MCREATE ENDIF **CACULATE TOTALS FOR THIS INVOICE STORE 0.00 TO SUBTOTAL,SUBTAX,TOTAL,PROFIT,MCOST SELECT 4 GOTO TOP STORE 'N' TO CSUM SEEK LINV IF .NOT. EOF() STORE 'Y' TO CSUM DO WHILE .T. IF &LLP3 EXIT ENDIF STORE MCOST + (QTY*COST) TO MCOST STORE PROFIT + (QTY*SELL)-(QTY*COST) TO PROFIT STORE SUBTOTAL + (QTY*SELL) TO SUBTOTAL IF TAX <> ' ' STORE SUBTAX + ((QTY*SELL)*MTAXRATE) TO SUBTAX STORE TOTAL + ((QTY*SELL)*MTAXRATE) + (QTY*SELL) TO TOTAL ELSE STORE TOTAL + (QTY*SELL) TO TOTAL ENDIF SKIP ENDDO ENDIF STORE ROUND(PROFIT,2) TO PROFIT STORE ROUND(SUBTOTAL,2) TO SUBTOTAL STORE ROUND(SUBTAX,2) TO SUBTAX STORE ROUND(TOTAL,2) TO TOTAL STORE ROUND(MCOST,2) TO MCOST STORE 'N' TO MUPDATE1 STORE 'N' TO MUPDATE IF CSUM = 'Y' SELECT 2 GOTO MMREC STORE ' ' TO MMM DO CHECKSUM IF CHECKSUM <> MMM @ 20,0 CLEAR STORE 'N' TO YYU @ 22,0 SAY 'INVALID CHECKSUM, RE-INDEX FILE (Y=BYPASS) - ' GET YYU PICTURE '!' @ 22,60 SAY 'RECORD # - ' + STR(RECNO(),8,0) READ IF YYU <> 'Y' RETURN ENDIF ENDIF RELEASE MMM ENDIF SELECT 2 GOTO MMREC DO DBTOMEM @ 0,0 SAY 'NOT INVOICED ' @ 2,0 CLEAR @ 22,68 SAY STR(SUBTOTAL,10,2) @ 23,68 SAY STR(SUBTAX,10,2) @ 24,68 SAY STR(TOTAL,10,2) @ 24,0 SAY 'ESC TO PRINT/QUEUE/DELETE' @ 1,0 SAY 'REC # - ' + STR(MMREC,8,0) @ 1,60 SAY 'FILE STAT (W/C)-' GET STATUS PICTURE '!!' @ 2,0 SAY 'PO#-' + STR(PO,5,0) @ 2,26 SAY 'CREATED-' GET DATE SET DELIMITER ON @ 3,31 SAY 'PERSON-' GET PERSON PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!' SET DELIMITER OFF @ 6,0 SAY 'COMMENTS-' GET COMMENTS PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' SET DELIMITER OFF @ 7,59 SAY 'TECNICIAN -' GET EMP PICTURE '!!' STORE ' ' TO WS @ 8,59 SAY 'Sercon/Warr- ' GET WS PICTURE '!' SELECT 1 GOTO CUSTREC @ 7,0 SAY 'CUSTOMER ' GET NAME SELECT 2 STORE PO TO QINUM SELECT 4 SEEK LINV IF EOF() STORE 'Y' TO DNETAPPEND DO NETERROR DO LOCKWAIT REPLACE PO WITH QINUM UNLOCK ENDIF STORE 12 TO ROW @ 11,0 SAY ' QTY| PART #| DESCRIPTION | COST | SELL |T' STORE RECNO() TO LLP *FIRST DISPLAY OF LINE ITEMS SELECT 2 STORE VAL(SUBSTR(CHECKSUM,1,8)) TO LLT SELECT 5 IF ALIAS() <> 'INVENTORY' .OR. INDEXKEY(1) <> 'PNUM' USE STORE 'INVENTORY' TO DNET DO NETERROR USE INVENTORY INDEX PNUM ENDIF SELECT 4 SEEK LINV STORE '-' TO MM *FIRST PRINT OF LINE ITEMS DO WHILE .T. SELECT 4 STORE DESC TO MDESC **LOOK FOR PART NUMBER IF SUBSTR(PART,1,5) <> ' ' .AND. SUBSTR(MDESC,1,3) = ' ' STORE PART TO LL SELECT 5 FIND &LL IF EOF() SELECT 4 DO LOCKWAIT REPLACE DESC WITH 'PART NUMBER NOT FOUND' UNLOCK IF ORDSTAT = 'N' @ ROW,13 SAY DESC ENDIF ELSE SELECT 5 STORE PDESC TO MDESC11 STORE LCOST1 TO MCOST11 STORE SELL TO MSELL11 SELECT 4 DO LOCKWAIT STORE TRIM(MDESC11) + SUBSTR(MDESC,(LEN(TRIM(MDESC11)))+1,80) TO MDESC11 IF SUBSTR(DESC,1,5) = ' ' .OR. SUBSTR(DESC,1,21) = 'PART NUMBER NOT FOUND' REPLACE DESC WITH MDESC11 REPLACE COST WITH MCOST11 REPLACE SELL WITH MSELL11 IF VAL(PART) < 90000 REPLACE TAX WITH '*' ENDIF ENDIF UNLOCK STORE 'D' TO GET ENDIF ENDIF SELECT 4 STORE 'N' TO GET IF ROW <=21 DO LINE1 ENDIF SKIP STORE LLT-1 TO LLT STORE ROW+1 TO ROW IF PO <> LINV .OR. EOF() EXIT ENDIF ENDDO @ 22,0 SAY '---------------------------------------------------------------------' @ 22,32 SAY MM IF ROW > 21 @ 22,31 SAY '<<< CONTINUED >>>' ENDIF STORE 12 TO ROW GOTO LLP IF LLT <> 0 .AND. LLT <> -1 @ 23,0 CLEAR @ 22,79 SAY ' ' ? CHR(7) @ 23,0 SAY 'CHECKSUM ERROR !!! TRY GOING TO MAIN MENU AND PRESS 2 RETURNS TO CLOSE FILES' WAIT 'IF THIS DOES NOT CORRECT THE PROBLEM REBUILD THE FILES' ENDIF READ DO MEMTODB STORE 'Y' TO MUPDATE IF CL = 1 PRESSED = LASTKEY() IF PRESSED = 27 STORE 'Y' TO MEXIT ENDIF ENDIF SELECT 4 SET KEY -1 TO ORDSTAT SET KEY -2 TO SVEN1 SET KEY -3 TO HOTLIST SET KEY -4 TO SINVEN SET KEY -5 TO NONCOST SET KEY -6 TO QPRTORD SET KEY -7 TO POREQU SET KEY -8 TO QPRTFILE SET KEY -9 TO QPRTQUO @ 23,0 SAY 'F2=ORD SCR,F3=SER VEN,F4=HOT LIST,F5=LOOKUP INVEN' @ 24,0 SAY 'F6=NON COST,F7=PRT ORD,F8=PO REQUEST,F9=PRT FILE,F10=PRT QUO' *MAIN LOOP OFF LINE ITEMS DO WHILE .T. SELECT 4 STORE QTY TO MQTY,MMQTY STORE PART TO MPART DO DBTOMEM SET COLOR TO 11 STORE 'Y' TO GET @ ROW,0 SAY SPACE(80) @ ROW,0 GET MQTY @ ROW,4 SAY '|' @ ROW,5 GET PART @ ROW,12 SAY '|' IF ORDSTAT = 'N' @ ROW,13 GET DESC @ ROW,59 SAY '|' IF NONCOST = 'N' @ ROW,60 GET COST ENDIF @ ROW,68 SAY '|' @ ROW,69 GET SELL @ ROW,78 SAY '|' @ ROW,79 GET TAX STORE PART TO LL SELECT 5 * BLANK THESE OUT SO THAT QOH WILL NOT CACULATE ON EVERY LINE * STORE 0 TO MONHAND * IF SUBSTR(LL,1,5) <> ' ' * FIND &LL * IF .NOT. EOF() * STORE ONHAND TO MONHAND * SELECT 4 * @ 24,70 SAY SPACE(10) * @ 24,70 SAY 'QOH=' + STR(MONHAND,5,0) * ENDIF * ENDIF ELSE IF VNUM <> 0 STORE VNUM TO MVNUM SELECT 5 IF ALIAS() <> 'VENDOR' .OR. INDEXKEY(1) <> 'VNUMBER' STORE 'VENDOR' TO DNET DO NETERROR USE VENDOR INDEX VNUMBER ENDIF SEEK MVNUM IF EOF() STORE 'NOT ON FILE' TO MNAME ELSE STORE NAME TO MNAME ENDIF STORE SUBSTR(MNAME,1,20) TO MNAME SELECT 9 USE ENDIF @ ROW,13 GET VNUM PICTURE '99999' @ ROW,19 SAY '|' @ ROW,20 SAY SUBSTR(MNAME,1,20) @ ROW,41 SAY '|' @ ROW,42 GET ORDDATE PICTURE ' / / ' @ ROW,50 SAY '|' @ ROW,51 GET RECDATE PICTURE ' / / ' STORE DTOC(DATE()) TO MDDD SET KEY -5 STORE SUBSTR(MDDD,1,2) + SUBSTR(MDDD,4,2) + SUBSTR(MDDD,7,2) TO MMM SET FUNCTION 6 TO MMM @ ROW,65 SAY 'F6=TODAYS DATE' ENDIF READ DO MEMTODB *REPRINT SCREEN WITH NON INTENSE SET COLOR TO 2 @ ROW,0 SAY SPACE(80) @ ROW,0 GET MQTY @ ROW,4 SAY '|' @ ROW,5 GET PART @ ROW,12 SAY '|' IF ORDSTAT = 'N' @ ROW,13 GET DESC @ ROW,59 SAY '|' IF NONCOST = 'N' @ ROW,60 GET COST ENDIF @ ROW,68 SAY '|' @ ROW,69 GET SELL @ ROW,78 SAY '|' @ ROW,79 GET TAX * BLANK THESE OUT SO THAT QOH WILL NOT CACULATE ON EVERY LINE * STORE PART TO LL * SELECT 5 * FIND &LL * STORE ONHAND TO MONHAND * SELECT 4 * @ 24,70 SAY SPACE(10) * @ 24,70 SAY 'QOH=' + STR(MONHAND,5,0) ELSE IF VNUM <> 0 STORE VNUM TO MVNUM SELECT 5 IF ALIAS() <> 'VENDOR' .OR. INDEXKEY(1) <> 'VNUMBER' STORE 'VENDOR' TO DNET DO NETERROR USE VENDOR INDEX VNUMBER ENDIF SEEK MVNUM IF EOF() STORE 'NOT ON FILE' TO MNAME ELSE STORE NAME TO MNAME ENDIF STORE SUBSTR(MNAME,1,20) TO MNAME SELECT 9 USE ENDIF @ ROW,13 GET VNUM PICTURE '99999' @ ROW,19 SAY '|' @ ROW,20 SAY SUBSTR(MNAME,1,20) @ ROW,41 SAY '|' @ ROW,42 GET ORDDATE PICTURE ' / / ' @ ROW,50 SAY '|' @ ROW,51 GET RECDATE PICTURE ' / / ' STORE DTOC(DATE()) TO MDDD SET KEY -5 STORE SUBSTR(MDDD,1,2) + SUBSTR(MDDD,4,2) + SUBSTR(MDDD,7,2) TO MMM SET FUNCTION 6 TO MMM @ ROW,65 SAY 'F6=TODAYS DATE' ENDIF CLEAR GETS IF ORDSTAT = 'Y' @ ROW,60 SAY SPACE(20) ENDIF SELECT 4 IF MQTY <> 998 .AND. MQTY <> 999 DO LOCKWAIT REPLACE QTY WITH MQTY UNLOCK ENDIF ENDIF SELECT 4 IF UPDATED() STORE 'Y' TO MUPDATE SELECT 4 **LOOK FOR PART NUMBER STORE DESC TO MDESC *CHECK TO SEE IF LINE HAS A PART NUMBER IF SUBSTR(PART,1,5) = ' ' .AND. COST+SELL <> 0 @ 23,0 CLEAR ? CHR(7) STORE ' ' TO SEL @ 23,0 SAY 'LINE ITEM MUST HAVE A PART NUMBER IF COST OR SELL IS NOT EQUAL TO 0 !!! ' GET SEL READ * LOOP ENDIF IF SUBSTR(PART,1,5) <> ' ' .AND. SUBSTR(MDESC,1,3) = ' ' STORE PART TO LL SELECT 5 IF ALIAS() <> 'INVENTORY' .OR. INDEXKEY(1) <> 'PNUM' USE STORE 'INVENTORY' TO DNET DO NETERROR USE INVENTORY INDEX PNUM ENDIF FIND &LL IF EOF() SELECT 4 DO LOCKWAIT REPLACE DESC WITH 'PART NUMBER NOT FOUND' UNLOCK IF ORDSTAT = 'N' @ ROW,13 SAY DESC ENDIF ELSE SELECT 5 * STORE TRIM(MDESC11) + SUBSTR(MDESC,(LEN(TRIM(MDESC11)))+1,80) TO MDESC11 STORE PDESC TO MDESC11 STORE LCOST1 TO MCOST11 STORE SELL TO MSELL11 SELECT 4 DO LOCKWAIT IF SUBSTR(DESC,1,5) = ' ' .OR. SUBSTR(DESC,1,21) = 'PART NUMBER NOT FOUND' REPLACE DESC WITH MDESC11 REPLACE COST WITH MCOST11 REPLACE SELL WITH MSELL11 IF VAL(PART) < 90000 REPLACE TAX WITH '*' ENDIF ENDIF UNLOCK STORE 'D' TO GET DO LINE1 ENDIF ENDIF ENDIF STORE PO TO LLP IF MQTY = 998 STORE 0 TO MQTY @ 24,0 SAY 'INSERTING BLANK LINE ... PLEASE WAIT ' STORE RECNO() TO MREC STORE ROW TO MROW STORE MROW-12 TO CC STORE QTY TO MQTYC STORE PART TO MPARTC STORE DESC TO MDESCC STORE COST TO MCOSTC STORE SELL TO MSELLC STORE TAX TO MTAXC STORE VNUM TO MVNUMC STORE ORDDATE TO MORDDATEC SELECT 2 STORE PO TO QINUM SELECT 4 DO LOCKWAIT REPLACE PO WITH QINUM REPLACE QTY WITH 0 REPLACE PART WITH SPACE(80) REPLACE DESC WITH SPACE(80) REPLACE COST WITH 0 REPLACE SELL WITH 0 REPLACE TAX WITH ' ' REPLACE VNUM WITH 0 REPLACE ORDDATE WITH CTOD(' / / ') UNLOCK SKIP DO WHILE .T. IF &LLP3 STORE 'Y' TO DNETAPPEND DO NETERROR SELECT 2 STORE PO TO QINUM SELECT 4 DO LOCKWAIT REPLACE PO WITH QINUM REPLACE QTY WITH MQTYC REPLACE PART WITH MPARTC REPLACE DESC WITH MDESCC REPLACE COST WITH MCOSTC REPLACE SELL WITH MSELLC REPLACE TAX WITH MTAXC REPLACE VNUM WITH MVNUMC REPLACE ORDDATE WITH MORDDATEC UNLOCK EXIT ENDIF STORE QTY TO MQTYB STORE PART TO MPARTB STORE DESC TO MDESCB STORE COST TO MCOSTB STORE SELL TO MSELLB STORE TAX TO MTAXB STORE VNUM TO MVNUMB STORE ORDDATE TO MORDDATEB SELECT 2 STORE PO TO QINUM SELECT 4 DO LOCKWAIT REPLACE PO WITH QINUM REPLACE QNUMBER WITH QQNUM REPLACE SNUMBER WITH QSNUM REPLACE QTY WITH MQTYC REPLACE PART WITH MPARTC REPLACE DESC WITH MDESCC REPLACE COST WITH MCOSTC REPLACE SELL WITH MSELLC REPLACE TAX WITH MTAXC REPLACE VNUM WITH MVNUMC REPLACE ORDDATE WITH MORDDATEC UNLOCK STORE MQTYB TO MQTYC STORE MPARTB TO MPARTC STORE MDESCB TO MDESCC STORE MCOSTB TO MCOSTC STORE MSELLB TO MSELLC STORE MTAXB TO MTAXC STORE MVNUMB TO MVNUMC STORE MORDDATEB TO MORDDATEC SKIP ENDDO DO LOCKWAIT REPLACE QTY WITH MQTY UNLOCK **UPDATE SCREEN GOTO MREC SKIP -CC STORE 12 TO ROW DO WHILE .T. STORE 'N' TO GET DO LINE1 STORE ROW+1 TO ROW SKIP IF &LLP1 DO WHILE ROW < 22 @ ROW,0 SAY SPACE(80) STORE ROW+1 TO ROW ENDDO GOTO MREC STORE MROW TO ROW EXIT ENDIF ENDDO LOOP ENDIF STORE PO TO LLP IF MQTY = 999 **DELETE LINE DO LOCKWAIT REPLACE QTY WITH MQTY UNLOCK STORE ROW TO MROW DO LOCKWAIT DELETE UNLOCK SKIP IF &LLP3 SKIP -1 @ ROW,0 SAY SPACE(80) STORE ROW-1 TO ROW STORE 'Y' TO DNETAPPEND DO NETERROR SELECT 2 STORE PO TO QINUM SELECT 4 DO LOCKWAIT REPLACE PO WITH QINUM UNLOCK ENDIF STORE RECNO() TO MREC **UPDATE SCREEN STORE MROW-12 TO CC SKIP -CC STORE 12 TO ROW DO WHILE .T. STORE 'N' TO GET DO LINE1 STORE ROW+1 TO ROW SKIP IF &LLP1 DO WHILE ROW < 22 @ ROW,0 SAY SPACE(80) STORE ROW+1 TO ROW ENDDO GOTO MREC STORE MROW TO ROW EXIT ENDIF ENDDO LOOP ENDIF DO LOCKWAIT REPLACE QTY WITH MQTY UNLOCK IF CL = 1 PRESSED = LASTKEY() IF PRESSED = 27 EXIT ENDIF ** PgDn PRESSED IF PRESSED = 3 .OR. PRESSED = 13 SKIP +1 STORE ROW+1 TO ROW IF &LLP3 SKIP -1 STORE ROW-1 TO ROW IF SUBSTR(DESC,1,5) <> ' ' .OR. QTY <> 0 STORE 'Y' TO DNETAPPEND DO NETERROR STORE ROW+1 TO ROW SELECT 2 STORE PO TO QINUM SELECT 4 DO LOCKWAIT REPLACE PO WITH QINUM UNLOCK ENDIF ENDIF ENDIF IF PRESSED = 18 ** PgUp PRESSED SKIP -1 STORE ROW-1 TO ROW IF &LLP2 SKIP STORE ROW+1 TO ROW LOOP ENDIF ENDIF ENDIF ****CURSOR POSISTION IF ROW > 21 STORE RECNO() TO MREC STORE 20 TO ROW SKIP -1 DO WHILE .T. STORE 'N' TO GET DO LINE1 STORE ROW-1 TO ROW SKIP -1 IF ROW < 12 GOTO MREC STORE 21 TO ROW EXIT ENDIF ENDDO LOOP ENDIF IF ROW < 12 STORE RECNO() TO MREC SKIP STORE 13 TO ROW DO WHILE .T. STORE 'N' TO GET DO LINE1 SKIP STORE ROW+1 TO ROW IF &LLP1 STORE 12 TO ROW GOTO MREC EXIT ENDIF ENDDO LOOP ENDIF ENDDO SELECT 2 GOTO MMREC DO LOCKWAIT REPLACE PLIST WITH MPLIST REPLACE NCOPY WITH MNCOPY UNLOCK **CACULATE TOTALS FOR THIS INVOICE STORE 0.00 TO SUBTOTAL,SUBTAX,TOTAL,PROFIT,MCOST SELECT 4 SEEK LINV IF .NOT. EOF() DO WHILE .T. IF &LLP3 EXIT ENDIF IF (QTY = 0 .AND. SUBSTR(DESC,1,10) = ' ') .OR. (COST = 0.00 .OR. COST = 0) .AND. (SELL = 0.00 .OR. SELL = 0) .AND. SUBSTR(DESC,1,20) = ' ' DO LOCKWAIT DELETE UNLOCK @ 24,0 CLEAR @ 24,0 SAY 'SUB ENTRY RECORD FOUND WITH NULL FIELDS ... DELETED !!!' ENDIF STORE MCOST + (QTY*COST) TO MCOST STORE PROFIT + (QTY*SELL)-(QTY*COST) TO PROFIT STORE SUBTOTAL + (QTY*SELL) TO SUBTOTAL IF TAX <> ' ' STORE SUBTAX + ((QTY*SELL)*MTAXRATE) TO SUBTAX STORE TOTAL + ((QTY*SELL)*MTAXRATE) + (QTY*SELL) TO TOTAL ELSE STORE TOTAL + (QTY*SELL) TO TOTAL ENDIF SKIP ENDDO ENDIF *CLEAR KEYS SET KEY -1 TO DUMMY SET KEY -2 TO DUMMY SET KEY -3 TO DUMMY SET KEY -4 TO DUMMY SET KEY -5 TO DUMMY SET KEY -6 TO DUMMY SET KEY -7 TO DUMMY SET KEY -8 TO DUMMY SET KEY -9 TO DUMMY STORE ROUND(PROFIT,2) TO PROFIT STORE ROUND(SUBTOTAL,2) TO SUBTOTAL STORE ROUND(SUBTAX,2) TO SUBTAX STORE ROUND(TOTAL,2) TO TOTAL STORE ROUND(MCOST,2) TO MCOST @ 23,0 CLEAR @ 22,68 SAY STR(SUBTOTAL,10,2) @ 23,68 SAY STR(SUBTAX,10,2) @ 24,68 SAY STR(TOTAL,10,2) IF NONCOST = 'N' @ 23,59 SAY STR(MCOST,9,2) @ 23,50 SAY STR(PROFIT,10,2) ENDIF SELECT 2 GOTO MMREC STORE ' ' TO MMM DO LOCKWAIT REPLACE CUSTNUM WITH MMCUSTNUM REPLACE TOTCOST WITH SUBTOTAL REPLACE COST WITH MCOST REPLACE TAX WITH SUBTAX IF MPOREQ = 'Y' .AND. SUBSTR(PO,1,5) = ' ' .AND. VSEL = 'I' REPLACE STATUS WITH 'W' ENDIF STORE 'Y' TO SEL IF VSEL = 'S' IF WS = 'W' .OR. WS = 'S' IF LASTPRT > CTOD('01/01/85') @ 23,0 SAY 'INVOICE ALREADY PRINTED ... RE-ASSIGN WARRANTY/SERVICE CONTRACT ?? - ' GET SEL PICTURE '!' READ ENDIF ENDIF IF WS = 'S' .AND. SEL = 'Y' REPLACE LASTPRT WITH CTOD('01/01/80') ENDIF IF WS = 'W' .AND. SEL = 'Y' REPLACE LASTPRT WITH CTOD('01/01/81') ENDIF ENDIF UNLOCK @ 24,0 SAY SPACE(60) IF PRINT = 'Y' @ 23,0 SAY 'QUEUED' ENDIF STORE ' ' TO SSS @ 24,0 SAY '(P)RINT,(Q)UEUE,(D)ELETE - ' GET SSS PICTURE '!' READ IF AT('W',STATUS) <> 0 IF SUBSTR(PO,1,5) <> ' ' ? CHR(7) @ 24,0 CLEAR DO LOCKWAIT @ 24,0 SAY 'PO ALREADY ASSIGNED ... CHANGE STATUS - ' GET STATUS PICTURE '!!' READ UNLOCK ENDIF ENDIF STORE 'N' TO BYPASS IF MUPDATE1 = 'Y' .OR. MUPDATE = 'Y' SELECT 1 GOTO CUSTREC @ 24,0 clear @ 24,0 say 'UPDATING LAST FILE NUMBER' DO LASTINV ENDIF SELECT 2 GOTO MMREC @ 23,0 SAY SPACE(20) @ 23,0 SAY 'WRITING CHECKSUM ' DO CHECKSUM SELECT 2 GOTO MMREC DO LOCKWAIT REPLACE CHECKSUM WITH MMM UNLOCK IF MCREATE = 'Y' IF MUPDATE1 = 'Y' .OR. MUPDATE = 'Y' @ 24,0 CLEAR ELSE @ 24,0 CLEAR @ 24,0 SAY 'DELETING FILE .. NO UPDATES' **DELETE FILE SELECT 2 GOTO MMREC DO LOCKWAIT REPLACE PO WITH 0 UNLOCK SELECT 4 DO LOCKWAIT IF PO = LINV REPLACE PO WITH 0 ENDIF UNLOCK ENDIF ENDIF SELECT 2 IF SSS = 'D' STORE 0 TO CC,CCC @ 23,0 CLEAR SELECT 2 IF VSEL = 'I' ? CHR(7) STORE ' ' TO ACCC @ 24,0 CLEAR @ 24,0 SAY 'ENTER ACCESS COSE TO DELETE INVOICE - ' GET ACCC PICTURE '!!!!!!!!!' READ IF SUBSTR(ACCC,1,9) <> ' CASSCOTT' @ 24,0 CLEAR @ 23,79 SAY ' ' WAIT 'ACCESS DENIED !!!' LOOP ENDIF ENDIF @ 23,0 CLEAR @ 23,0 SAY 'DELETING PO ' + STR(PO,5,0) + '... PLEASE WAIT ' *ADD DELETED NUMBER TO INVDEL SELECT 9 STORE 'INVDEL' TO DNET DO NETERROR SELECT 9 STORE 'Y' TO DNETAPPEND DO NETERROR DO LOCKWAIT REPLACE PO WITH LINV UNLOCK SELECT 2 SEEK LINV DO WHILE .T. IF EOF() EXIT ENDIF DO LOCKWAIT IF PO = LINV REPLACE PO WITH 0 ENDIF STORE CC+1 TO CC @ 24,0 SAY 'MAIN DELETIONS - ' + STR(CC,3,0) UNLOCK SKIP IF &LLP3 EXIT ENDIF ENDDO SELECT 4 SEEK LINV DO WHILE .T. IF EOF() EXIT ENDIF SKIP + 1 STORE RECNO() TO RTEMP SKIP -1 DO LOCKWAIT IF PO = LINV REPLACE PO WITH 0 ENDIF STORE CCC+1 TO CCC @ 24,40 SAY 'SUB FILE DELETIONS - ' + STR(CCC,3,0) UNLOCK GOTO RTEMP IF &LLP3 EXIT ENDIF ENDDO SELECT 2 IF SSS = 'P' SELECT 2 GOTO MMREC IF VSEL = 'I' DO INVPRT DO LOCKWAIT ENDIF ENDIF SELECT 2 IF SSS = 'Q' SELECT 2 GOTO MMREC DO LOCKWAIT REPLACE PRINT WITH 'Y' UNLOCK ENDIF ENDDO DO QPRTFILE DO QPRTQUO DO QPRTORD DO SINVEN DO HOTLIST DO POREQU DO SVEN1 DO ORDSTAT DO NONCOST