ALTER TABLE TBNFE_PARCELAMENTO
    ADD RECOLHIMENTO_ID INTEGER DEFAULT 0;

UPDATE TBNFE_PARCELAMENTO T SET T.RECOLHIMENTO_ID = 0;
	
CREATE INDEX ITBNFE_PARCELAMENTO_15
ON TBNFE_PARCELAMENTO (RECOLHIMENTO_ID);


CREATE OR ALTER procedure SPI_NFE_PARCELAMENTO (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    DATA_VENCIMENTO date,
    PARCELA integer,
    VALOR numeric(10,5),
    VALOR_SALDO numeric(10,5),
    CONTA_PAGAR_OPERACAO integer,
    CONTROLE integer,
    ACEITE varchar(1),
    VALOR_DESCONTO numeric(10,5),
    SERIE varchar(3),
    PAGAMENTO_FORMA integer,
    CLASSIFICACAO_CONTABIL varchar(6),
    CCUSTO varchar(8),
    OBSERVACAO varchar(20),
    REMESSA integer,
    GC_WEB smallint,
    NF_SITUACAO integer,
    NF_NATUREZA integer,
    PARCELA_NF integer = 1,
    RECOLHIMENTO_ID INTEGER = 0)
as
BEGIN
INSERT INTO TBNFE_PARCELAMENTO(
NFE_CONTROLE,ESTABELECIMENTO_CODIGO,EMPRESA_CODIGO,NUMERO_NOTAFISCAL,
DATA_ENTRADA,DATA_VENCIMENTO,PARCELA,VALOR,VALOR_SALDO,CONTA_PAGAR_OPERACAO,
CONTROLE,ACEITE,VALOR_DESCONTO,SERIE,PAGAMENTO_FORMA, CLASSIFICACAO_CONTABIL, CCUSTO, OBSERVACAO, REMESSA, GC_WEB, NF_SITUACAO, NF_NATUREZA, PARCELA_NF, RECOLHIMENTO_ID) VALUES (
:NFE_CONTROLE,:ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,
:DATA_ENTRADA,:DATA_VENCIMENTO,:PARCELA,:VALOR,:VALOR_SALDO,
:CONTA_PAGAR_OPERACAO,:CONTROLE,:ACEITE,:VALOR_DESCONTO,:SERIE,:PAGAMENTO_FORMA, :CLASSIFICACAO_CONTABIL, :CCUSTO, :OBSERVACAO, :REMESSA, :GC_WEB, :NF_SITUACAO, :NF_NATUREZA, :PARCELA_NF,
:RECOLHIMENTO_ID);
END;


CREATE OR ALTER procedure SPU_NFE_PARCELAMENTO (
    ESTABELECIMENTO_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    SERIE varchar(3),
    EMPRESA_CODIGO integer,
    NFE_CONTROLE integer,
    PARCELA integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    CONTROLE integer,
    DATA_VENCIMENTO date,
    VALOR numeric(15,2),
    CONTA_PAGAR_OPERACAO integer,
    CLASSIFICACAO_CONTABIL varchar(6),
    CLASSIFICACAO varchar(10),
    OBSERVACAO varchar(20),
    PAGAMENTO_FORMA integer,
    REMESSA integer,
    GC_WEB integer,
    NF_SITUACAO integer,
    NF_NATUREZA integer,
    RECOLHIMENTO_ID INTEGER = 0)
as
BEGIN
    
    UPDATE TBNFE_PARCELAMENTO SET 
        ESTABELECIMENTO_CODIGO           = :ESTABELECIMENTO_CODIGO,
        NUMERO_NOTAFISCAL                = :NUMERO_NOTAFISCAL,
        SERIE                              = :SERIE,
        EMPRESA_CODIGO                   = :EMPRESA_CODIGO,
        DATA_ENTRADA                     = :DATA_ENTRADA,
        NF_SITUACAO                      = :NF_SITUACAO,
        NF_NATUREZA                      = :NF_NATUREZA,
        RECOLHIMENTO_ID                  = :RECOLHIMENTO_ID
    WHERE (CONTROLE                      = :CONTROLE
    AND NFE_CONTROLE                     = :NFE_CONTROLE);

END;


ALTER TABLE TBRECOLHIMENTO
    ADD TIPO INTEGER DEFAULT 0;
	
COMMENT ON COLUMN TBRECOLHIMENTO.TIPO IS
'1 - CSRF;
2 - IRRF;
3 - INSS;
4 - ISSQN;';