ALTER TABLE FCT_NEGOCIACAOPROPOSTA ADD IDTPDESCONTO CHAR(1)
/ 

ALTER TABLE FCT_NEGOCIACAOPROPOSTA 
	ADD CONSTRAINT CKC_IDTPDESCONTO_NEGPROP CHECK (IDTPDESCONTO IN ('P', 'V'))
/

ALTER TABLE FCT_ITNEGOCIACAOPROPOSTA ADD IDTPDESCONTO CHAR(1)
/

ALTER TABLE FCT_ITNEGOCIACAOPROPOSTA
  ADD CONSTRAINT CKC_IDTPDESCONTO_ITNEGPROP CHECK (IDTPDESCONTO IN ('P', 'V'))
/

ALTER TABLE FCT_DESCPERIODONEGOPROP ADD IDTPDESCONTO CHAR(1)
/

ALTER TABLE FCT_DESCPERIODONEGOPROP
  ADD CONSTRAINT CKC_IDTPDESCONTO_DSNEGPROP CHECK (IDTPDESCONTO IN ('P', 'V'))
/

ALTER TABLE FCT_NEGOCIACAOCONTRATO ADD IDTPDESCONTO CHAR(1)
/

ALTER TABLE FCT_NEGOCIACAOCONTRATO  
	ADD CONSTRAINT CKC_IDTPDESCONTO_NEGCONT CHECK (IDTPDESCONTO IN ('P', 'V'))
/

ALTER TABLE FCT_ITNEGOCIACAOCONTRATO ADD IDTPDESCONTO CHAR(1)
/

ALTER TABLE FCT_ITNEGOCIACAOCONTRATO
  ADD CONSTRAINT CKC_IDTPDESCONTO_ITNEGCONT CHECK (IDTPDESCONTO IN ('P', 'V'))
/

ALTER TABLE FCT_DESCPERIODONEGOCONT ADD IDTPDESCONTO CHAR(1)
/

ALTER TABLE FCT_DESCPERIODONEGOCONT
  ADD CONSTRAINT CKC_IDTPDESCONTO_DSNEGCONT CHECK (IDTPDESCONTO IN ('P', 'V'))
/

BEGIN
    UPDATE FCT_NEGOCIACAOPROPOSTA
       SET IDTPDESCONTO = 'P'
     WHERE VRPERCDESCITEM > 0
       AND IDTPFATURA     = 'X';

    FOR C_NEGOPROP IN (
        SELECT NRNEGOCIACAOPROPOSTA
          FROM FCT_NEGOCIACAOPROPOSTA
         WHERE IDTPFATURA = 'X'
    ) LOOP

        UPDATE FCT_ITNEGOCIACAOPROPOSTA
           SET IDTPDESCONTO = 'P'
         WHERE NRNEGOCIACAOPROPOSTA = C_NEGOPROP.NRNEGOCIACAOPROPOSTA
           AND VRPERCDESCITEM       > 0;

        UPDATE FCT_DESCPERIODONEGOPROP
           SET IDTPDESCONTO = 'P'
         WHERE NRNEGOCIACAOPROPOSTA = C_NEGOPROP.NRNEGOCIACAOPROPOSTA;

    END LOOP; 

    UPDATE FCT_NEGOCIACAOCONTRATO
       SET IDTPDESCONTO = 'P'
     WHERE VRPERCDESCITEM > 0
       AND IDTPFATURA     = 'X';

    FOR C_NEGOCONT IN (
        SELECT NRNEGOCIACAOCONTRATO
          FROM FCT_NEGOCIACAOCONTRATO
         WHERE IDTPFATURA = 'X'
    ) LOOP

        UPDATE FCT_ITNEGOCIACAOCONTRATO
           SET IDTPDESCONTO = 'P'
         WHERE NRNEGOCIACAOCONTRATO = C_NEGOCONT.NRNEGOCIACAOCONTRATO
           AND VRPERCDESCITEM       > 0;

        UPDATE FCT_DESCPERIODONEGOCONT
           SET IDTPDESCONTO = 'P'
         WHERE NRNEGOCIACAOCONTRATO = C_NEGOCONT.NRNEGOCIACAOCONTRATO;

    END LOOP; 
END; 