CREATE TABLE USR_PROT_FORNECEDOR
(
   CPASS VARCHAR2(5),
   NOPC VARCHAR2(1),
   CCODIGO VARCHAR2(6),
   CLOJA VARCHAR2(2),
   CNOME VARCHAR2(40),
   CPFPJ VARCHAR2(1),
   CNOMEFAN VARCHAR2(9),
   CTIPO VARCHAR2(1),
   CEND VARCHAR2(40),
   CUF VARCHAR2(2),
   CCODMUN VARCHAR2(7),
   CMUNIC VARCHAR2(25),
   CBAIRRO VARCHAR2(30),
   CCEP VARCHAR2(8),
   CDDD VARCHAR2(3),
   CFONE VARCHAR2(15),
   CPAIS VARCHAR2(3),
   CCONTATO VARCHAR2(15),
   CCPFCNPJ VARCHAR2(14),
   CINSCEST VARCHAR2(18),
   CINSCMUN VARCHAR2(18),
   CEMAIL VARCHAR2(30),
   CTIPPES VARCHAR2(2),
   COPTSN VARCHAR2(1),
   CEMPAUX VARCHAR2(2),
   CFILAUX VARCHAR2(20),
   CBLOQ VARCHAR2(1),
   CCONTRIB VARCHAR2(1),
   CNATUREZ VARCHAR2(10)
)
/

CREATE TABLE USR_PROT_CLIENTE
(
   CPASS VARCHAR2(5),
   NOPC VARCHAR2(1),
   CCODIGO VARCHAR2(6),
   CLOJA VARCHAR2(2),
   CNOME VARCHAR2(40),
   CPFPJ VARCHAR2(1),
   CNOMEFAN VARCHAR2(9),
   CTIPO VARCHAR2(1),
   CEND VARCHAR2(40),
   CUF VARCHAR2(2),
   CCODMUN VARCHAR2(7),
   CMUNIC VARCHAR2(25),
   CBAIRRO VARCHAR2(30),
   CCEP VARCHAR2(8),
   CDDD VARCHAR2(3),
   CFONE VARCHAR2(15),
   CPAIS VARCHAR2(3),
   CCONTATO VARCHAR2(15),
   CCPFCNPJ VARCHAR2(14),
   CINSCEST VARCHAR2(18),
   CINSCMUN VARCHAR2(18),
   CEMAIL VARCHAR2(30),
   CTIPPES VARCHAR2(2),
   COPTSIM VARCHAR2(1),
   COPTSN VARCHAR2(1),
   CEMPAUX VARCHAR2(2),
   CFILAUX VARCHAR2(20),
   CBLOQ VARCHAR2(1)
)
/

CREATE TABLE USR_PROT_NFENTRADA
(
CPASS       VARCHAR2(5),
NOPC        VARCHAR2(1),
CTIPO       VARCHAR2(1),
CFORMUL     VARCHAR2(1),
CDOC        VARCHAR2(9),
CSERIE      VARCHAR2(5),
DTEMISSAO   DATE,
CFORNECE    VARCHAR2(14),
CLOJA       VARCHAR2(2),
CCHVNFE     VARCHAR2(44),
CEMPAUX     VARCHAR2(2),
CFILAUX     VARCHAR2(20),
CUF         VARCHAR2(2),
CESPECIE    VARCHAR2(5),
CDFILIAL    VARCHAR2(4), -- NÃO ENVIA
NRLANCTONF  VARCHAR2(10)-- NÃO ENVIA  
)
/

CREATE TABLE USR_PROT_ITEMENTRADA
(
CCOD        VARCHAR2(15),  
CQUANT      FLOAT,
CVUNIT      FLOAT,
CTOTAL      FLOAT,
CLOCAL      VARCHAR2(2), 
CUM         VARCHAR2(5),
CDFILIAL    VARCHAR2(4), -- NÃO ENVIA
NRLANCTONF  VARCHAR2(10), -- NÃO ENVIA
NRSEQITPROD VARCHAR2(4) 
)
/

