{
==============================================================================
    PROGRAMA    : TEPRRP007
    SISTEMA     : Sistema de Tesoreria
    Objetivo    : Relacion de Cheque Emitidos
    PROGRAMADOR : Tadeo A. Ferreras
    FECHA       : Diciembre 05, 1995
==============================================================================
}
GLOBALS
  "teprgb000.4gl"

 DEFINE datos_7 RECORD
   cuenta_no    CHAR(8),
   cheque_no    INTEGER,
   fecha        DATE,
   portador     CHAR(30),
   monto        DECIMAL(12,2),
   status_t     CHAR(1),
   codigo       INTEGER,
   descripcion  CHAR(30) 
   
  END RECORD
  DEFINE fecha_inicial,fecha_final DATE
  DEFINE tasa DECIMAL(7,3) 
  DEFINE salir CHAR(1)
   
  FUNCTION teprrp007()
  LET int_flag = FALSE

  OPTIONS
     FORM LINE 8
     
   OPEN FORM tefmrp007 FROM "tefmrp007"
   DISPLAY FORM tefmrp007
   DISPLAY "teprrp007" AT 4,3 ATTRIBUTE(RED)
   DISPLAY "Relacion de Cheques Emitidos" AT 6,26 ATTRIBUTE(BLACK) 

   LET tipo_papel = 1
   CALL msgrp000(tipo_papel)
   CALL defecto(impresor) RETURNING imprime,letras.*,archivo
 
   INPUT BY NAME fecha_inicial,fecha_final,tasa 
     ON KEY(CONTROL-P)
        CALL busca_printer() RETURNING imprime,letras.*,archivo

    AFTER FIELD fecha_inicial
     IF fecha_inicial IS NULL THEN
        LET numero_msg = 16
        CALL msg(numero_msg)
        NEXT FIELD fecha_inicial
     END IF

     AFTER FIELD fecha_final
      IF fecha_final IS NULL THEN
         LET numero_msg = 16
         CALL msg(numero_msg)
         NEXT FIELD fecha_final
       END IF

       IF fecha_inicial > fecha_final THEN
          LET numero_msg = 51
          CALL msg(numero_msg)
          NEXT FIELD fecha_inicial
        END IF
    END INPUT
    
    IF int_flag THEN
       LET numero_msg = 2
       CALL msg(numero_msg)
       LET int_flag = FALSE
       RETURN
     END IF

     CONSTRUCT criterio ON a.cuenta_no,a.cheque_no FROM cuenta_no,cheque_no
       ON KEY(CONTROL-P)
           CALL busca_printer() RETURNING imprime,letras.*,archivo
       AFTER CONSTRUCT
           EXIT CONSTRUCT
        END CONSTRUCT
LET parametro = "D"
    CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*      

     IF int_flag THEN
        LET numero_msg = 2
        CALL msg(numero_msg)
        LET int_flag = FALSE
        RETURN
      END IF

      LET selec = 
       "SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ",
       "              a.status_t ",
#      "              a.status_t,b.codigo,c.descripcion ",
#      "FROM cgtb00005 a, tetb00006 b, tetb00003 c ",
       "FROM cgtb00005 a, tetb00006 b ",
       "WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
       "      a.cuenta_no = b.banco AND ",
       "      a.cheque_no = b.cheque_no ", 
