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.