CREATE TABLE USR_PROT_NFSAIDA
(
   CPASS       VARCHAR2(5),
   NOPC        VARCHAR2(1),
   C5_NUM      VARCHAR2(9),
   C5_CLIENTE  VARCHAR2(14),
   C5_LOJACLI  VARCHAR2(2),
   C5_TIPOCLI  VARCHAR2(1),
   C5_EMISSAO  DATE, 
   C5_MENNOTA  VARCHAR2(250),
   C5_TIPLIB   VARCHAR2(1),
   CEMPAUX     VARCHAR2(2),
   CFILAUX     VARCHAR2(20),
   CDFILIAL    VARCHAR2(4), -- NÃO ENVIA
   NRLANCTONF  VARCHAR2(10), -- NÃO ENVIA
   C5_TIPO     VARCHAR2(1)
)
/

CREATE TABLE USR_PROT_ITEMSAIDA
(
   C6_PRODUTO  VARCHAR2(15), 
   C6_QTDVEN   FLOAT, 
   C6_QTDLIB   FLOAT, 
   C6_PRCVEN   FLOAT, 
   C6_VALOR    FLOAT, 
   C6_UM       VARCHAR2(5), 
   C6_LOCAL    VARCHAR2(2),
   C6_ENTREG   DATE,
   CDFILIAL    VARCHAR2(4), -- NÃO ENVIA
   NRLANCTONF  VARCHAR2(10) -- NÃO ENVIA
)
/

ALTER TABLE FORNECEDOR
ADD DTEXPXMLPROT DATE
/

ALTER TABLE CLIENTE
ADD DTEXPXMLPROT DATE
/

ALTER TABLE NOTAFISCAL
ADD DTEXPXMLPROT DATE
/

CREATE OR REPLACE TRIGGER ATU_ENVIO_NF_PROT
BEFORE UPDATE ON NOTAFISCAL
FOR EACH ROW
BEGIN
   IF (:OLD.DTEXPXMLPROT IS NOT NULL) THEN
      IF (:OLD.IDENTRSAIDOP = 'S') THEN
         IF (:OLD.IDSTATUSNFE <> :NEW.IDSTATUSNFE) THEN
            :NEW.DTEXPXMLPROT := NULL;
         END IF;
      END IF;
   END IF;   
END;
/

ALTER TABLE ITEMPRODUTO
ADD DTEXPXMLPROT DATE
/

CREATE OR REPLACE TRIGGER ATU_ENVIO_ITEMPROD_PROT
BEFORE UPDATE OF QTITEMPROD, VRUNITITEM ON ITEMPRODUTO
FOR EACH ROW
BEGIN
   IF (:OLD.DTEXPXMLPROT IS NOT NULL) THEN
      :NEW.DTEXPXMLPROT := NULL;
   END IF;   
END;
/

CREATE TABLE USR_PROT_PRODUTO
(CPASS     VARCHAR2(05) NOT NULL,
 NOPC      VARCHAR2(01) NOT NULL CONSTRAINT CKC_NOPC_USR_PROT_PRODUTO CHECK (NOPC IN ('3','4','5')),
 CXCODIGO  VARCHAR2(15) NOT NULL,
 CXDESCRI  VARCHAR2(40) NOT NULL,
 CXTIPO    VARCHAR2(02) NOT NULL CONSTRAINT CKC_CXTIPO_USR_PROT_PRODUTO CHECK (CXTIPO IN ('MP','PA','PI','MC')),
 CXUM      VARCHAR2(02) NOT NULL,
 CXLOCPAD  VARCHAR2(02) NOT NULL,
 CXGRUPO   VARCHAR2(04) NOT NULL,
 CDESCGRUP VARCHAR2(30),
 CXPOSIPI  VARCHAR2(10) NOT NULL,
 CBLOQUE   VARCHAR2(01) NOT NULL CONSTRAINT CKC_CBLOQUE_USR_PROT_PRODUTO CHECK (CBLOQUE IN ('S','N')),
 CULTPRC   VARCHAR2(14) NOT NULL,
 CULTCOM   VARCHAR2(30) NOT NULL,
 CXORIGEM  VARCHAR2(01) NOT NULL CONSTRAINT CKC_CXORIGEM_USR_PROT_PRODUTO CHECK (CXORIGEM IN ('0','1')),
 CCLASFIS  VARCHAR2(02),
 CGARANTIA VARCHAR2(01),
 CCEST     VARCHAR2(09) NOT NULL,
 CEMPAUX   VARCHAR2(02) NOT NULL,
 CFILAUX   VARCHAR2(02) NOT NULL)
