/
        PROCEDURE DIVISION

        A000-WEEKLY-SALES-REPORT.

       *****************************************************************
       *                                                               *                                                                                              
       *     THE FUNCTION OF THIS MODULE IS TO CONTROL THE OVERALL     *            
       *     LOGIC FLOW AND TO CALL THE NECESSARY MODULES REQUIRED     *        
       *     TO PROVIDE THE WEEKLY SALES AUDIT REPORT.  IT IS ENTERED  *              
       *     FROM AND EXITS TO THE OPERATING SYSTEM.                   *                              
       *                                                               *                                                                                     
       *****************************************************************

               OPEN INPUT  WEEKLY-SALES-TRANS-FILE,
                           OUTPUT WEEKLY-SALES-AUDIT-REPORT.

               PERFORM B0000-GET-STARTED.
               PERFORM B100-PROCESS-AND-READ
                   UNTIL THER-ARE-NO-MORE-RECORDS.
               PERFORM B200-FINISH-UP.

               CLOSE WEEKLY-SALES-TRANS-FILE,
                             WEEKLY-SALES-AUDIT-REPORT.

            STOP RUN
       /
        B000-GET-STARTED.

       **************************************************************       
       *                                                            *                                                                                                                                                                                                                         
       *    THE FUNCTION OF THIS MODULE IS TO PERFORM THE ACTIONS   *         
       *    NECESSARY TO GET THE PROGRAM STARTED.  THESE ACTIONS    *         
       *    INCLUDE INITIALIZING VARIABLES, PRINTING REPORT HEADINGS,*          
       *    AND READING THE INITIAL RECORD.                           *                                        
       *                                                              *                                                                                  
       ****************************************************************

            ACCEPT CURRENT-DATE FROM DATE.
 
            MOVE CURRENT-MONTH TO CURRENT-MONTH-OUT.
            MOVE CURRENT-DAY  TO CURRENT-DAY-OUT.
            MOVE CURRENT-YEAR  TO CURRENT-YEAR-OUT.

            PERFORM U000-PRINT-REPORT-HEADINGS.
            PERFORM U300-READ-WEEKLY-SALES-FILE.
      /
       B100-PROCESS-AND-READ.

      ********************************************************************
      *                                                                  *                                                                                        
      *    THE FUNCTION OF THIS MODULE IS TO PERFORM THE NECESSARY       *             
      *    CALCULATIONS FOR THE REPORT. CONTROL PRINTING OF REPORT       *             
      *    DETAIL LINES, AND TO READ THE NEXT RECORD.                    *                                   
      *                                                                  *                                                                                          
      *********************************************************************

           MULTIPLY WSL-SELLING-PRICE-01 BY WSL-TRANSACTION-QUANTITY-01
               CIVING EXTENDED-PRICE.
           ADD EXTENDED-PRICE TO SALES-AMOUNT.
           ADD WSL-TRANSACTION-QUANTITY-01 TO NUMBER-OF-ITEMS.

           PERFORM U100-PRINT-DETAIL-LINE.
           PERFORM U300-READ-WEEKLY-SALES-FILE.
      /
       B200-FINISH-UP.

      **********************************************************************
      *                                                                                                                                                                 
      *    THE FUNCTION OF THIS MODULE IS TO PERFORM THE NECESSARY                            
      *    END OF JOB CALCULATIONS FOR THE REPORT AND TO CONTROL THE                     
      *    PRINTING OF REPORT TOTAL LINES.                                                                                        
      *                                                                                                                                                                   
      ***********************************************************************

           PERFORM U200-PRINT-REPORT-TOTAL-LINES.
      /
       U200-PRINT-REPORT-HEADINGS.

      ******************************************************************
      *                                                                                                                                                        
      *    THE FUNCTION OF THIS MODULE IS TO PRINT THE REPORT                                   
      *    HEADINGS AND THE COLUMN HEADINGS.                                                                   
      *                                                                                                                                                                 
      ********************************************************************

           WRITE AUDIT-REPORT-LINE FROM HEADING-LINE-ONE
                AFTER ADVANCING PAGE.
           ADD 1 TO PAGE-NUMBER.
           MOVE PAGE-NUMBER TO PAGE-NUMBER-OUT.

           WRITE AUDIT-REPORT-LINE FROM HEADING-LINE-TWO
                 AFTER ADVANCING 1 LINE

           MOVE 3 TO LINE-NUMBER.

           IF THERE-ARE-MORE-RECORDS
               PERFORM U010-PRINT-COLMN-HEADINGS.

       U010-PRINT-COLMN-HEADINGS.

           WRITE AUDIT-REPORT-LINE FROM HEADING-LINE-THREE
               AFTER ADVANCING 2 LINES.

           WRITE AUDIT-REPORT-LINE FROM BLANK-LINE
                AFTER ADVANCING 1 LINE.

           ADD 3 TO LINE-NUMBER.
      /
       U100-PRINT-DETAIL-LINE.

      ****************************************************************
      *                                                                                                                                                  
      *    THE FUNCTION OF THIS MODULE IS TO PRINT THE REPORT DETAIL           
      *    LINES.                                                                                                                                   
      *                                                                                                                                                   
      *****************************************************************

           IF PAGE-FULL
               PERFORM U000-PRINT-REPORT-HEADINGS.

           MOVE WSL-PRODUCT-NUMBER-01 TO PRODUCT-NUMBER-OUT.
           MOVE WSL-CUSTOMER-SHORT-NAME-01 TO CUTERMER-NAME-OUT.
           MOVE WSL-SELLING-PRICE-01 TO SELLING-PRICE-OUT.
           MOVE WSL-TRANSACTION-QUANTITY-01 TO TRANSACTION-QUANTITY-OUT.
           MOVE EXTENDED-PRICE TO EXTENDED-PRICE-OUT.

           WRITE AUDIT-REPORT-LINE FROM DETAIL-LINE-ONE
               AFTER ADVANCING 1 LINE.

           ADD 1 TO LINE-NUMBER.
      /
       U200-PRINT-REPORT-TOTAL-LINES.

      *************************************************************
      *                                                                                                                                          
      *    THE FUNCTION OF THIS MODULE IS TO PRINT THE REPORT TOTAL    
      *    LINES.                                                                                                                          
      *                                                                                                                                           
      **************************************************************

           PERFORM U000-PRINT-REPORT-HEADINGS.
           MOVE NUMBER-OF-ITEMS TO NUMBER-OF-ITEMS-OUT.
           MOVE SALES-AMOUNT TO SALES-AMOUNT-OUT.

           WRITE AUDIT-REPORT-LINE FROM TOTAL-LINE-ONE
               AFTER ADVANCING 5 LINES.
           WRITE AUDIT-REPORT-LINE FROM TOTAL-LINE-TWO
               AFTER ADVANCING 2 LINES.
      /
       U300-READ-WEEKLY-SALES-FILE.

      *************************************************************
      *                                                                                                                                           
      *    THE FUNCTION OF THIS MODULE IS TO READ A RECORD FROM THE   
      *    WEEKLY SALES FILE.                                                                                              
      *                                                                                                                                            
      ************************************************************** 

           READ WEEKLY-SALES-TRANS-FILE
               AT END
                   MOVE "NO" TO ARE-THERE-MORE-RECORDS.                            
                     

    Source: geocities.com/surfsup62