#      "      a.cheque_no = b.cheque_no AND ", 
#      "      b.codigo    = c.codigo        ", 
       "ORDER BY 1,2"

       DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
       ATTRIBUTE(YELLOW)

       PREPARE comando FROM selec
       DECLARE busco CURSOR FOR comando
       OPEN busco USING fecha_inicial,fecha_final
       
       START REPORT cheque_e TO archivo 
       CALL defecto(impresor) RETURNING imprime,letras.*,archivo
 
       START REPORT cheque_e2 TO archivo          #"lptmp" 
       DISPLAY "<<<Reporte Generandose...  Espere por Favor>>>" AT 19,14
       ATTRIBUTE(YELLOW)
                  
       LET salir = "N"
       WHILE salir != "S" 
       FETCH busco INTO datos_7.*
            IF STATUS = NOTFOUND THEN
               LET salir = "S"
               EXIT WHILE
            END IF

            IF int_flag THEN
                LET numero_msg = 2
                CALL msg(numero_msg)
                LET int_flag = FALSE
                RETURN    
            END IF 

            LET datos_7.codigo      = 0
            LET datos_7.descripcion = " " 

            SELECT c.codigo, c.descripcion INTO 
                   datos_7.codigo, datos_7.descripcion
            FROM   tetb00003 c, tetb00006 d
            WHERE  c.codigo    =  d.codigo          AND
                   d.banco     =  datos_7.cuenta_no AND
                   d.cheque_no =  datos_7.cheque_no AND
                   c.status_t  IS NULL              AND
                   d.status_t  IS NULL

            DISPLAY datos_7.cuenta_no AT 21,30
            DISPLAY datos_7.cheque_no AT 21,40

            IF datos_7.status_t = "N" THEN
               LET datos_7.monto = 0 
               LET datos_7.portador = "NULO"
            END IF

            IF datos_7.cuenta_no = 1113 THEN 
               LET datos_7.monto = datos_7.monto * tasa
            END IF

            OUTPUT TO REPORT cheque_e(datos_7.*)
            OUTPUT TO REPORT cheque_e2(datos_7.*)
      END WHILE
      FINISH REPORT cheque_e
      RUN imprime
      
      FINISH REPORT cheque_e2 
      RUN imprime
      #CALL fdestino(destino,archivo,imprime)
      #RUN "type lptmp > \\ROVDOM2\contabi"
     #RUN "copy lptmp > \\ROVDOM2\contabi" 
     CLEAR SCREEN
     END FUNCTION

REPORT cheque_e(x)
   DEFINE x RECORD
     cuenta_no    CHAR(8),
     cheque_no    INTEGER,
     fecha        DATE,
     portador     CHAR(30),
     monto        DECIMAL(12,2),
     status_t     CHAR(1),
     codigo       INTEGER,
     descripcion  CHAR(30) 
   END RECORD

## DEFINICION DE LAS VARIABLES DE IMPRESION
    DEFINE numero_ch CHAR(9),
           descripcion CHAR(30),
           detalle1 CHAR(40),
           detalle2 CHAR(37)  

    DEFINE hora CHAR(5)

    OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
     TOP MARGIN 0
      LEFT MARGIN 0
      BOTTOM MARGIN 3

    FORMAT
      PAGE HEADER
 
        LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
           PRINT COLUMN   1, letras.negrillas_on,letras.doce,letras.comp_on
           PRINT COLUMN   1, "teprrp007",
                 COLUMN  48, "R A Y . O . V A C  D O M I N I C A N A,  S. A.",
                 COLUMN 135, "Pag. ",pageno using "###"
           PRINT COLUMN  48, "              Sistema de Tesoreria", 
                 COLUMN 135, today using "dd/mm/yy"
           PRINT COLUMN  48, "           Relacion Cheques Emitidos",
                 COLUMN 138, hora
           SKIP 1 LINE
           PRINT COLUMN   1, "FECHA: Del ",fecha_inicial USING "dd/mm/yy",
                                    " Al ",fecha_final USING "dd/mm/yy"

           PRINT COLUMN 1, "--------------------------------------------------",
                           "--------------------------------------------------",
                           "------------------------------------------"

           PRINT COLUMN   1, "Cheque",
                 COLUMN   8, "Fecha",
                 COLUMN  17, "Beneficiario",
                 COLUMN  48, "Concepto",
                 COLUMN 125, "Part", 
                 COLUMN 138, "Valor"  
           PRINT COLUMN 1, "--------------------------------------------------",
                           "--------------------------------------------------",
                           "------------------------------------------"

        PRINT letras.negrillas_off
