SUBROUTINE SUB.CASH.APPLIED(AMOUNTS, TRAN.TYPE, SA.REC)
* Release Information
* MFG - CUST - 6.0
  Version="~Ver=~6.2.1~208817768~"
*  -  Subroutine to extract the cash payments of an invoice.
LastUpdated... = "Rev: 10:57 01Jul1998 andrew 14 /roi/URO.MAIN/URO.BP/SUB.CASH.APPLIED"
***
* Abstract:
*
*
***
* R e v i s i o n   L o g
* Proj Who..... When.... Why................................................
* NONE andrewm1 06/17/97 Initial coding.
*
***

* Common block to keep track of invoices processed.
COMMON /CSHAPL/ INVOICE.PIPE

$INCLUDE MFG.LAYOUTS SA
$INCLUDE MFG.LAYOUTS ARH
$INCLUDE MFG.LAYOUTS ARD
$INCLUDE MFG.LAYOUTS ARC


ARH = ""
ARD = ""
ARC = ""
OPEN.ERRORS = ""
CALL OPEN("","ARH",ARH,OPEN.ERRORS)
CALL OPEN("","ARD",ARD,OPEN.ERRORS)
CALL OPEN("","ARC",ARC,OPEN.ERRORS)
IF OPEN.ERRORS THEN
   CRT "Unable to open the following files:"
   CRT OPEN.ERRORS
   RETURN
END

AMOUNTS = ""

READ ARH.REC FROM ARH, SA.Inv_So_Nbr ELSE RETURN
IF TRAN.TYPE EQ "CASH" THEN
   TARGET = SA.Inv_So_Nbr:"DM"
   IF ARH.Tran_Type NE "D" THEN RETURN
END ELSE
   TARGET = SA.Inv_So_Nbr:"CM"
   IF ARH.Tran_Type NE "CM" THEN RETURN
END

***
* The following odd segment of code will keep track of the last
* 20 invoices processed. This is being done to prevent the same
* invoice from being reported twice. This will only work if the
* SA data is being processed at or near invoice number order.
***
LOCATE TARGET IN INVOICE.PIPE<1> SETTING DUMMY THEN RETURN
INS TARGET BEFORE INVOICE.PIPE<1>
DEL INVOICE.PIPE<21>

FOR I = 1 TO ARH.Ard_Payment_Counter
   ARD.KEY = SA.Inv_So_Nbr:"*":ARH.Due_Dates:"*":I
   READ ARD.REC FROM ARD, ARD.KEY ELSE CONTINUE
   READ ARC.REC FROM ARC, ARD.Arc_Sequence_Nbr ELSE CONTINUE
   IF TRAN.TYPE EQ "CASH" THEN
      IF ARC.Ard_List MATCHES "...*":ARD.Tran_Date:"*..." THEN CONTINUE
   END
   REF.NBRS = ARC.Ref_Nbrs
   AMT.APPLIEDS = ARC.Amt_Applied
   ARD.KEYS = ARC.Ard_List
   GOSUB PROCESS.ARC
NEXT I
RETURN


PROCESS.ARC:
MORE.REF.NBRS = REF.NBRS NE ""
LOOP WHILE MORE.REF.NBRS
   REMOVE REF.NBR     FROM REF.NBRS     SETTING MORE.REF.NBRS
   REMOVE AMT.APPLIED FROM AMT.APPLIEDS SETTING DUMMY
   REMOVE ARD.KEY     FROM ARD.KEYS     SETTING DUMMY
   IF REF.NBR NE SA.Inv_So_Nbr THEN CONTINUE
   AMOUNTS<1,-1> = AMT.APPLIED
REPEAT
RETURN


999:* Abortion
*#* ABORT ;*#* Abort Source Follows (11-20-97)

*#*
STOP

END
