--------------------------------------------------------------------------
-- Play this script in PRUEBAS@VISANY to make it look like DESA@VISMAR
--                                                                      --
-- Please review the script before using it to make sure it won't       --
-- cause any unacceptable data loss.                                    --
--                                                                      --
-- PRUEBAS@VISANY Schema Extracted by User PRUEBAS 
-- DESA@VISMAR Schema Extracted by User DESA 
ALTER TABLE VENARQUEO
 DROP CONSTRAINT VENARQUEO_ARQUEO_CK;

ALTER TABLE VENARQUEO
 DROP CONSTRAINT VENARQUEO_FONDOFIJO_CK;

ALTER TABLE VENARQUEO
 DROP CONSTRAINT VENARQUEO_INGRESOS_CK;

ALTER TABLE VENARQUEODET
 DROP CONSTRAINT VENARQUEODET_TOTAL_CK;

ALTER TABLE VENARQUEODET
 DROP CONSTRAINT VENARQUEO_DETALLE_FK;

ALTER TABLE VENCLITMP
 DROP CONSTRAINT VENCLITMP_CANTIDAD_CK;

ALTER TABLE VENCLITMP
 DROP CONSTRAINT VENCLITMP_MONTO_CK;

ALTER TABLE VENCLITMP
 DROP PRIMARY KEY CASCADE;

ALTER TABLE VENCONSIGNATARIO
 DROP CONSTRAINT VENCONSIGNATARIO_ESTADO_CK;

ALTER TABLE VENFONDODET
 DROP CONSTRAINT VENFONDODET_TOTAL_CK;

ALTER TABLE VENNOTA
 DROP CONSTRAINT VENNOTA_PORCIMPUES_CK;

ALTER TABLE VENNOTA
 DROP CONSTRAINT VENNOTA_TIPOCAMBIO_CK;

ALTER TABLE VENPAGO
 DROP CONSTRAINT VENPAGO_TIPOCAMBIO_CK;

ALTER TABLE VENPAGO
 DROP CONSTRAINT VENPAGO_CAMBIOBASE_CK;

ALTER TABLE VENPARAMETROS
 DROP CONSTRAINT VENPARAMETROS_TIPOEST_CK;

ALTER TABLE VENDESCUENTOS
 DROP CONSTRAINT VENDESCUENTOS_COMPLEMENT_CK;

ALTER TABLE VENDESCUENTOS
 DROP CONSTRAINT VENDESCUENTOS_TIPORED_CK;

ALTER TABLE VENDESCUENTOS
 DROP CONSTRAINT VENDESCUENTOS_MULTIPLORE_CK;

ALTER TABLE VENDETNOTA
 DROP CONSTRAINT VENDETNOTA_IMPCONSUMO_CK;

ALTER TABLE VENDETNOTA
 DROP CONSTRAINT VENDETNOTA_AJUSTE_CK;

ALTER TABLE VENDETNOTA
 DROP CONSTRAINT VENDETNOTA_IMPUESTO_CK;

ALTER TABLE VENDETNOTA
 DROP CONSTRAINT VENDETNOTA_TOTALLINEA_CK;

ALTER TABLE VENDETNOTA
 DROP CONSTRAINT "VENNOTA_DETN OTA_FK";

ALTER TABLE VENFACTURA
 DROP CONSTRAINT VENFACTURA_REFERENC_AK;

ALTER TABLE VENDEVOLUCION
 DROP CONSTRAINT VENDEVOLUCION_OTROSCARGO_CK;

ALTER TABLE VENDEVOLUCION
 DROP CONSTRAINT VENMOTDEV_MOTIVO_FK;

ALTER TABLE VENALISTO
MODIFY(IMPRESO  DEFAULT 'S');

ALTER TABLE VENARQUEO
MODIFY(DESCRIPCION  NULL);

ALTER TABLE VENARQUEO
MODIFY(FECHAREG  DEFAULT sysdate);

