--------------------------------------------------------------------------
-- 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 

--
-- INVETIQCAMPO  (Table) 
--

**** LA MAYORIA CLIENTES TIENE VARCHAR2
ALTER TABLE INV_ENCMOVDESP
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_ENCMOVDESP
MODIFY(NUM_DESPACHO VARCHAR2(10 BYTE));

ALTER TABLE INV_ENCSOLTRASLADO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_ENCSOLTRASLADO
MODIFY(NUM_DOCTOSAL VARCHAR2(10 BYTE));

ALTER TABLE INV_MOVGRUPO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_MOVGRUPO
MODIFY(NUM_DOCTOGRP VARCHAR2(10 BYTE));

ALTER TABLE INV_DETSOLTRASLADO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_ENCABMOVIMIENTO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_ENCABTRASLADO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_ENCABTRASLADO
MODIFY(NUM_DOCTOENT VARCHAR2(10 BYTE));

ALTER TABLE INV_HIST_ENC_MOVTO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_DETMOVIMIENTO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_HIST_DET_MOVTO
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_DETMOVDESP
MODIFY(NUM_DOCTO VARCHAR2(10 BYTE));

ALTER TABLE INV_DETMOVDESP
MODIFY(NUM_DESPACHO VARCHAR2(10 BYTE));

