Home » SQL & PL/SQL » SQL & PL/SQL » pseudo code
pseudo code [message #509829] Wed, 01 June 2011 05:18 Go to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
how to be converted below program to PL/SQL.
Pl. write Pseudo-Code for the same.

please mail me at ruby.malik@escorts-ecel.com


IDENTIFICATION DIVISION.
PROGRAM-ID. LEDGER.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. UNISYS-U6000.
OBJECT-COMPUTER. UNISYS-U6000.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PRINT-FILE
ASSIGN TO '/iedspool/spdlg1'.
SELECT SORT-FILE ASSIGN TO DISK.
DATA DIVISION.
FILE SECTION.
SD SORT-FILE.
01 SORT-REC.
05 S-KEY.
07 S-ITEM-CODE.
10 S-ITEM-SUB-STORE.
12 S-ITEM-STORE.
15 S-ITEM-LOC PIC X.
15 FILLER PIC X.
12 FILLER PIC X(2).
10 FILLER PIC X(7).
07 s-rec-type pic x(1).
07 S-SRNO PIC X.
07 S-DATE-TIME PIC X(14).
07 filler redefines S-DATE-TIME.
10 filler pic x(6).
10 akc pic x.
10 filler pic x(5).
05 S-INF1.
07 S-ITEM-DESC PIC X(22).
07 S-UM-STORE PIC X(2).
07 S-STOCK-QTY PIC s9(7)V999.
07 S-STOCK-RATE PIC s9(6)V999.
07 S-SOURCE PIC XXX.
05 S-INF2.
07 S-DOC-NO PIC x(8).
07 S-ACC-CD PIC X(2).
07 S-DATE PIC X(10).
07 S-JOB-PO-NO PIC x(8).
07 S-QTY PIC s9(6)V999.
07 S-RATE PIC 9(6)V999.
07 S-TYPE PIC X.
07 S-SRS-NO PIC x(8).
FD PRINT-FILE.
01 PRINT-REC.
02 P-REC PIC X(132).
02 P-REC1 REDEFINES P-REC.
05 P1-ITEM-CODE PIC X(12).
05 P1-ITEM-DESC PIC X(23).
05 P1-UM PIC X(21).
05 P1-REM PIC X(17).
05 P1-OPN-RATE PIC -(6)9.999.
05 FILLER PIC X(25).
05 P1-OPN-QTY PIC -(6)9.999.
05 P1-OPN-VAL PIC -(9)9.99.
02 P-REC2 REDEFINES P-REC.
05 FILLER PIC X(4).
05 P2-DATE PIC X(11).
05 P2-DOC-NO PIC X(9).
05 P2-ACC-CD PIC X(3).
05 P2-ACC-DESC PIC X(5).
05 P2-JOB-PO-NO PIC x(8).
05 P2-RCT-QTY PIC -(6)9.999.
05 P2-RCT-RATE PIC -(6)9.999.
05 P2-RCT-VAL PIC -(7)9.99.
05 P2-WT-AVG-RATE PIC -(6)9.999.
05 P2-ISU-QTY PIC -(6)9.999.
05 P2-ISU-VAL PIC -(7)9.99.
05 P2-CLOSE-QTY PIC -(9)9.999.
05 P2-CLOSE-VAL PIC -(9)9.99.
02 P-REC3 REDEFINES P-REC.
05 FILLER PIC X(27).
05 P3-REM PIC X(13).
05 P3-RCT-QTY PIC -(5)9.999.
05 FILLER PIC X(9).
05 P3-RCT-VAL PIC -(9)9.99.
05 P3-WT-AVG-RATE PIC -(6)9.999.
05 P3-ISU-QTY PIC -(6)9.999.
05 P3-ISU-VAL PIC -(7)9.99.
05 P3-CLOSE-QTY PIC -(9)9.999.
05 P3-CLOSE-VAL PIC -(9)9.99.
02 P-REC4 REDEFINES P-REC.
05 P4-ITEM-IND PIC X(7).
05 P4-REM PIC X(25).
05 P4-OPEN-BAL PIC -(8)9.99.
05 P4-RECEIPT PIC -(9)9.99.
05 P4-ISSUE PIC -(9)9.99.
05 P4-CLOSE-BAL PIC -(9)9.99.
05 P4-NOT-TOUCH-V PIC -(9)9.99.
05 P4-NOT-TOUCH-N PIC Z(5)9.
05 P4-NEG-STK-VAL PIC -(9)9.99.
05 P4-NEG-STK-NO PIC Z(5)9.
05 DIFF PIC -(5)9.99.
02 P-REC5 REDEFINES P-REC.
05 FILLER PIC X(18).
05 P5-REM PIC X(14).
05 P5-BOP-VAL PIC -(8)9.99.
05 FILLER PIC X(5).
05 P5-REM-FM PIC X(9).
05 P5-FM-VAL PIC -(8)9.99.
05 FILLER PIC X(5).
05 P5-REM-IMP PIC X(9).
05 P5-IMP-VAL PIC -(8)9.99.
05 FILLER PIC X(36).
02 P-REC6 REDEFINES P-REC.
05 P-LINE.
10 P6-ACC-CD PIC X(6).
10 P6-ACC-DESC PIC X(21).
10 P6-RECEIPTS PIC Z(9)9.99.
10 P6-ISSUES PIC Z(10)9.99.
05 FILLER PIC X(78).
WORKING-STORAGE SECTION.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 TABLE-FIELDS.
05 USERID PIC X(10) VALUE 'spdsys'.
05 PASSWD PIC X(10) VALUE 'spdsys'.
01 VARIABLE-NAMES.
05 DS-ITEM-CODE PIC X(11).
05 DS-DATE-TIME PIC X(14).
05 DS-ITEM-DESC PIC X(22).
05 DS-UM-STORE PIC X(2).
05 DS-STOCK-QTY PIC S9(7)V999 COMP-3.
05 DS-STOCK-RATE PIC S9(7)V999 COMP-3.
05 DS-SOURCE PIC X(3).
05 DS-DOC-NO PIC x(8).
05 DS-SRS-NO PIC X(10).
05 DS-ACC-CD PIC X(2).
05 DS-DATE PIC X(10).
05 DS-JOB-NO PIC x(8).
05 DS-PO-NO PIC x(8).
05 DS-QTY PIC S9(9)V999 COMP-3.
05 DS-RATE PIC S9(9)V999 COMP-3.
05 DS-RATE-E PIC S9(9)V999 COMP-3.
05 DS-PO-CAT PIC X.
01 CLOSE-NUMS.
05 DS-CLOSE-QTY PIC S9(8)V999 COMP-3.
05 DS-CLOSE-RATE PIC S9(8)V999 COMP-3.
05 DS-TOT-ISSUE PIC S9(8)V999 COMP-3.
05 DS-TOT-RCPTS PIC S9(8)V999 COMP-3.
05 DS-UPD-RATE PIC S9(6)V999 COMP-3.
05 DS-UPD-ST-RATE PIC S9(6)V999 COMP-3.
05 DS-VALUE PIC S9(7)V999 COMP-3.
05 DS-CONTROL-NO PIC x(8).
01 DS-MON-YY PIC X(7).
01 DS-MON1-YY PIC X(9).
01 DS-MON-YY1 PIC X(7).
01 DS-loc-code PIC X(1).
01 DS-MON PIC X(3).
01 DS-DT PIC X(11).
01 DS-AC-CD PIC XX.
01 DS-ACC-DESC PIC X(20).
01 it-stock-rate pic s9(7)v999 comp-3.
EXEC SQL END DECLARE SECTION END-EXEC.
EXEC SQL INCLUDE SQLCA.COB END-EXEC.
01 ws-it pic xx.
01 WS-MON-YY.
05 WS-MON PIC X(3).
88 VALID-MON VALUE
'JAN' 'FEB' 'MAR' 'APR' 'MAY' 'JUN'
'jan' 'feb' 'mar' 'apr' 'may' 'jun'
'jul' 'aug' 'sep' 'oct' 'nov' 'dec'
'JUL' 'AUG' 'SEP' 'OCT' 'NOV' 'DEC'.
05 WS-YY PIC XXXX.
88 VALID-YY VALUE '1900' THRU '2010'.
01 FILLER.
05 ACC-LIST PIC X(54) VALUE
'00010203044A4B0506070809101113161718192021222324262729'.
05 ACC-CODE REDEFINES ACC-LIST PIC XX OCCURS 27.
****
**** 26th position is for invalid acc receipts ***
**** 27th position is for invalid acc issues ***
****
01 STORE-ACC-TABLE.
05 SAT-TAB OCCURS 30.
10 SAT-RECEIPT PIC 9(10)V99.
10 SAT-ISSUE PIC 9(10)V99.
01 LOC-ACC-TABLE.
05 LAT-TAB OCCURS 30.
10 LAT-RECEIPT PIC 9(10)V99.
10 LAT-ISSUE PIC 9(10)V99.
01 GRAND-ACC-TABLE.
05 GAT-TAB OCCURS 30.
10 GAT-RECEIPT PIC 9(10)V99.
10 GAT-ISSUE PIC 9(10)V99.
01 PREV-ITEM-CODE.
05 PREV-SUB-STORE.
07 PREV-STORE.
10 PREV-LOC PIC X.
10 FILLER PIC X.
07 FILLER PIC X(2).
05 FILLER PIC X(7).
01 ALPHA-CTRS VALUE SPACES.
05 eoj-flag pic x.
05 ep-flag pic x.
05 eof-flag pic x.
05 break-flag pic x.
05 ws-item-ind pic x(7).
05 ws-rem pic x(25).
05 ABC PIC X.
05 CHECK-ITEM PIC X(11).
05 WS-FIRST PIC X.
05 PREV-UM PIC XX.
05 PREV-DESC PIC X(22).
05 PREV-SOURCE PIC X(3).
05 WS-DESC PIC X(5).
01 NUM-CTRS VALUE ZEROS.
05 NUM-DISPLAY PIC +999999999.
05 P-CTR PIC 9(5).
05 L-CTR PIC 99.
05 I PIC 99.
05 J PIC 99.
05 READ-ITEM PIC 9(6).
05 filler redefines read-item.
07 filler pic 9(3).
07 ws-display pic 9(3).
05 READ-RCPTS PIC 9(6).
05 READ-ISSUE PIC 9(6).
05 WS-VAL PIC S9(9)V999.
05 DF-VAL PIC S9(9)V999.
05 cl-bal PIC S9(9)V999.
05 rec PIC S9(9)V999.
05 iss PIC S9(9)V999.
05 WS-NON-ZERO-RT PIC S9(6)V999.
05 WS-TEMP-QTY PIC S9(6)V999.
05 WS-TEMP-VAL PIC S9(7)V99.
05 NUM-1.
07 WS-WT-AVG-RATE PIC S9(6)V999.
07 WS-CLOSING-QTY PIC S9(6)V999.
07 WS-CLOSING-VAL PIC S9(9)V999.
07 PREV-STOCK-QTY PIC S9(7)V999.
07 PREV-STOCK-RATE PIC S9(6)V999.
07 WS-RCT-QTY PIC S9(7)V999.
07 WS-RCT-VAL PIC S9(10)V99.
07 WS-ISU-QTY PIC S9(7)V999.
07 WS-ISU-VAL PIC S9(10)V99.
05 NUM-GT.
07 GT-STK-BOP PIC S9(9)V999.
07 GT-STK-FM PIC S9(9)V999.
07 GT-STK-IMP PIC S9(9)V999.
07 GT-RCT-BOP PIC S9(9)V999.
07 GT-RCT-FM PIC S9(9)V999.
07 GT-RCT-IMP PIC S9(9)V999.
07 GT-ISU-BOP PIC S9(9)V999.
07 GT-ISU-FM PIC S9(9)V999.
07 GT-ISU-IMP PIC S9(9)V999.
07 GT-OPEN PIC S9(9)V999.
07 GT-N-TCH-VAL PIC S9(9)V999.
07 GT-N-TCH-NO PIC 9(5).
07 GT-NEG-VAL PIC S9(9)V999.
07 GT-NEG-NO PIC 9(5).
05 NUM-LT.
07 LT-STK-BOP PIC S9(9)V999.
07 LT-STK-FM PIC S9(9)V999.
07 LT-STK-IMP PIC S9(9)V999.
07 LT-RCT-BOP PIC S9(9)V999.
07 LT-RCT-FM PIC S9(9)V999.
07 LT-RCT-IMP PIC S9(9)V999.
07 LT-ISU-BOP PIC S9(9)V999.
07 LT-ISU-FM PIC S9(9)V999.
07 LT-ISU-IMP PIC S9(9)V999.
07 LT-OPEN PIC S9(9)V999.
07 LT-N-TCH-VAL PIC S9(9)V999.
07 LT-N-TCH-NO PIC 9(5).
07 LT-NEG-VAL PIC S9(9)V999.
07 LT-NEG-NO PIC 9(5).
07 NUM-ST.
10 ST-STK-BOP PIC S9(9)V999.
10 ST-STK-FM PIC S9(9)V999.
10 ST-STK-IMP PIC S9(9)V999.
10 ST-RCT-BOP PIC S9(9)V999.
10 ST-RCT-FM PIC S9(9)V999.
10 ST-RCT-IMP PIC S9(9)V999.
10 ST-ISU-BOP PIC S9(9)V999.
10 ST-ISU-FM PIC S9(9)V999.
10 ST-ISU-IMP PIC S9(9)V999.
10 ST-OPEN PIC S9(9)V999.
10 ST-N-TCH-VAL PIC S9(9)V999.
10 ST-N-TCH-NO PIC 9(5).
10 ST-NEG-VAL PIC S9(9)V999.
10 ST-NEG-NO PIC 9(5).
10 NUM-SST.
12 SST-STK-BOP PIC S9(9)V999.
12 SST-STK-FM PIC S9(9)V999.
12 SST-STK-IMP PIC S9(9)V999.
12 SST-RCT-BOP PIC S9(9)V999.
12 SST-RCT-FM PIC S9(9)V999.
12 SST-RCT-IMP PIC S9(9)V999.
12 SST-ISU-BOP PIC S9(9)V999.
12 SST-ISU-FM PIC S9(9)V999.
12 SST-ISU-IMP PIC S9(9)V999.
12 SST-OPEN PIC S9(9)V999.
12 SST-N-TCH-VAL PIC S9(9)V999.
12 SST-N-TCH-NO PIC 9(5).
12 SST-NEG-VAL PIC S9(9)V999.
12 SST-NEG-NO PIC 9(5).
01 HEAD-1.
05 FILLER PIC X(29) VALUE
'E.C.E.L. -'.
05 FILLER PIC X(19) VALUE
'STOCK LEDGER - '.
05 H1-DATE.
*********** 10 filler pic x(2) value '30'.
*********** 10 FILLER PIC X VALUE '-'.
10 H1-MON PIC X(3).
10 FILLER PIC x(8) VALUE ' AS ON '.
*********** 10 FILLER PIC X VALUE '-'.
10 H1-DT1 PIC X(11).
************ 10 H1-YY PIC X(63).
10 filler PIC X(52).
05 FILLER PIC X(7) VALUE 'PAGE -'.
05 H1-PAGE PIC 9(5).
01 HEAD-2.
05 FILLER PIC X(12) VALUE 'ITEM-CODE'.
05 FILLER PIC X(23) VALUE 'DESCRIPTION'.
05 FILLER PIC X(7) VALUE 'UM'.
05 FILLER PIC X(31) VALUE
'-----------RECIEPTS-----------'.
05 FILLER PIC X(12) VALUE 'WT-AVERAGE'.
05 FILLER PIC X(25) VALUE
'-------ISSUES-------'.
05 FILLER PIC X(17) VALUE
' STOCK'.
05 FILLER PIC X(5) VALUE 'STOCK'.
01 HEAD-3.
05 FILLER PIC X(4) VALUE SPACES.
05 FILLER PIC X(10) VALUE 'D-A-T-E'.
05 FILLER PIC X(9) VALUE 'DOC-NO'.
05 FILLER PIC X(3) VALUE 'AC'.
05 FILLER PIC X(5) VALUE 'DESC'.
05 FILLER PIC X(16) VALUE 'JO/PO-NO'.
05 FILLER PIC X(10) VALUE 'QTY'.
05 FILLER PIC X(10) VALUE 'RATE'.
05 FILLER PIC X(12) VALUE 'VALUE'.
05 FILLER PIC X(12) VALUE 'RATE'.
05 FILLER PIC X(9) VALUE 'QTY'.
05 FILLER PIC X(16) VALUE 'VALUE'.
05 FILLER PIC X(11) VALUE 'QTY'.
05 FILLER PIC x(8) VALUE 'VALUE'.
01 FOOT-1.
05 FILLER PIC X(36) VALUE SPACES.
05 FILLER PIC X(15) VALUE 'OPEN-BAL'.
05 FILLER PIC X(15) VALUE 'RECEIPT'.
05 FILLER PIC X(10) VALUE 'ISSUE'.
05 FILLER PIC X(12) VALUE 'CLOSE-BAL'.
05 FILLER PIC X(17) VALUE 'NOT-TOUCHED'.
05 FILLER PIC X(18) VALUE 'NEG-STK-VAL'.
05 FILLER PIC X(12) VALUE 'DIFF'.
01 ACC-HEAD-1.
05 FILLER PIC X(6) VALUE 'AC-CD'.
05 FILLER PIC X(21) VALUE 'DESCRIPTION'.
05 FILLER PIC X(13) VALUE ' RECEIPTS'.
05 FILLER PIC X(14) VALUE ' ISSUES'.
01 newit.
05 it10 pic x(10).
05 it11 pic x(1).
PROCEDURE DIVISION.
MAIN SECTION.
BEGIN.
DISPLAY 'FIRST THE O S P RATES SHOULD BE POSTED...'.
DISPLAY 'LEDGER PRINTING PROGRAM EXECUTION STARTED'.
MOVE ZEROS TO STORE-ACC-TABLE LOC-ACC-TABLE
NUM-1 GRAND-ACC-TABLE.
MOVE ZEROS TO DS-CLOSE-QTY DS-CLOSE-RATE DS-TOT-ISSUE
DS-VALUE DS-TOT-RCPTS DS-UPD-RATE DS-UPD-ST-RATE.
EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC.
EXEC SQL WHENEVER SQLERROR GO TO ORA-ERR1 END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO ORA-ERR2 END-EXEC.
LOGIN-PARA.
EXEC SQL
CONNECT :USERID IDENTIFIED BY :PASSWD
END-EXEC.

DISPLAY 'CONNECTED'.
OPEN OUTPUT PRINT-FILE.
GET-PARA.
DISPLAY 'ENTER LEDGER PROCESSING MONTH-YEAR (FROM) [MONYYYY] '
with no advancing.
ACCEPT DS-MON-YY.
DISPLAY 'ENTER LEDGER PROCESSING MONTH-YEAR (TO) [MONYYYY] '
with no advancing.
ACCEPT DS-MON-YY1.
DISPLAY 'ENTER LOCATION CODE : ' with no advancing.
ACCEPT DS-loc-code.
MOVE DS-MON-YY TO WS-MON-YY.
IF DS-MON-YY = SPACES
GO TO EOJ-PARA1.
IF NOT VALID-MON
GO TO GET-PARA.
IF NOT VALID-YY
GO TO GET-PARA.
MOVE WS-MON TO DS-MON.
MOVE WS-MON TO H1-MON.
********** MOVE WS-YY TO H1-YY.

EXEC SQL
SELECT
LAST_DAY(ADD_MONTHS(TO_DATE(:DS-MON-YY,'MONYYYY'),1))
INTO :DS-MON1-YY FROM DUAL
END-EXEC.
EXEC SQL
SELECT
to_char(sysdate,'DD-MON-YYYY')
INTO :DS-DT FROM DUAL
END-EXEC.
move DS-DT to H1-DT1.

EXEC SQL
DECLARE C1 CURSOR FOR
SELECT NVL(ITEM_CODE,' '), nvl(IT_DESC,' '),
nvl(IT_UM,' '),
nvl(IT_SOURCE,' '),nvl(it_stock_rate,0)
FROM mt_ITEM_MAS
where substr(item_code,1,1) = :ds-loc-code
******** WHERE NVL(IT_DELETION_TAG,' ') = ' '
END-EXEC.

EXEC SQL
DECLARE C2 CURSOR FOR
SELECT nvl(ITEM_CODE,' '),nvl(ECN,' '),
nvl(ACCOUNT_CODE,' '),
nvl(to_char(GR_STORE_DATE,'DD/MM/YYYY'),' '),
nvl(PO_NO,' '), nvl(GR_ACCEPTED_QTY,0),
nvl(GR_RATE,0),
nvl(TO_CHAR(GR_STORE_DATE,'YYMMDDHH24MISS'),' ')
FROM MT_GATE_RCPTS
WHERE to_date(gr_store_date ,'DD-MON-YY')
between to_date(:DS-MON-YY,'MONYYYY') and
last_day(to_date(:DS-MON-YY1,'MONYYYY'))
************* AND GR_LEDGER_DATE > to_date('31-MAR-1992','DD-MON-YYYY')
************ AND GR_LEDGER_DATE <= to_date('30-sep-1992','DD-MON-YYYY')
AND GR_STORE_DATE IS NOT NULL
and substr(item_code,1,1) = :ds-loc-code
END-EXEC.

EXEC SQL
DECLARE C3 CURSOR FOR
SELECT nvl(IS_ITEM_CODE,' '), nvl(IS_ISSUE_NO,' '),
nvl(IS_SRS_NO,' '),
nvl(IS_ACCOUNT_CODE,' '),
nvl(to_char(IS_ISSUE_DATE,'DD/MM/YYYY'),' '),
nvl(IS_JOB_ORDER_NO,' '),
nvl(IS_PO_NO,' '),
nvl(IS_ISSUE_QTY,0), nvl(IS_RATE,0),
nvl(TO_CHAR(IS_ISSUE_DATE,'YYYYMMDD'),' ')||
nvl(TO_CHAR(IS_SYSTEM_DATE,'HH24MISS'),' ')
****************** TO_CHAR(IS_ISSUE_DATE,'YYMMDDHH24MISS')
FROM vip_INT_ISSUE
WHERE to_date(IS_issue_date,'DD-MON-YY') between
to_date(:DS-MON-YY,'MONYYYY') and
last_day(to_date(:DS-MON-YY1,'MONYYYY'))
************* WHERE IS_LEDGER_DATE< to_date('01-AUG-1992','DD-MON-YYYY')
************** AND IS_LEDGER_DATE >to_date('31-MAR-1992','DD-MON-YYYY')
************* AND IS_LEDGER_DATE <=to_date('30-sep-1992','DD-MON-YYYY')
and nvl(IS_ISSUE_NO,' ') != ' '
and substr(is_item_code,1,1) = :ds-loc-code
END-EXEC.
*
* For the time being the issues table is being sorted on issue-
* date (YYMMDD) and system time (HH24MISS) because the issue
* date does not have time stored with it.
* Actually it should be sorted on issue date and time.
*
SORT SORT-FILE ON ASCENDING KEY S-KEY
INPUT PROCEDURE IS READ-RTN THRU RR-EXIT
OUTPUT PROCEDURE IS PRINT-RTN THRU PR-EXIT.
GO TO EOJ-PARA.
READ-RTN SECTION.
READ-PARA.
DISPLAY 'SORTING IN PROGRESS...'.
display 'sorting item master ...'.
EXEC SQL OPEN C1 END-EXEC.
EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC.
EXEC SQL WHENEVER SQLERROR GO TO ERR-ITEM END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO FETCH-RECPT END-EXEC.

FETCH-ITEM.
MOVE SPACES TO VARIABLE-NAMES.
EXEC SQL
FETCH C1 INTO :DS-ITEM-CODE, :DS-ITEM-DESC,
:DS-UM-STORE, :DS-SOURCE
END-EXEC.

move ds-item-code to newit.
if it11 = '0' or '1' or '2' or '3'
move 'BOP' to ds-source.
if it11 = '4' or '5' or '6'
move 'FM ' to ds-source.
if it11 = '8' or '9'
move 'IMP' to ds-source.
move ds-item-code to ws-it.
********** if ws-it not = '1J'
********** go to fetch-item.
***********if ds-item-code < '1J610000000'
*********** go to fetch-item.
***********if ds-item-code > '1J619999999'
*********** go to fetch-item.

MOVE ZEROS TO DS-STOCK-QTY DS-STOCK-RATE.
EXEC SQL WHENEVER SQLERROR GO TO ERR-ITEM-OP END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO FI1 END-EXEC.
EXEC SQL
SELECT nvl(OP_MTH_OPQTY,0), nvl(OP_MTH_OPRATE,0)
INTO :DS-STOCK-QTY, :DS-STOCK-RATE
FROM spd_ITEM_OPEN_bk
WHERE ITEM_CODE = :DS-ITEM-CODE AND
OP_CLOSE_DT = last_day(to_date(:DS-MON-YY,'MONYYYY'))
END-EXEC.
FI1.
MOVE SPACES TO SORT-REC.
MOVE DS-ITEM-CODE TO S-ITEM-CODE.
MOVE DS-ITEM-DESC TO S-ITEM-DESC.
MOVE DS-UM-STORE TO S-UM-STORE.
MOVE DS-STOCK-QTY TO S-STOCK-QTY.
MOVE DS-STOCK-RATE TO S-STOCK-RATE.
MOVE DS-SOURCE TO S-SOURCE.
MOVE '1' TO S-SRNO.
MOVE '0' TO s-rec-type.
RELEASE SORT-REC.
add 1 to read-item.
if ws-display = zeros
display 'Items read : ' read-item.
GO TO FETCH-ITEM.
FETCH-RECPT.
display 'sorting receipts table...'.
EXEC SQL
CLOSE C1
END-EXEC.
EXEC SQL
OPEN C2
END-EXEC.
EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC.
EXEC SQL WHENEVER SQLERROR GO TO ERR-RECPT END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO FETCH-ISSUE END-EXEC.
FETCH-RECPT-LOOP.
MOVE SPACES TO VARIABLE-NAMES.
EXEC SQL
FETCH C2 INTO :DS-ITEM-CODE, :DS-DOC-NO,
:DS-ACC-CD, :DS-DATE, :DS-PO-NO,
:DS-QTY,
:DS-RATE,
:DS-DATE-TIME
END-EXEC.
move ds-item-code to ws-it.
***********if ws-it not = '1J'
*********** go to fetch-recpt-loop.
***********if ds-item-code < '1J610000000'
*********** go to fetch-item.
***********if ds-item-code > '1J619999999'
*********** go to fetch-item.

EXEC SQL WHENEVER SQLERROR GO TO ERR-PO-ITEM END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO FRL1 END-EXEC.

IF DS-ACC-CD = '00' OR '01' or '02'
GO TO FRL0.
GO TO FRL1.
FRL0.
MOVE ZEROS TO DS-RATE, DS-RATE-E.
display 'PO-NO' DS-PO-NO.
display 'ITEM-CODE' DS-ITEM-CODE.
display 'DS-DATE ' DS-DATE.
EXEC SQL
SELECT distinct
nvl(POI_CAL_RATE_WE,0)/nvl(POI_PR_TO_S_CONV,1),
nvl(POI_CAL_RATE_E,0)/nvl(POI_PR_TO_S_CONV,1),
:DS-QTY * nvl(POI_PR_TO_S_CONV,1)
INTO :DS-RATE, :DS-RATE-E, :DS-QTY
FROM MT_PO_ITEM a
WHERE PO_NO = :DS-PO-NO
AND ITEM_CODE = :DS-ITEM-CODE
AND to_number(a.PO_amend_slno)=
(select max(to_number(b.po_amend_slno))
from mt_po_item b
where a.po_no=b.po_no
and a.item_code=b.item_code)
END-EXEC.

EXEC SQL WHENEVER SQLERROR GO TO ERR-PO-HEAD END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO FRL1 END-EXEC.

EXEC SQL
SELECT nvl(PO_CAT,' ')
INTO :DS-PO-CAT
FROM MT_PO_HEAD
WHERE PO_NO = :DS-PO-NO
AND TO_NUMBER(PO_AMEND_SLNO) = 0
END-EXEC.
IF DS-PO-CAT = 'N'
MOVE DS-RATE-E TO DS-RATE.
********* check for picking excisable rate.
if ds-loc-code = 'S'
move DS-RATE-E to DS-RATE.
****************************
if ds-po-no = spaces
move it-stock-rate to DS-RATE.
FRL1.
MOVE SPACES TO SORT-REC.
MOVE DS-ITEM-CODE TO S-ITEM-CODE.
MOVE DS-DATE-TIME TO S-DATE-TIME.
MOVE DS-DOC-NO TO S-DOC-NO.
MOVE DS-ACC-CD TO S-ACC-CD.
MOVE DS-DATE TO S-DATE.
MOVE DS-PO-NO TO S-JOB-PO-NO.
MOVE DS-QTY TO S-QTY.
MOVE DS-RATE TO S-RATE.
MOVE '2' TO S-SRNO.
MOVE 'R' TO S-TYPE.
MOVE '0' TO akc.
MOVE '1' TO s-rec-type.
RELEASE SORT-REC.
add 1 to read-rcpts.
GO TO FETCH-RECPT-LOOP.
FETCH-ISSUE.
display 'sorting issues table...'.
EXEC SQL CLOSE C2 END-EXEC.
EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC.
EXEC SQL WHENEVER SQLERROR GO TO ERR-ISSUE END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO RR-EXIT0 END-EXEC.
EXEC SQL
OPEN C3
END-EXEC.
FETCH-ISSUE-LOOP.
MOVE SPACES TO VARIABLE-NAMES.
EXEC SQL
FETCH C3 INTO :DS-ITEM-CODE,:DS-DOC-NO,
:DS-SRS-NO,
:DS-ACC-CD, :DS-DATE, :DS-JOB-NO,
:DS-PO-NO, :DS-QTY, :DS-RATE,
:DS-DATE-TIME
END-EXEC.
move ds-item-code to ws-it.
***********if ws-it not = '1J'
*********** go to fetch-issue-loop.
***********if ds-item-code < '1J610000000'
*********** go to fetch-item.
***********if ds-item-code > '1J619999999'
*********** go to fetch-item.

MOVE SPACES TO SORT-REC.
MOVE DS-ITEM-CODE TO S-ITEM-CODE.
MOVE DS-DATE-TIME TO S-DATE-TIME.
move DS-DOC-NO to S-DOC-NO.
********** if S-DOC-NO = spaces
********** MOVE DS-DOC-NO TO S-DOC-NO.
move ds-srs-no to s-srs-no.
MOVE DS-ACC-CD TO S-ACC-CD.
MOVE DS-DATE TO S-DATE.
MOVE DS-JOB-NO TO S-JOB-PO-NO.
IF DS-ACC-CD = '16'
MOVE DS-PO-NO TO S-JOB-PO-NO.
MOVE DS-QTY TO S-QTY.
MOVE DS-RATE TO S-RATE.
MOVE '2' TO S-SRNO.
MOVE 'I' TO S-TYPE.
MOVE '1' TO akc.
MOVE '2' TO s-rec-type.
RELEASE SORT-REC.
add 1 to read-issue.
GO TO FETCH-ISSUE-LOOP.
RR-EXIT0.
EXEC SQL
CLOSE C3
END-EXEC.
RR-EXIT1. EXIT.
RR-EXIT SECTION.
DUMMY-EXIT. EXIT.
PRINT-RTN SECTION.
PRINT-RTN-START.
display 'items-read ' read-item.
display 'recpts-read ' read-rcpts.
display 'issues-read ' read-issue.
DISPLAY 'PRINTING IN PROGRESS ....'.
PERFORM HEAD-PARA THRU HP-EXIT.
MOVE SPACES TO WS-FIRST.
PRINT-RTN-LOOP.
RETURN SORT-FILE AT END GO TO PR-EXIT.
PR0.
MOVE S-ITEM-CODE TO CHECK-ITEM.
MOVE S-ITEM-DESC TO PREV-DESC.
MOVE S-UM-STORE TO PREV-UM.
MOVE S-STOCK-QTY TO PREV-STOCK-QTY.
MOVE S-STOCK-RATE TO PREV-STOCK-RATE.
MOVE S-SOURCE TO PREV-SOURCE.
IF WS-FIRST = SPACES
MOVE S-ITEM-CODE TO PREV-ITEM-CODE
MOVE '1' TO WS-FIRST.
PR1.
RETURN SORT-FILE AT END GO TO PR-EXIT.
move spaces to break-flag, ep-flag.
PR2.
if eoj-flag = '1'
go to pr-exit.
IF S-ITEM-LOC NOT = PREV-LOC
PERFORM LOCATION-BREAK THRU LB-EXIT
MOVE S-ITEM-DESC TO PREV-DESC
MOVE S-UM-STORE TO PREV-UM
MOVE S-STOCK-QTY TO PREV-STOCK-QTY
MOVE S-STOCK-RATE TO PREV-STOCK-RATE
MOVE S-SOURCE TO PREV-SOURCE
MOVE S-ITEM-CODE TO PREV-ITEM-CODE.
IF S-ITEM-STORE NOT = PREV-STORE
PERFORM STORE-BREAK THRU SB-EXIT
MOVE S-ITEM-DESC TO PREV-DESC
MOVE S-UM-STORE TO PREV-UM
MOVE S-STOCK-QTY TO PREV-STOCK-QTY
MOVE S-STOCK-RATE TO PREV-STOCK-RATE
MOVE S-SOURCE TO PREV-SOURCE
MOVE S-ITEM-CODE TO PREV-ITEM-CODE.
IF S-ITEM-SUB-STORE NOT = PREV-SUB-STORE
PERFORM SUB-STORE-BREAK THRU SSB-EXIT
MOVE S-ITEM-DESC TO PREV-DESC
MOVE S-UM-STORE TO PREV-UM
MOVE S-STOCK-QTY TO PREV-STOCK-QTY
MOVE S-STOCK-RATE TO PREV-STOCK-RATE
MOVE S-SOURCE TO PREV-SOURCE
MOVE S-ITEM-CODE TO PREV-ITEM-CODE.
IF S-SRNO NOT = '2'
PERFORM NOT-TOUCHED THRU NT-EXIT
MOVE S-ITEM-CODE TO CHECK-ITEM
MOVE S-ITEM-CODE TO PREV-ITEM-CODE
MOVE S-ITEM-DESC TO PREV-DESC
MOVE S-UM-STORE TO PREV-UM
MOVE S-STOCK-QTY TO PREV-STOCK-QTY
MOVE S-STOCK-RATE TO PREV-STOCK-RATE
MOVE S-SOURCE TO PREV-SOURCE
GO TO PR1.
IF S-ITEM-CODE = CHECK-ITEM
PERFORM EQUAL-PARA THRU EP-EXIT
GO TO pr2.
PERFORM NOT-TOUCHED THRU NT-EXIT.
DISPLAY 'ITEM-MASTER MISSING ' S-ITEM-CODE.
GO TO PRINT-RTN-LOOP.
PR-EXIT SECTION.
PR-EXIT1. EXIT.
DUMMY-BREAK SECTION.
LOCATION-BREAK.
PERFORM STORE-BREAK THRU SB-EXIT.
MOVE SPACES TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE FOOT-1 TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE PREV-LOC TO P4-ITEM-IND.
MOVE ' LOCATION-TOTAL ---->'
TO P4-REM.
MOVE LT-OPEN TO P4-OPEN-BAL.
* MOVE LT-N-TCH-VAL TO P4-NOT-TOUCH-V.
* MOVE LT-N-TCH-NO TO P4-NOT-TOUCH-N.
MOVE ZEROS TO P4-NOT-TOUCH-V.
MOVE ZEROS TO P4-NOT-TOUCH-N.
move lt-neg-val to p4-neg-stk-val.
move lt-neg-no to p4-neg-stk-no.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = LT-STK-BOP + LT-STK-FM + LT-STK-IMP.
MOVE WS-VAL TO P4-CLOSE-BAL.
MOVE WS-VAL TO CL-BAL.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = LT-RCT-BOP + LT-RCT-FM + LT-RCT-IMP.
MOVE WS-VAL TO P4-RECEIPT.
MOVE WS-VAL TO REC.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = LT-ISU-BOP + LT-ISU-FM + LT-ISU-IMP.
MOVE WS-VAL TO P4-ISSUE.
MOVE WS-VAL TO ISS.
COMPUTE DF-val = lt-open + REC - ISS - CL-BAL.
move df-val to diff.
move zeros to df-val.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE 'STK-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE LT-STK-BOP TO P5-BOP-VAL.
MOVE LT-STK-FM TO P5-FM-VAL.
MOVE LT-STK-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'RCT-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE LT-RCT-BOP TO P5-BOP-VAL.
MOVE LT-RCT-FM TO P5-FM-VAL.
MOVE LT-RCT-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'ISU-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE LT-ISU-BOP TO P5-BOP-VAL.
MOVE LT-ISU-FM TO P5-FM-VAL.
MOVE LT-ISU-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
COMPUTE GT-OPEN = GT-OPEN + LT-OPEN.
COMPUTE GT-STK-BOP = GT-STK-BOP + LT-STK-BOP.
COMPUTE GT-RCT-BOP = GT-RCT-BOP + LT-RCT-BOP.
COMPUTE GT-ISU-BOP = GT-ISU-BOP + LT-ISU-BOP.
COMPUTE GT-STK-FM = GT-STK-FM + LT-STK-FM.
COMPUTE GT-RCT-FM = GT-RCT-FM + LT-RCT-FM.
COMPUTE GT-ISU-FM = GT-ISU-FM + LT-ISU-FM.
COMPUTE GT-STK-IMP = GT-STK-IMP + LT-STK-IMP.
COMPUTE GT-RCT-IMP = GT-RCT-IMP + LT-RCT-IMP.
COMPUTE GT-ISU-IMP = GT-ISU-IMP + LT-ISU-IMP.
COMPUTE GT-N-TCH-VAL = GT-N-TCH-VAL + LT-N-TCH-VAL.
COMPUTE GT-N-TCH-NO = GT-N-TCH-NO + LT-N-TCH-NO.
COMPUTE GT-NEG-VAL = GT-NEG-VAL + LT-NEG-VAL.
COMPUTE GT-NEG-NO = GT-NEG-NO + LT-NEG-NO.
MOVE ZEROS TO NUM-LT.
move prev-loc to ws-item-ind.
move '** LOCATION TOTALS **' to ws-rem.
move loc-acc-table to store-acc-table.
perform print-acc-page thru pap-exit.
perform head-para thru hp-exit.
move zeros to loc-acc-table.
LB-EXIT. EXIT.
STORE-BREAK.
PERFORM SUB-STORE-BREAK THRU SSB-EXIT.
MOVE SPACES TO PRINT-REC.
if num-st = zeros
go to sb1.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE FOOT-1 TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE PREV-STORE TO P4-ITEM-IND.
MOVE ' STORE-TOTAL ---->'
TO P4-REM.
MOVE ST-OPEN TO P4-OPEN-BAL.
* MOVE ST-N-TCH-VAL TO P4-NOT-TOUCH-V.
* MOVE ST-N-TCH-NO TO P4-NOT-TOUCH-N.
MOVE ZEROS TO P4-NOT-TOUCH-V.
MOVE ZEROS TO P4-NOT-TOUCH-N.
move st-neg-val to p4-neg-stk-val.
move st-neg-no to p4-neg-stk-no.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = ST-STK-BOP + ST-STK-FM + ST-STK-IMP.
MOVE WS-VAL TO P4-CLOSE-BAL.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = ST-RCT-BOP + ST-RCT-FM + ST-RCT-IMP.
MOVE WS-VAL TO P4-RECEIPT.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = ST-ISU-BOP + ST-ISU-FM + ST-ISU-IMP.
MOVE WS-VAL TO P4-ISSUE.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE 'STK-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE ST-STK-BOP TO P5-BOP-VAL.
MOVE ST-STK-FM TO P5-FM-VAL.
MOVE ST-STK-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'RCT-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE ST-RCT-BOP TO P5-BOP-VAL.
MOVE ST-RCT-FM TO P5-FM-VAL.
MOVE ST-RCT-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'ISU-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE ST-ISU-BOP TO P5-BOP-VAL.
MOVE ST-ISU-FM TO P5-FM-VAL.
MOVE ST-ISU-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
sb1.
COMPUTE LT-OPEN = LT-OPEN + ST-OPEN.
COMPUTE LT-STK-BOP = LT-STK-BOP + ST-STK-BOP.
COMPUTE LT-RCT-BOP = LT-RCT-BOP + ST-RCT-BOP.
COMPUTE LT-ISU-BOP = LT-ISU-BOP + ST-ISU-BOP.
COMPUTE LT-STK-FM = LT-STK-FM + ST-STK-FM.
COMPUTE LT-RCT-FM = LT-RCT-FM + ST-RCT-FM.
COMPUTE LT-ISU-FM = LT-ISU-FM + ST-ISU-FM.
COMPUTE LT-STK-IMP = LT-STK-IMP + ST-STK-IMP.
COMPUTE LT-RCT-IMP = LT-RCT-IMP + ST-RCT-IMP.
COMPUTE LT-ISU-IMP = LT-ISU-IMP + ST-ISU-IMP.
COMPUTE LT-N-TCH-VAL = LT-N-TCH-VAL + ST-N-TCH-VAL.
COMPUTE LT-N-TCH-NO = LT-N-TCH-NO + ST-N-TCH-NO.
COMPUTE LT-NEG-VAL = LT-NEG-VAL + ST-NEG-VAL.
COMPUTE LT-NEG-NO = LT-NEG-NO + ST-NEG-NO.
MOVE ZEROS TO NUM-ST.
perform head-para thru hp-exit.
if store-acc-table = zeros
go to sb-exit.
move prev-store to ws-item-ind.
move '** STORE TOTAL **' to ws-rem.
perform print-acc-page thru pap-exit.
perform head-para thru hp-exit.
move zeros to store-acc-table.
exec sql
commit
end-exec.
SB-EXIT. EXIT.
SUB-STORE-BREAK.
if eof-flag = '1'
go to sst0.
if s-srno = '2'
go to sst1.
sst0.
if ep-flag = '1'
go to sst1.
MOVE ZEROS TO WS-VAL.
COMPUTE
WS-VAL = PREV-STOCK-RATE * PREV-STOCK-QTY.
move '1' to break-flag.
move prev-item-code to ds-item-code.
move prev-stock-rate to ds-close-rate.
move prev-stock-qty to ds-close-qty.
move zeros to ds-tot-issue DS-VALUE
ds-tot-rcpts.
move zeros to ws-isu-val ws-rct-val.
if WS-VAL = 0
go to sst00.
COMPUTE
SST-N-TCH-VAL = SST-N-TCH-VAL +
PREV-STOCK-QTY * PREV-STOCK-RATE.
ADD 1 TO SST-N-TCH-NO.
MOVE SPACES TO PRINT-REC.
MOVE PREV-ITEM-CODE TO P1-ITEM-CODE.
MOVE PREV-DESC TO P1-ITEM-DESC.
MOVE PREV-UM TO P1-UM.
MOVE PREV-STOCK-RATE TO P1-OPN-RATE.
MOVE PREV-STOCK-QTY TO P1-OPN-QTY.
MOVE WS-VAL TO P1-OPN-VAL.
COMPUTE SST-OPEN = SST-OPEN + WS-VAL.
********* MOVE ' OPENING-->' TO P1-REM.
MOVE SPACES TO P1-REM.
write print-rec after 1.
add 1 to l-ctr.
move spaces to print-rec.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
PERFORM ADD-TOTALS THRU AT-EXIT.
if WS-VAL < 0
add WS-VAL to sst-neg-val
add 1 to sst-neg-no.
sst00.
perform update-table thru ut-exit.
MOVE ZEROS TO NUM-1.
MOVE ZEROS TO DS-CLOSE-QTY DS-CLOSE-RATE DS-TOT-ISSUE
DS-VALUE DS-TOT-RCPTS DS-UPD-RATE DS-UPD-ST-RATE.
SST1.
if num-sst = zeros
go to sst2.
MOVE SPACES TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE FOOT-1 TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE PREV-SUB-STORE TO P4-ITEM-IND.
MOVE 'SUB-STORE-TOTAL ---->'
TO P4-REM.
MOVE SST-OPEN TO P4-OPEN-BAL.
* MOVE SST-N-TCH-VAL TO P4-NOT-TOUCH-V.
* MOVE SST-N-TCH-NO TO P4-NOT-TOUCH-N.
MOVE ZEROS TO P4-NOT-TOUCH-V.
MOVE ZEROS TO P4-NOT-TOUCH-N.
move sst-neg-val to p4-neg-stk-val.
move sst-neg-no to p4-neg-stk-no.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = SST-STK-BOP + SST-STK-FM + SST-STK-IMP.
MOVE WS-VAL TO P4-CLOSE-BAL.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = SST-RCT-BOP + SST-RCT-FM + SST-RCT-IMP.
MOVE WS-VAL TO P4-RECEIPT.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = SST-ISU-BOP + SST-ISU-FM + SST-ISU-IMP.
MOVE WS-VAL TO P4-ISSUE.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE 'STK-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE SST-STK-BOP TO P5-BOP-VAL.
MOVE SST-STK-FM TO P5-FM-VAL.
MOVE SST-STK-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'RCT-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE SST-RCT-BOP TO P5-BOP-VAL.
MOVE SST-RCT-FM TO P5-FM-VAL.
MOVE SST-RCT-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'ISU-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE SST-ISU-BOP TO P5-BOP-VAL.
MOVE SST-ISU-FM TO P5-FM-VAL.
MOVE SST-ISU-IMP TO P5-IMP-VAL.
***********PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE ALL '-' TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 5 TIMES.
sst2.
COMPUTE ST-OPEN = ST-OPEN + SST-OPEN.
COMPUTE ST-STK-BOP = ST-STK-BOP + SST-STK-BOP.
COMPUTE ST-RCT-BOP = ST-RCT-BOP + SST-RCT-BOP.
COMPUTE ST-ISU-BOP = ST-ISU-BOP + SST-ISU-BOP.
COMPUTE ST-STK-FM = ST-STK-FM + SST-STK-FM.
COMPUTE ST-RCT-FM = ST-RCT-FM + SST-RCT-FM.
COMPUTE ST-ISU-FM = ST-ISU-FM + SST-ISU-FM.
COMPUTE ST-STK-IMP = ST-STK-IMP + SST-STK-IMP.
COMPUTE ST-RCT-IMP = ST-RCT-IMP + SST-RCT-IMP.
COMPUTE ST-ISU-IMP = ST-ISU-IMP + SST-ISU-IMP.
COMPUTE ST-N-TCH-VAL = ST-N-TCH-VAL + SST-N-TCH-VAL.
COMPUTE ST-N-TCH-NO = ST-N-TCH-NO + SST-N-TCH-NO.
COMPUTE ST-NEG-VAL = ST-NEG-VAL + SST-NEG-VAL.
COMPUTE ST-NEG-NO = ST-NEG-NO + SST-NEG-NO.
MOVE ZEROS TO NUM-SST.
exec sql
commit
end-exec.
SSB-EXIT. EXIT.
EQUAL-PARA.
MOVE SPACES TO PRINT-REC.
MOVE ZEROS TO WS-VAL, WS-CLOSING-QTY
WS-NON-ZERO-RT.
MOVE PREV-ITEM-CODE TO P1-ITEM-CODE.
MOVE PREV-DESC TO P1-ITEM-DESC.
MOVE PREV-UM TO P1-UM.
MOVE PREV-STOCK-RATE TO P1-OPN-RATE ws-wt-avg-rate
ws-non-zero-rt.
MOVE PREV-STOCK-QTY TO P1-OPN-QTY WS-CLOSING-QTY.
COMPUTE
WS-VAL = PREV-STOCK-RATE * PREV-STOCK-QTY.
MOVE WS-VAL TO P1-OPN-VAL WS-CLOSING-VAL.
COMPUTE SST-OPEN = SST-OPEN + WS-VAL.
MOVE ' OPENING-->' TO P1-REM.
write print-rec after 1.
add 1 to l-ctr.
******** write print-rec after 0.
move spaces to print-rec.
******** PERFORM PRINT-A-LINE THRU PAL-EXIT.
EP1.
******** MOVE S-SRS-NO TO P2-DOC-NO.
***********if s-srs-no = spaces
MOVE S-DOC-NO TO P2-DOC-NO.
MOVE S-ACC-CD TO P2-ACC-CD.
MOVE S-DATE TO P2-DATE.
MOVE S-JOB-PO-NO TO P2-JOB-PO-NO.
MOVE ZEROS TO WS-VAL.
IF S-TYPE = 'I' GO TO EP10.
IF S-ACC-CD = '00' OR '01' OR '03' or '02' or '09' or '07'
GO TO EP11.
EP10.
IF S-ACC-CD NOT = '21'
MOVE WS-WT-AVG-RATE TO S-RATE.
EP11.
COMPUTE WS-VAL = S-QTY * S-RATE.
move S-RATE to ds-upd-rate.
move S-DOC-NO to DS-CONTROL-NO.
IF S-TYPE = 'R'
GO TO EP2.
MOVE S-QTY TO P2-ISU-QTY.
MOVE WS-VAL TO P2-ISU-VAL.
ADD WS-VAL TO WS-ISU-VAL.
ADD S-QTY TO WS-ISU-QTY.
COMPUTE WS-CLOSING-QTY = WS-CLOSING-QTY - S-QTY.
********** move DS-DOC-NO to DS-CONTROL-NO.
* PERFORM UPDATE-ISSUE THRU UI-EXIT.
GO TO EP3.
EP2.
MOVE S-QTY TO P2-RCT-QTY.
MOVE S-RATE TO P2-RCT-RATE.
MOVE WS-VAL TO P2-RCT-VAL.
ADD WS-VAL TO WS-RCT-VAL.
ADD S-QTY TO WS-RCT-QTY.
move ws-closing-qty to ws-temp-qty.
move ws-closing-val to ws-temp-val.
if ws-closing-qty < 0
move zeros to ws-temp-qty ws-temp-val.
COMPUTE WS-CLOSING-QTY = WS-CLOSING-QTY + S-QTY.
COMPUTE WS-TEMP-QTY = WS-TEMP-QTY + S-QTY.
COMPUTE
WS-WT-AVG-RATE =
(WS-TEMP-VAL + WS-VAL) / WS-TEMP-QTY.
IF WS-WT-AVG-RATE NOT = ZEROS
MOVE WS-WT-AVG-RATE TO WS-NON-ZERO-RT.
if ws-wt-avg-rate = zeros
move ws-non-zero-rt to ws-wt-avg-rate.
move ws-wt-avg-rate to ds-upd-st-rate.
move WS-VAL TO DS-VALUE.
* PERFORM UPDATE-RECPT THRU UR-EXIT.
EP3.
MOVE WS-WT-AVG-RATE TO P2-WT-AVG-RATE.
MOVE WS-CLOSING-QTY TO P2-CLOSE-QTY.
perform add-to-acc thru ata-exit.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = WS-CLOSING-QTY * WS-WT-AVG-RATE.
MOVE WS-VAL TO P2-CLOSE-VAL WS-CLOSING-VAL.
PERFORM MOVE-ACC-DESC THRU MAD-EXIT.
MOVE WS-DESC TO P2-ACC-DESC.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
RETURN SORT-FILE AT END
move '1' to eoj-flag
go to ep4.
IF S-ITEM-CODE = CHECK-ITEM
GO TO EP1.
EP4.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'CLOSING----->' TO P3-REM.
MOVE WS-RCT-QTY TO P3-RCT-QTY.
MOVE WS-RCT-VAL TO P3-RCT-VAL.
move ws-wt-avg-rate to p3-wt-avg-rate.
MOVE WS-ISU-QTY TO P3-ISU-QTY.
MOVE WS-ISU-VAL TO P3-ISU-VAL.
MOVE WS-CLOSING-QTY TO P3-CLOSE-QTY.
MOVE WS-CLOSING-VAL TO P3-CLOSE-VAL.
WRITE PRINT-REC AFTER 1.
ADD 1 TO L-CTR.
******* WRITE PRINT-REC AFTER 0.
MOVE SPACES TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
PERFORM ADD-TOTALS THRU AT-EXIT.
if ws-closing-val < 0
add WS-VAL TO sst-neg-val
add 1 to sst-neg-no.
move check-item to ds-item-code.
move ws-wt-avg-rate to ds-close-rate.
if ws-wt-avg-rate = zeros
move ws-non-zero-rt to ds-close-rate.
move ws-closing-qty to ds-close-qty.
move ws-rct-qty to ds-tot-rcpts.
move ws-isu-qty to ds-tot-issue.
perform update-table thru ut-exit.
MOVE ZEROS TO NUM-1.
MOVE ZEROS TO DS-CLOSE-QTY DS-CLOSE-RATE DS-TOT-ISSUE
DS-VALUE DS-TOT-RCPTS DS-UPD-RATE DS-UPD-ST-RATE.
move '1' to ep-flag.
if eoj-flag = '1'
go to ep-exit.
**********MOVE S-ITEM-CODE TO PREV-ITEM-CODE.
move s-item-code to check-item.
move s-item-desc to prev-desc.
move s-um-store to prev-um.
move s-stock-qty to prev-stock-qty.
move s-stock-rate to prev-stock-rate.
move s-source to prev-source.
EP-EXIT. EXIT.
NOT-TOUCHED.
if ep-flag = '1' go to nt-exit.
if break-flag = '1' go to nt-exit.
MOVE ZEROS TO WS-VAL.
COMPUTE
WS-VAL = PREV-STOCK-RATE * PREV-STOCK-QTY.
move prev-item-code to ds-item-code.
move prev-stock-rate to ds-close-rate.
move prev-stock-qty to ds-close-qty.
move zeros to ds-tot-issue DS-VALUE
ds-tot-rcpts.
move zeros to ws-isu-val ws-rct-val.
if WS-VAL = 0
go to nt1.
COMPUTE
SST-N-TCH-VAL = SST-N-TCH-VAL +
PREV-STOCK-QTY * PREV-STOCK-RATE.
ADD 1 TO SST-N-TCH-NO.
MOVE SPACES TO PRINT-REC.
MOVE PREV-ITEM-CODE TO P1-ITEM-CODE.
MOVE PREV-DESC TO P1-ITEM-DESC.
MOVE PREV-UM TO P1-UM.
MOVE PREV-STOCK-RATE TO P1-OPN-RATE.
MOVE PREV-STOCK-QTY TO P1-OPN-QTY.
MOVE WS-VAL TO P1-OPN-VAL.
COMPUTE SST-OPEN = SST-OPEN + WS-VAL.
********** MOVE ' OPENING-->' TO P1-REM.
MOVE SPACES TO P1-REM.
write print-rec after 1.
add 1 to l-ctr.
move spaces to print-rec.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
PERFORM ADD-TOTALS THRU AT-EXIT.
if WS-VAL < 0
add WS-VAL to sst-neg-val
add 1 to sst-neg-no.
nt1.
perform update-table thru ut-exit.
MOVE ZEROS TO NUM-1.
MOVE ZEROS TO DS-CLOSE-QTY DS-CLOSE-RATE DS-TOT-ISSUE
DS-VALUE DS-TOT-RCPTS DS-UPD-RATE DS-UPD-ST-RATE.
NT-EXIT. EXIT.
UPDATE-TABLE.
EXEC SQL WHENEVER SQLERROR GO TO UPDTHIS-ER END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO UT1 END-EXEC.
EXEC SQL
UPDATE spd_ITEM_OPEN_bk
SET OP_MTH_CLQTY = :DS-CLOSE-QTY,
OP_MTH_CLRATE = :DS-CLOSE-RATE,
OP_TOT_ISSUE = :DS-TOT-ISSUE,
OP_TOT_RECPT = :DS-TOT-RCPTS
WHERE ITEM_CODE = :DS-ITEM-CODE AND
OP_CLOSE_DT = last_day(to_date(:DS-MON-YY,'MONYYYY'))
END-EXEC.
GO TO UT2.
UT1.
EXEC SQL WHENEVER SQLERROR GO TO INSTHIS-ER END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO UT2 END-EXEC.
EXEC SQL
INSERT INTO spd_ITEM_OPEN_bk
(OP_MTH_CLQTY, OP_MTH_CLRATE, OP_TOT_ISSUE,
OP_TOT_RECPT, ITEM_CODE, OP_CLOSE_DT)
VALUES
(:DS-CLOSE-QTY,:DS-CLOSE-RATE,:DS-TOT-ISSUE,
:DS-TOT-RCPTS,:DS-ITEM-CODE,
last_day(to_date(:DS-MON-YY,'MONYYYY')))
END-EXEC.
UT2.
EXEC SQL WHENEVER SQLERROR GO TO UPDNXT-ER END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO UT3 END-EXEC.
EXEC SQL
UPDATE spd_ITEM_OPEN_bk
SET OP_MTH_OPQTY = :DS-CLOSE-QTY,
OP_MTH_OPRATE = :DS-CLOSE-RATE
WHERE ITEM_CODE = :DS-ITEM-CODE AND
OP_CLOSE_DT = :DS-MON1-YY
END-EXEC.
GO TO UT-EXIT.
UT3.
EXEC SQL WHENEVER SQLERROR GO TO INSNXT-ER END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO UT-EXIT END-EXEC.
EXEC SQL
INSERT INTO spd_ITEM_OPEN_bk
(ITEM_CODE, OP_MTH_OPQTY, OP_MTH_OPRATE,
OP_CLOSE_DT)
VALUES
(:DS-ITEM-CODE,:DS-CLOSE-QTY,:DS-CLOSE-RATE,
:DS-MON1-YY)
END-EXEC.
UT-EXIT. EXIT.
UPDATE-ISSUE.
EXEC SQL WHENEVER SQLERROR GO TO UPDISS-ER END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO UI-EXIT END-EXEC.
EXEC SQL
UPDATE vip_INT_ISSUE
SET IS_RATE = :DS-UPD-RATE
WHERE IS_ISSUE_NO = :DS-CONTROL-NO
END-EXEC.
UI-EXIT. EXIT.
UPDATE-RECPT.
EXEC SQL WHENEVER SQLERROR GO TO UPDRCPT-ER END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO UR-EXIT END-EXEC.
EXEC SQL
UPDATE MT_GATE_RCPTS
SET GR_RATE = :DS-UPD-RATE,
GR_STOR_RATE = :DS-UPD-ST-RATE,
GR_VALUE = :DS-VALUE
WHERE ECN = :DS-CONTROL-NO
END-EXEC.
UR-EXIT. EXIT.
MOVE-ACC-DESC.
MOVE SPACES TO WS-DESC.
IF S-ACC-CD = '00' OR '01' OR '02' OR '04' OR '4A'
OR '4B' OR '05' OR '08' OR '11'
MOVE 'SRIR' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '03'
MOVE 'OSP' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '06'
MOVE 'SRV' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '07'
MOVE 'PDS' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '09'
MOVE 'STN' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '10'
MOVE 'ESR' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '13'
MOVE 'REWK' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '16' OR '17' OR '18' OR '19' OR '23'
OR '24' OR '26' or '27' or '29'
MOVE 'SDV' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '20'
MOVE 'SRS' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '21'
MOVE 'STN' TO WS-DESC
GO TO MAD-EXIT.
IF S-ACC-CD = '22'
MOVE 'WOR' TO WS-DESC.
MAD-EXIT. EXIT.
add-to-acc.
move zeros to j.
perform check-for-index thru cfi-exit varying i
from 1 by 1 until i > 27.
if j = zeros and S-TYPE = 'R'
move 28 to j.
if j = zeros and S-TYPE = 'I'
move 29 to j.
if S-TYPE = 'R'
add WS-VAL to SAT-RECEIPT (j)
add WS-VAL TO LAT-RECEIPT (j)
add WS-VAL TO GAT-RECEIPT (j)
go to ata-exit.
add WS-VAL TO SAT-ISSUE (j).
add WS-VAL TO LAT-ISSUE (j).
add WS-VAL TO GAT-ISSUE (j).
ata-exit. exit.
check-for-index.
if s-acc-cd = acc-code (i)
move i to j
move 29 to i.
cfi-exit. exit.
print-acc-page.
move spaces to print-rec.
perform print-a-line thru pal-exit 3 times.
move ws-item-ind to p4-item-ind.
move ws-rem to p4-rem.
perform print-a-line thru pal-exit 2 times.
move acc-head-1 to print-rec.
perform print-a-line thru pal-exit.
move all '-' to p-line.
perform print-a-line thru pal-exit.
move zeros to i.
pap1.
add 1 to i.
if i = 28
go to pap1.
if i > 29
go to pap-exit.
****** if sat-tab (i) = zeros
****** go to pap1.
if i = 16
move 'INVALID RECEIPTS' to p6-acc-desc
move '**' to p6-acc-cd
move SAT-RECEIPT (28) to P6-RECEIPTS
move sat-issue (28) to p6-issues
perform print-a-line thru pal-exit.
move SAT-RECEIPT (i) to P6-RECEIPTS.
move sat-issue (i) to p6-issues.
if i = 29
move 'INVALID ISSUES' to p6-acc-desc
move '**' to p6-acc-cd
go to pap2.
move acc-code (i) to ds-ac-cd p6-acc-cd.
EXEC SQL WHENEVER SQLERROR GO TO ACC-ERR END-EXEC.
EXEC SQL WHENEVER NOT FOUND GO TO PAP2 END-EXEC.
exec sql
select acct_desc into :ds-acc-desc
from mt_account_hd
where account_code = :ds-ac-cd
end-exec.

move ds-acc-desc to p6-acc-desc.
pap2.
perform print-a-line thru pal-exit.
go to pap1.
pap-exit. exit.
PRINT-A-LINE.
WRITE PRINT-REC AFTER 1.
MOVE SPACES TO PRINT-REC.
ADD 1 TO L-CTR.
* IF L-CTR > 90
IF L-CTR > 66
PERFORM HEAD-PARA THRU HP-EXIT.
PAL-EXIT. EXIT.
HEAD-PARA.
MOVE SPACES TO PRINT-REC.
ADD 1 TO P-CTR.
MOVE P-CTR TO H1-PAGE.
WRITE PRINT-REC FROM HEAD-1 AFTER PAGE.
MOVE ALL '-' TO PRINT-REC.
WRITE PRINT-REC AFTER 1.
MOVE SPACES TO PRINT-REC.
WRITE PRINT-REC FROM HEAD-2 AFTER 1.
WRITE PRINT-REC FROM HEAD-3 AFTER 1.
MOVE ALL '-' TO PRINT-REC.
WRITE PRINT-REC AFTER 1.
MOVE SPACES TO PRINT-REC.
MOVE 5 TO L-CTR.
HP-EXIT. EXIT.
ADD-TOTALS.
IF PREV-SOURCE = 'FM'
ADD WS-ISU-VAL TO SST-ISU-FM
ADD WS-RCT-VAL TO SST-RCT-FM
ADD WS-VAL TO SST-STK-FM
GO TO AT-EXIT.
IF PREV-SOURCE = 'IMP'
ADD WS-ISU-VAL TO SST-ISU-IMP
ADD WS-RCT-VAL TO SST-RCT-IMP
ADD WS-VAL TO SST-STK-IMP
GO TO AT-EXIT.
ADD WS-ISU-VAL TO SST-ISU-BOP.
ADD WS-RCT-VAL TO SST-RCT-BOP.
ADD WS-VAL TO SST-STK-BOP.
AT-EXIT. EXIT.

ORA-ERR1.
DISPLAY 'E R R O R IN header CURSOR'.
GO TO ORA-ERR.
ORA1-EXIT. EXIT.
ORA-ERR2.
DISPLAY 'not found IN HEADER cursor'.
GO TO ORA-ERR.
ORA2-EXIT. EXIT.
ERR-ITEM.
DISPLAY 'E R R O R IN ITEM CURSOR'.
GO TO ORA-ERR.
EIT-EXIT. EXIT.
ERR-ITEM-OP.
DISPLAY 'E R R O R IN ITEM-OPEN FILE CURSOR'.
GO TO ORA-ERR.
EIO-EXIT. EXIT.
UPDTHIS-ER.
DISPLAY
'ERROR IN ITEM-OPEN FILE WHILE UPDATING THIS MONTH BAL'.
GO TO ORA-ERR.
INSTHIS-ER.
DISPLAY
'ERROR IN ITEM-OPEN FILE WHILE INSERTING THIS MONTH BAL'.
GO TO ORA-ERR.
UPDNXT-ER.
DISPLAY
'ERROR IN ITEM-OPEN FILE WHILE UPDATING NEXT MONTH BAL'.
GO TO ORA-ERR.
INSNXT-ER.
DISPLAY
'ERROR IN ITEM-OPEN FILE WHILE INSERTING NEXT MONTH BAL'.
GO TO ORA-ERR.
UPDISS-ER.
DISPLAY 'E R R O R IN UPDATING RATE IN ISSUE TABLE'.
GO TO ORA-ERR.
UPDRCPT-ER.
DISPLAY 'E R R O R IN UPDATING RATE IN RECPT TABLE'.
GO TO ORA-ERR.
ACC-ERR.
DISPLAY 'E R R O R IN FETCHING ACCOUNT DESCRIPTION '.
GO TO ORA-ERR.
ERR-RECPT.
DISPLAY 'E R R O R IN REPEIPT CURSOR'.
GO TO ORA-ERR.
ER-EXIT. EXIT.
ERR-PO-ITEM.
DISPLAY 'E R R O R IN PO-ITEM CURSOR'.
GO TO ORA-ERR.
ERR-PO-HEAD.
DISPLAY 'E R R O R IN PO-HEAD CURSOR'.
GO TO ORA-ERR.
ERR-ISSUE.
DISPLAY 'E R R O R IN ISSUE CURSOR'.
GO TO ORA-ERR.
EI-EXIT. EXIT.
ORA-ERR.
DISPLAY 'YOU HAVE ENCOUNTERED AN ORACLE E R R O R'.
MOVE SQLCODE TO NUM-DISPLAY.
DISPLAY 'SQLCODE : ', NUM-DISPLAY.
DISPLAY 'MESSAGE : ', SQLERRMC.
MOVE SQLERRD(3) TO NUM-DISPLAY.
DISPLAY 'Number of Rows Processed : ', NUM-DISPLAY.
DISPLAY ' 01234567'.
DISPLAY 'SQLWARN : ', SQLWARN.
GO TO EOJ-PARA1.
ORA-EXIT. EXIT.
EOJ-PARA.
move 'Y' to eof-flag.
PERFORM LOCATION-BREAK THRU LB-EXIT.
MOVE SPACES TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE FOOT-1 TO PRINT-REC.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE ' GRAND-TOTAL ---->'
TO P4-REM.
MOVE GT-OPEN TO P4-OPEN-BAL.
* MOVE GT-N-TCH-VAL TO P4-NOT-TOUCH-V.
* MOVE GT-N-TCH-NO TO P4-NOT-TOUCH-N.
MOVE ZEROS TO P4-NOT-TOUCH-V.
MOVE ZEROS TO P4-NOT-TOUCH-N.
move gt-neg-val to p4-neg-stk-val.
move gt-neg-no to p4-neg-stk-no.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = GT-STK-BOP + GT-STK-FM + GT-STK-IMP.
MOVE WS-VAL TO P4-CLOSE-BAL.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = GT-RCT-BOP + GT-RCT-FM + GT-RCT-IMP.
MOVE WS-VAL TO P4-RECEIPT.
MOVE ZEROS TO WS-VAL.
COMPUTE WS-VAL = GT-ISU-BOP + GT-ISU-FM + GT-ISU-IMP.
MOVE WS-VAL TO P4-ISSUE.
PERFORM PRINT-A-LINE THRU PAL-EXIT 2 TIMES.
MOVE 'STK-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE GT-STK-BOP TO P5-BOP-VAL.
MOVE GT-STK-FM TO P5-FM-VAL.
MOVE GT-STK-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'RCT-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE GT-RCT-BOP TO P5-BOP-VAL.
MOVE GT-RCT-FM TO P5-FM-VAL.
MOVE GT-RCT-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
MOVE 'ISU-BOP -' TO P5-REM.
MOVE 'F/M -' TO P5-REM-FM.
MOVE 'IMP -' TO P5-REM-IMP.
MOVE GT-ISU-BOP TO P5-BOP-VAL.
MOVE GT-ISU-FM TO P5-FM-VAL.
MOVE GT-ISU-IMP TO P5-IMP-VAL.
PERFORM PRINT-A-LINE THRU PAL-EXIT.
move spaces to ws-item-ind.
move '*** GRAND TOTALS ***' to ws-rem.
move grand-acc-table to store-acc-table.
perform print-acc-page thru pap-exit.
DISPLAY 'TOTAL PAGES PRINTED : ' P-CTR.
EXEC SQL
COMMIT WORK RELEASE
END-EXEC.
EOJ-PARA1.
CLOSE PRINT-FILE.
STOP RUN.

[Updated on: Wed, 01 June 2011 05:23] by Moderator

Report message to a moderator

Re: pseudo code [message #509830 is a reply to message #509829] Wed, 01 June 2011 05:24 Go to previous messageGo to next message
cookiemonster
Messages: 13920
Registered: September 2008
Location: Rainy Manchester
Senior Member
Do you really think anyone here is going to work out what that large slab of unformatted code does? It's 1500 lines.
I don't even now what language that is.
Re: pseudo code [message #509831 is a reply to message #509829] Wed, 01 June 2011 05:24 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
I am Unable to read it ...
Sriram
Re: pseudo code [message #509833 is a reply to message #509831] Wed, 01 June 2011 05:27 Go to previous messageGo to next message
Roachcoach
Messages: 1576
Registered: May 2010
Location: UK
Senior Member
Step 1: Learn PL/SQL
Step 2: Convert language above to PL/SQL
Step 3: ????
Step 4: Profit!!!
Re: pseudo code [message #509834 is a reply to message #509830] Wed, 01 June 2011 05:27 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
hey i also don't know what language it is
Re: pseudo code [message #509835 is a reply to message #509834] Wed, 01 June 2011 05:28 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
Laughing
Re: pseudo code [message #509837 is a reply to message #509833] Wed, 01 June 2011 05:29 Go to previous messageGo to next message
Roachcoach
Messages: 1576
Registered: May 2010
Location: UK
Senior Member
Roachcoach wrote on Wed, 01 June 2011 11:27
Step 1: Learn PL/SQL
Step 1b): Learn language above
Step 2: Convert language above to PL/SQL
Step 3: ????
Step 4: Profit!!!



I fixed my post.
Re: pseudo code [message #509839 is a reply to message #509834] Wed, 01 June 2011 05:31 Go to previous messageGo to next message
cookiemonster
Messages: 13920
Registered: September 2008
Location: Rainy Manchester
Senior Member
ruby malik wrote on Wed, 01 June 2011 11:27
hey i also don't know what language it is


You want us to convert some code and you don't know what it's written in?!?!?!?!

Someone where you work must know.
Re: pseudo code [message #509841 is a reply to message #509837] Wed, 01 June 2011 05:31 Go to previous messageGo to next message
cookiemonster
Messages: 13920
Registered: September 2008
Location: Rainy Manchester
Senior Member
Roachcoach wrote on Wed, 01 June 2011 11:29
Roachcoach wrote on Wed, 01 June 2011 11:27
Step 1: Learn PL/SQL
Step 1b): Learn language above
Step 2: Convert language above to PL/SQL
Step 3: ????
Step 4: Profit!!!



I fixed my post.


Step 1a) indentify language above
Re: pseudo code [message #509844 is a reply to message #509841] Wed, 01 June 2011 05:47 Go to previous messageGo to next message
Roachcoach
Messages: 1576
Registered: May 2010
Location: UK
Senior Member
Google hit on IBM DB2 for a search for "END-EXEC"
Re: pseudo code [message #509849 is a reply to message #509844] Wed, 01 June 2011 05:53 Go to previous messageGo to next message
cookiemonster
Messages: 13920
Registered: September 2008
Location: Rainy Manchester
Senior Member
You get END-EXEC in oracle ProC but it don't look any ProC I know, that said I'm not an expert so it might be.
Looks like some ancient (and probably obsolete) scripting language for doing reports.
Re: pseudo code [message #509853 is a reply to message #509834] Wed, 01 June 2011 06:08 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
ruby malik wrote on Wed, 01 June 2011 12:27
hey i also don't know what language it is


Pro*COBOL

Regards
Michel
Re: pseudo code [message #509863 is a reply to message #509839] Wed, 01 June 2011 06:40 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
hey!
somebody give me this as a assignment. Sad
Re: pseudo code [message #509864 is a reply to message #509849] Wed, 01 June 2011 06:43 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
bosss
somebody give me this as a assignment.

"report k liye use karte h....inventory ka flow h but language konsi h pta nahi.
please help.
Re: pseudo code [message #509866 is a reply to message #509864] Wed, 01 June 2011 06:56 Go to previous messageGo to next message
cookiemonster
Messages: 13920
Registered: September 2008
Location: Rainy Manchester
Senior Member
Then somebody should have also given you some basic training in Pro*COBOL.
In fact somebody should have told you it was Pro*COBOL.

Most of us here don't know Pro*COBOL and I'd be very surprised if those that do are going to pseudo code 1500 lines of it for you.

So you're going to have to do one of the following:
1) Get someone (your boss presumably) to give you some training.
2) Teach yourself the language.
3) Get someone (that'd be your boss again) to give you a detailed specification of what the report should do and write it straight in PL/SQL from that, ingoring the current code.
Re: pseudo code [message #509869 is a reply to message #509866] Wed, 01 June 2011 07:03 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
thanks sir
Re: pseudo code [message #509889 is a reply to message #509869] Wed, 01 June 2011 08:41 Go to previous messageGo to next message
orsoghu
Messages: 46
Registered: May 2011
Location: Venice, Italy
Member
lol as I was scrolling down the code I was already guessing the answers..
Re: pseudo code [message #509896 is a reply to message #509889] Wed, 01 June 2011 09:06 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
There is nothing difficult to the code, just is boring to scan the 1500 lines to write it in PL/SQL.

Regards
Michel
Re: pseudo code [message #509972 is a reply to message #509896] Wed, 01 June 2011 23:03 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
hello sir!!

if you know the answer than please mail me.
plz..i m waiting for your reply.plz
Re: pseudo code [message #509973 is a reply to message #509889] Wed, 01 June 2011 23:05 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
hi dear,
if you already guess the answer than simple help me yaar.
"thoda sa effort karna padega but plz.
i really thankfull to you.
Re: pseudo code [message #509981 is a reply to message #509973] Thu, 02 June 2011 00:31 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
I don't understand what you write.
This is an english forum, please post in standard english.

Regards
Michel
Re: pseudo code [message #509984 is a reply to message #509981] Thu, 02 June 2011 00:36 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
HELO MICHEL,
if you already guess the answer than simple help me.
ITS URGENT 4 ME.
I SHALL BE HIGHLY THANKFULL TO YOU.
please
Re: pseudo code [message #509995 is a reply to message #509984] Thu, 02 June 2011 02:07 Go to previous messageGo to next message
Roachcoach
Messages: 1576
Registered: May 2010
Location: UK
Senior Member
Do you honestly expect someone to re-write 1500 lines of code for you? Really?

It's a FAQ not a free consulting service. In any event, even if someone did redo it all for you, how would you support it? How could you maintain it?

Do as Cookiemonster said, you must speak with your boss and explain the situation.
Re: pseudo code [message #509996 is a reply to message #509995] Thu, 02 June 2011 02:10 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
ok Sir,
i will try to solve it.
thanks for your guidance.
byr Smile
Re: pseudo code [message #510081 is a reply to message #509984] Thu, 02 June 2011 08:07 Go to previous messageGo to next message
joy_division
Messages: 4963
Registered: February 2005
Location: East Coast USA
Senior Member
ruby malik wrote on Thu, 02 June 2011 01:36
HELO MICHEL,
if you already guess the answer than simple help me.
ITS URGENT 4 ME.
I SHALL BE HIGHLY THANKFULL TO YOU.
please


I spoke to some people here. They said they would do it for you for $15,000 USD.
Re: pseudo code [message #510129 is a reply to message #510081] Thu, 02 June 2011 10:13 Go to previous messageGo to next message
pablolee
Messages: 2882
Registered: May 2007
Location: Scotland
Senior Member
joy_division wrote on Thu, 02 June 2011 14:07
I spoke to some people here. They said they would do it for you for $15,000 USD.

Dollar a line, I like the pricing policy Smile What's the charge for updates to the code?
Re: pseudo code [message #510132 is a reply to message #510129] Thu, 02 June 2011 10:24 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
that means Per line its $10 USD right?
Hope you might get $5 For update for each line Laughing

Sriram
Re: pseudo code [message #510133 is a reply to message #510132] Thu, 02 June 2011 10:27 Go to previous messageGo to next message
pablolee
Messages: 2882
Registered: May 2007
Location: Scotland
Senior Member
ramoradba wrote on Thu, 02 June 2011 16:24
that means Per line its $10 USD right?
Doh! My bad. You are correct.
Quote:

Hope you might get $5 For update for each line Laughing

Hmm, I think I'd be looking for much more, Changing 1 line of code within 1500 could be pretty arduous - assuming of course the rowcount is equivalent, my betting is that it'd be greatly reduced (appropos of nothing)

[Updated on: Thu, 02 June 2011 10:28]

Report message to a moderator

Re: pseudo code [message #510212 is a reply to message #510081] Thu, 02 June 2011 23:29 Go to previous messageGo to next message
ruby malik
Messages: 11
Registered: June 2011
Location: FARIDABAD
Junior Member
it's ok....no need. thanks for your help.
Re: pseudo code [message #510213 is a reply to message #510212] Thu, 02 June 2011 23:49 Go to previous message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
>it's ok....no need. thanks for your help.
how will you determine or know when any post is correct solution?
Previous Topic: How to find nearest/closest string for a column data
Next Topic: advantage : MV vs Table
Goto Forum:
  


Current Time: Fri Apr 26 04:35:19 CDT 2024