CREATE TABLE VENCIESURTIDOR
(
  CIA         CHAR(3 BYTE)                      NOT NULL,
  CAJA        CHAR(3 BYTE)                      NOT NULL,
  DIA         DATE                              NOT NULL,
  SURTIDOR    NUMBER(2)                         NOT NULL,
  ARTICULO    VARCHAR2(25 BYTE)                 NOT NULL,
  LECTURA     NUMBER(14,2)                      NOT NULL,
  LECTURAANT  NUMBER(14,2)                      NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENCIESURTIDOR
 ADD CONSTRAINT VENCIESURTIDOR_LECTURA_CK
 CHECK (LECTURA >= 0);

ALTER TABLE VENCIESURTIDOR
 ADD CONSTRAINT VENCIESURTIDOR_LECTURAANT_CK
 CHECK (LECTURAANT >= 0);

ALTER TABLE VENCIESURTIDOR
 ADD CONSTRAINT VENCIESURTIDOR_PK
 PRIMARY KEY
 (CIA, CAJA, DIA, SURTIDOR);

ALTER TABLE VENCLASECLI
 ADD (CATALOGO  VARCHAR2(25 BYTE)                   DEFAULT '0'                   NOT NULL);

ALTER TABLE VENCLITMP ** esta totalmente diferente 
MODIFY(CLIENTE  NULL);

ALTER TABLE VENCLITMP
MODIFY(MONTO NUMBER(16,2) NULL);

ALTER TABLE VENCLITMP
MODIFY(CANTIDAD NUMBER(14,4) NULL);

ALTER TABLE VENCLITMP
MODIFY(ARTICULO  NULL);

ALTER TABLE VENCLITMP
MODIFY(DIA NUMBER(2) NULL);

ALTER TABLE VENCLITMP DROP CONSTRAINT VENCLITMP_PK;
ALTER TABLE VENCLITMP DROP COLUMN SESION;

ALTER TABLE VENCONCEPTOCOBRO
 ADD (LINEA  CHAR(3 BYTE));

ALTER TABLE VENCONCEPTOCOBRO
 ADD (MOVCXCPAG  CHAR(3 BYTE));

ALTER TABLE VENEMPLEADO
MODIFY(USUARIO  DEFAULT user);

ALTER TABLE VENEMPLEADO
 ADD (NOMCORTO  VARCHAR2(15 BYTE));

ALTER TABLE VENEVENTOALISTO
MODIFY(OBSERVACIONES VARCHAR2(120 BYTE));

CREATE TABLE VENFACTMP
(
  ALISTO         NUMBER(10),
  FACTURA        NUMBER(10),
  GRUPO          VARCHAR2(30 BYTE),
  PRECIO         NUMBER(14,4),
  PORCDESCUENTO  NUMBER(8,5),
  MEDIDA         VARCHAR2(5 BYTE),
  ARTICULO       VARCHAR2(25 BYTE),
  CANTIDAD       NUMBER(12,4),
  IMPUESTO       NUMBER(14,2),
  TOTALLINEA     NUMBER(14,2),
  PDESC1         NUMBER(5,2),
  PDESC2         NUMBER(5,2),
  PDESC3         NUMBER(5,2),
  DESART         VARCHAR2(50 BYTE),
  DESCRIPCION    VARCHAR2(400 BYTE),
  FECHA          DATE
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENFACTMP
 ADD PRIMARY KEY
 (ALISTO, FACTURA, GRUPO, PRECIO, PORCDESCUENTO, MEDIDA);

ALTER TABLE VENPAGO
MODIFY(AGENTE  NULL);

ALTER TABLE VENPAGODOCUMENTOS
 ADD (TIPODOC  VARCHAR2(3 BYTE));

ALTER TABLE VENPARAMETROS
MODIFY(TIPOEST  NULL);

CREATE TABLE VENPARAMPRESUP
(
  CIA      CHAR(3 BYTE)                         NOT NULL,
  MONEDA   VARCHAR2(3 BYTE)                     NOT NULL,
  PIVOTE1  CHAR(2 BYTE)                         NOT NULL,
  PIVOTE2  CHAR(2 BYTE)                         NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENPARAMPRESUP
 ADD CONSTRAINT VENPARAMPRESUP_PIVOTE1_CK
 CHECK (pivote1 in ('AR','LI','CA','MA','SZ','TC','PO','CN','DS','AG','CL','ZO'));

ALTER TABLE VENPARAMPRESUP
 ADD CONSTRAINT VENPARAMPRESUP_PIVOTE2_CK
 CHECK (pivote2 in ('AR','LI','CA','MA','SZ','TC','PO','CN','DS','AG','CL','ZO'));

ALTER TABLE VENPARAMPRESUP
 ADD CONSTRAINT VENPARAMPRESUP_PK
 PRIMARY KEY
 (CIA, MONEDA);

CREATE TABLE VENPRESCLIENTE
(
  CIA          CHAR(3 BYTE)                     NOT NULL,
  SUCURSAL     CHAR(3 BYTE)                     NOT NULL,
  PERIODO      NUMBER(6)                        NOT NULL,
  AGENTEVENTA  VARCHAR2(3 BYTE)                 NOT NULL,
  CLIENTE      VARCHAR2(25 BYTE)                NOT NULL,
  MONTO        NUMBER(14,4)                     NOT NULL,
  MONBASE      NUMBER(14,4)                     NOT NULL,
  MONREAL      NUMBER(14,4)
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENPRESCLIENTE
 ADD CONSTRAINT VENPRESCLIENTE_PK
 PRIMARY KEY
 (CIA, SUCURSAL, AGENTEVENTA, PERIODO, CLIENTE);

CREATE TABLE VENPRESUPUESTO
(
  CIA           CHAR(3 BYTE)                    NOT NULL,
  MONEDA        VARCHAR2(3 BYTE)                NOT NULL,
  PERIODO       NUMBER(6)                       NOT NULL,
  DIAS_HABILES  NUMBER(2)                       NOT NULL,
  TIPOCAMBIO    NUMBER(14,4)                    NOT NULL,
  MONTO         NUMBER(14,4)                    NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENPRESUPUESTO
 ADD CONSTRAINT VENPRESUPUESTO_PK
 PRIMARY KEY
 (CIA, MONEDA, PERIODO);

CREATE TABLE VENSURTIDOR
(
  CIA          CHAR(3 BYTE)                     NOT NULL,
  SURTIDOR     NUMBER(2)                        NOT NULL,
  DESCRIPCION  VARCHAR2(30 BYTE),
  ARTICULO     VARCHAR2(25 BYTE)                NOT NULL,
  LECTURA      NUMBER(14,2)                     NOT NULL,
  CAJA         CHAR(3 BYTE)                     NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENSURTIDOR
 ADD CONSTRAINT VENSURTIDOR_LECTURA_CK
 CHECK (LECTURA >= 0);

ALTER TABLE VENSURTIDOR
 ADD CONSTRAINT VENSURTIDOR_PK
 PRIMARY KEY
 (CIA, SURTIDOR);

CREATE TABLE VENVERALISTO
(
  CIA        CHAR(3 BYTE)                       NOT NULL,
  SUCURSAL   CHAR(3 BYTE)                       NOT NULL,
  DOCUMENTO  NUMBER(10)                         NOT NULL,
  ARTICULO   VARCHAR2(25 BYTE)                  NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

CREATE OR REPLACE FORCE VIEW VENTASXDEPTO
(CIA, DIA, DEPARTAMENTO, CONCEPTO, MONTO, 
 IMPUESTO)
AS 
select m.cia, m.dia, m.departamento, m.concepto, sum(monto) monto, sum (impuesto) impuesto
from MovimientoVenta m
group by m.cia, m.dia, m.departamento, m.concepto;

CREATE OR REPLACE TRIGGER "ACTUALIZA_EVENTO" AFTER
INSERT
OR DELETE ON "VENEVENTOALISTO" FOR EACH ROW
Declare
   Eventos varchar2(18):=':AI:AT:C :EI:ET:T ';
   Function Pred(eve in varchar2) return varchar2 is
      Vpos number(2);
   begin
      Vpos:=InStr(Eventos, ':'||Eve);
      if Vpos>1 then
         return rtrim(substr(Eventos, Vpos-2, 2));
      else
         return null;
      end if;
   end;
   procedure Actualizar(Pcia in char, Psuc in char, Pdoc in number, Peve in varchar2) is
   Begin
      update venalisto
         Set ultEvento=Peve
      where cia=Pcia
        and sucursal=Psuc
        and documento=Pdoc;
   End;
BEGIN
   If Inserting Then
      Actualizar(:new.cia, :new.sucursal, :new.documento, :new.tipo);
   elsif Deleting then
      Actualizar(:old.cia, :old.sucursal, :old.documento, Pred(:old.tipo));
   end if;
END;
/
SHOW ERRORS;

ALTER TABLE VENBLOQUES
 ADD (SERIE  CHAR(1 BYTE));

ALTER TABLE VENDESCUENTOS
MODIFY(TIPORED  DEFAULT 'N');

CREATE TABLE VENDETPRESUPUESTO
(
  CIA       CHAR(3 BYTE)                        NOT NULL,
  SUCURSAL  CHAR(3 BYTE)                        NOT NULL,
  MONEDA    VARCHAR2(3 BYTE)                    NOT NULL,
  PERIODO   NUMBER(6)                           NOT NULL,
  VALOR1    VARCHAR2(25 BYTE)                   NOT NULL,
  VALOR2    VARCHAR2(25 BYTE)                   NOT NULL,
  MONTO     NUMBER(14,4)                        NOT NULL,
  MONBASE   NUMBER(14,4)                        NOT NULL,
  MONREAL   NUMBER(14,4)                        NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENDETPRESUPUESTO
 ADD CONSTRAINT VENDETPRESUPUESTO_PK
 PRIMARY KEY
 (CIA, SUCURSAL, MONEDA, PERIODO, VALOR1, VALOR2);

ALTER TABLE VENFACTURA
MODIFY(CONSIGNATARIO  NULL);

ALTER TABLE VENPEDIDO
MODIFY(CONSIGNATARIO  NULL);

ALTER TABLE VENPEDIDO
MODIFY(FECHAREG  NULL);

CREATE TABLE VENDETRESERVA
(
  CIA            CHAR(3 BYTE)                   NOT NULL,
  SUCURSAL       CHAR(3 BYTE)                   NOT NULL,
  DOCUMENTO      NUMBER(10)                     NOT NULL,
  SECUENCIA      NUMBER(4)                      NOT NULL,
  PARTIDA        VARCHAR2(30 BYTE),
  HORA           NUMBER(5,2),
  LLEGADA        VARCHAR2(30 BYTE),
  FECHA          DATE                           NOT NULL,
  GUIA           VARCHAR2(30 BYTE),
  OBSERVACIONES  VARCHAR2(300 BYTE),
  VOUCHER        VARCHAR2(20 BYTE),
  CHOFER         VARCHAR2(30 BYTE),
  MOVIL1         VARCHAR2(30 BYTE),
  MOVIL2         VARCHAR2(30 BYTE),
  ESTADO         CHAR(1 BYTE)                   NOT NULL,
  HABITACION     VARCHAR2(15 BYTE),
  TIPOOBS        VARCHAR2(3 BYTE),
  CLASEPAX       CHAR(1 BYTE)
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE VENDETRESERVA
 ADD CONSTRAINT VENDETRESERVA_ESTADO_CK
 CHECK (estado in ('A','P','N'));

ALTER TABLE VENDETRESERVA
 ADD CONSTRAINT VENDETRESERVA_PK
 PRIMARY KEY
 (CIA, SUCURSAL, DOCUMENTO, SECUENCIA);

ALTER TABLE VENDEVOLUCION
MODIFY(DESCRIPCION VARCHAR2(120 BYTE));**EN EL MODELO ESTA DE 200 

ALTER TABLE VENDEVOLUCION DROP CONSTRAINT VENMOTDEV_MOTIVO_FK;
ALTER TABLE VENDEVOLUCION DROP COLUMN MOTIVO;

ALTER TABLE VENDETDEVOLUCION
 ADD (MOTIVO  VARCHAR2(3 BYTE));

--
ALTER TABLE VENCLASECLI
 DROP CONSTRAINT VENCLASECLI_CATALOGOS_CK;
ALTER TABLE VENCLASECLI
 ADD CONSTRAINT VENCLASECLI_CATALOGOS_CK
 CHECK (catalogos>=0);

ALTER TABLE VENCLASECLI
 DROP PRIMARY KEY CASCADE;
ALTER TABLE VENCLASECLI
 ADD CONSTRAINT VENCLASECLI_PK
 PRIMARY KEY
 (CIA, CLASE, CATALOGO);

ALTER TABLE VENEMPLEADO
 DROP CONSTRAINT VENEMPLEADO_PUESTO_CK;
ALTER TABLE VENEMPLEADO
 ADD CONSTRAINT VENEMPLEADO_PUESTO_CK
 CHECK (puesto in ('A','AE','C','CA','D','E','F','FD','T','G'));

ALTER TABLE VENTRANSACCION
 DROP CONSTRAINT VENTRANSACCION_ORIGEN_CK;
ALTER TABLE VENTRANSACCION
 ADD CONSTRAINT VENTRANSACCION_ORIGEN_CK
 CHECK (origen in ('B','C','D','F','O','P','S','V','N'));

ALTER TABLE VENBLOQUES
 DROP CONSTRAINT VENBLOQUES_CLASE_CK;
ALTER TABLE VENBLOQUES
 ADD CONSTRAINT VENBLOQUES_CLASE_CK
 CHECK (clase in ('D','F','O','P','S','V','A','E','N') );

ALTER TABLE VENCAMION
 DROP CONSTRAINT VENCAMION_ESTADO_CK;
ALTER TABLE VENCAMION
 ADD CONSTRAINT VENCAMION_ESTADO_CK
 CHECK (estado in ('A','P','N'));

ALTER TABLE VENCONSECUTIVO
 DROP CONSTRAINT VENCONSECUTIVO_CLASE_CK;
ALTER TABLE VENCONSECUTIVO
 ADD CONSTRAINT VENCONSECUTIVO_CLASE_CK
 CHECK (clase in ('D','F','O','P','S','V','A','E','N') );

ALTER TABLE VENDESCUENTOVOL
 ADD CONSTRAINT VENDESCUENTOVOL_PORCDESCUE_CK
 CHECK (porcdescuento >= 0);

ALTER TABLE VENDESCUENTOVOL
 ADD CONSTRAINT VENDESCUENTOVOL_UQ
 UNIQUE (CIA, ARTICULO, LISTAPRECIO, CANTIDAD);

ALTER TABLE VENPRESUPUESTO
 ADD CONSTRAINT VENPARAMPRESUP_PRESUP_FK 
 FOREIGN KEY (CIA, MONEDA) 
 REFERENCES VENPARAMPRESUP (CIA,MONEDA);

ALTER TABLE VENDETPRESUPUESTO
 ADD CONSTRAINT VENPRESUPUESTO_DETALLE_FK 
 FOREIGN KEY (CIA, MONEDA, PERIODO) 
 REFERENCES VENPRESUPUESTO (CIA,MONEDA,PERIODO);

ALTER TABLE VENDETRESERVA
 ADD CONSTRAINT VENDETPEDIDO_RESERVA_FK 
 FOREIGN KEY (CIA, SUCURSAL, DOCUMENTO, SECUENCIA) 
 REFERENCES VENDETPEDIDO (CIA,SUCURSAL,DOCUMENTO,SECUENCIA);

ALTER TABLE VENDETNOTA
 ADD CONSTRAINT VENNOTA_DETNOTA_FK 
 FOREIGN KEY (CIA, SUCURSAL, DOCUMENTO) 
 REFERENCES VENNOTA (CIA,SUCURSAL,DOCUMENTO);

ALTER TABLE VENFACTMP
 ADD PRIMARY KEY
 (ALISTO, FACTURA, GRUPO, PRECIO, PORCDESCUENTO, MEDIDA);

Eliminar modelo
--- DROP CONSTRAINT VENFACTURA_REFERENC_AK;
ALTER TABLE VENFACTURA
ADD CONSTRAINT VENFACTURA_REFERENC_AK UNIQUE (CIA, SUCURSAL, REFERENCIA);

**eliminar del modelo
---DROP CONSTRAINT VENARQUEO_INGRESOS_CK;
ALTER TABLE VENARQUEO
ADD CONSTRAINT VENARQUEO_INGRESOS_CK CHECK (INGRESOS >= 0);

**eliminar del modelo
---DROP CONSTRAINT VENARQUEO_ARQUEO_CK;
ALTER TABLE VENARQUEO
ADD CONSTRAINT VENARQUEO_ARQUEO_CK CHECK (ARQUEO >= 0);