IDENTIFICATION DIVISION.
PROGRAM-ID. Q14.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM PC.
OBJECT-COMPUTER. IBM PC.
INPUT-OUTPUT SECTION.
SELECT CUSTOMER-REC-FILE ASSIGN TO "CUST_REC.DAT" ORGANIZATION
IS SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO "TELBILL.TXT".
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-REC-FILE.
01 IN-REC.
02 IN-CUST-ID PIC 999999.
02 IN-CUST-NAME PIC A(20).
02 IN-CUST-ADDRESS PIC X(30).
02 IN-METERED-PULSES PIC 9(4).
02 IN-TELNO PIC 9(6).
FD OUT-FILE.
01 OUT-REC PIC X(80).
WORKING-STORAGE SECTION.
77 EOF PIC X VALUE "N".
77 HEADING1 PIC X(80) VALUE ALL "-".
77 COMPANY-TITLE PIC X(80) VALUE
" AIRTEL TELEPHONE SERVICE ---- BHARTI TELENET LTD.".
01 CUST-ID-LINE.
02 F PIC X(18) VALUE "CUSTOMER ID NO.: ".
02 CUST-ID PIC 9(6).
02 F PIC X(37) VALUE " TELEPHONE CHARGES FOR THE MONTH ".
02 BILL-MONTH PIC X(10).
01 OUT-FORMAT.
02 CUST-NAME PIC A(15).
02 PHONE-NO PIC ZZ9999.
02 F PIC X(10) VALUE SPACES.
02 METRED-PULSES PIC ***9.
02 F PIC X(10) VALUE SPACES.
02 BILL-DUE PIC ****.**.
02 F PIC X(10) VALUE SPACES.
02 LATE-BILL PIC ****.**.
01 TITLE-LINE.
02 F PIC X(80) VALUE " CUSTOMER NAME | TEL NO | METRED PUL
- "SES | NET CHARGES | CHARGES AFTER 15 DAYS *".
01 ISSUE-DATE-LINE.
02 F PIC X(20) VALUE " DATE OF ISSUE : ".
02 CURR-MONTH PIC X(40).
01 FOOTER-LINE.
02 F PIC X(80) VALUE " *: 15 DAYS FROM THE DATE OF ISSUE AS
- " STATED ABOVE".
77 CHARGES PIC 9(4)V99.
77 PULSES PIC 9(5).
PROCEDURE DIVISION.
MAIN-PARA.
DISPLAY "PLS. ENTER CURRENT DATE".
ACCEPT CURR-MONTH .
OPEN INPUT CUSTOMER-REC-FILE OUTPUT OUT-FILE.
DISPLAY "PLS. ENTER THE MONTH FOR WHICH BILL HAS TO BE GENERATED
- ".....(EX. JAN, 2001)".
ACCEPT BILL-MONTH.
READ CUSTOMER-REC-FILE AT END MOVE "Y" TO EOF.
PERFORM CALC-PARA UNTIL EOF = "Y".
DISPLAY "THE TELEPHONE BILL IS GENERATED.".
CLOSE CUSTOMER-REC-FILE , OUT-FILE.
STOP RUN.
HEADER-PARA.
WRITE OUT-REC FROM HEADING1 .
WRITE OUT-REC FROM COMPANY-TITLE.
WRITE OUT-REC FROM HEADING1.
MOVE IN-CUST-NAME TO CUST-NAME OF OUT-FORMAT.
MOVE IN-TELNO TO PHONE-NO.
FOOTER-PARA.
WRITE OUT-REC FROM ISSUE-DATE-LINE.
WRITE OUT-REC FROM FOOTER-LINE.
MOVE "15 DAYS FROM THE DATE OF ISSUE OF BILL." TO OUT-REC.
CALC-PARA.
PERFORM HEADER-PARA.
MOVE IN-CUST-ID TO CUST-ID OF CUST-ID-LINE.
WRITE OUT-REC FROM CUST-ID-LINE.
WRITE OUT-REC FROM HEADING1.
WRITE OUT-REC FROM TITLE-LINE.
WRITE OUT-REC FROM HEADING1.
MOVE IN-CUST-NAME TO CUST-NAME.
MOVE IN-METERED-PULSES TO METRED-PULSES .
MOVE IN-TELNO TO PHONE-NO .
IF IN-METERED-PULSES <>
COMPUTE BILL-DUE = 250.00
ELSE
MOVE IN-METERED-PULSES TO PULSES.
COMPUTE CHARGES = 250.00 + ( PULSES - 75 ) * 0.8 .
MOVE CHARGES TO BILL-DUE.
COMPUTE CHARGES = CHARGES + CHARGES * 0.10.
MOVE CHARGES TO LATE-BILL.
WRITE OUT-REC FROM OUT-FORMAT .
PERFORM FOOTER-PARA.
DISPLAY IN-CUST-NAME.
WRITE OUT-REC FROM HEADING1 AFTER ADVANCING PAGE.
READ CUSTOMER-REC-FILE AT END MOVE "Y" TO EOF.
PROGRAM-ID. Q14.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM PC.
OBJECT-COMPUTER. IBM PC.
INPUT-OUTPUT SECTION.
SELECT CUSTOMER-REC-FILE ASSIGN TO "CUST_REC.DAT" ORGANIZATION
IS SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO "TELBILL.TXT".
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-REC-FILE.
01 IN-REC.
02 IN-CUST-ID PIC 999999.
02 IN-CUST-NAME PIC A(20).
02 IN-CUST-ADDRESS PIC X(30).
02 IN-METERED-PULSES PIC 9(4).
02 IN-TELNO PIC 9(6).
FD OUT-FILE.
01 OUT-REC PIC X(80).
WORKING-STORAGE SECTION.
77 EOF PIC X VALUE "N".
77 HEADING1 PIC X(80) VALUE ALL "-".
77 COMPANY-TITLE PIC X(80) VALUE
" AIRTEL TELEPHONE SERVICE ---- BHARTI TELENET LTD.".
01 CUST-ID-LINE.
02 F PIC X(18) VALUE "CUSTOMER ID NO.: ".
02 CUST-ID PIC 9(6).
02 F PIC X(37) VALUE " TELEPHONE CHARGES FOR THE MONTH ".
02 BILL-MONTH PIC X(10).
01 OUT-FORMAT.
02 CUST-NAME PIC A(15).
02 PHONE-NO PIC ZZ9999.
02 F PIC X(10) VALUE SPACES.
02 METRED-PULSES PIC ***9.
02 F PIC X(10) VALUE SPACES.
02 BILL-DUE PIC ****.**.
02 F PIC X(10) VALUE SPACES.
02 LATE-BILL PIC ****.**.
01 TITLE-LINE.
02 F PIC X(80) VALUE " CUSTOMER NAME | TEL NO | METRED PUL
- "SES | NET CHARGES | CHARGES AFTER 15 DAYS *".
01 ISSUE-DATE-LINE.
02 F PIC X(20) VALUE " DATE OF ISSUE : ".
02 CURR-MONTH PIC X(40).
01 FOOTER-LINE.
02 F PIC X(80) VALUE " *: 15 DAYS FROM THE DATE OF ISSUE AS
- " STATED ABOVE".
77 CHARGES PIC 9(4)V99.
77 PULSES PIC 9(5).
PROCEDURE DIVISION.
MAIN-PARA.
DISPLAY "PLS. ENTER CURRENT DATE".
ACCEPT CURR-MONTH .
OPEN INPUT CUSTOMER-REC-FILE OUTPUT OUT-FILE.
DISPLAY "PLS. ENTER THE MONTH FOR WHICH BILL HAS TO BE GENERATED
- ".....(EX. JAN, 2001)".
ACCEPT BILL-MONTH.
READ CUSTOMER-REC-FILE AT END MOVE "Y" TO EOF.
PERFORM CALC-PARA UNTIL EOF = "Y".
DISPLAY "THE TELEPHONE BILL IS GENERATED.".
CLOSE CUSTOMER-REC-FILE , OUT-FILE.
STOP RUN.
HEADER-PARA.
WRITE OUT-REC FROM HEADING1 .
WRITE OUT-REC FROM COMPANY-TITLE.
WRITE OUT-REC FROM HEADING1.
MOVE IN-CUST-NAME TO CUST-NAME OF OUT-FORMAT.
MOVE IN-TELNO TO PHONE-NO.
FOOTER-PARA.
WRITE OUT-REC FROM ISSUE-DATE-LINE.
WRITE OUT-REC FROM FOOTER-LINE.
MOVE "15 DAYS FROM THE DATE OF ISSUE OF BILL." TO OUT-REC.
CALC-PARA.
PERFORM HEADER-PARA.
MOVE IN-CUST-ID TO CUST-ID OF CUST-ID-LINE.
WRITE OUT-REC FROM CUST-ID-LINE.
WRITE OUT-REC FROM HEADING1.
WRITE OUT-REC FROM TITLE-LINE.
WRITE OUT-REC FROM HEADING1.
MOVE IN-CUST-NAME TO CUST-NAME.
MOVE IN-METERED-PULSES TO METRED-PULSES .
MOVE IN-TELNO TO PHONE-NO .
IF IN-METERED-PULSES <>
COMPUTE BILL-DUE = 250.00
ELSE
MOVE IN-METERED-PULSES TO PULSES.
COMPUTE CHARGES = 250.00 + ( PULSES - 75 ) * 0.8 .
MOVE CHARGES TO BILL-DUE.
COMPUTE CHARGES = CHARGES + CHARGES * 0.10.
MOVE CHARGES TO LATE-BILL.
WRITE OUT-REC FROM OUT-FORMAT .
PERFORM FOOTER-PARA.
DISPLAY IN-CUST-NAME.
WRITE OUT-REC FROM HEADING1 AFTER ADVANCING PAGE.
READ CUSTOMER-REC-FILE AT END MOVE "Y" TO EOF.