
INSERT INTO PROCEDIMIENTOS_USUARIO (PRUS_COD, PRUS_NOMBRE, PRUS_SP, PRUS_PARAM1, PRUS_PARAM2, PRUS_PARAM3, PRUS_PARAM4, PRUS_PARAM5, PRUS_MODULO) VALUES (1015, 'Facturas anuladas y en cero', 'REPORT_VENTAS_CRONOLOGICO', 'Detallado (S: SI - N:No):', 'Vacio:', 'Vacio:', 'Vacio:', 'Vacio:', 'FACTURACION');

SET TERM ^ ;

CREATE OR ALTER PROCEDURE REPORT_VENTAS_CRONOLOGICO (
    FECINI DATE,
    FECFIN DATE,
    DETALLE CHAR(1),
    VACIO1 CHAR(1),
    VACIO2 CHAR(1),
    VACIO3 CHAR(1),
    VACIO4 CHAR(1))
RETURNS (
    PREFIJO VARCHAR(4),
    NUMERO VARCHAR(8),
    NIT VARCHAR(20),
    CLIENTE VARCHAR(80),
    FECHA DATE,
    ARTICULO VARCHAR(15),
    DESCRIPCION VARCHAR(80),
    TOTAL NUMERIC(18,2),
    USUARIO VARCHAR(10),
    ANULADO CHAR(1))
AS
BEGIN
IF (DETALLE = 'S') THEN
  FOR SELECT F.PREF_PRE, F.FACT_NUMERO, F.TERC_NIT,F.FACT_FECHA, D.ARTI_COD , D.FADE_DESC, F.FACT_TOTAL, F.FACT_USUARIO , F.FACT_ANULADO
  FROM FACTURAS F, FACTURAS_DETALLE D, ARTICULO A WHERE F.FACT_ID = D.FACT_ID AND D.ARTI_COD = A.ARTI_COD AND F.FACT_FECHA>=:FECINI AND F.FACT_FECHA<=:FECFIN AND (F.FACT_ANULADO ='S' OR F.FACT_TOTAL =0)
  INTO :PREFIJO, :NUMERO, :NIT,:FECHA , :ARTICULO, :DESCRIPCION, :TOTAL, :USUARIO, :ANULADO
  DO
  BEGIN
  SELECT T.TERC_NOM FROM TERCEROS T WHERE T.TERC_NIT = :NIT INTO :CLIENTE;
  SUSPEND;
  END
ELSE
  FOR SELECT F.PREF_PRE, F.FACT_NUMERO, F.TERC_NIT,F.FACT_FECHA, F.FACT_TOTAL, F.FACT_USUARIO , F.FACT_ANULADO
  FROM FACTURAS F WHERE F.FACT_FECHA>=:FECINI AND F.FACT_FECHA<=:FECFIN AND (F.FACT_ANULADO ='S' OR F.FACT_TOTAL =0)
  INTO :PREFIJO, :NUMERO, :NIT,:FECHA, :TOTAL, :USUARIO, :ANULADO
  DO
  BEGIN
  SELECT T.TERC_NOM FROM TERCEROS T WHERE T.TERC_NIT = :NIT INTO :CLIENTE;
  SUSPEND;
  END

END^

SET TERM ; ^

/* Following GRANT statetements are generated automatically */

GRANT SELECT ON FACTURAS TO PROCEDURE REPORT_VENTAS_CRONOLOGICO;
GRANT SELECT ON FACTURAS_DETALLE TO PROCEDURE REPORT_VENTAS_CRONOLOGICO;
GRANT SELECT ON ARTICULO TO PROCEDURE REPORT_VENTAS_CRONOLOGICO;
GRANT SELECT ON TERCEROS TO PROCEDURE REPORT_VENTAS_CRONOLOGICO;

/* Existing privileges on this procedure */

GRANT EXECUTE ON PROCEDURE REPORT_VENTAS_CRONOLOGICO TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE REPORT_VENTAS_CRONOLOGICO TO SYSDBA;

