package cobolprogramclasses;

/************************************************************************

 **This file automatically generated from Cobol program CBLEX

 **Generated at time 16:01:14.31 on Wednesday, 12/16/09

 ************************************************************************/

import coboldataclasses.Rpt1;

import coboldataclasses.Rpt2;

import coboldataclasses.Sqlca;

import coboldataclasses.Sqlda;

import coboldataclasses.Rpt1Headers;

import coboldataclasses.Rpt2Headers;

import coboldataclasses.Rpt1Data;

import coboldataclasses.Rpt2Data;

import com.res.java.lib.*;

import java.math.BigDecimal;

 

public class Cblex extends Program {

 

      //****************************************************************

      //* A sample program which updates the salaries for those        *

      //* employees whose current commission total is greater than or  *

      //* equal to the value of COMMISSION. The salaries of those who  *

      //* qualify are increased by the value of PERCENTAGE retroactive *

      //* to RAISE-DATE. A report is generated showing the projects    *

      //* which these employees have contributed to ordered by the     *

      //* project number and employee ID. A second report shows each   *

      //* project having an end date occurring  after RAISE-DATE       *

      //* (i.e. potentially affected by the retroactive raises ) with  *

      //* its total salary expenses and a count of employees who       *

      //* contributed to the project.                                  *

      //****************************************************************

      //@CobolSourceFile("EXEC-SQL1.cob",35,8)

      //01  PRINT-RECORD PIC X(132).

 

      public String getPrintRecord() {

            return super.toString(0,132);

      }

