/*==============================================================*/
/* DBMS name:      ORACLE Version 9i                            */
/* Created on:     30/01/2008 04:07:53 p.m.                     */
/*==============================================================*/


/*==============================================================*/
/* Table: ESTDET                                                */
/*==============================================================*/
CREATE TABLE ESTDET  (
   CIA                  CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   BODEGA               CHAR(3)                         NOT NULL,
   MONEDA               VARCHAR2(3)                     NOT NULL,
   PERIODO              NUMBER(8)                       NOT NULL,
   CLIENTE              VARCHAR2(25)                    NOT NULL,
   AGENTE               VARCHAR2(3)                     NOT NULL,
   ARTICULO             VARCHAR2(25)                    NOT NULL,
   CANTIDADVEN          NUMBER(12,4)                    NOT NULL
      CONSTRAINT ESTDET_CANTIDADVE_CK CHECK (CANTIDADVEN >= 0),
   COSTOVEN             NUMBER(14,2)                    NOT NULL,
   IMPTOVEN             NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTDET_IMPTOVEN_CK CHECK (IMPTOVEN >= 0),
   MONTOVEN             NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTDET_MONTOVEN_CK CHECK (MONTOVEN >= 0),
   CANTIDADDEV          NUMBER(12,4)                    NOT NULL
      CONSTRAINT ESTDET_CANTIDADDE_CK CHECK (CANTIDADDEV >= 0),
   COSTODEV             NUMBER(14,2)                    NOT NULL,
   IMPTODEV             NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTDET_IMPTODEV_CK CHECK (IMPTODEV >= 0),
   MONTODEV             NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTDET_MONTODEV_CK CHECK (MONTODEV >= 0),
   CONSTRAINT ESTDET_PK PRIMARY KEY (CIA, SUCURSAL, BODEGA, MONEDA, PERIODO, CLIENTE, AGENTE, ARTICULO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: AGENTECLIENTE                                         */
/*==============================================================*/
CREATE INDEX AGENTECLIENTE ON ESTDET (
   CIA ASC,
   PERIODO ASC,
   AGENTE ASC,
   CLIENTE ASC,
   ARTICULO ASC
);

/*==============================================================*/
/* Index: AGENTEARTICULO                                        */
/*==============================================================*/
CREATE INDEX AGENTEARTICULO ON ESTDET (
   CIA ASC,
   PERIODO ASC,
   AGENTE ASC,
   ARTICULO ASC,
   MONEDA ASC
);

/*==============================================================*/
/* Table: ESTTMP                                                */
/*==============================================================*/
CREATE GLOBAL TEMPORARY TABLE ESTTMP  (
   CIA                  CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   BODEGA               CHAR(3)                         NOT NULL,
   MONEDA               VARCHAR2(3)                     NOT NULL,
   PERIODO              NUMBER(8)                       NOT NULL,
   CLIENTE              VARCHAR2(25)                    NOT NULL,
   AGENTE               VARCHAR2(3)                     NOT NULL,
   ARTICULO             VARCHAR2(25)                    NOT NULL,
   CANTIDADVEN          NUMBER(12,4)                    NOT NULL,
   COSTOVEN             NUMBER(14,2)                    NOT NULL,
   IMPTOVEN             NUMBER(14,2)                    NOT NULL,
   MONTOVEN             NUMBER(14,2)                    NOT NULL,
   CANTIDADDEV          NUMBER(12,4)                    NOT NULL,
   COSTODEV             NUMBER(14,2)                    NOT NULL,
   IMPTODEV             NUMBER(14,2)                    NOT NULL,
   MONTODEV             NUMBER(14,2)                    NOT NULL
)
ON COMMIT PRESERVE ROWS;

/*==============================================================*/
/* Table: EST_COMAGENTE                                         */
/*==============================================================*/
CREATE TABLE EST_COMAGENTE  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   COD_AGENTE           VARCHAR(3)                      NOT NULL,
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   COD_COMISION         VARCHAR2(3)                     NOT NULL,
   MON_COMISION         NUMBER(14,2)                   DEFAULT 0 NOT NULL,
   CONSTRAINT EST_COMAGENTE_PK PRIMARY KEY (COD_CIA, SUCURSAL, COD_AGENTE, ANO_FISCAL, PER_PROCESO, COD_COMISION)
);

/*==============================================================*/
/* Table: EST_LINEA_TMP                                         */
/*==============================================================*/
CREATE TABLE EST_LINEA_TMP  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   COD_AGENTE           VARCHAR(3)                      NOT NULL,
   COD_LINEA            VARCHAR2(5)                     NOT NULL,
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   MON_VENDIDO          NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTLINEATMP_MONVENDIDO_CK CHECK (MON_VENDIDO >= 0),
   CAN_UNIDADES         NUMBER(14,4)                    NOT NULL,
   MON_DEVUELTO         NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTLINEATMP_MONDEVUELTO_CK CHECK (MON_DEVUELTO >= 0),
   CAN_DEVUELTAS        NUMBER(14,4)                    NOT NULL
      CONSTRAINT ESTLINEATMP_CANDEVUELTAS_CK CHECK (CAN_DEVUELTAS >= 0),
   CONSTRAINT EST_LINEA_TMP_PK PRIMARY KEY (COD_CIA, SUCURSAL, COD_AGENTE, COD_LINEA, ANO_FISCAL, PER_PROCESO, COD_MONEDA)
);

