SET TERM ^ ;

CREATE OR ALTER procedure SP_CFE_FORMA_PAGAMENTO (
    PDV_CFE_ID integer,
    ACAO integer = 1)
as
declare variable VALOR_LIQUIDO numeric(15,2);
declare variable PDV_DEVOLUCAO_TROCA_ID integer;
declare variable PDV_MOVIMENTO_DETALHE_ID integer;
declare variable PDV_TIPO integer;
declare variable COLABORADOR_ID integer;
declare variable NATUREZA integer;
declare variable CHEQUE_ID integer;
declare variable CHEQUE_ONLINE_ID integer;
declare variable OFFLINE_ID integer;
declare variable PDV_ID integer;
declare variable OLD_SALDO_DEVOLUCAO numeric(15,2);
declare variable NEW_SALDO_DEVOLUCAO numeric(15,2);
declare variable OLD_SALDO_DEPOSITO numeric(15,2);
declare variable NEW_SALDO_DEPOSITO numeric(15,2);
declare variable OLD_SALDO_CHEQUE numeric(15,2);
declare variable VALOR_CHEQUE numeric(15,2);
declare variable NEW_SALDO_CHEQUE numeric(15,2);
declare variable SALDO_JA_UTILIZADO numeric(15,2);
declare variable TEMP_UTILIZADO numeric(15,2);
declare variable OLD_PRE_PEDIDO_ID integer;
declare variable VOUCHER_ID integer;
declare variable INTENCAO_VENDA_ID integer;
declare variable TRANSACAO_PIX_ID integer;
declare variable ANTECIPACAO_AGRUPAMENTO_ID integer;
declare variable ADIANTAMENTO_CLIENTE_ID integer;
declare variable ANTECIPACAO_ID integer;
declare variable ANTECIPACAO_VALOR numeric(15,2);
declare variable ANTECIPACAO_SALDO numeric(15,2);
declare variable ADIANTAMENTO_ID integer;
declare variable ADIANTAMENTO_VALOR numeric(15,2);
declare variable ADIANTAMENTO_SALDO numeric(15,2);
declare variable VALOR_TEMP numeric(15,2);
declare variable VALOR_AUX numeric(15,2);
declare variable DEVOLUCAO_MAIOR_VENDA integer;
declare variable LANC_CLASS_ID integer;
declare variable CONTA_RECEBER_OPERACAO integer;
declare variable CONTA_RECEBER_BANCO integer;
declare variable ESTABELECIMENTO_ID integer;
declare variable DATA_EMISSAO date;
declare variable CLIENTE_ID integer;
declare variable PARCELAMENTO_ID integer;
declare variable NUMERO_CFE integer;
declare variable COUNT_PARCELA integer;
declare variable SERIE_CFE varchar(3);
BEGIN

    FOR SELECT
        CAST(ROUND(A.VALOR_LIQUIDO - A.TROCO, 2) AS NUMERIC(15,2)) AS VALOR_LIQUIDO,
        COALESCE(A.PDV_DEVOLUCAO_TROCA_ID, 0) AS PDV_DEVOLUCAO_TROCA_ID,
        COALESCE(A.PDV_MOVIMENTO_DETALHE_ID, 0) AS PDV_MOVIMENTO_DETALHE_ID,
        PF.PDV_TIPO,
        COALESCE(C.COLABORADOR_ID, 0) AS COLABORADOR_ID,
        COALESCE(C.NATUREZA, 1) AS NATUREZA,
        COALESCE(A.CHEQUE_ID, 0) AS CHEQUE_ID,
        COALESCE(C.PDV_ID, 0) AS PDV_ID,
        COALESCE(C.OFFLINE_ID, 0) AS OFFLINE_ID,
        COALESCE(A.VOUCHER_ID, 0) AS VOUCHER_ID,
        COALESCE(A.INTENCAO_VENDA_ID, 0) AS INTENCAO_VENDA_ID,
        COALESCE(A.TRANSACAO_PIX_ID, 0) AS TRANSACAO_PIX_ID,
        COALESCE(A.ANTECIPACAO_AGRUPAMENTO_ID, 0) AS ANTECIPACAO_AGRUPAMENTO_ID,
        COALESCE(A.ADIANTAMENTO_CLIENTE_ID, 0) AS ADIANTAMENTO_CLIENTE_ID,
        COALESCE(PF.CONTA_RECEBER_BAIXA_ID, 0) AS CONTA_RECEBER_BAIXA_ID,
        COALESCE(PF.BANCO_ID, 0) AS BANCO_ID,
        C.ESTABELECIMENTO_ID,
        C.DATA_EMISSAO,
        C.CLIENTE_ID,
        COALESCE((SELECT FIRST 1 V.CONTROLE FROM TBNFS_PARCELAMENTO V WHERE V.pdv_cfe_id = C.ID AND V.PAGAMENTO_FORMA = PF.CODIGO), 0) AS PARCELAMENTO_ID,
        C.NUMERO_CFE,
        COALESCE((SELECT FIRST 1 V.PARCELA FROM TBNFS_PARCELAMENTO V WHERE V.pdv_cfe_id = C.ID AND V.PAGAMENTO_FORMA = PF.CODIGO), 0) AS COUNT_PARCELA,
        C.SERIE
    FROM TBPDV_CFE_FORMA_PAGAMENTO A
    INNER JOIN TBPDV_CFE C ON C.ID = A.PDV_CFE_ID
    INNER JOIN TBPAGAMENTO_FORMA PF ON PF.CODIGO = A.PAGAMENTO_FORMA_ID
    WHERE A.PDV_CFE_ID = :PDV_CFE_ID
    AND C.SITUACAO IN (2,3)
    INTO :VALOR_LIQUIDO, :PDV_DEVOLUCAO_TROCA_ID, :PDV_MOVIMENTO_DETALHE_ID,
    :PDV_TIPO, :COLABORADOR_ID, :NATUREZA, :CHEQUE_ID, :PDV_ID, :OFFLINE_ID, :VOUCHER_ID,
    :INTENCAO_VENDA_ID, :TRANSACAO_PIX_ID, :ANTECIPACAO_AGRUPAMENTO_ID, :ADIANTAMENTO_CLIENTE_ID, :CONTA_RECEBER_OPERACAO,
    :CONTA_RECEBER_BANCO, :ESTABELECIMENTO_ID, :DATA_EMISSAO, :CLIENTE_ID, :PARCELAMENTO_ID, :NUMERO_CFE, :COUNT_PARCELA, :SERIE_CFE
    DO BEGIN
        IF(:ACAO = 1) THEN /* DESFAZER BAIXA DE SALDO PARA DEVOLU????ES */
        BEGIN
            IF(:PDV_DEVOLUCAO_TROCA_ID > 0) THEN
            BEGIN
    
                UPDATE TBPDV_DEVOLUCAO_TROCA SET VALOR_SALDO = VALOR_SALDO + :VALOR_LIQUIDO
                        WHERE ID = :PDV_DEVOLUCAO_TROCA_ID;
    
            END ELSE IF(:PDV_MOVIMENTO_DETALHE_ID > 0) THEN
            BEGIN
                
                UPDATE TBPDV_MOVIMENTO_DETALHE SET VALOR_SALDO = VALOR_SALDO + :VALOR_LIQUIDO
                        WHERE ID = :PDV_MOVIMENTO_DETALHE_ID;
    
            END ELSE IF(:VOUCHER_ID > 0) THEN
            BEGIN
                UPDATE TBVOUCHER SET SALDO = SALDO + :VALOR_LIQUIDO
                        WHERE ID = :VOUCHER_ID;
            END ELSE IF(:TRANSACAO_PIX_ID > 0) THEN
            BEGIN
                 UPDATE TBTRANSACAO_PIX SET STATUS = 0
                        WHERE ID = :TRANSACAO_PIX_ID;
            END ELSE IF(:INTENCAO_VENDA_ID > 0) THEN
            BEGIN
                 UPDATE TBTRANSACAO_TEF SET STATUS = 0
                        WHERE INTENCAO_VENDA_ID = :INTENCAO_VENDA_ID;
            END ELSE IF(:ANTECIPACAO_AGRUPAMENTO_ID > 0) THEN
            BEGIN
                FOR SELECT
                    ANT.PDV_MOVIMENTO_ANTECIPACAO_ID,
                    ANT.SALDO
                FROM TBPDV_CFE_ANTECIPACAO_SALDO ANT
                WHERE ANT.PDV_CFE_ID = :PDV_CFE_ID
                INTO :ANTECIPACAO_ID, :ANTECIPACAO_SALDO
                DO BEGIN
                    UPDATE TBPDV_MOVIMENTO_ANTECIPACAO T SET T.SALDO = T.SALDO + :ANTECIPACAO_SALDO WHERE T.ID = :ANTECIPACAO_ID;
                END

                DELETE FROM TBPDV_CFE_ANTECIPACAO_SALDO T WHERE T.PDV_CFE_ID = :PDV_CFE_ID;
            END ELSE IF(:ADIANTAMENTO_CLIENTE_ID > 0) THEN
            BEGIN
                FOR SELECT
                    ANT.CAIXABANCO_LANC_CLASS_SALDO_ID,
                    ANT.SALDO
                FROM TBPDV_CFE_ADIANTAMENTO_CLIENTE ANT
                WHERE ANT.PDV_CFE_ID = :PDV_CFE_ID
                INTO :ADIANTAMENTO_ID, :ADIANTAMENTO_SALDO
                DO BEGIN
                    UPDATE TBCAIXABANCO_LANC_CLASS_SALDO T SET T.SALDO = T.SALDO + :ADIANTAMENTO_SALDO WHERE T.ID = :ADIANTAMENTO_ID;
                END

                DELETE FROM TBPDV_CFE_ADIANTAMENTO_CLIENTE T WHERE T.PDV_CFE_ID = :PDV_CFE_ID;
            END

            /* IF(:PDV_TIPO = 6) THEN
            BEGIN
                UPDATE TBCOLABORADOR_CREDITO SET SALDO = SALDO + :VALOR_LIQUIDO
                    WHERE COLABORADOR_ID = :COLABORADOR_ID;
            END */

        END ELSE
        IF(:ACAO = 2) THEN /* REALIZAR BAIXA DE DEVOLU????ES */
        BEGIN
            
            IF(:PDV_DEVOLUCAO_TROCA_ID > 0) THEN
            BEGIN
                SELECT
                T.VALOR_SALDO,
                T.pre_pedido_id
                FROM TBPDV_DEVOLUCAO_TROCA T
                WHERE T.ID = :PDV_DEVOLUCAO_TROCA_ID
                INTO :OLD_SALDO_DEVOLUCAO, :OLD_PRE_PEDIDO_ID;
        
                IF(COALESCE(:OLD_SALDO_DEVOLUCAO, 0) > 0) THEN
                BEGIN
                    :NEW_SALDO_DEVOLUCAO = ROUND(:OLD_SALDO_DEVOLUCAO - :VALOR_LIQUIDO, 2);
        
                    IF(:NEW_SALDO_DEVOLUCAO >= 0) THEN
                    BEGIN
                        
                        :DEVOLUCAO_MAIOR_VENDA  = CAST(FN_PARAMETRO('SISTEMA.DEVOLUCAO_MAIOR_VENDA') AS INTEGER);

                        IF(:DEVOLUCAO_MAIOR_VENDA = 1) THEN
                        BEGIN
                            UPDATE TBPDV_DEVOLUCAO_TROCA SET VALOR_SALDO = 0, VALOR_ENCERRADO = :NEW_SALDO_DEVOLUCAO
                            WHERE ID = :PDV_DEVOLUCAO_TROCA_ID;
                        END ELSE
                        BEGIN
                            UPDATE TBPDV_DEVOLUCAO_TROCA SET VALOR_SALDO = :NEW_SALDO_DEVOLUCAO
                            WHERE ID = :PDV_DEVOLUCAO_TROCA_ID;
                        END

                    END ELSE
                    BEGIN
                        UPDATE TBPDV_DEVOLUCAO_TROCA SET VALOR_SALDO = 0
                            WHERE ID = :PDV_DEVOLUCAO_TROCA_ID;
                    END
                END

                IF(COALESCE(:OLD_PRE_PEDIDO_ID,0) = 0)THEN
                BEGIN
                      UPDATE TBPDV_DEVOLUCAO_TROCA TROCA
                        SET TROCA.PRE_PEDIDO_ID = COALESCE((SELECT FIRST 1 ITEM.conferencia_id FROM TBPDV_CFE_ITEM ITEM WHERE ITEM.pdv_cfe_id = :PDV_CFE_ID AND ITEM.conferencia_id > 0),0)
                         WHERE ID = :PDV_DEVOLUCAO_TROCA_ID;
                END

            END ELSE
            IF(:PDV_MOVIMENTO_DETALHE_ID > 0) THEN
            BEGIN
                SELECT
                    T.VALOR_SALDO
                    FROM TBPDV_MOVIMENTO_DETALHE T
                    WHERE T.ID = :PDV_MOVIMENTO_DETALHE_ID
                    INTO :OLD_SALDO_DEPOSITO;
            
                    IF(COALESCE(:OLD_SALDO_DEPOSITO, 0) > 0) THEN
                    BEGIN
                        :NEW_SALDO_DEPOSITO = ROUND(:OLD_SALDO_DEPOSITO - :VALOR_LIQUIDO, 2);
            
                        IF(:NEW_SALDO_DEPOSITO >= 0) THEN
                        BEGIN
            
                            UPDATE TBPDV_MOVIMENTO_DETALHE SET VALOR_SALDO = :NEW_SALDO_DEPOSITO
                                WHERE ID = :PDV_MOVIMENTO_DETALHE_ID;
            
            
                        END
                    END

              END ELSE
              IF(:CHEQUE_ID > 0) THEN
              BEGIN
                :SALDO_JA_UTILIZADO = :VALOR_LIQUIDO;

                FOR SELECT
                    CI.ID,
                    CI.VALOR,
                    CAST((CI.VALOR - COALESCE((SELECT FIRST 1 SUM(VV.VALOR) FROM TBCHEQUE_ITEM VV WHERE VV.CHEQUE_ID = K.ID AND VV.ID <> CI.ID), 0)) AS NUMERIC(15,2)) AS SALDO
                FROM TBCHEQUE K, TBCHEQUE_ITEM CI
                WHERE
                K.ID = CI.CHEQUE_ID
                AND K.CHEQUE_PDV_ID = :CHEQUE_ID
                AND K.PDV_ID = :PDV_ID
                AND K.SALDO > 0
                AND IIF(:OFFLINE_ID = 1, K.FLAG_ONLINE = 0, K.FLAG_ONLINE = 1)
                AND CI.PDV_CFE_ID = :PDV_CFE_ID
                INTO :CHEQUE_ONLINE_ID, :VALOR_CHEQUE, :OLD_SALDO_CHEQUE
                DO BEGIN
                    
                    IF(:OLD_SALDO_CHEQUE = 0) THEN
                    BEGIN
                        :OLD_SALDO_CHEQUE = :VALOR_CHEQUE;
                    END

                    IF(:OLD_SALDO_CHEQUE <= :SALDO_JA_UTILIZADO) THEN
                    BEGIN
                        :NEW_SALDO_CHEQUE   = :OLD_SALDO_CHEQUE;
                        :TEMP_UTILIZADO     = ROUND(:VALOR_LIQUIDO - :NEW_SALDO_CHEQUE, 2);
                    END ELSE
                    BEGIN
                        :TEMP_UTILIZADO   = 0;
                        :NEW_SALDO_CHEQUE = :SALDO_JA_UTILIZADO;
                    END

                    IF(:SALDO_JA_UTILIZADO > 0) THEN
                    BEGIN
                         UPDATE TBCHEQUE_ITEM SET VALOR = :NEW_SALDO_CHEQUE
                            WHERE ID = :CHEQUE_ONLINE_ID;

                         IF(:OFFLINE_ID = 0) THEN
                         BEGIN
                             UPDATE TBCHEQUE_PDV SET SALDO = (SALDO - :NEW_SALDO_CHEQUE)
                                WHERE ID = :CHEQUE_ID;
                         END

                    END ELSE
                    BEGIN
                        UPDATE TBCHEQUE_ITEM SET VALOR = 0
                            WHERE ID = :CHEQUE_ONLINE_ID;
                    END

                    :SALDO_JA_UTILIZADO = :TEMP_UTILIZADO;

                END

              END ELSE
              IF(:VOUCHER_ID > 0) THEN
              BEGIN
                    UPDATE TBVOUCHER SET SALDO = SALDO - :VALOR_LIQUIDO
                    WHERE ID = :VOUCHER_ID;

              END ELSE
              IF(:TRANSACAO_PIX_ID > 0) THEN
              BEGIN
                    UPDATE TBTRANSACAO_PIX SET STATUS = 1
                        WHERE ID = :TRANSACAO_PIX_ID;
              END ELSE
              IF(:INTENCAO_VENDA_ID > 0) THEN
              BEGIN
                    UPDATE TBTRANSACAO_TEF SET STATUS = 1
                        WHERE INTENCAO_VENDA_ID = :INTENCAO_VENDA_ID;
              END ELSE
              IF(:ANTECIPACAO_AGRUPAMENTO_ID > 0) THEN
              BEGIN
                    :VALOR_TEMP = :VALOR_LIQUIDO;

                    FOR SELECT
                        ANT.ID,
                        ANT.VALOR,
                        ANT.SALDO
                    FROM TBPDV_MOVIMENTO_ANTECIPACAO ANT
                    WHERE ANT.CLIENTE_ID = :ANTECIPACAO_AGRUPAMENTO_ID
                    AND ANT.SALDO > 0
                    ORDER BY ANT.DATAHORA ASC
                    INTO :ANTECIPACAO_ID, :ANTECIPACAO_VALOR, :ANTECIPACAO_SALDO
                    DO BEGIN

                        IF(:VALOR_TEMP >= 0) THEN
                        BEGIN

                            :VALOR_AUX = :VALOR_TEMP - :ANTECIPACAO_SALDO;
    
                            IF(:VALOR_AUX >= 0) THEN
                            BEGIN

                                INSERT INTO TBPDV_CFE_ANTECIPACAO_SALDO (PDV_CFE_ID, PDV_MOVIMENTO_ANTECIPACAO_ID, SALDO)
                                VALUES (:PDV_CFE_ID, :ANTECIPACAO_ID, :ANTECIPACAO_SALDO);
                                
                                UPDATE TBPDV_MOVIMENTO_ANTECIPACAO T SET T.SALDO = T.SALDO - :ANTECIPACAO_SALDO WHERE T.ID = :ANTECIPACAO_ID;
                            END ELSE
                            BEGIN
                                
                                INSERT INTO TBPDV_CFE_ANTECIPACAO_SALDO (PDV_CFE_ID, PDV_MOVIMENTO_ANTECIPACAO_ID, SALDO)
                                VALUES (:PDV_CFE_ID, :ANTECIPACAO_ID, :VALOR_TEMP);

                                UPDATE TBPDV_MOVIMENTO_ANTECIPACAO T SET T.SALDO = T.SALDO - :VALOR_TEMP WHERE T.ID = :ANTECIPACAO_ID;
                            END

                            :VALOR_TEMP = :VALOR_AUX;

                        END



                    END
                      


              END ELSE
              IF(:ADIANTAMENTO_CLIENTE_ID > 0) THEN
              BEGIN
                    :VALOR_TEMP = :VALOR_LIQUIDO;

                    FOR SELECT
                        ANT.ID,
                        ANT.LANC_CLASS_ID,
                        ANT.VALOR,
                        ANT.SALDO
                    FROM TBCAIXABANCO_LANC_CLASS_SALDO ANT
                    WHERE ANT.EMPRESA_ID = :ADIANTAMENTO_CLIENTE_ID
                    AND ANT.SALDO > 0
                    ORDER BY ANT.DATAHORA ASC
                    INTO :ADIANTAMENTO_ID, :LANC_CLASS_ID, :ADIANTAMENTO_VALOR, :ADIANTAMENTO_SALDO
                    DO BEGIN

                        IF(:VALOR_TEMP >= 0) THEN
                        BEGIN

                            :VALOR_AUX = :VALOR_TEMP - :ADIANTAMENTO_SALDO;
    
                            IF(:VALOR_AUX >= 0) THEN
                            BEGIN

                                INSERT INTO TBPDV_CFE_ADIANTAMENTO_CLIENTE (PDV_CFE_ID, CAIXABANCO_LANC_CLASS_SALDO_ID, SALDO)
                                VALUES (:PDV_CFE_ID, :ADIANTAMENTO_ID, :ADIANTAMENTO_SALDO);

                                INSERT INTO TBCAIXABANCO_LANCAMENTO_REG (CONTROLE, ESTABELECIMENTO_CODIGO, CAIXABANCO_CONTROLE,
                                    DATA, EMPRESA_CODIGO, NFE_PARCELAMENTO_CONTROLE, NFS_PARCELAMENTO_CONTROLE, CAIXABANCO_CODIGO,
                                    OPERACAO_CODIGO, DOCUMENTO_NUMERO, PARCELA, VALOR, VALOR_DESCONTO, VALOR_JUROS, VALOR_MULTA,
                                    VALOR_DESPESA_DIVERSA, VALOR_DESPESA_COBRANCA, VALOR_DESPESA_CARTORIO, REGISTRO_MESTRE,
                                    OCORRENCIA_CONTROLE, VALOR_SALDO, DATA_REGISTRO, TIPO, SERIE, CODORIGEM, CONTA_DEBITO,
                                    CONTA_CREDITO, NFE_CONTROLE, NFS_CONTROLE, VALOR_TOTAL, ARQUIVO, CCUSTO, LANCAMENTO_CLASS_ID)
                                VALUES (GEN_ID(GTBCAIXABANCO_REGISTRO, 1), :ESTABELECIMENTO_ID, 0, :DATA_EMISSAO,
                                    :CLIENTE_ID, 0, :PARCELAMENTO_ID, :CONTA_RECEBER_BANCO,
                                    :CONTA_RECEBER_OPERACAO, :NUMERO_CFE, :COUNT_PARCELA, :ADIANTAMENTO_SALDO, 0, 0, 0, 0, 0, 0,
                                    '1', NULL, :ADIANTAMENTO_SALDO, CURRENT_TIMESTAMP, 'C', :SERIE_CFE,
                                    'CF1', '', '', 0, 0, :ADIANTAMENTO_SALDO, NULL, '', :ADIANTAMENTO_ID);
                                
                                UPDATE TBCAIXABANCO_LANC_CLASS_SALDO T SET T.SALDO = T.SALDO - :ADIANTAMENTO_SALDO WHERE T.ID = :ADIANTAMENTO_ID;


                            END ELSE
                            BEGIN
                                
                                INSERT INTO TBPDV_CFE_ADIANTAMENTO_CLIENTE (PDV_CFE_ID, CAIXABANCO_LANC_CLASS_SALDO_ID, SALDO)
                                VALUES (:PDV_CFE_ID, :ADIANTAMENTO_ID, :VALOR_TEMP);

                                INSERT INTO TBCAIXABANCO_LANCAMENTO_REG (CONTROLE, ESTABELECIMENTO_CODIGO, CAIXABANCO_CONTROLE,
                                    DATA, EMPRESA_CODIGO, NFE_PARCELAMENTO_CONTROLE, NFS_PARCELAMENTO_CONTROLE, CAIXABANCO_CODIGO,
                                    OPERACAO_CODIGO, DOCUMENTO_NUMERO, PARCELA, VALOR, VALOR_DESCONTO, VALOR_JUROS, VALOR_MULTA,
                                    VALOR_DESPESA_DIVERSA, VALOR_DESPESA_COBRANCA, VALOR_DESPESA_CARTORIO, REGISTRO_MESTRE,
                                    OCORRENCIA_CONTROLE, VALOR_SALDO, DATA_REGISTRO, TIPO, SERIE, CODORIGEM, CONTA_DEBITO,
                                    CONTA_CREDITO, NFE_CONTROLE, NFS_CONTROLE, VALOR_TOTAL, ARQUIVO, CCUSTO, LANCAMENTO_CLASS_ID)
                                VALUES (GEN_ID(GTBCAIXABANCO_REGISTRO, 1), :ESTABELECIMENTO_ID, 0, :DATA_EMISSAO,
                                    :CLIENTE_ID, 0, :PARCELAMENTO_ID, :CONTA_RECEBER_BANCO,
                                    :CONTA_RECEBER_OPERACAO, :NUMERO_CFE, :COUNT_PARCELA, :VALOR_TEMP, 0, 0, 0, 0, 0, 0,
                                    '1', NULL, :VALOR_TEMP, CURRENT_TIMESTAMP, 'C', :SERIE_CFE,
                                    'CF1', '', '', 0, 0, :VALOR_TEMP, NULL, '', :ADIANTAMENTO_ID);

                                UPDATE TBCAIXABANCO_LANC_CLASS_SALDO T SET T.SALDO = T.SALDO - :VALOR_TEMP WHERE T.ID = :ADIANTAMENTO_ID;
                            END

                            :VALOR_TEMP = :VALOR_AUX;

                        END



                    END
                      


              END

              IF(:PDV_TIPO = 6) THEN
              BEGIN
                UPDATE TBCOLABORADOR_CREDITO SET SALDO = SALDO - :VALOR_LIQUIDO
                    WHERE COLABORADOR_ID = :COLABORADOR_ID;

              END
        END



    END


END
^

SET TERM ; ^

