*IF PURGE = Y THEN PURGE DATABASES WILL BE USED IF TYPE ("PURGE") = 'U' STORE 'N' TO PURGE ENDIF SET TALK OFF SET DELETE ON STORE 0 TO CC2,CC3,CC1 SELECT 1 USE CUSTOMER INDEX CUSTNUM SELECT 2 IF PURGE = 'Y' USE INVPURGE ELSE USE INVOICE ENDIF SELECT 4 IF PURGE = 'Y' USE INVMAINP INDEX INVMAINP,QUOMAINP,SCHMAINP ELSE USE INVMAIN INDEX INVMAIN,QUOMAIN,SCHMAIN ENDIF SELECT 2 DO WHILE .NOT. EOF() IF INUMBER = 0 .AND. QNUMBER = 0 .AND. SNUMBER = 0 SELECT 2 SKIP LOOP ENDIF DO WHILE .T. IF INUMBER <> 0 STORE 'INUMBER' TO LLL STORE INUMBER TO INV SELECT 4 SET ORDER TO 1 EXIT ENDIF IF QNUMBER <> 0 STORE 'QNUMBER' TO LLL STORE QNUMBER TO INV SELECT 4 SET ORDER TO 2 EXIT ENDIF IF SNUMBER <> 0 STORE 'SNUMBER' TO LLL STORE SNUMBER TO INV SELECT 4 SET ORDER TO 3 EXIT ENDIF ENDDO SELECT 2 STORE CUSTNUM TO MCUSTNUM STORE TAXRATE TO MTAXRATE SELECT 1 SEEK MCUSTNUM IF EOF() @ 19,0 SAY 'ERROR LOCATING CUSTOMER # ' + STR(MCUSTNUM,8,0) ? WAIT ENDIF SELECT 4 SKIP 0 SEEK INV STORE 0.00 TO MCOST,MSELL,MTAX DO WHILE .NOT. EOF() IF &LLL = INV STORE MCOST + (QTY*COST) TO MCOST STORE MSELL + (QTY*SELL) TO MSELL IF TAX <> ' ' STORE MTAX + ((QTY*SELL)*MTAXRATE) TO MTAX ENDIF SKIP ELSE EXIT ENDIF ENDDO SELECT 2 STORE ROUND(MCOST,2) TO MCOST STORE ROUND(MSELL,2) TO MSELL STORE ROUND(MTAX,2) TO MTAX STORE STR(TOTCOST,10,2) TO LL1 STORE STR(MSELL,10,2) TO LL2 IF LL1 <> LL2 IF FIX = 'N' ? 'TOTCOST ' , STR(TOTCOST,10,2) , ' <> ' , 'CALCULATED ' , STR(MSELL,10,2) , 'COMPARING ' , LLL , ' ' , STR(INV,8,0) ENDIF STORE 'Y' TO ERROR ENDIF STORE STR(COST,11,2) TO LL1 STORE STR(MCOST,11,2) TO LL2 IF LL1 <> LL2 IF FIX = 'N' ? 'COST ' , STR(COST,10,2) , ' <> ' , 'CALCULATED ' , STR(MCOST,11,2) , 'COMPARING ' , LLL , ' ' , STR(INV,8,0) ENDIF STORE 'Y' TO ERROR ENDIF STORE STR(TAX,10,2) TO LL1 STORE STR(MTAX,10,2) TO LL2 IF LL1 <> LL2 IF FIX = 'N' ? 'TAX ' , STR(TAX,10,2) , ' <> ' , 'CALCULATED ' , STR(MTAX,10,2) , 'COMPARING ' , LLL , ' ' , STR(INV,8,0) ENDIF STORE 'Y' TO ERROR ENDIF STORE AMTPAID+AMTPAID1+AMTPAID2+AMTPAID3 TO LL1 STORE MTAX+MSELL TO LL2 IF STR(LL1,10,2) <> STR(LL2,10,2) .AND. VAL(STR(LL1,10,2)) <> 0 .AND. INUMBER <> 0 IF FIX = 'N' ? ' ' ? 'AMTPAID ' , STR(LL1,10,2) , ' <> ' , 'CALCULATED ' , STR(LL2,10,2) , 'COMPARING ' , LLL , ' ' , STR(INV,8,0) ? 'NO ERROR, INVOICE IS PARTIAL PAID, IF THIS IS NOT CORRECT FILE DAMAGE MAY HAVE OCURRED' ? ' ' ENDIF ENDIF SELECT 2 IF FIX = 'Y' DO LOCKWAIT REPLACE COST WITH MCOST REPLACE TOTCOST WITH MSELL REPLACE TAX WITH MTAX UNLOCK ENDIF SKIP *@ 24,70 SAY RECNO() ENDDO