/*==============================================================*/
/* Table: EST_PROVEEDOR_TMP                                     */
/*==============================================================*/
CREATE TABLE EST_PROVEEDOR_TMP  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   COD_AGENTE           VARCHAR(3)                      NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   MON_VENDIDO          NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTPROVEEDORTMP_MONVENDIDO_CK CHECK (MON_VENDIDO >= 0),
   CAN_UNIDADES         NUMBER(14,4)                    NOT NULL,
   MON_DEVUELTO         NUMBER(14,2)                    NOT NULL
      CONSTRAINT ESTPROVEEDORTMP_MONDEVUELTO_CK CHECK (MON_DEVUELTO >= 0),
   CAN_DEVUELTAS        NUMBER(14,4)                    NOT NULL
      CONSTRAINT ESTPROVEEDORTMP_CANDEVUEL_CK CHECK (CAN_DEVUELTAS >= 0),
   CONSTRAINT EST_PROVEEDOR_TMP_PK PRIMARY KEY (COD_CIA, SUCURSAL, COD_AGENTE, COD_PROVEEDOR, ANO_FISCAL, PER_PROCESO, COD_MONEDA)
);

/*==============================================================*/
/* View: EST_DETAGENTE                                          */
/*==============================================================*/
CREATE OR REPLACE VIEW EST_DETAGENTE AS
SELECT A.CIA,A.SUCURSAL,A.AGENTE,A.ARTICULO,A.PERIODO,A.MONEDA,
       SUM(A.CANTIDADVEN) CANTIDADVEN,SUM(A.MONTOVEN) MONTOVEN
FROM ESTDET A
GROUP BY A.CIA,A.SUCURSAL,A.AGENTE,A.ARTICULO,A.PERIODO,A.MONEDA;

/*==============================================================*/
/* View: EST_DETARTIC                                           */
/*==============================================================*/
CREATE OR REPLACE VIEW EST_DETARTIC AS
SELECT A.CIA,A.SUCURSAL,A.CLIENTE,A.ARTICULO,A.PERIODO,A.MONEDA,
       SUM(A.CANTIDADVEN) CANTIDADVEN,SUM(A.MONTOVEN) MONTOVEN
FROM ESTDET A
GROUP BY A.CIA,A.SUCURSAL,A.CLIENTE,A.ARTICULO,A.PERIODO,A.MONEDA;

/*==============================================================*/
/* View: EST_DETLINEA                                           */
/*==============================================================*/
CREATE OR REPLACE VIEW EST_DETLINEA AS
SELECT A.CIA,A.SUCURSAL,B.COD_LINEA,A.ARTICULO,B.DES_ARTICULO,A.PERIODO,A.MONEDA,
       SUM(A.CANTIDADVEN) CANTIDADVEN,SUM(A.MONTOVEN) MONTOVEN
FROM ESTDET A,INV_ARTICULO B
WHERE A.CIA=B.COD_CIA
  AND A.ARTICULO=B.COD_ARTICULO
GROUP BY A.CIA,A.SUCURSAL,B.COD_LINEA,A.ARTICULO,B.DES_ARTICULO,A.PERIODO,A.MONEDA;

/*==============================================================*/
/* View: EST_GENAGENTE                                          */
/*==============================================================*/
CREATE OR REPLACE VIEW EST_GENAGENTE AS
SELECT A.CIA,A.SUCURSAL,A.AGENTE,A.PERIODO,A.MONEDA,
       SUM(A.MONTODEV) MONTODEV,SUM(A.MONTOVEN) MONTOVEN
FROM ESTDET A
GROUP BY A.CIA,A.SUCURSAL,A.AGENTE,A.PERIODO,A.MONEDA;

/*==============================================================*/
/* View: EST_GENARTIC                                           */
/*==============================================================*/
CREATE OR REPLACE VIEW EST_GENARTIC AS
SELECT CIA, SUCURSAL, ARTICULO, PERIODO, MONEDA,
     SUM(A.MONTOVEN) MON_VENDIDO, SUM(A.CANTIDADVEN) CAN_UNIDADES,
     SUM(A.MONTODEV) MON_DEVUELTO, SUM(A.CANTIDADDEV) CAN_DEVUELTAS
FROM ESTDET A
GROUP BY CIA, SUCURSAL, ARTICULO, PERIODO, MONEDA;

/*==============================================================*/
/* View: EST_GENCLIENT                                          */
/*==============================================================*/
CREATE OR REPLACE VIEW EST_GENCLIENT AS
SELECT A.CIA,A.SUCURSAL,A.CLIENTE,A.PERIODO,A.MONEDA,
       SUM(A.CANTIDADVEN) CANTIDADVEN,SUM(A.MONTOVEN) MONTOVEN
FROM ESTDET A
GROUP BY A.CIA,A.SUCURSAL,A.CLIENTE,A.PERIODO,A.MONEDA;

/*==============================================================*/
/* View: EST_GENLINEA                                           */
/*==============================================================*/
CREATE OR REPLACE VIEW EST_GENLINEA AS
SELECT A.CIA,A.SUCURSAL,B.COD_LINEA,A.PERIODO,A.MONEDA,
       SUM(A.CANTIDADVEN) CANTIDADVEN,SUM(A.MONTOVEN) MONTOVEN
FROM ESTDET A,INV_ARTICULO B
WHERE A.CIA=B.COD_CIA
AND   A.ARTICULO=B.COD_ARTICULO
GROUP BY A.CIA,A.SUCURSAL,B.COD_LINEA,A.PERIODO,A.MONEDA;