## AQUI SE INDICA LA IMPRESION DEL DETALLE
      BEFORE GROUP OF x.cuenta_no 

           SELECT a.descripcion INTO descripcion FROM cgtb00001 a
           WHERE a.cuenta_no = x.cuenta_no
   
           PRINT COLUMN   1, letras.negrillas_on
           PRINT COLUMN   1, "Banco: ", x.cuenta_no CLIPPED," ",
                             descripcion CLIPPED," ",letras.negrillas_off;

           IF x.cuenta_no = 1103 THEN
              PRINT " ( Tasa US$ : ",tasa USING "##.####"," )"
           ELSE
              PRINT " "
           END IF

       BEFORE GROUP OF x.cheque_no

           LET numero_ch = NULL
           LET detalle1 = NULL
           LET detalle2 = NULL
           IF x.status_t = "N" THEN
              LET detalle1 = "CHEQUE ANULADO" 
              LET detalle2 = " " 
           ELSE
              LET numero_ch = NULL
              LET numero_ch = "CK.",x.cheque_no USING "&&&&&&"
              SELECT UNIQUE a.detalle_1,a.detalle_2[1,37] 
                     INTO   detalle1,detalle2 
              FROM cgtb00004 a
              WHERE a.tipo=2 AND a.cuenta_no=x.cuenta_no AND a.ref = numero_ch
                AND a.detalles matches x.cuenta_no AND a.status_t IS NULL
           END IF

       ON EVERY ROW
   
           PRINT COLUMN   1, x.cheque_no USING "#####","|",
                             x.fecha USING "dd/mm/yy","|",
                 COLUMN  17, x.portador,"|",
                 COLUMN  48, detalle1,detalle2,"|",
                 COLUMN 126, x.codigo USING "&&", "|", 
                 COLUMN 129, x.monto USING "###,###,###.##" 

       AFTER GROUP OF x.cuenta_no
           PRINT COLUMN 129, "--------------"
           PRINT COLUMN   1, "Total Cheque(s) --> ", GROUP COUNT(*) 
                              USING "<<<,<<<",
                 COLUMN 129, GROUP SUM(x.monto) USING "###,###,###.##"

       ON LAST ROW
           PRINT COLUMN 129, "--------------"
           PRINT COLUMN   1, "Total Cheque(s) --> ", COUNT (*) USING "<<<,<<<",
                 COLUMN 129, SUM(x.monto) USING "###,###,###.##"
           PRINT COLUMN 129, "=============="

           PRINT letras.normal        #comp_off
   END REPORT

REPORT cheque_e2(x)
   DEFINE x RECORD
     cuenta_no    CHAR(8),
     cheque_no    INTEGER,
     fecha        DATE,
     portador     CHAR(30),
     monto        DECIMAL(12,2),
     status_t     CHAR(1),
     codigo       INTEGER,
     descripcion  CHAR(30) 
   END RECORD

## DEFINICION DE LAS VARIABLES DE IMPRESION
    DEFINE numero_ch CHAR(9),
           descripcion CHAR(30),
           detalle1 CHAR(40),
           detalle2 CHAR(37)  

    DEFINE hora CHAR(5)

    OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
     TOP MARGIN 0
      LEFT MARGIN 0
      BOTTOM MARGIN 3

    ORDER BY x.codigo

    FORMAT
      PAGE HEADER
 
        LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
           PRINT COLUMN   1, letras.negrillas_on,letras.doce,letras.comp_on
           PRINT COLUMN   1, "teprrp007",
                 COLUMN  48, "R A Y . O . V A C  D O M I N I C A N A,  S. A.",
                 COLUMN 135, "Pag. ",pageno using "###"
           PRINT COLUMN  48, "              Sistema de Tesoreria", 
                 COLUMN 135, today using "dd/mm/yy"
           PRINT COLUMN  50, "Resumen por Partidas de Cheques Emitidos",
                 COLUMN 138, hora
           SKIP 1 LINE
           PRINT COLUMN   1, "FECHA: Del ",fecha_inicial USING "dd/mm/yy",
                                    " Al ",fecha_final USING "dd/mm/yy"

           PRINT COLUMN 1, "--------------------------------------------------",
                           "--------------------------------------------------",
                           "------------------------------------------"

           PRINT COLUMN   1, "Partida",
                 COLUMN  40, "Valor"  
           PRINT COLUMN 1, "--------------------------------------------------",
                           "--------------------------------------------------",
                           "------------------------------------------"

        PRINT letras.negrillas_off

        AFTER GROUP OF x.codigo 
           PRINT COLUMN   1, x.codigo USING "&&"," ",
                             x.descripcion, 
                 COLUMN  40, GROUP SUM(x.monto) USING "###,###,###.##" 

       ON LAST ROW 
           PRINT COLUMN  39, "----------------" 
           PRINT COLUMN   1, "         Total General ", 
                 COLUMN  40, SUM(x.monto) USING "###,###,###.##" 
           PRINT COLUMN  39, "================" 

           PRINT letras.normal       #comp_off
   END REPORT