/

 ALTER TABLE PRODUTO 
   ADD DTEXPXMLPROT DATE
/
CREATE TABLE USR_PROT_LANCTOESTOQ
(CPASS      VARCHAR2(05) NOT NULL, 
NOPC        VARCHAR2(01) NOT NULL CONSTRAINT CKC_NOPC_USR_PROT_LANCTOESTOQ CHECK (NOPC IN ('3')),
D3_TM       VARCHAR2(03), 
D3_EMISSAO  VARCHAR2(08), 
D3_DOC      VARCHAR2(09), 
CEMPAUX     VARCHAR2(02), 
CFILAUX     VARCHAR2(02),
CDFILIAL    VARCHAR2(04) NOT NULL,
NRLANCESTQ  VARCHAR2(10) NOT NULL)
/
CREATE TABLE USR_PROT_ITLANCTOEST
(D3_COD    VARCHAR2(15), 
D3_UM      VARCHAR2(02), 
D3_QUANT   FLOAT,
D3_LOCAL   VARCHAR2(02),
CDFILIAL   VARCHAR2(04) NOT NULL,
NRLANCESTQ VARCHAR2(10) NOT NULL)
/
ALTER TABLE ITLANCTOEST
ADD DTEXPXMLPROT DATE
/
CREATE OR REPLACE TRIGGER ATU_ENVIO_ITLANCTOEST_PROT
BEFORE UPDATE OF QTLANCTOEST ON ITLANCTOEST
FOR EACH ROW
BEGIN
   IF (:OLD.DTEXPXMLPROT IS NOT NULL) THEN
      :NEW.DTEXPXMLPROT := NULL;
   END IF;   
END;
/

CREATE TABLE USR_PROT_INTEGRACAO
(
   SEQLOG     INTEGER,
   CDLOG      VARCHAR2(20) NOT NULL,
   XMLLOG     CLOB,
   OBSLOG     VARCHAR2(200),
   DTINCLUSAO DATE DEFAULT SYSDATE,
   HORAENV DATE,
   HORAREC DATE
)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD CDDADOS VARCHAR2(50) 
/
ALTER TABLE USR_PROT_INTEGRACAO ADD CDFORNECED VARCHAR2(21)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD CDCLIENTE VARCHAR2(21)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD CDPRODUTO VARCHAR2(10)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD CDFILIAL VARCHAR2(4) 
/
ALTER TABLE USR_PROT_INTEGRACAO ADD NRLANCTONF VARCHAR2(10)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD NRSEQITPROD VARCHAR2(4)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD NRLANCESTQ VARCHAR2(10)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD NRSEQUITEM VARCHAR2(4)
/
ALTER TABLE USR_PROT_PRODUTO ADD CDPRODUTO VARCHAR2(10)
/
ALTER TABLE USR_PROT_INTEGRACAO ADD IDACAO VARCHAR2(10) --INCLUSAO//ALTERACAO//EXCLUSAO
/
ALTER TABLE USR_PROT_INTEGRACAO ADD IDEXIBE VARCHAR2(5) --CAMPO PARA EXIBIR OU NAO NA TELA DE MONITORAMENTO
/
ALTER TABLE USR_PROT_INTEGRACAO ADD IDTIPINTEGR VARCHAR2(10) --TIPO DE INTEGRACAO ENVIAR//RECEBER
/

CREATE OR REPLACE TRIGGER ATU_ENVIO_PRODUTO_PROT
BEFORE UPDATE ON PRODUTO
FOR EACH ROW
BEGIN
   IF (:OLD.DTEXPXMLPROT IS NOT NULL) THEN
      :NEW.DTEXPXMLPROT := NULL;
   END IF;
END;
/

ALTER TABLE USR_PROT_NFENTRADA ADD CCUSTO VARCHAR2(20) NULL
/

-- VERSAO --
BEGIN ATUVEROBJ('ATUALIZACAO_ESTRUTURA_BD','6.35.041'); END;
/