CREATE TABLE INVETIQCAMPO
(
  COD_CIA        CHAR(3 BYTE)                   NOT NULL,
  ETIQUETA       VARCHAR2(15 BYTE)              NOT NULL,
  SECUENCIA      NUMBER(2)                      NOT NULL,
  NOMBRE         VARCHAR2(15 BYTE)              NOT NULL,
  ALTO           NUMBER(5,2)                    NOT NULL,
  ANCHO          NUMBER(5,2)                    NOT NULL,
  POSX           NUMBER(5,2)                    NOT NULL,
  POSY           NUMBER(5,2)                    NOT NULL,
  JUSTIFICACION  VARCHAR2(10 BYTE)              NOT NULL,
  TIPO           VARCHAR2(10 BYTE),
  FORMATO        VARCHAR2(16 BYTE),
  FUENTE         VARCHAR2(50 BYTE),
  VALOR          VARCHAR2(50 BYTE)
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE INVETIQCAMPO
 ADD CONSTRAINT INVETIQCAMPO_PK
 PRIMARY KEY
 (COD_CIA, ETIQUETA, SECUENCIA);

--
-- INVETIQUETA  (Table) 
--
CREATE TABLE INVETIQUETA
(
  COD_CIA    CHAR(3 BYTE)                       NOT NULL,
  ETIQUETA   VARCHAR2(15 BYTE)                  NOT NULL,
  MEDIDA     VARCHAR2(12 BYTE)                  NOT NULL,
  ANCHO      NUMBER(5,2)                        NOT NULL,
  LARGO      NUMBER(5,2)                        NOT NULL,
  COLUMNAS   NUMBER(2)                          NOT NULL,
  FUENTE     VARCHAR2(50 BYTE)                  NOT NULL,
  MARGEN     VARCHAR2(50 BYTE)                  NOT NULL,
  TITULO     VARCHAR2(50 BYTE)                  NOT NULL,
  IMPRESORA  VARCHAR2(50 BYTE)                  NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE INVETIQUETA
 ADD CONSTRAINT INVETIQUETA_PK
 PRIMARY KEY
 (COD_CIA, ETIQUETA);

--
-- INVLOGX  (Table) 
--
CREATE TABLE INVLOGX
(
  CIA       VARCHAR2(3 BYTE),
  TIPOINV   VARCHAR2(3 BYTE),
  ARTICULO  VARCHAR2(25 BYTE),
  LOTE      VARCHAR2(15 BYTE),
  BODEGA    VARCHAR2(3 BYTE),
  DOCREF    VARCHAR2(10 BYTE),
  USUARIO   VARCHAR2(30 BYTE),
  FECHA     DATE,
  OBSERVS   VARCHAR2(80 BYTE),
  DESPACHO  NUMBER(14,4),
  RESERVA   NUMBER(14,4)
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

--
-- INV_ARTABC_TMP  (Table) 
--
CREATE TABLE INV_ARTABC_TMP
(
  COD_CIA       CHAR(3 BYTE)                    NOT NULL,
  COD_BODEGA    CHAR(3 BYTE)                    NOT NULL,
  COD_ARTICULO  VARCHAR2(25 BYTE)               NOT NULL,
  MONTO         NUMBER(14,4)                    NOT NULL,
  ABC           CHAR(1 BYTE)                    NOT NULL
)
LOGGING 
NOCACHE
PARALLEL ( DEGREE DEFAULT INSTANCES 1 )
NOMONITORING;

ALTER TABLE INV_ARTABC_TMP
 ADD CONSTRAINT INV_ARTABC_TMP_PK
 PRIMARY KEY
 (COD_CIA, COD_BODEGA, COD_ARTICULO);

-- Difference : Column Order (No action taken) 

--
-- INV_MENSUALTMP  (Table) 
--
CREATE TABLE INV_MENSUALTMP
(
  COD_CIA      CHAR(3 BYTE)                     NOT NULL,
  COD_BODEGA   CHAR(3 BYTE)                     NOT NULL,
  CLASIFICA    VARCHAR2(5 BYTE)                 NOT NULL,
  MON_INICIAL  NUMBER(14)                       NOT NULL,
  MON_COMPRA   NUMBER(14)                       NOT NULL,
  MON_VENTA    NUMBER(14)                       NOT NULL,
  MON_DEVCLI   NUMBER(14)                       NOT NULL,
  MON_DEVPROV  NUMBER(14)                       NOT NULL,
  MON_OTRENT   NUMBER(14)                       NOT NULL,
  MON_ENTRANS  NUMBER(14)                       NOT NULL,
  MON_SATRANS  NUMBER(14)                       NOT NULL,
  MON_OTRSAL   NUMBER(14)                       NOT NULL,
  VENTAS       NUMBER(14)                       NOT NULL,
  DEVOLUCION   NUMBER(14)                       NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE INV_MENSUALTMP
 ADD CONSTRAINT INV_MENSUALTMP_PK
 PRIMARY KEY
 (COD_CIA, COD_BODEGA, CLASIFICA);

ALTER TABLE INV_MOVGRUPO
MODIFY(COD_MOVTO  NOT NULL);

ALTER TABLE INV_MOVGRUPO
MODIFY(COD_MOVTOGRP  NOT NULL);

-- Difference : Column Order (No action taken) 

ALTER TABLE INV_PARAMETRO
 ADD (FACSINMER  CHAR(1 BYTE) 
DEFAULT 'N'                   NOT NULL);

--
-- INV_PENMOVIMIENTO  (Table) 
--
CREATE TABLE INV_PENMOVIMIENTO
(
  COD_CIA         CHAR(3 BYTE)                  NOT NULL,
  SUCURSAL        CHAR(3 BYTE)                  NOT NULL,
  TIP_MOVTO       CHAR(1 BYTE)                  NOT NULL,
  COD_MOVTO       CHAR(2 BYTE)                  NOT NULL,
  NUM_DOCTO       VARCHAR2(10 BYTE)             NOT NULL,
  SECUENCIA       NUMBER(4)                     NOT NULL,
  COD_BODEGA      CHAR(3 BYTE)                  NOT NULL,
  COD_LOTE        VARCHAR2(15 BYTE),
  COD_ARTICULO    VARCHAR2(25 BYTE)             NOT NULL,
  MEDIDA          VARCHAR2(5 BYTE)              NOT NULL,
  DOC_REFEREN     VARCHAR2(10 BYTE),
  CAN_ARTICULO    NUMBER(14,4)                  NOT NULL,
  CAN_BONIFICADA  NUMBER(14,4)                  NOT NULL,
  CCOSTO          VARCHAR2(7 BYTE)
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE INV_PENMOVIMIENTO
 ADD CONSTRAINT INV_PENMOVIMIENTO_PK
 PRIMARY KEY
 (COD_CIA, SUCURSAL, TIP_MOVTO, COD_MOVTO, NUM_DOCTO, SECUENCIA);

ALTER TABLE INV_TOMAFIS
MODIFY(TIPO  DEFAULT '1');
-- Difference : Column Order (No action taken) 

ALTER TABLE INV_COMB_LCM
MODIFY(PORC_UTILIDAD  DEFAULT null);

--
-- INV_CONTEO  (Table) 
--
CREATE TABLE INV_CONTEO
(
  SECUENCIA     NUMBER(10)                      NOT NULL,
  COD_LOTE      VARCHAR2(15 BYTE)               NOT NULL,
  COD_ARTICULO  VARCHAR2(25 BYTE)               NOT NULL,
  LOCALIZA      VARCHAR2(8 BYTE)                NOT NULL,
  CONTEO        NUMBER(1)                       NOT NULL,
  CANTIDAD      NUMBER(14,4)                    NOT NULL
)
LOGGING 
NOCACHE
NOPARALLEL
NOMONITORING;

ALTER TABLE INV_CONTEO
 ADD CONSTRAINT INV_CONTEO_CANTIDAD_CK
 CHECK (cantidad >= 0);

ALTER TABLE INV_CONTEO
 ADD CONSTRAINT INV_CONTEO_CONTEO_CK
 CHECK (conteo >= 0);

ALTER TABLE INV_CONTEO
 ADD CONSTRAINT INV_CONTEO_PK
 PRIMARY KEY
 (SECUENCIA, COD_LOTE, COD_ARTICULO, LOCALIZA, CONTEO);

ALTER TABLE INV_ARTICULO
MODIFY(EMBALAJE VARCHAR2(30 BYTE));

-- Difference : Column Order (No action taken) 

-- Difference : Column Order (No action taken) 

ALTER TABLE INV_DETALLES
MODIFY(VALOR VARCHAR2(250 BYTE));
ALTER TABLE INV_LOTE_ARTIC_BODEGA
MODIFY(COS_TOTAL NUMBER(14,4));

ALTER TABLE INV_LOTE_ARTIC_BODEGA
MODIFY(COS_TOTAL  DEFAULT 0);

ALTER TABLE INV_MOVGRUPODET
MODIFY(LOTE  DEFAULT '001');

-
CREATE TABLE INV_TABLADESC
(
  COD_CIA       CHAR(3 BYTE)                    NOT NULL,
  COD_ARTICULO  VARCHAR2(25 BYTE)               NOT NULL,
  UND_VENDE     NUMBER(12)                      NOT NULL,
  PORCENTAJE    NUMBER(5,2)                     NOT NULL
)
LOGGING 
NOCACHE
PARALLEL ( DEGREE DEFAULT INSTANCES 1 )
NOMONITORING;

ALTER TABLE INV_TABLADESC
 ADD CONSTRAINT INV_TABLADESC_PORCENTAJE_CK
 CHECK (porcentaje >= 0);

ALTER TABLE INV_TABLADESC
 ADD CONSTRAINT INV_TABLADESC_PK
 PRIMARY KEY
 (COD_CIA, COD_ARTICULO, UND_VENDE);

ALTER TABLE INV_CLASE
 DROP PRIMARY KEY CASCADE;
ALTER TABLE INV_CLASE
 ADD CONSTRAINT INV_CLASE_PK
 PRIMARY KEY
 (COD_CLASE, COD_CIA);

ALTER TABLE INV_ENCMOVDESP
 DROP CONSTRAINT INV_ENCMOVDESP_ESTADO_CK;
ALTER TABLE INV_ENCMOVDESP
 ADD CONSTRAINT INV_ENCMOVDESP_ESTADO_CK
 CHECK (estado in ('P', 'D', 'A'));

ALTER TABLE INV_LINEA
 DROP PRIMARY KEY CASCADE;
ALTER TABLE INV_LINEA
 ADD CONSTRAINT INV_LINEA_PK
 PRIMARY KEY
 (COD_LINEA, COD_CIA);

ALTER TABLE INV_MARCA
 DROP PRIMARY KEY CASCADE;
ALTER TABLE INV_MARCA
 ADD CONSTRAINT INV_MARCA_PK
 PRIMARY KEY
 (COD_MARCA, COD_CIA);

ALTER TABLE INV_COMB_LCM
 DROP CONSTRAINT INVCLASE_COMBLCM_FK;
ALTER TABLE INV_COMB_LCM
 ADD CONSTRAINT INVCLASE_COMBLCM_FK 
 FOREIGN KEY (COD_CLASE, COD_CIA) 
 REFERENCES INV_CLASE (COD_CLASE,COD_CIA);

ALTER TABLE INV_COMB_LCM
 DROP CONSTRAINT INVLINEA_COMBLCM_FK;
ALTER TABLE INV_COMB_LCM
 ADD CONSTRAINT INVLINEA_COMBLCM_FK 
 FOREIGN KEY (COD_LINEA, COD_CIA) 
 REFERENCES INV_LINEA (COD_LINEA,COD_CIA);

ALTER TABLE INV_COMB_LCM
 DROP CONSTRAINT INVMARCA_COMBLCM_FK;
ALTER TABLE INV_COMB_LCM
 ADD CONSTRAINT INVMARCA_COMBLCM_FK 
 FOREIGN KEY (COD_MARCA, COD_CIA) 
 REFERENCES INV_MARCA (COD_MARCA,COD_CIA);

ALTER TABLE INV_DETTOMAFIS
 ADD CHECK (conteo1>=0);

ALTER TABLE INV_DETTOMAFIS
 ADD CHECK (conteo2>=0);

ALTER TABLE INV_DETTOMAFIS
 ADD CHECK (conteo3>=0);

ALTER TABLE INV_ENCABMOVIMIENTO
 ADD CONSTRAINT INV_ENCABMOVIMIENTO_ESTADO_CK
 CHECK (estado in ('P','C','D','A'));

ALTER TABLE INV_ARTIC_CODBAR
 DROP PRIMARY KEY CASCADE;
ALTER TABLE INV_ARTIC_CODBAR
 ADD CONSTRAINT INV_ARTIC_CODBAR_PK
 PRIMARY KEY
 (COD_CIA, COD_ARTICULO, COD_BARRAS);

ALTER TABLE INV_LOTE_ARTIC_BODEGA
 ADD CONSTRAINT INV_LOTE_ARTIC_BODEGA_COSTO_CK
 CHECK ((can_existe>0 and cos_total>=0) or (abs(cos_total)<0.5 and can_existe=0));

ALTER TABLE INV_CONTEO
 ADD CONSTRAINT INVTOMAFIS_CONTEO_FK 
 FOREIGN KEY (SECUENCIA) 
 REFERENCES INV_TOMAFIS (SECUENCIA);

ALTER TABLE INV_TABLADESC
 ADD CONSTRAINT INVARTICULO_TABLADESC_FK 
 FOREIGN KEY (COD_CIA, COD_ARTICULO) 
 REFERENCES INV_ARTICULO (COD_CIA,COD_ARTICULO);

ALTER TABLE INV_HIST_ENC_MOVTO
 ADD CONSTRAINT INVCONCEPMOVTO_HENCMOV_FK 
 FOREIGN KEY (COD_CIA, TIP_MOVTO, COD_MOVTO) 
 REFERENCES INV_CONCEPMOVTO (COD_CIA,TIP_MOVTO,COD_MOVTO);

ALTER TABLE INV_ACUM_PERIODO
 ADD CONSTRAINT INVARTICULO_ACUMMES_FK 
 FOREIGN KEY (COD_CIA, COD_ARTICULO) 
 REFERENCES INV_ARTICULO (COD_CIA,COD_ARTICULO);

** NO PUEDO PONER DOS CHECKS DE TABLA EN EL MODELO
** SE METIO EN INV_REFS
ALTER TABLE INV_LOTE_ARTIC_BODEGA
 ADD CONSTRAINT INV_LOTARTBOD_BALANCE_CK
 CHECK (CAN_EXISTE>=CAN_APARTADO);

_ 
ALTER TABLE INV_PARAMETRO DROP COLUMN IND_INVPEND;

**NO SE PUEDE
ALTER TABLE INV_TOMAFIS
MODIFY(USUARIO  DEFAULT USER);

ALTER TABLE INV_HIST_DET_MOVTO DROP COLUMN ESTADO;

ALTER TABLE INV_MOVGRUPODET
MODIFY (LOTE  NULL);

ALTER TABLE INV_DETTOMAFIS
 ADD CONSTRAINT INV_DETTOMAFIS_COSTO_CK CHECK (COSTO >= 0);