      public  void setPrintRecord(String val) {

            super.valueOf(0,132,val);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",38,8)

      //77  WORK-DAYS PIC S9(4) BINARY VALUE 253.

      public int getWorkDays() {

            return super.getBinaryInt(132,4);

      }

      public  void setWorkDays(int val) {

            super.setBinaryInt(132,4,val,true);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",39,8)

      //77  RAISE-DATE PIC X(11) VALUE "1982-06-01".

      public String getRaiseDate() {

            return super.toString(134,11);

      }

      public  void setRaiseDate(String val) {

            super.valueOf(134,11,val);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",40,8)

      //77  PERCENTAGE PIC S999V99 PACKED-DECIMAL.

      public BigDecimal getPercentage() {

            return super.getPackedDecimalBigDecimal(145,6,2);

      }

      public  void setPercentage(BigDecimal val) {

            super.setPackedDecimalBigDecimal(145,6,val,2,true);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",41,8)

      //77  COMMISSION PIC S99999V99 PACKED-DECIMAL VALUE 2000.00.

 

      public BigDecimal getCommission() {

            return super.getPackedDecimalBigDecimal(148,8,2);

      }

      public  void setCommission(BigDecimal val) {

            super.setPackedDecimalBigDecimal(148,8,val,2,true);

      }

      //***************************************************************

      //*  Structure for report 1.                                    *

      //***************************************************************

      //@CobolSourceFile("EXEC-SQL1.cob",47,8)

      //01  RPT1.

      private Rpt1 rpt1 = new Rpt1();

      public byte[] getRpt1() {

            return rpt1.getBytes();

      }

      public void setRpt1(byte[] val) {

            rpt1.valueOf(val);

      }

      //***************************************************************

      //*  Structure for report 2.                                    *

      //***************************************************************

      //@CobolSourceFile("EXEC-SQL1.cob",58,8)

      //01  RPT2.

      private Rpt2 rpt2 = new Rpt2();

      public byte[] getRpt2() {

            return rpt2.getBytes();

      }

      public void setRpt2(byte[] val) {

            rpt2.valueOf(val);

      }

      //*      EXEC SQL

      //*          INCLUDE SQLCA

      //*     END-EXEC.

      //@CobolSourceFile("EXEC-SQL1.cob",66,8)

      //01 SQLCA.

      private Sqlca sqlca = new Sqlca();

      public byte[] getSqlca() {

            return sqlca.getBytes();

      }

      public void setSqlca(byte[] val) {

            sqlca.valueOf(val);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",89,9)

      //01 SQLDA.

      private Sqlda sqlda = new Sqlda();

      public byte[] getSqlda() {

            return sqlda.getBytes();

      }

      public void setSqlda(byte[] val) {

            sqlda.valueOf(val);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",106,9)

      //77  CODE-EDIT PIC ---99.

 

      public int getCodeEdit() {

            return super.getDisplayInt(152,4,false,false,false);

      }

      public  void setCodeEdit(int val) {

            super.setDisplayInt(152,4,val,false,false,false);

      }

      //***************************************************************

      //*  Headers for reports.                                       *

      //***************************************************************

      //@CobolSourceFile("EXEC-SQL1.cob",112,8)

      //01  RPT1-HEADERS.

      private Rpt1Headers rpt1Headers = new Rpt1Headers();

      public byte[] getRpt1Headers() {

            return rpt1Headers.getBytes();

      }

      public void setRpt1Headers(byte[] val) {

            rpt1Headers.valueOf(val);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",122,8)

      //01  RPT2-HEADERS.

      private Rpt2Headers rpt2Headers = new Rpt2Headers();

      public byte[] getRpt2Headers() {

            return rpt2Headers.getBytes();

      }

      public void setRpt2Headers(byte[] val) {

            rpt2Headers.valueOf(val);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",137,8)

      //01  RPT1-DATA.

      private Rpt1Data rpt1Data = new Rpt1Data();

      public byte[] getRpt1Data() {

            return rpt1Data.getBytes();

      }

      public void setRpt1Data(byte[] val) {

            rpt1Data.valueOf(val);

      }

      //@CobolSourceFile("EXEC-SQL1.cob",146,8)

      //01  RPT2-DATA.

      private Rpt2Data rpt2Data = new Rpt2Data();

      public byte[] getRpt2Data() {

            return rpt2Data.getBytes();

      }

      public void setRpt2Data(byte[] val) {

            rpt2Data.valueOf(val);

      }

      public static void main(String[] args) {

            Cblex instance_ = new Cblex();

            instance_.initialize();

            instance_.doCobolGotoStart();

            System.exit(0);

      }

      Paragraph a000Main=new Paragraph(this) {

            public CobolMethod run() {

            //@CobolSourceFile("EXEC-SQL1.cob",159,12)

            //MOVE 1.04 TO PERCENTAGE          

            setPercentage(new BigDecimal(1.04));

            //@CobolSourceFile("EXEC-SQL1.cob",160,12)

            //OPEN OUTPUT PRINTFILE      

            //***************************************************************

            //* Update the selected employees by the new percentage. If an  *

            //* error occurs during the update, ROLLBACK the changes,       *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",167,13)

            //EXEC SQL       

            //    WHENEVER SQLERROR      

            if (false) {

                  //@CobolSourceFile("EXEC-SQL1.cob",168,35)

                  //GO TO E010-UPDATE-ERROR                

                  return e010UpdateError;

            }

            //@CobolSourceFile("EXEC-SQL1.cob",170,13)

            //EXEC SQL       

            //    UPDATE CORPDATA/EMPLOYEE           

            //      SET SALARY = SALARY * :PERCENTAGE      

            //      WHERE COMM >= :COMMISSION        

            dao.execSqlStatement1(getPercentage(),getCommission());

            //***************************************************************

            //*  Commit changes.                                            *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",180,13)

            //EXEC SQL       

            //    COMMIT           

            dao.execSqlStatement2();

            //@CobolSourceFile("EXEC-SQL1.cob",184,12)

            //EXEC SQL       

            //     WHENEVER SQLERROR           

            if (false) {

                  //@CobolSourceFile("EXEC-SQL1.cob",185,35)

                  //GO TO E020-REPORT-ERROR                

                  return e020ReportError;

            }

            //***************************************************************

            //*  Report the updated statistics for each employee receiving  *

            //*  a raise and the projects that s/he participates in         *

            //***************************************************************

            //***************************************************************

            //*  Write out the header for Report 1.                         *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",197,12)

            //write print-record from rpt1-header1         

            //      before advancing 2 lines         

            //@CobolSourceFile("EXEC-SQL1.cob",199,12)

            //write print-record from rpt1-header2         

            //      before advancing 1 line          

            //@CobolSourceFile("EXEC-SQL1.cob",201,13)

            //exec sql       

            //    declare c1 cursor for        

            //      SELECT DISTINCT projno, empprojact.empno,          

            //              lastname||", "||firstnme ,salary           

            //      from corpdata/empprojact, corpdata/employee        

            //      where empprojact.empno =employee.empno and         

            //            comm >= :commission        

            //      order by projno, empno           

            dao.execSqlStatement3(getCommission());

            //@CobolSourceFile("EXEC-SQL1.cob",210,13)

            //EXEC SQL       

            //    OPEN C1          

            dao.execSqlStatement4();

            //@CobolSourceFile("EXEC-SQL1.cob",214,12)

            //PERFORM B000-GENERATE-REPORT1 THRU B010-GENERATE-REPORT1-EXIT        

            //    UNTIL SQLCODE NOT EQUAL TO ZERO          

            while(sqlca.getSqlcode() == 0) {

                  doCobolPerform(b000GenerateReport1,b010GenerateReport1Exit);

            };

            return doCobolExit();

            }

      };

      Paragraph a100Done1=new Paragraph(this) {

            public CobolMethod run() {

            //@CobolSourceFile("EXEC-SQL1.cob",217,12)

            //EXEC SQL       

            //     CLOSE C1        

            //*************************************************************

            //*  For all projects ending at a date later than the RAISE-  *

            //*  DATE ( i.e. those projects potentially affected by the   *

            //*  salary raises generate a report containing the project   *

            //*  project number, project name, the count of employees     *

            //*  participating in the project and the total salary cost   *

            //*  for the project                                          *

            //*************************************************************

            //***************************************************************

            //*  Write out the header for Report 2.                         *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",235,12)

            //MOVE SPACES TO PRINT-RECORD      

            setPrintRecord(" ");

            //@CobolSourceFile("EXEC-SQL1.cob",236,12)

            //WRITE PRINT-RECORD BEFORE ADVANCING 2 LINES        

            //@CobolSourceFile("EXEC-SQL1.cob",237,12)

            //WRITE PRINT-RECORD FROM RPT2-HEADER1         

            //      BEFORE ADVANCING 2 LINES         

            //@CobolSourceFile("EXEC-SQL1.cob",239,12)

            //WRITE PRINT-RECORD FROM RPT2-HEADER2         

            //      BEFORE ADVANCING 1 LINE          

            //@CobolSourceFile("EXEC-SQL1.cob",241,12)

            //WRITE PRINT-RECORD FROM RPT2-HEADER3         

            //      BEFORE ADVANCING 2 LINES         

            //@CobolSourceFile("EXEC-SQL1.cob",244,12)

            //EXEC SQL       

            //      DECLARE C2 CURSOR FOR      

            //       SELECT EMPPROJACT.PROJNO, PROJNAME, COUNT(*),           

            //              SUM ( (DAYS(EMENDATE)-DAYS(EMSTDATE)) *          

            //              EMPTIME * DECIMAL((SALARY / :WORK-DAYS),8,2))          

            //       FROM CORPDATA/EMPPROJACT, CORPDATA/PROJECT,       

            //            CORPDATA/EMPLOYEE          

            //       WHERE EMPPROJACT.PROJNO=PROJECT.PROJNO AND        

            //             EMPPROJACT.EMPNO =EMPLOYEE.EMPNO AND        

            //             PRENDATE > :RAISE-DATE          

            //       GROUP BY EMPPROJACT.PROJNO, PROJNAME        

            //       ORDER BY 1          

            dao.execSqlStatement5(getWorkDays(),getRaiseDate());

            //@CobolSourceFile("EXEC-SQL1.cob",257,12)

            //EXEC SQL       

            //     OPEN C2         

            dao.execSqlStatement6();

            //@CobolSourceFile("EXEC-SQL1.cob",261,12)

            //PERFORM C000-GENERATE-REPORT2 THRU C010-GENERATE-REPORT2-EXIT        

            //     UNTIL SQLCODE NOT EQUAL TO ZERO         

            while(sqlca.getSqlcode() == 0) {

                  doCobolPerform(c000GenerateReport2,c010GenerateReport2Exit);

            };

            return doCobolExit();

            }

      };

      Paragraph a200Done2=new Paragraph(this) {

            public CobolMethod run() {

            //@CobolSourceFile("EXEC-SQL1.cob",265,12)

            //EXEC SQL       

            //     CLOSE C2        

            return doCobolExit();

            }

      };

      Paragraph a900MainExit=new Paragraph(this) {

            public CobolMethod run() {

            //***************************************************************

            //*  All done.                                                  *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",274,12)

            //CLOSE PRINTFILE      

            //@CobolSourceFile("EXEC-SQL1.cob",275,12)

            //STOP RUN       

            System.exit(0);

            return doCobolExit();

            }

      };

      Paragraph b000GenerateReport1=new Paragraph(this) {

            public CobolMethod run() {

            //***************************************************************

            //*  Fetch and write the rows to PRINTFILE.                     *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",281,13)

            //EXEC SQL       

            //    WHENEVER NOT FOUND           

            if (false) {

                  //@CobolSourceFile("EXEC-SQL1.cob",282,36)

                  //GO TO A100-DONE1                 

                  return a100Done1;

            }

            //@CobolSourceFile("EXEC-SQL1.cob",284,13)

            //EXEC SQL       

            //    FETCH C1 INTO :PROJECT.PROJNO, :RPT1.EMPNO,          

            //                  :RPT1.NAME, :RPT1.SALARY         

            try {

                  dao.execSqlStatement7();

                  if(dao.resultExists()) {

                        setProjno(dao.getResult().getInt(1));

                        rpt1.setEmpno(dao.getResult().getString(2));

                        rpt1.setName(dao.getResult().getString(3));

                        rpt1.setSalary(dao.getResult().getBigDecimal(4));

                  }

            } catch(Exception e) {

                  e.printStackTrace();

            }

            //@CobolSourceFile("EXEC-SQL1.cob",288,12)

            //MOVE CORRESPONDING RPT1 TO RPT1-DATA         

            //*    MOVE PROJNO OF RPT1 TO PROJNO OF RPT1-DATA.

            //@CobolSourceFile("EXEC-SQL1.cob",290,12)

            //WRITE PRINT-RECORD FROM RPT1-DATA      

            //      BEFORE ADVANCING 1 LINE          

            return doCobolExit();

            }

      };

      Paragraph b010GenerateReport1Exit=new Paragraph(this) {

            public CobolMethod run() {

            return doCobolExit();

            }

      };

      Paragraph c000GenerateReport2=new Paragraph(this) {

            public CobolMethod run() {

            //***************************************************************

            //*  Fetch and write the rows to PRINTFILE.                     *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",301,12)

            //EXEC SQL       

            //     WHENEVER NOT FOUND          

            if (false) {

                  //@CobolSourceFile("EXEC-SQL1.cob",302,36)

                  //GO TO A200-DONE2                 

                  return a200Done2;

            }

            //@CobolSourceFile("EXEC-SQL1.cob",304,13)

            //EXEC SQL       

            //    FETCH C2 INTO :RPT2          

            try {

                  dao.execSqlStatement8();

                  if(dao.resultExists()) {

                        setRpt2(dao.getResult().getBytes(1));

                  }

            } catch(Exception e) {

                  e.printStackTrace();

            }

            //@CobolSourceFile("EXEC-SQL1.cob",307,12)

            //MOVE CORRESPONDING RPT2 TO RPT2-DATA         

            //@CobolSourceFile("EXEC-SQL1.cob",308,12)

            //WRITE PRINT-RECORD FROM RPT2-DATA      

            //      BEFORE ADVANCING 1 LINE          

            return doCobolExit();

            }

      };

      Paragraph c010GenerateReport2Exit=new Paragraph(this) {

            public CobolMethod run() {

            return doCobolExit();

            }

      };

      Paragraph e010UpdateError=new Paragraph(this) {

            public CobolMethod run() {

            //***************************************************************

            //*  Error occured while updating table.  Inform user and       *

            //*  rollback changes.                                          *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",320,13)

            //EXEC SQL       

            //    WHENEVER SQLERROR      

            if (false) {

                  //@CobolSourceFile("EXEC-SQL1.cob",321,35)

                  //CONTINUE             

            }

            //@CobolSourceFile("EXEC-SQL1.cob",323,12)

            //MOVE SQLCODE TO CODE-EDIT        

            setCodeEdit(sqlca.getSqlcode());

            //@CobolSourceFile("EXEC-SQL1.cob",324,12)

            //STRING "*** ERROR Occurred while updating table.  SQLCODE="          

            //      CODE-EDIT DELIMITED BY SIZE INTO PRINT-RECORD      

            //@CobolSourceFile("EXEC-SQL1.cob",326,12)

            //WRITE PRINT-RECORD         

            //@CobolSourceFile("EXEC-SQL1.cob",327,13)

            //EXEC SQL       

            //    ROLLBACK         

            //@CobolSourceFile("EXEC-SQL1.cob",330,12)

            //STOP RUN       

            System.exit(0);

            return doCobolExit();

            }

      };

      Paragraph e020ReportError=new Paragraph(this) {

            public CobolMethod run() {

            //***************************************************************

            //*  Error occured while generating reports.  Inform user and   *

            //*  exit.                                                      *

            //***************************************************************

            //@CobolSourceFile("EXEC-SQL1.cob",338,12)

            //MOVE SQLCODE TO CODE-EDIT        

            setCodeEdit(sqlca.getSqlcode());

            //@CobolSourceFile("EXEC-SQL1.cob",339,12)

            //STRING "*** ERROR Occurred while generating reports.  SQLCODE=" CODE-EDIT DELIMITED BY SIZE INTO PRINT-RECORD      

            //@CobolSourceFile("EXEC-SQL1.cob",341,12)

            //WRITE PRINT-RECORD         

            //@CobolSourceFile("EXEC-SQL1.cob",342,12)

            //STOP RUN       

            System.exit(0);

            return doCobolExit();

            }

      };

      private Cblex() {

            super(new CobolBytes(156));

      }

      private void initialize() {

            setWorkDays(253);

            setRaiseDate("1982-06-01");

            setCommission(new BigDecimal(2000.00));

            rpt1.initialize();

            rpt2.initialize();

            sqlca.initialize();

            sqlda.initialize();

            rpt1Headers.initialize();

            rpt2Headers.initialize();

            rpt1Data.initialize();

            rpt2Data.initialize();

      }

      private cobolprogramclasses.dao.CblexDao dao = new cobolprogramclasses.dao.CblexDao();

}