SET DEFINE OFF;

create or replace PROCEDURE ADD_ORCAMENTO_PAG_EXCLUI_TROCA (
    p_calculoImpostosPendente      IN NUMBER,
    p_cab_orcamento                IN NUMBER,
    p_cab_valorDescontoGeral       IN NUMBER,
    p_cab_valorOutrasDespesasGer   IN NUMBER,
    p_cab_valorDescontoPagamento   IN NUMBER,
    p_cab_valorOutrasDespPag       IN NUMBER,
    p_cab_valorJurosPagamento      IN NUMBER,
    p_item_sequencia               IN NUMBER,
    p_item_valorDescontoGeral      IN NUMBER,
    p_item_valorDescontoPagamento  IN NUMBER,
    p_item_valorOutrasDespPag      IN NUMBER,
    p_item_valorJurosPagamento     IN NUMBER,
    /* Retornos */
    r_calculoImpostosPendente      OUT NUMBER,
    r_cab_valorDescontoGeral       OUT NUMBER,
    r_cab_condicaoPagamento        OUT NUMBER,
    r_cab_numeroParcelas           OUT NUMBER,
    r_cab_somaPrazoParcelas        OUT NUMBER,
    r_cab_valorXPrazoParcelas      OUT NUMBER,
    r_cab_prazoMedio               OUT NUMBER,
    r_cab_prazoMedioPonderado      OUT NUMBER,
    r_cab_valorEntradaMinima       OUT NUMBER,
    r_cab_valorAVistaEntrada       OUT NUMBER,
    r_cab_valorPagamentoBruto      OUT NUMBER,
    r_cab_valorDescontoPagamento   OUT NUMBER,
    r_cab_valorOutrasDespPag       OUT NUMBER,
    r_cab_valorJurosPagamento      OUT NUMBER,
    r_cab_valorPagamentoLiquido    OUT NUMBER,
    r_cab_valorTroco               OUT NUMBER,
    r_item_valorDescontoGeral      OUT NUMBER,
    r_item_valorDescontoPagamento  OUT NUMBER,
    r_item_valorOutrasDespPag      OUT NUMBER,
    r_item_valorJurosPagamento     OUT NUMBER)    
IS
    v_promocaoExiste NUMBER;
    CURSOR c_pag IS
      SELECT pag.*
      FROM MOORCAMENTOXPAGAMENTOS pag
      WHERE pag.orcamento = p_cab_orcamento;
BEGIN
  r_calculoImpostosPendente     := p_calculoImpostosPendente;
  r_cab_valorDescontoGeral      := p_cab_valorDescontoGeral;
  r_cab_valorDescontoPagamento  := p_cab_valorDescontoPagamento;
  r_cab_valorOutrasDespPag      := p_cab_valorOutrasDespPag;
  r_cab_valorJurosPagamento     := p_cab_valorJurosPagamento;
  r_item_valorDescontoGeral     := p_item_valorDescontoGeral;
  r_item_valorDescontoPagamento := p_item_valorDescontoPagamento;
  r_item_valorOutrasDespPag     := p_item_valorOutrasDespPag;
  r_item_valorJurosPagamento    := p_item_valorJurosPagamento;
  SELECT
    CASE
      WHEN EXISTS (
        SELECT 1
        FROM MOORCAMENTOXPROMOCOES
        WHERE orcamento = p_cab_orcamento)
      THEN 1
      ELSE 0
    END
  INTO v_promocaoExiste
  FROM DUAL;
  IF (p_cab_valorDescontoGeral <> 0
    OR p_cab_valorOutrasDespesasGer <> 0
    OR r_cab_valorDescontoPagamento <> 0
    OR r_cab_valorOutrasDespPag <> 0
    OR r_cab_valorJurosPagamento <> 0
    OR r_item_valorDescontoPagamento <> 0
    OR r_item_valorOutrasDespPag <> 0
    OR r_item_valorJurosPagamento <> 0
    OR v_promocaoExiste = 1) THEN
    IF v_promocaoExiste = 1 THEN
      r_item_valorDescontoGeral     := 0;
    END IF;
    r_calculoImpostosPendente     := 1;
    r_item_valorDescontoPagamento := 0;
    r_item_valorOutrasDespPag     := 0;
    r_item_valorJurosPagamento    := 0;
    /* Remove dados Pagamentos Itens */
    UPDATE MOORCAMENTOXITENS
    SET
      valorDescontoGeral           = CASE WHEN v_promocaoExiste = 1 THEN 0 ELSE valorDescontoGeral END,
      valorOutrasDespesasGeral     = CASE WHEN v_promocaoExiste = 1 THEN 0 ELSE valorOutrasDespesasGeral END,
      valorDescontoPagamento       = 0,
      valorOutrasDespesasPagamento = 0,
      valorJurosPagamento          = 0
    WHERE orcamento = p_cab_orcamento
    AND sequencia <> p_item_sequencia;
  END IF;
  IF v_promocaoExiste = 1 THEN
    r_cab_valorDescontoGeral     := 0;
  END IF;
  r_cab_condicaoPagamento      := 0;
  r_cab_numeroParcelas         := 0;
  r_cab_somaPrazoParcelas      := 0;
  r_cab_valorXPrazoParcelas    := 0;
  r_cab_prazoMedio             := 0;
  r_cab_prazoMedioPonderado    := 0;
  r_cab_valorEntradaMinima     := 0;
  r_cab_valorAVistaEntrada     := 0;
  r_cab_valorPagamentoBruto    := 0;
  r_cab_valorDescontoPagamento := 0;
  r_cab_valorOutrasDespPag     := 0;
  r_cab_valorJurosPagamento    := 0;
  r_cab_valorPagamentoLiquido  := 0;
  r_cab_valorTroco             := 0;
  FOR pag IN c_pag LOOP
    IF (pag.pagamentoTroco = 'P' 
      AND (pag.valorDescontoPagamento <> 0 
        OR pag.valorOutrasDespesasPagamento <> 0 
        OR pag.valorJurosPagamento <> 0)) THEN
      r_calculoImpostosPendente := 1;
    END IF;
    ADD_ORCAMENTO_PAG_EXCLUI_CORR (pag.idPagamentoOrcamento);
  END LOOP;
  DELETE MOORCAMENTOXPAGAMENTOS WHERE orcamento = p_cab_orcamento;
  DELETE MOORCAMENTOXPROMOCOES WHERE orcamento = p_cab_orcamento;  
END ADD_ORCAMENTO_PAG_EXCLUI_TROCA;

/

create or replace PROCEDURE ADD_ORCAMENTO_ITEM_INSERE (
    p_uniqueMachineID              IN VARCHAR2,
    p_usuarioLogado                IN NUMBER,
    p_perfilUsuarioLogado          IN NUMBER,
    p_estabelecimentoAtivo         IN NUMBER,
    p_person_190_modeloFrete       IN CHAR,
    p_config_64_casasDecSaidas     IN CHAR,
    p_config_65_casasDecEntrada    IN CHAR,
    p_config_209_filtrarGrupoEcon  IN NUMBER,
    p_config_330_redIcmsBasePisCof IN NUMBER,
    p_config_362_calcCustoPorGrade IN NUMBER,
    p_regMarg_tipoPreco            IN CHAR,
    p_regMarg_tabelaPreco          IN VARCHAR2,
    p_regMarg_fatorMultiplicador   IN NUMBER,
    p_regMarg_tipoPrecoB           IN CHAR,
    p_regMarg_tabelaPrecoB         IN VARCHAR2,
    p_regMarg_fatorMultiplicadorB  IN NUMBER,
    p_regMarg_reduzirImpostos      IN NUMBER,
    p_regMarg_reduzirTarifaCartao  IN NUMBER,
    p_regMarg_taxaCapitacaoCustoFi IN NUMBER,
    p_regMarg_exibPercMargemCab    IN NUMBER,
    p_regMarg_exibImagemMargemCab  IN NUMBER,
    p_regMarg_regraImagemCab       IN NUMBER,
    p_regMarg_exibPercMargemItem   IN NUMBER,
    p_regMarg_exibImagemMargemItem IN NUMBER,
    p_regMarg_regraImagemItem      IN NUMBER,
    p_regMarg_exibDetMargemItem    IN NUMBER,
    p_obrigaFinalizar              IN NUMBER,
    p_calculoImpostosPendente      IN NUMBER,
    p_manterFinanceiro             IN NUMBER,
    p_nomeTempComposicao           IN VARCHAR2,
    p_temp_sequencia               IN NUMBER,
    p_cab_orcamento                IN NUMBER,
    p_cab_valorTarifaCartao        IN NUMBER,
    p_cab_valorMargem              IN NUMBER,
    p_item_vendedor                IN NUMBER,
    p_item_gradeProduto            IN NUMBER,
    p_item_servico                 IN NUMBER,
    p_item_atividadeServico        IN NUMBER,
    p_item_idFormulaTinta          IN NUMBER,
    p_item_personalizacao          IN NUMBER,
    p_item_idLoteEstoque           IN NUMBER,
    p_item_vinculoItemDocumento    IN NUMBER,
    p_item_operacaoFiscal          IN NUMBER,
    p_item_movimentaEstoque        IN NUMBER,
    p_item_geraFinanceiro          IN NUMBER,
    p_item_localEstoque            IN NUMBER,
    p_item_pessoaParticipante      IN NUMBER,
    p_item_dataEntrega             IN DATE,
    p_item_controleQuantidade      IN NUMBER,
    p_item_unidadeMedidaConversao  IN VARCHAR2,
    p_item_conversorQuantidade     IN NUMBER,
    p_item_loteMinimo              IN NUMBER,
    p_item_loteMultiplo            IN NUMBER,
    p_item_altura                  IN NUMBER,
    p_item_largura                 IN NUMBER,
    p_item_comprimento             IN NUMBER,
    p_item_pecas                   IN NUMBER,
    p_item_quantidade              IN NUMBER,
    p_item_quantidadeConvertida    IN NUMBER,
    p_item_controleEntrega         IN NUMBER,
    p_item_pesoLiquido             IN NUMBER,
    p_item_pesoBruto               IN NUMBER,
    p_item_tipoPreco               IN CHAR,
    p_item_tabelaPreco             IN VARCHAR2,
    p_item_precoSugestaoAPrazo     IN NUMBER,
    p_item_precoSugestaoAVista     IN NUMBER,
    p_item_precoDesconto           IN NUMBER,
    p_item_precoMinimo             IN NUMBER,
    p_item_usarPrecoAVista         IN NUMBER,
    p_item_precoPautaTabelado      IN NUMBER,
    p_item_precoUnitarioBruto      IN NUMBER,
    p_item_acrescimoUnitarioCompos IN NUMBER,
    p_item_precoUnitario           IN NUMBER,
    p_item_precoUnitarioConvertido IN NUMBER,
    p_item_valorProdutoServicoBrut IN NUMBER,
    p_item_valorProdutoServico     IN NUMBER,
    p_item_percDescontoItem        IN NUMBER,
    p_item_valorDescontoItem       IN NUMBER,
    p_item_percAcrescimoItem       IN NUMBER,
    p_item_valorAcrescimoItem      IN NUMBER,
    p_item_valorFreteItem          IN NUMBER,
    p_item_valorSeguroItem         IN NUMBER,
    p_item_valorAdicFreteMarItem   IN NUMBER,
    p_item_valorDespesasAduanItem  IN NUMBER,
    p_item_valorFreteGeral         IN NUMBER,
    p_item_valorSeguroGeral        IN NUMBER,
    p_item_valorDescontoGeral      IN NUMBER,
    p_item_valorOutrasDespGeral    IN NUMBER,
    p_item_valorAdicFreteMarGeral  IN NUMBER,
    p_item_valorDespesasAduanGeral IN NUMBER,
    p_item_valorFreteTotal         IN NUMBER,
    p_item_valorSeguroTotal        IN NUMBER,
    p_item_valorDescontoTotal      IN NUMBER,
    p_item_valorOutrasDespTotal    IN NUMBER,
    p_item_valorAdicFreteMarTotal  IN NUMBER,
    p_item_valorDespesasAduanTotal IN NUMBER,
    p_item_observacoesDigitadas    IN VARCHAR2,
    p_item_observacoes             IN VARCHAR2,
    p_gradProd_produto             IN NUMBER,
    p_gradProd_cor                 IN NUMBER,
    p_gradProd_tamanho             IN VARCHAR,
    p_prod_controleEstoque         IN NUMBER,
    p_prod_tipoProduto             IN CHAR,
    p_locEst_indicadorPropPosseIt  IN CHAR,
    p_idEnderecoEstoque            IN NUMBER,
    p_idNumeroSerie                IN NUMBER,
    p_item_ambiente                IN NUMBER,
    p_item_amb_observacoes         IN VARCHAR2,
    p_atualizarTempMargem          IN NUMBER,
    p_idItemOrcamentoReferenciado  IN NUMBER,
    p_idItemDocTransferencia       IN NUMBER,
    /* Retornos */
    r_obrigaFinalizar              OUT NUMBER,
    r_calculoImpostosPendente      OUT NUMBER,
    r_cab_modalidadeFrete          OUT CHAR,
    r_cab_ultimoVendedorItem       OUT NUMBER,
    r_cab_quantidade               OUT NUMBER,
    r_cab_pesoLiquido              OUT NUMBER,
    r_cab_pesoBruto                OUT NUMBER,
    r_cab_valorProdutosBruto       OUT NUMBER,
    r_cab_valorProdutos            OUT NUMBER,
    r_cab_valorDescontoProdutos    OUT NUMBER,
    r_cab_valorAcrescimoProdutos   OUT NUMBER,
    r_cab_valorServicosBruto       OUT NUMBER,
    r_cab_valorServicos            OUT NUMBER,
    r_cab_valorDescontoServicos    OUT NUMBER,
    r_cab_valorAcrescimoServicos   OUT NUMBER,
    r_cab_valorFreteItem           OUT NUMBER,
    r_cab_valorSeguroItem          OUT NUMBER,
    r_cab_valorAdicFreteMarItem    OUT NUMBER,
    r_cab_valorDespesasAduanItem   OUT NUMBER,
    r_cab_valorFreteGeral          OUT NUMBER,
    r_cab_valorSeguroGeral         OUT NUMBER,
    r_cab_valorDescontoGeral       OUT NUMBER,
    r_cab_valorOutrasDespGeral     OUT NUMBER,
    r_cab_valorAdicFreteMarGeral   OUT NUMBER,
    r_cab_valorDespesasAduanGeral  OUT NUMBER,
    r_cab_valorBasePagamento       OUT NUMBER,
    r_cab_valorAVistaMinimo        OUT NUMBER,
    r_cab_valorPagamentoBruto      OUT NUMBER,
    r_cab_valorPagamentoLiquido    OUT NUMBER,
    r_cab_valorTroco               OUT NUMBER,
    r_cab_valorFreteTotal          OUT NUMBER,
    r_cab_valorSeguroTotal         OUT NUMBER,
    r_cab_valorAdicFreteMarTotal   OUT NUMBER,
    r_cab_valorDespesasAduanTotal  OUT NUMBER,
    r_cab_valorImpostosSomaPag     OUT NUMBER,
    r_cab_valorImpostosDiminuiPag  OUT NUMBER,
    r_cab_valorLiquidoItem         OUT NUMBER,
    r_cab_valorMargem              OUT NUMBER,
    r_cab_percentualMargem         OUT NUMBER,
    r_cab_imagemMargem             OUT VARCHAR2,
    r_idItemOrcamento              OUT NUMBER,
    r_item_valorBasePagamento      OUT NUMBER,
    r_item_valorLiquidoSemFreteSeg OUT NUMBER,
    r_item_valorCaptacao           OUT NUMBER,
    r_item_valorTarifaCartao       OUT NUMBER,
    r_item_valorImpostos           OUT NUMBER,
    r_item_precoCusto              OUT NUMBER,
    r_item_valorCusto              OUT NUMBER,
    r_item_valorMargem             OUT NUMBER,
    r_item_percentualMargem        OUT NUMBER,
    r_item_imagemMargem            OUT VARCHAR2)
IS
    v_auxNumber                    NUMBER;
    v_auxVarchar                   VARCHAR2(256);
    v_cab_origemDocumento          NUMBER;
    v_cab_tipoDocumento            NUMBER;
    v_cab_modeloDocumento          NUMBER;
    v_cab_entradaSaida             CHAR;
    v_cab_atualizaCustoMedio       NUMBER;
    v_cab_estabelecimento          NUMBER;
    v_cab_dataEmissao              DATE;
    v_cab_dataPreco                DATE;
    v_cab_pessoa                   NUMBER;
    v_cab_dataEntrega              DATE;
    v_cab_municipioFatoGerador     NUMBER;
    v_cab_localDestinoOperacao     CHAR;
    v_cab_indicadorConsumidorFinal CHAR;
    v_cab_tipoPagamentoFrete       CHAR;
    v_cab_condicaoPagamento        NUMBER;
    v_cab_numeroParcelas           NUMBER;
    v_cab_somaPrazoParcelas        NUMBER;
    v_cab_valorXPrazoParcelas      NUMBER;
    v_cab_prazoMedio               NUMBER;
    v_cab_prazoMedioPonderado      NUMBER;
    v_cab_valorEntradaMinima       NUMBER;
    v_cab_valorAVistaEntrada       NUMBER;
    v_cab_valorDescontoPagamento   NUMBER;
    v_cab_valorOutrasDespPag       NUMBER;
    v_cab_valorJurosPagamento      NUMBER;
    v_cab_valorDescontoTotal       NUMBER;
    v_cab_valorOutrasDespTotal     NUMBER;
    v_modDoc_capituloNatFiscal     NUMBER;
    v_modDoc_habilitaAmbiente      NUMBER;
    v_modDoc_tipoPreco             CHAR(1);
    v_modDoc_tabelaPreco           VARCHAR2(10);
    v_modDoc_fatorMultipPreco      NUMBER;
    v_modDoc_tipoPrecoB            CHAR(1);
    v_modDoc_tabelaPrecoB          VARCHAR2(10);
    v_modDoc_fatorMultipPrecoB     NUMBER;
    v_modDoc_diminuiDescontoPrUnit NUMBER;
    v_modDoc_somaAcrescimosPrUnit  NUMBER;
    v_modDoc_somaFreteSeguroPrUnit NUMBER;
    v_est_grupoFiscal              NUMBER;
    v_pessEst_regimeTributario     CHAR(1);
    v_munEndEst_uf                 CHAR(2);
    v_pess_indicadorInscricaoEstad CHAR(1);
    v_munEndPess_uf                CHAR(2);
    v_etOrc_situacaoOrcamento      NUMBER;
    v_prod_controleEstoque         NUMBER;
    v_prod_origemMercadoria        CHAR(1);
    v_prod_idNcm                   NUMBER;
    v_prod_listaServicos           NUMBER;
    v_ativServ_validoPrevisto      NUMBER;
    v_ativServ_habilitaAtivPrev    NUMBER;
    v_opFisc_cfop                  NUMBER;
    v_opFisc_indicadorISSQN        CHAR(1);
    v_opFisc_aliquotaISSQN         NUMBER;
    v_opFisc_aliquotaIRRF          NUMBER;
    v_opFisc_aliquotaINSS          NUMBER;
    v_opFisc_retencaoPIS           NUMBER;
    v_opFisc_retencaoCOFINS        NUMBER;
    v_opFisc_retencaoCSLL          NUMBER;
    v_opFisc_aliquotaII            NUMBER;
    v_opFisc_aliquotaIOF           NUMBER;
    v_opFisc_codigoEnquadramIPI    NUMBER;
    v_opFisc_stIPI                 CHAR(2);
    v_opFisc_aliquotaIPI           NUMBER;
    v_opFisc_valorAliquotaIPI      NUMBER;
    v_opFisc_stPIS                 CHAR(2);
    v_opFisc_aliquotaPIS           NUMBER;
    v_opFisc_valorAliquotaPIS      NUMBER;
    v_opFisc_aliquotaPISST         NUMBER;
    v_opFisc_valorAliquotaPISST    NUMBER;
    v_opFisc_stCOFINS              CHAR(2);
    v_opFisc_aliquotaCOFINS        NUMBER;
    v_opFisc_valorAliquotaCOFINS   NUMBER;
    v_opFisc_aliquotaCOFINSST      NUMBER;
    v_opFisc_valorAliquotaCOFINSST NUMBER;
    v_opFisc_stSimplesNacional     CHAR(3);
    v_opFisc_creditoSimplesNac     NUMBER;
    v_opFisc_stICMS                CHAR(2);
    v_opFisc_modalBaseCalcICMS     CHAR(1);
    v_opFisc_reducaoBaseICMS       NUMBER;
    v_opFisc_aliquotaICMS          NUMBER;
    v_opFisc_diferimentoICMS       NUMBER;
    v_opFisc_motivoDesoneracaoICMS CHAR(2);
    v_opFisc_modalBaseCalcICMSST   CHAR(1);
    v_opFisc_margemValorAdicST     NUMBER;
    v_opFisc_reducaoBaseST         NUMBER;
    v_opFisc_aliquotaICMSST        NUMBER;
    v_opFisc_aliquotaSTSuportConsF NUMBER;
    v_opFisc_reducaoBaseICMSEfetiv NUMBER;
    v_opFisc_aliquotaICMSEfetivo   NUMBER;
    v_opFisc_aliquotaICMSUFDestin  NUMBER;
    v_opFisc_aliquotaICMSInterest  NUMBER;
    v_opFisc_partilhaICMSInterest  NUMBER;
    v_opFisc_aliquotaFCP           NUMBER;
    v_opFisc_aliquotaFCPST         NUMBER;
    v_opFisc_aliquotaFCPSTAnterior NUMBER;
    v_opFisc_aliquotaFCPUFDestin   NUMBER;
    v_cfop_geraFinanceiro          NUMBER;    
    v_item_sequencia               NUMBER;
    v_item_valorDescontoGeral      NUMBER;
    v_item_baseISSQN               NUMBER;
    v_item_valorISSQN              NUMBER;
    v_item_baseIRRF                NUMBER;
    v_item_valorIRRF               NUMBER;
    v_item_baseINSS                NUMBER;
    v_item_valorINSS               NUMBER;
    v_item_baseRetPIS              NUMBER;
    v_item_valorRetPIS             NUMBER;
    v_item_baseRetCOFINS           NUMBER;
    v_item_valorRetCOFINS          NUMBER;
    v_item_baseRetCSLL             NUMBER;
    v_item_valorRetCSLL            NUMBER;
    v_item_baseII                  NUMBER;
    v_item_valorII                 NUMBER;
    v_item_baseIOF                 NUMBER;
    v_item_valorIOF                NUMBER;
    v_item_baseIPI                 NUMBER;
    v_item_valorIPI                NUMBER;
    v_item_basePIS                 NUMBER;
    v_item_valorPIS                NUMBER;
    v_item_basePISST               NUMBER;
    v_item_valorPISST              NUMBER;
    v_item_baseCOFINS              NUMBER;
    v_item_valorCOFINS             NUMBER;
    v_item_baseCOFINSST            NUMBER;
    v_item_valorCOFINSST           NUMBER;
    v_item_baseCreditoSimplesNac   NUMBER;
    v_item_valorCreditoSimplesNac  NUMBER;
    v_item_baseICMS                NUMBER;
    v_item_valorICMSOperacao       NUMBER;
    v_item_valorICMSDiferido       NUMBER;
    v_item_valorICMS               NUMBER;
    v_item_valorICMSDesoneracao    NUMBER;
    v_item_baseICMSST              NUMBER;
    v_item_valorICMSST             NUMBER;
    v_item_baseICMSSTAnteriormente NUMBER;
    v_item_valorICMSSTAnteriorment NUMBER;
    v_item_valorICMSProprioSubstit NUMBER;
    v_item_baseICMSEfetivo         NUMBER;
    v_item_valorICMSEfetivo        NUMBER;
    v_item_baseICMSUFDestinatario  NUMBER;
    v_item_valorICMSUFDestinatario NUMBER;
    v_item_baseICMSUFRemetente     NUMBER;
    v_item_valorICMSUFRemetente    NUMBER;
    v_item_baseFCP                 NUMBER;
    v_item_valorFCP                NUMBER;
    v_item_baseFCPST               NUMBER;
    v_item_valorFCPST              NUMBER;
    v_item_baseFCPSTAnteriormente  NUMBER;
    v_item_valorFCPSTAnteriormente NUMBER;
    v_item_baseFCPUFDestinatario   NUMBER;
    v_item_valorFCPUFDestinatario  NUMBER;
    v_item_aliquotaEstImpFederais  NUMBER;
    v_item_aliquotaEstImpEstaduais NUMBER;
    v_item_aliquotaEstImpMunicipai NUMBER;
    v_item_baseEstimadaImpostos    NUMBER;
    v_item_valorEstImpFederais     NUMBER;
    v_item_valorEstImpEstaduais    NUMBER;
    v_item_valorEstImpMunicipais   NUMBER;
    v_item_valorImpostosSomaPag    NUMBER;
    v_item_valorImpostosDiminuiPag NUMBER;
    v_item_valorLiquidoItem        NUMBER;
    v_idEnderecoEstoqueOrcamento   NUMBER;
    v_buffer_idItemOrcamento       VARCHAR2 (32000);
    v_item_valorTotalItem          NUMBER;
    v_item_valorTotalItemComb      NUMBER;
    v_residuoRateioDescontoItem    NUMBER;
    v_residuoRateioAcrescimoItem   NUMBER;
    v_aj_idItemOrcamento           NUMBER;
    v_aj_valorTotalItem            NUMBER;
    v_aj_servico                   NUMBER;
    v_aj_quantidade                NUMBER;
    v_aj_quantidadeConvertida      NUMBER;
    v_aj_precoUnitarioBruto        NUMBER;
    v_aj_acrescimoUnitarioCompos   NUMBER;
    v_aj_precoUnitario             NUMBER;
    v_aj_precoUnitarioConvertido   NUMBER;
    v_aj_valorProdutoServicoBrut   NUMBER;
    v_aj_valorProdutoServico       NUMBER;
    v_aj_valorDescontoItem         NUMBER;
    v_aj_valorAcrescimoItem        NUMBER;
    v_aj_valorFreteItem            NUMBER;
    v_aj_valorSeguroItem           NUMBER;
    v_aj_valorAdicFreteMarItem     NUMBER;
    v_aj_valorDespesasAduanItem    NUMBER;
    v_aj_valorBasePagamento        NUMBER;
    v_aj_valorFreteTotal           NUMBER;
    v_aj_valorSeguroTotal          NUMBER;
    v_aj_valorDescontoTotal        NUMBER;
    v_aj_valorOutrasDespTotal      NUMBER;
    v_aj_valorAdicFreteMarTotal    NUMBER;
    v_aj_valorDespesasAduanTotal   NUMBER;
    v_aj_valorLiquidoItem          NUMBER;
    v_aj_usarPrecoAVista           NUMBER;
    v_aj_geraFinanceiro            NUMBER;
    v_aj_cfop_geraFinanceiro       NUMBER;
BEGIN
  v_item_valorDescontoGeral      := p_item_valorDescontoGeral;
  v_buffer_idItemOrcamento       := '';
  v_item_valorTotalItem          := 0;
  v_item_valorTotalItemComb      := 0;
  SELECT
    cab.origemDocumento,
    cab.tipoDocumento,
    cab.modeloDocumento,
    cab.entradaSaida,
    cab.atualizaCustoMedio,
    cab.estabelecimento,
    cab.dataEmissao,
    cab.dataPreco,
    cab.pessoa,
    cab.dataEntrega,
    cab.municipioFatoGerador,
    cab.localDestinoOperacao,
    cab.indicadorConsumidorFinal,
    cab.modalidadeFrete,
    cab.tipoPagamentoFrete,
    cab.ultimoVendedorItem,
    cab.quantidade,
    cab.pesoLiquido,
    cab.pesoBruto,
    cab.valorProdutosBruto,
    cab.valorProdutos,
    cab.valorDescontoProdutos,
    cab.valorAcrescimoProdutos,
    cab.valorServicosBruto,
    cab.valorServicos,
    cab.valorDescontoServicos,
    cab.valorAcrescimoServicos,
    cab.valorFreteItem,
    cab.valorSeguroItem,
    cab.valorAdicFreteMarinhaMerItem,
    cab.valorDespesasAduaneirasItem,
    cab.valorFreteGeral,
    cab.valorSeguroGeral,
    cab.valorDescontoGeral,
    cab.valorOutrasDespesasGeral,
    cab.valorAdicFreteMarinhaMerGeral,
    cab.valorDespesasAduaneirasGeral,
    cab.condicaoPagamento,
    cab.numeroParcelas,
    cab.somaPrazoParcelas,
    cab.valorXPrazoParcelas,
    cab.prazoMedio,
    cab.prazoMedioPonderado,
    cab.valorBasePagamento,
    cab.valorAVistaMinimo,
    cab.valorEntradaMinima,
    cab.valorAVistaEntrada,
    cab.valorPagamentoBruto,
    cab.valorDescontoPagamento,
    cab.valorOutrasDespesasPagamento,
    cab.valorJurosPagamento,
    cab.valorPagamentoLiquido,
    cab.valorTroco,
    cab.valorFreteTotal,
    cab.valorSeguroTotal,
    cab.valorDescontoTotal,
    cab.valorOutrasDespesasTotal,
    cab.valorAdicFreteMarinhaMerTotal,
    cab.valorDespesasAduaneirasTotal,
    cab.valorImpostosSomaPagamento,
    cab.valorImpostosDiminuiPagamento,
    cab.valorLiquidoItem,
    modDoc.capituloNaturezaFiscal,
    modDoc.habilitaAmbiente,
    modDoc.tipoPreco,
    modDoc.tabelaPreco,
    modDoc.fatorMultiplicadorPreco,
    modDoc.tipoPrecoB,
    modDoc.tabelaPrecoB,
    modDoc.fatorMultiplicadorPrecoB,
    modDoc.diminuiDescontoPrUnit,
    modDoc.somaAcrescimosPrUnit,
    modDoc.somaFreteSeguroPrUnit,
    est.grupoFiscal,
    COALESCE (pessEst.regimeTributario, ' '),
    COALESCE ((SELECT MIN(munEst.uf) FROM CAENDERECOSPESSOA endEst JOIN SIMUNICIPIOS munEst ON munEst.municipio = endEst.municipio WHERE endEst.pessoa = est.pessoaEstabelecimento AND endEst.ativo = 1 AND endEst.principal = 1), '  '),
    pess.indicadorInscricaoEstadual,
    COALESCE ((SELECT MIN(munPess.uf) FROM CAENDERECOSPESSOA endPess JOIN SIMUNICIPIOS munPess ON munPess.municipio = endPess.municipio WHERE endPess.pessoa = cab.pessoa AND endPess.ativo = 1 AND endPess.principal = 1), '  '),
    etOrc.situacaoOrcamento
  INTO
    v_cab_origemDocumento,
    v_cab_tipoDocumento,
    v_cab_modeloDocumento,
    v_cab_entradaSaida,
    v_cab_atualizaCustoMedio,
    v_cab_estabelecimento,
    v_cab_dataEmissao,
    v_cab_dataPreco,
    v_cab_pessoa,
    v_cab_dataEntrega,
    v_cab_municipioFatoGerador,
    v_cab_localDestinoOperacao,
    v_cab_indicadorConsumidorFinal,
    r_cab_modalidadeFrete,
    v_cab_tipoPagamentoFrete,
    r_cab_ultimoVendedorItem,
    r_cab_quantidade,
    r_cab_pesoLiquido,
    r_cab_pesoBruto,
    r_cab_valorProdutosBruto,
    r_cab_valorProdutos,
    r_cab_valorDescontoProdutos,
    r_cab_valorAcrescimoProdutos,
    r_cab_valorServicosBruto,
    r_cab_valorServicos,
    r_cab_valorDescontoServicos,
    r_cab_valorAcrescimoServicos,
    r_cab_valorFreteItem,
    r_cab_valorSeguroItem,
    r_cab_valorAdicFreteMarItem,
    r_cab_valorDespesasAduanItem,
    r_cab_valorFreteGeral,
    r_cab_valorSeguroGeral,
    r_cab_valorDescontoGeral,
    r_cab_valorOutrasDespGeral,
    r_cab_valorAdicFreteMarGeral,
    r_cab_valorDespesasAduanGeral,
    v_cab_condicaoPagamento,
    v_cab_numeroParcelas,
    v_cab_somaPrazoParcelas,
    v_cab_valorXPrazoParcelas,
    v_cab_prazoMedio,
    v_cab_prazoMedioPonderado,
    r_cab_valorBasePagamento,
    r_cab_valorAVistaMinimo,
    v_cab_valorEntradaMinima,
    v_cab_valorAVistaEntrada,
    r_cab_valorPagamentoBruto,
    v_cab_valorDescontoPagamento,
    v_cab_valorOutrasDespPag,
    v_cab_valorJurosPagamento,
    r_cab_valorPagamentoLiquido,
    r_cab_valorTroco,
    r_cab_valorFreteTotal,
    r_cab_valorSeguroTotal,
    v_cab_valorDescontoTotal,
    v_cab_valorOutrasDespTotal,
    r_cab_valorAdicFreteMarTotal,
    r_cab_valorDespesasAduanTotal,
    r_cab_valorImpostosSomaPag,
    r_cab_valorImpostosDiminuiPag,
    r_cab_valorLiquidoItem,
    v_modDoc_capituloNatFiscal,
    v_modDoc_habilitaAmbiente,
    v_modDoc_tipoPreco,
    v_modDoc_tabelaPreco,
    v_modDoc_fatorMultipPreco,
    v_modDoc_tipoPrecoB,
    v_modDoc_tabelaPrecoB,
    v_modDoc_fatorMultipPrecoB,
    v_modDoc_diminuiDescontoPrUnit,
    v_modDoc_somaAcrescimosPrUnit,
    v_modDoc_somaFreteSeguroPrUnit,
    v_est_grupoFiscal,
    v_pessEst_regimeTributario,
    v_munEndEst_uf,
    v_pess_indicadorInscricaoEstad,
    v_munEndPess_uf,
    v_etOrc_situacaoOrcamento
  FROM MOORCAMENTOS cab
  JOIN PAMODELOSDOCUMENTO modDoc ON modDoc.modeloDocumento = cab.modeloDocumento
  JOIN PAESTABELECIMENTOS est ON est.estabelecimento = cab.estabelecimento
  JOIN CAPESSOAS pessEst ON pessEst.pessoa = est.pessoaEstabelecimento
  JOIN CAPESSOAS pess ON pess.pessoa = cab.pessoa
  JOIN PAETAPASORCAMENTO etOrc ON etOrc.etapaOrcamento = cab.etapaOrcamento
  WHERE cab.orcamento = p_cab_orcamento;
  SELECT
    prod.controleEstoque,
    prod.origemMercadoria,
    prod.idNcm,
    prod.listaServicos
  INTO
    v_prod_controleEstoque,
    v_prod_origemMercadoria,
    v_prod_idNcm,
    v_prod_listaServicos
  FROM CAGRADESPRODUTO gradProd
  JOIN CAPRODUTOS prod ON prod.produto = gradProd.produto
  WHERE gradProd.gradeProduto = p_item_gradeProduto;
  SELECT
    ativServ.validoPrevisto,
    ativServ.habilitaAtividadePrevista
  INTO
    v_ativServ_validoPrevisto,
    v_ativServ_habilitaAtivPrev
  FROM PAATIVIDADESSERVICO ativServ
  WHERE ativServ.atividadeServico = p_item_atividadeServico;
  SELECT
    opFisc.cfop,
    opFisc.indicadorISSQN,
    opFisc.aliquotaISSQN,
    opFisc.aliquotaIRRF,
    opFisc.aliquotaINSS,
    opFisc.retencaoPIS,
    opFisc.retencaoCOFINS,
    opFisc.retencaoCSLL,
    opFisc.aliquotaII,
    opFisc.aliquotaIOF,
    opFisc.codigoEnquadramentoIPI,
    opFisc.stIPI,
    opFisc.aliquotaIPI,
    opFisc.valorAliquotaIPI,
    opFisc.stPIS,
    opFisc.aliquotaPIS,
    opFisc.valorAliquotaPIS,
    opFisc.aliquotaPISST,
    opFisc.valorAliquotaPISST,
    opFisc.stCOFINS,
    opFisc.aliquotaCOFINS,
    opFisc.valorAliquotaCOFINS,
    opFisc.aliquotaCOFINSST,
    opFisc.valorAliquotaCOFINSST,
    opFisc.stSimplesNacional,
    opFisc.creditoSimplesNacional,
    opFisc.stICMS,
    opFisc.modalidadeBaseCalcICMS,
    opFisc.reducaoBaseICMS,
    opFisc.aliquotaICMS,
    opFisc.diferimentoICMS,
    opFisc.motivoDesoneracaoICMS,
    opFisc.modalidadeBaseCalcICMSST,
    opFisc.margemValorAdicionadoST,
    opFisc.reducaoBaseST,
    opFisc.aliquotaICMSST,
    opFisc.aliquotaSTSuportConsFinal,
    opFisc.reducaoBaseICMSEfetivo,
    opFisc.aliquotaICMSEfetivo,
    opFisc.aliquotaICMSUFDestinatario,
    opFisc.aliquotaICMSInterestadual,
    opFisc.partilhaICMSInterestadual,
    opFisc.aliquotaFCP,
    opFisc.aliquotaFCPST,
    opFisc.aliquotaFCPSTAnteriormente,
    opFisc.aliquotaFCPUFDestinatario,
    cfop.geraFinanceiro
  INTO
    v_opFisc_cfop,
    v_opFisc_indicadorISSQN,
    v_opFisc_aliquotaISSQN,
    v_opFisc_aliquotaIRRF,
    v_opFisc_aliquotaINSS,
    v_opFisc_retencaoPIS,
    v_opFisc_retencaoCOFINS,
    v_opFisc_retencaoCSLL,
    v_opFisc_aliquotaII,
    v_opFisc_aliquotaIOF,
    v_opFisc_codigoEnquadramIPI,
    v_opFisc_stIPI,
    v_opFisc_aliquotaIPI,
    v_opFisc_valorAliquotaIPI,
    v_opFisc_stPIS,
    v_opFisc_aliquotaPIS,
    v_opFisc_valorAliquotaPIS,
    v_opFisc_aliquotaPISST,
    v_opFisc_valorAliquotaPISST,
    v_opFisc_stCOFINS,
    v_opFisc_aliquotaCOFINS,
    v_opFisc_valorAliquotaCOFINS,
    v_opFisc_aliquotaCOFINSST,
    v_opFisc_valorAliquotaCOFINSST,
    v_opFisc_stSimplesNacional,
    v_opFisc_creditoSimplesNac,
    v_opFisc_stICMS,
    v_opFisc_modalBaseCalcICMS,
    v_opFisc_reducaoBaseICMS,
    v_opFisc_aliquotaICMS,
    v_opFisc_diferimentoICMS,
    v_opFisc_motivoDesoneracaoICMS,
    v_opFisc_modalBaseCalcICMSST,
    v_opFisc_margemValorAdicST,
    v_opFisc_reducaoBaseST,
    v_opFisc_aliquotaICMSST,
    v_opFisc_aliquotaSTSuportConsF,
    v_opFisc_reducaoBaseICMSEfetiv,
    v_opFisc_aliquotaICMSEfetivo,
    v_opFisc_aliquotaICMSUFDestin,
    v_opFisc_aliquotaICMSInterest,
    v_opFisc_partilhaICMSInterest,
    v_opFisc_aliquotaFCP,
    v_opFisc_aliquotaFCPST,
    v_opFisc_aliquotaFCPSTAnterior,
    v_opFisc_aliquotaFCPUFDestin,
    v_cfop_geraFinanceiro
  FROM PAOPERACOESFISCAIS opFisc
  JOIN SICFOPS cfop ON cfop.cfop = opFisc.cfop
  WHERE opFisc.operacaoFiscal = p_item_operacaoFiscal;
  r_obrigaFinalizar         := p_obrigaFinalizar;
  r_calculoImpostosPendente := p_calculoImpostosPendente;
  r_cab_valorMargem         := p_cab_valorMargem;
  r_idItemOrcamento         := 0;
  IF p_manterFinanceiro = 0
    AND (r_cab_valorFreteGeral <> 0
      OR r_cab_valorSeguroGeral <> 0
      OR r_cab_valorDescontoGeral <> 0
      OR r_cab_valorOutrasDespGeral <> 0
      OR r_cab_valorAdicFreteMarGeral <> 0
      OR r_cab_valorDespesasAduanGeral <> 0) THEN
    r_calculoImpostosPendente := 1;
  END IF;
  IF p_manterFinanceiro = 0
    AND (r_cab_valorDescontoGeral <> 0
      OR r_cab_valorOutrasDespGeral <> 0
      OR r_cab_valorPagamentoBruto <> 0) THEN
    r_calculoImpostosPendente := 1;
    ADD_ORCAMENTO_PAG_EXCLUI_TROCA (
      r_calculoImpostosPendente,
      p_cab_orcamento,
      r_cab_valorDescontoGeral,
      r_cab_valorOutrasDespGeral,
      v_cab_valorDescontoPagamento,
      v_cab_valorOutrasDespPag,
      v_cab_valorJurosPagamento,
      0,
      v_item_valorDescontoGeral,
      0,
      0,
      0,
      /* Retornos */
      r_calculoImpostosPendente,
      r_cab_valorDescontoGeral,
      v_cab_condicaoPagamento,
      v_cab_numeroParcelas,
      v_cab_somaPrazoParcelas,
      v_cab_valorXPrazoParcelas,
      v_cab_prazoMedio,
      v_cab_prazoMedioPonderado,
      v_cab_valorEntradaMinima,
      v_cab_valorAVistaEntrada,
      r_cab_valorPagamentoBruto,
      v_cab_valorDescontoPagamento,
      v_cab_valorOutrasDespPag,
      v_cab_valorJurosPagamento,
      r_cab_valorPagamentoLiquido,
      r_cab_valorTroco,
      v_item_valorDescontoGeral,
      v_auxNumber,
      v_auxNumber,
      v_auxNumber);
  END IF;
  r_cab_ultimoVendedorItem := p_item_vendedor;
  IF v_prod_controleEstoque = 3 THEN
    v_auxNumber := 0;
    ADD_ORCAMENTO_ITEM_INSERE_COMB (
      p_uniqueMachineID,
      p_usuarioLogado,
      p_perfilUsuarioLogado,
      p_estabelecimentoAtivo,
      p_config_64_casasDecSaidas,
      p_config_65_casasDecEntrada,
      p_config_209_filtrarGrupoEcon,
      p_config_330_redIcmsBasePisCof,
      p_config_362_calcCustoPorGrade,
      p_regMarg_tipoPreco,
      p_regMarg_tabelaPreco,
      p_regMarg_fatorMultiplicador,
      p_regMarg_tipoPrecoB,
      p_regMarg_tabelaPrecoB,
      p_regMarg_fatorMultiplicadorB,
      p_regMarg_reduzirImpostos,
      p_regMarg_reduzirTarifaCartao,
      p_regMarg_taxaCapitacaoCustoFi,
      p_regMarg_exibPercMargemCab,
      p_regMarg_exibImagemMargemCab,
      p_regMarg_regraImagemCab,
      p_regMarg_exibPercMargemItem,
      p_regMarg_exibImagemMargemItem,
      p_regMarg_regraImagemItem,
      p_regMarg_exibDetMargemItem,
      r_obrigaFinalizar,
      p_cab_orcamento,
      v_cab_origemDocumento,
      v_cab_tipoDocumento,
      v_cab_modeloDocumento,
      v_cab_entradaSaida,
      v_cab_atualizaCustoMedio,
      v_cab_estabelecimento,
      v_cab_dataEmissao,
      v_cab_dataPreco,
      v_cab_pessoa,
      v_cab_dataEntrega,
      v_cab_municipioFatoGerador,
      v_cab_localDestinoOperacao,
      v_cab_indicadorConsumidorFinal,
      v_cab_tipoPagamentoFrete,
      r_cab_quantidade,
      r_cab_pesoLiquido,
      r_cab_pesoBruto,
      r_cab_valorProdutosBruto,
      r_cab_valorProdutos,
      r_cab_valorDescontoProdutos,
      r_cab_valorAcrescimoProdutos,
      r_cab_valorServicosBruto,
      r_cab_valorServicos,
      r_cab_valorDescontoServicos,
      r_cab_valorAcrescimoServicos,
      v_cab_prazoMedioPonderado,
      r_cab_valorBasePagamento,
      r_cab_valorAVistaMinimo,
      v_cab_valorDescontoTotal,
      v_cab_valorOutrasDespTotal,
      r_cab_valorFreteTotal,
      r_cab_valorSeguroTotal,
      r_cab_valorAdicFreteMarTotal,
      r_cab_valorDespesasAduanTotal,
      r_cab_valorImpostosSomaPag,
      r_cab_valorImpostosDiminuiPag,
      r_cab_valorLiquidoItem,
      p_cab_valorTarifaCartao,
      r_cab_valorMargem,
      v_modDoc_capituloNatFiscal,
      v_modDoc_habilitaAmbiente,
      v_modDoc_tipoPreco,
      v_modDoc_tabelaPreco,
      v_modDoc_fatorMultipPreco,
      v_modDoc_tipoPrecoB,
      v_modDoc_tabelaPrecoB,
      v_modDoc_fatorMultipPrecoB,
      v_modDoc_diminuiDescontoPrUnit,
      v_modDoc_somaAcrescimosPrUnit,
      v_modDoc_somaFreteSeguroPrUnit,
      v_est_grupoFiscal,
      v_pessEst_regimeTributario,
      v_munEndEst_uf,
      v_pess_indicadorInscricaoEstad,
      v_munEndPess_uf,
      v_etOrc_situacaoOrcamento,
      p_item_vendedor,
      p_item_gradeProduto,
      p_item_movimentaEstoque,
      p_item_geraFinanceiro,
      p_item_localEstoque,
      p_item_pessoaParticipante,
      p_item_dataEntrega,
      p_item_quantidade,
      p_item_controleEntrega,
      p_item_usarPrecoAVista,
      p_item_percDescontoItem,
      p_item_percAcrescimoItem,
      p_item_observacoesDigitadas,
      p_idEnderecoEstoque,
      p_item_ambiente,
      p_item_amb_observacoes,
      p_atualizarTempMargem,
      p_idItemOrcamentoReferenciado,
      p_idItemDocTransferencia,
      v_buffer_idItemOrcamento,
      /* Retornos */
      r_obrigaFinalizar,
      r_cab_quantidade,
      r_cab_pesoLiquido,
      r_cab_pesoBruto,
      r_cab_valorProdutosBruto,
      r_cab_valorProdutos,
      r_cab_valorDescontoProdutos,
      r_cab_valorAcrescimoProdutos,
      r_cab_valorServicosBruto,
      r_cab_valorServicos,
      r_cab_valorDescontoServicos,
      r_cab_valorAcrescimoServicos,
      r_cab_valorBasePagamento,
      r_cab_valorAVistaMinimo,
      v_cab_valorDescontoTotal,
      v_cab_valorOutrasDespTotal,
      r_cab_valorImpostosSomaPag,
      r_cab_valorImpostosDiminuiPag,
      r_cab_valorLiquidoItem,
      r_cab_valorMargem,
      r_cab_percentualMargem,
      r_cab_imagemMargem,
      v_buffer_idItemOrcamento,
      v_item_valorTotalItemComb);
      ADD_CALCULA_TOTAIS_ITEM (
        p_uniqueMachineID,
        ' ',
        0,
        0,
        0,
        0,
        'O',
        v_cab_entradaSaida,
        0,
        v_cab_tipoPagamentoFrete,
        v_cab_tipoPagamentoFrete,
        0,
        v_modDoc_diminuiDescontoPrUnit,
        v_modDoc_somaAcrescimosPrUnit,
        v_modDoc_somaFreteSeguroPrUnit,
        0,
        p_item_quantidade,
        p_item_quantidadeConvertida,
        p_item_precoUnitarioBruto,
        p_item_precoUnitario,
        p_item_valorProdutoServicoBrut,
        p_item_valorProdutoServico,
        p_item_valorDescontoItem,
        p_item_valorAcrescimoItem,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        p_item_valorDescontoTotal,
        p_item_valorOutrasDespTotal,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /* Retornos */
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_item_valorTotalItem,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber,
        v_auxNumber);
    IF v_item_valorTotalItem <> 0 AND v_item_valorTotalItem <> v_item_valorTotalItemComb THEN
      v_residuoRateioDescontoItem  := 0;
      v_residuoRateioAcrescimoItem := 0;
      WHILE v_buffer_idItemOrcamento IS NOT NULL AND LENGTH(RTRIM(v_buffer_idItemOrcamento)) >= 14
      LOOP
        v_aj_idItemOrcamento     := TO_NUMBER(SUBSTR(v_buffer_idItemOrcamento, 1, 14));
        v_aj_valorTotalItem      := 0;
        v_buffer_idItemOrcamento := RTRIM(SUBSTR(v_buffer_idItemOrcamento,16,32000));
        SELECT
          a.servico,
          a.quantidade,
          a.quantidadeConvertida,
          a.precoUnitarioBruto,
          a.acrescimoUnitarioComposicao,
          a.precoUnitario,
          a.precoUnitarioConvertido,
          a.valorProdutoServicoBruto,
          a.valorProdutoServico,
          a.valorDescontoItem,
          a.valorAcrescimoItem,
          a.valorFreteItem,
          a.valorSeguroItem,
          a.valorAdicFreteMarinhaMerItem,
          a.valorDespesasAduaneirasItem,
          a.valorBasePagamento,
          a.valorFreteTotal,
          a.valorSeguroTotal,
          a.valorDescontoTotal,
          a.valorOutrasDespesasTotal,
          a.valorAdicFreteMarinhaMerTotal,
          a.valorDespesasAduaneirasTotal,
          a.valorLiquidoItem,
          a.usarPrecoAVista,
          a.geraFinanceiro,
          cfop.geraFinanceiro
        INTO
          v_aj_servico,
          v_aj_quantidade,
          v_aj_quantidadeConvertida,
          v_aj_precoUnitarioBruto,
          v_aj_acrescimoUnitarioCompos,
          v_aj_precoUnitario,
          v_aj_precoUnitarioConvertido,
          v_aj_valorProdutoServicoBrut,
          v_aj_valorProdutoServico,
          v_aj_valorDescontoItem,
          v_aj_valorAcrescimoItem,
          v_aj_valorFreteItem,
          v_aj_valorSeguroItem,
          v_aj_valorAdicFreteMarItem,
          v_aj_valorDespesasAduanItem,
          v_aj_valorBasePagamento,
          v_aj_valorFreteTotal,
          v_aj_valorSeguroTotal,
          v_aj_valorDescontoTotal,
          v_aj_valorOutrasDespTotal,
          v_aj_valorAdicFreteMarTotal,
          v_aj_valorDespesasAduanTotal,
          v_aj_valorLiquidoItem,
          v_aj_usarPrecoAVista,
          v_aj_geraFinanceiro,
          v_aj_cfop_geraFinanceiro
        FROM MOORCAMENTOXITENS a
        JOIN SICFOPS cfop ON cfop.cfop = a.cfop
        WHERE a.idItemOrcamento = v_aj_idItemOrcamento;        
        IF v_aj_servico = 1 THEN
          r_cab_valorServicosBruto       := r_cab_valorServicosBruto      - v_aj_valorProdutoServicoBrut;
          r_cab_valorServicos            := r_cab_valorServicos           - v_aj_valorProdutoServico;
          r_cab_valorDescontoServicos    := r_cab_valorDescontoServicos   - v_aj_valorDescontoItem;
          r_cab_valorAcrescimoServicos   := r_cab_valorAcrescimoServicos  - v_aj_valorAcrescimoItem;
        ELSE 
          r_cab_valorProdutosBruto       := r_cab_valorProdutosBruto      - v_aj_valorProdutoServicoBrut;
          r_cab_valorProdutos            := r_cab_valorProdutos           - v_aj_valorProdutoServico;
          r_cab_valorDescontoProdutos    := r_cab_valorDescontoProdutos   - v_aj_valorDescontoItem;
          r_cab_valorAcrescimoProdutos   := r_cab_valorAcrescimoProdutos  - v_aj_valorAcrescimoItem;
        END IF;
        r_cab_valorFreteItem           := r_cab_valorFreteItem          - v_aj_valorFreteItem;
        r_cab_valorSeguroItem          := r_cab_valorSeguroItem         - v_aj_valorSeguroItem;
        r_cab_valorAdicFreteMarItem    := r_cab_valorAdicFreteMarItem   - v_aj_valorAdicFreteMarItem;
        r_cab_valorDespesasAduanItem   := r_cab_valorDespesasAduanItem  - v_aj_valorDespesasAduanItem;
        r_cab_valorBasePagamento       := r_cab_valorBasePagamento      - v_aj_valorBasePagamento;
        r_item_valorBasePagamento      := r_item_valorBasePagamento     - v_aj_valorBasePagamento;
        IF v_aj_usarPrecoAVista = 1 AND v_aj_geraFinanceiro = 1 AND v_aj_cfop_geraFinanceiro = 1 THEN
          r_cab_valorAVistaMinimo        := r_cab_valorAVistaMinimo - v_aj_valorProdutoServico + v_aj_valorDescontoTotal - v_aj_valorOutrasDespTotal;
        END IF;
        r_cab_valorFreteTotal          := r_cab_valorFreteTotal         - v_aj_valorFreteTotal;
        r_cab_valorSeguroTotal         := r_cab_valorSeguroTotal        - v_aj_valorSeguroTotal;
        v_cab_valorDescontoTotal       := v_cab_valorDescontoTotal      - v_aj_valorDescontoTotal;
        v_cab_valorOutrasDespTotal     := v_cab_valorOutrasDespTotal    - v_aj_valorOutrasDespTotal;
        r_cab_valorAdicFreteMarTotal   := r_cab_valorAdicFreteMarTotal  - v_aj_valorAdicFreteMarTotal;
        r_cab_valorDespesasAduanTotal  := r_cab_valorDespesasAduanTotal - v_aj_valorDespesasAduanTotal;
        r_cab_valorLiquidoItem         := r_cab_valorLiquidoItem        - v_aj_valorLiquidoItem;
        -- Total item original        
        ADD_CALCULA_TOTAIS_ITEM (
          p_uniqueMachineID,
          ' ',
          0,
          0,
          0,
          0,
          'O',
          v_cab_entradaSaida,
          0,
          v_cab_tipoPagamentoFrete,
          v_cab_tipoPagamentoFrete,
          0,
          v_modDoc_diminuiDescontoPrUnit,
          v_modDoc_somaAcrescimosPrUnit,
          v_modDoc_somaFreteSeguroPrUnit,
          0,
          v_aj_quantidade,
          v_aj_quantidadeConvertida,
          v_aj_precoUnitarioBruto,
          v_aj_precoUnitario,
          v_aj_valorProdutoServicoBrut,
          v_aj_valorProdutoServico,
          v_aj_valorDescontoItem,
          v_aj_valorAcrescimoItem,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          v_aj_valorDescontoTotal,
          v_aj_valorOutrasDespTotal,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          /* Retornos */
          v_aj_acrescimoUnitarioCompos,
          v_auxNumber,
          v_aj_precoUnitario,
          v_auxNumber,
          v_aj_precoUnitarioConvertido,
          v_auxNumber,
          v_aj_valorProdutoServico,
          v_auxNumber,
          v_aj_valorTotalItem,
          v_aj_valorFreteTotal,
          v_aj_valorSeguroTotal,
          v_aj_valorDescontoTotal,
          v_aj_valorOutrasDespTotal,
          v_aj_valorAdicFreteMarTotal,
          v_aj_valorDespesasAduanTotal,
          v_auxNumber,
          v_auxNumber,
          v_auxNumber);
        v_aj_valorDescontoItem := 
          v_aj_valorDescontoItem
          + ROUND(
              CASE
                WHEN v_item_valorTotalItemComb > v_item_valorTotalItem
                THEN v_item_valorTotalItemComb - v_item_valorTotalItem
                ELSE 0
              END
              * v_aj_valorTotalItem / v_item_valorTotalItemComb
              + v_residuoRateioDescontoItem,2);
        v_residuoRateioDescontoItem :=
          CASE
            WHEN v_item_valorTotalItemComb > v_item_valorTotalItem
            THEN v_item_valorTotalItemComb - v_item_valorTotalItem
            ELSE 0
          END
          * v_aj_valorTotalItem / v_item_valorTotalItemComb
          + v_residuoRateioDescontoItem
          - ROUND(
              CASE
                WHEN v_item_valorTotalItemComb > v_item_valorTotalItem
                THEN v_item_valorTotalItemComb - v_item_valorTotalItem
                ELSE 0
              END
              * v_aj_valorTotalItem / v_item_valorTotalItemComb
              + v_residuoRateioDescontoItem,2);
        v_aj_valorAcrescimoItem :=
          v_aj_valorAcrescimoItem
          + ROUND(
              CASE
                WHEN v_item_valorTotalItem > v_item_valorTotalItemComb
                THEN v_item_valorTotalItem - v_item_valorTotalItemComb
                ELSE 0
              END
              * v_aj_valorTotalItem / v_item_valorTotalItemComb
              + v_residuoRateioAcrescimoItem,2);
        v_residuoRateioAcrescimoItem :=
          CASE
            WHEN v_item_valorTotalItem > v_item_valorTotalItemComb
            THEN v_item_valorTotalItem - v_item_valorTotalItemComb
            ELSE 0
          END
          * v_aj_valorTotalItem / v_item_valorTotalItemComb
          + v_residuoRateioAcrescimoItem
          - ROUND(
              CASE 
                WHEN v_item_valorTotalItem > v_item_valorTotalItemComb
                THEN v_item_valorTotalItem - v_item_valorTotalItemComb
                ELSE 0
              END
              * v_aj_valorTotalItem / v_item_valorTotalItemComb
              + v_residuoRateioAcrescimoItem,2);
        -- Total item novo
        ADD_CALCULA_TOTAIS_ITEM (
          p_uniqueMachineID,
          ' ',
          0,
          0,
          0,
          0,
          'O',
          v_cab_entradaSaida,
          0,
          v_cab_tipoPagamentoFrete,
          v_cab_tipoPagamentoFrete,
          0,
          v_modDoc_diminuiDescontoPrUnit,
          v_modDoc_somaAcrescimosPrUnit,
          v_modDoc_somaFreteSeguroPrUnit,
          0,
          v_aj_quantidade,
          v_aj_quantidadeConvertida,
          v_aj_precoUnitarioBruto,
          v_aj_precoUnitario,
          v_aj_valorProdutoServicoBrut,
          v_aj_valorProdutoServico,
          v_aj_valorDescontoItem,
          v_aj_valorAcrescimoItem,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          v_aj_valorDescontoTotal,
          v_aj_valorOutrasDespTotal,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          /* Retornos */
          v_aj_acrescimoUnitarioCompos,
          v_auxNumber,
          v_aj_precoUnitario,
          v_auxNumber,
          v_aj_precoUnitarioConvertido,
          v_auxNumber,
          v_aj_valorProdutoServico,
          v_auxNumber,
          v_aj_valorTotalItem,
          v_aj_valorFreteTotal,
          v_aj_valorSeguroTotal,
          v_aj_valorDescontoTotal,
          v_aj_valorOutrasDespTotal,
          v_aj_valorAdicFreteMarTotal,
          v_aj_valorDespesasAduanTotal,
          v_auxNumber,
          v_auxNumber,
          v_auxNumber);
        IF v_aj_servico = 1 THEN
          r_cab_valorServicosBruto       := r_cab_valorServicosBruto      + v_aj_valorProdutoServicoBrut;
          r_cab_valorServicos            := r_cab_valorServicos           + v_aj_valorProdutoServico;
          r_cab_valorDescontoServicos    := r_cab_valorDescontoServicos   + v_aj_valorDescontoItem;
          r_cab_valorAcrescimoServicos   := r_cab_valorAcrescimoServicos  + v_aj_valorAcrescimoItem;
        ELSE 
          r_cab_valorProdutosBruto       := r_cab_valorProdutosBruto      + v_aj_valorProdutoServicoBrut;
          r_cab_valorProdutos            := r_cab_valorProdutos           + v_aj_valorProdutoServico;
          r_cab_valorDescontoProdutos    := r_cab_valorDescontoProdutos   + v_aj_valorDescontoItem;
          r_cab_valorAcrescimoProdutos   := r_cab_valorAcrescimoProdutos  + v_aj_valorAcrescimoItem;
        END IF;
        r_cab_valorFreteItem           := r_cab_valorFreteItem          + v_aj_valorFreteItem;
        r_cab_valorSeguroItem          := r_cab_valorSeguroItem         + v_aj_valorSeguroItem;
        r_cab_valorAdicFreteMarItem    := r_cab_valorAdicFreteMarItem   + v_aj_valorAdicFreteMarItem;
        r_cab_valorDespesasAduanItem   := r_cab_valorDespesasAduanItem  + v_aj_valorDespesasAduanItem;
        r_cab_valorBasePagamento       := r_cab_valorBasePagamento      + v_aj_valorBasePagamento;
        r_item_valorBasePagamento      := r_item_valorBasePagamento     + v_aj_valorBasePagamento;
        IF v_aj_usarPrecoAVista = 1 AND v_aj_geraFinanceiro = 1 AND v_aj_cfop_geraFinanceiro = 1 THEN
          r_cab_valorAVistaMinimo        := r_cab_valorAVistaMinimo + v_aj_valorProdutoServico - v_aj_valorDescontoTotal + v_aj_valorOutrasDespTotal;
        END IF;
        r_cab_valorFreteTotal          := r_cab_valorFreteTotal         + v_aj_valorFreteTotal;
        r_cab_valorSeguroTotal         := r_cab_valorSeguroTotal        + v_aj_valorSeguroTotal;
        v_cab_valorDescontoTotal       := v_cab_valorDescontoTotal      + v_aj_valorDescontoTotal;
        v_cab_valorOutrasDespTotal     := v_cab_valorOutrasDespTotal    + v_aj_valorOutrasDespTotal;
        r_cab_valorAdicFreteMarTotal   := r_cab_valorAdicFreteMarTotal  + v_aj_valorAdicFreteMarTotal;
        r_cab_valorDespesasAduanTotal  := r_cab_valorDespesasAduanTotal + v_aj_valorDespesasAduanTotal;
        r_cab_valorLiquidoItem         := r_cab_valorLiquidoItem        + v_aj_valorLiquidoItem;
        r_calculoImpostosPendente      := 1;
        UPDATE MOORCAMENTOXITENS SET
          acrescimoUnitarioComposicao   = v_aj_acrescimoUnitarioCompos,
          precoUnitario                 = v_aj_precoUnitario,
          precoUnitarioConvertido       = v_aj_precoUnitarioConvertido,
          valorProdutoServico           = v_aj_valorProdutoServico,
          percDescontoItem              = CASE WHEN v_aj_valorProdutoServicoBrut = 0 THEN 0 ELSE ROUND(100* v_aj_valorDescontoItem / v_aj_valorProdutoServicoBrut,4) END,
          valorDescontoItem             = v_aj_valorDescontoItem,
          percAcrescimoItem              = CASE WHEN v_aj_valorProdutoServicoBrut = 0 THEN 0 ELSE ROUND(100* v_aj_valorAcrescimoItem / v_aj_valorProdutoServicoBrut,4) END,
          valorAcrescimoItem            = v_aj_valorAcrescimoItem,
          valorFreteTotal               = v_aj_valorFreteTotal,
          valorSeguroTotal              = v_aj_valorSeguroTotal,
          valorDescontoTotal            = v_aj_valorDescontoTotal,
          valorOutrasDespesasTotal      = v_aj_valorOutrasDespTotal,
          valorAdicFreteMarinhaMerTotal = v_aj_valorAdicFreteMarTotal,
          valorDespesasAduaneirasTotal  = v_aj_valorDespesasAduanTotal
        WHERE idItemOrcamento = v_aj_idItemOrcamento;
      END LOOP;
    END IF;
  ELSE
    r_item_valorBasePagamento      := 0;
    v_item_aliquotaEstImpFederais  := 0;
    v_item_aliquotaEstImpEstaduais := 0;
    v_item_aliquotaEstImpMunicipai := 0;
    IF v_cab_entradaSaida = 'S' THEN
      ADD_BUSCA_IBPT (
        v_cab_dataEmissao,
        v_munEndEst_uf,
        v_prod_origemMercadoria,
        v_prod_idNcm,
        v_prod_listaServicos,
        /* Retornos */
        v_auxNumber,
        v_auxNumber,
        v_item_aliquotaEstImpFederais,
        v_item_aliquotaEstImpEstaduais,
        v_item_aliquotaEstImpMunicipai,
        v_auxVarchar,
        v_auxVarchar,
        v_auxVarchar
      );
    END IF;
    ADD_CALCULA_IMPOSTOS_ITEM (
      p_config_64_casasDecSaidas,
      p_config_209_filtrarGrupoEcon,
      p_config_330_redIcmsBasePisCof,
      p_config_362_calcCustoPorGrade,
      v_cab_entradaSaida,
      0,
      v_cab_estabelecimento,
      0,
      v_cab_dataEmissao,
      v_cab_pessoa,
      v_cab_localDestinoOperacao,
      v_cab_indicadorConsumidorFinal,
      v_cab_tipoPagamentoFrete,
      v_pess_indicadorInscricaoEstad,
      p_item_pessoaParticipante,
      p_item_quantidade,
      p_item_precoPautaTabelado,
      p_item_valorProdutoServico,
      p_item_valorFreteTotal,
      p_item_valorSeguroTotal,
      p_item_valorDescontoTotal,
      p_item_valorOutrasDespTotal,
      p_item_valorAdicFreteMarTotal,
      p_item_valorDespesasAduanTotal,
      v_opFisc_cfop,
      1,
      v_opFisc_indicadorISSQN,
      v_opFisc_aliquotaISSQN,
      0,
      0,
      1,
      v_opFisc_aliquotaIRRF,
      0,
      0,
      1,
      v_opFisc_aliquotaINSS,
      0,
      0,
      1,
      v_opFisc_retencaoPIS,
      0,
      0,
      1,
      v_opFisc_retencaoCOFINS,
      0,
      0,
      1,
      v_opFisc_retencaoCSLL,
      0,
      0,
      1,
      v_opFisc_aliquotaII,
      0,
      0,
      1,
      v_opFisc_aliquotaIOF,
      0,
      0,
      1,
      v_opFisc_aliquotaIPI,
      v_opFisc_valorAliquotaIPI,
      0,
      0,
      0,
      1,
      v_opFisc_aliquotaPIS,
      v_opFisc_valorAliquotaPIS,
      0,
      0,
      1,
      v_opFisc_aliquotaPISST,
      v_opFisc_valorAliquotaPISST,
      0,
      0,
      1,
      v_opFisc_aliquotaCOFINS,
      v_opFisc_valorAliquotaCOFINS,
      0,
      0,
      1,
      v_opFisc_aliquotaCOFINSST,
      v_opFisc_valorAliquotaCOFINSST,
      0,
      0,
      1,
      v_opFisc_stSimplesNacional,
      v_opFisc_creditoSimplesNac,
      0,
      0,
      1,
      v_opFisc_stICMS,
      v_opFisc_modalBaseCalcICMS,
      v_opFisc_reducaoBaseICMS,
      v_opFisc_aliquotaICMS,
      v_opFisc_diferimentoICMS,
      0,
      0,
      0,
      0,
      0,
      1,
      v_opFisc_modalBaseCalcICMSST,
      v_opFisc_margemValorAdicST,
      v_opFisc_reducaoBaseST,
      v_opFisc_aliquotaICMSST,
      0,
      0,
      1,
      0,
      0,
      0,
      v_opFisc_reducaoBaseICMSEfetiv,
      v_opFisc_aliquotaICMSEfetivo,
      0,
      0,
      0,
      '  ',
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      (CASE WHEN v_munEndEst_uf <> v_munEndPess_uf AND v_munEndEst_uf <> 'EX' AND v_munEndPess_uf <> 'EX' AND v_cab_indicadorConsumidorFinal = '1' THEN v_opFisc_aliquotaICMSUFDestin ELSE 0 END),
      (CASE WHEN v_munEndEst_uf <> v_munEndPess_uf AND v_munEndEst_uf <> 'EX' AND v_munEndPess_uf <> 'EX' AND v_cab_indicadorConsumidorFinal = '1' THEN v_opFisc_aliquotaICMSInterest ELSE 0 END),
      (CASE WHEN v_munEndEst_uf <> v_munEndPess_uf AND v_munEndEst_uf <> 'EX' AND v_munEndPess_uf <> 'EX' AND v_cab_indicadorConsumidorFinal = '1' THEN v_opFisc_partilhaICMSInterest ELSE 0 END),
      0,
      0,
      0,
      0,
      1,
      v_opFisc_aliquotaFCP,
      0,
      0,
      v_opFisc_aliquotaFCPST,
      0,
      0,
      v_opFisc_aliquotaFCPSTAnterior,
      0,
      0,
      v_opFisc_aliquotaFCPUFDestin,
      0,
      0,
      1,
      v_item_aliquotaEstImpFederais,
      v_item_aliquotaEstImpEstaduais,
      v_item_aliquotaEstImpMunicipai,
      0,
      0,
      0,
      0,
      p_gradProd_produto,
      p_gradProd_cor,
      p_gradProd_tamanho,
      p_prod_controleEstoque,
      p_prod_tipoProduto,
      /* Retornos */
      v_item_baseISSQN,
      v_item_valorISSQN,
      v_item_baseIRRF,
      v_item_valorIRRF,
      v_item_baseINSS,
      v_item_valorINSS,
      v_item_baseRetPIS,
      v_item_valorRetPIS,
      v_item_baseRetCOFINS,
      v_item_valorRetCOFINS,
      v_item_baseRetCSLL,
      v_item_valorRetCSLL,
      v_item_baseII,
      v_item_valorII,
      v_item_baseIOF,
      v_item_valorIOF,
      v_item_baseIPI,
      v_item_valorIPI,
      v_item_basePIS,
      v_item_valorPIS,
      v_item_basePISST,
      v_item_valorPISST,
      v_item_baseCOFINS,
      v_item_valorCOFINS,
      v_item_baseCOFINSST,
      v_item_valorCOFINSST,
      v_item_baseCreditoSimplesNac,
      v_item_valorCreditoSimplesNac,
      v_item_baseICMS,
      v_item_valorICMSOperacao,
      v_item_valorICMSDiferido,
      v_item_valorICMS,
      v_item_valorICMSDesoneracao,
      v_item_baseICMSST,
      v_item_valorICMSST,
      v_item_baseICMSSTAnteriormente,
      v_item_valorICMSSTAnteriorment,
      v_item_valorICMSProprioSubstit,
      v_item_baseICMSEfetivo,
      v_item_valorICMSEfetivo,
      v_auxNumber,
      v_auxNumber,
      v_auxNumber,
      v_auxNumber,
      v_auxNumber,
      v_item_baseICMSUFDestinatario,
      v_item_valorICMSUFDestinatario,
      v_item_baseICMSUFRemetente,
      v_item_valorICMSUFRemetente,
      v_item_baseFCP,
      v_item_valorFCP,
      v_item_baseFCPST,
      v_item_valorFCPST,
      v_item_baseFCPSTAnteriormente,
      v_item_valorFCPSTAnteriormente,
      v_item_baseFCPUFDestinatario,
      v_item_valorFCPUFDestinatario,
      v_item_baseEstimadaImpostos,
      v_item_valorEstImpFederais,
      v_item_valorEstImpEstaduais,
      v_item_valorEstImpMunicipais);
    ADD_CALCULA_VALOR_LIQUIDO (
      0,
      v_cab_tipoPagamentoFrete,
      CASE WHEN p_item_geraFinanceiro = 1 AND v_cfop_geraFinanceiro = 1 THEN 1 ELSE 0 END,
      p_item_valorProdutoServico,
      0,
      0,
      0,
      p_item_valorFreteTotal,
      p_item_valorSeguroTotal,
      p_item_valorDescontoTotal,
      p_item_valorOutrasDespTotal,
      v_item_valorIRRF,
      v_item_valorINSS,
      v_item_valorRetPIS,
      v_item_valorRetCOFINS,
      v_item_valorRetCSLL,
      v_item_valorII,
      v_item_valorIOF,
      v_item_valorIPI,
      0,
      v_item_valorICMSST,
      0,
      0,
      0,
      /* Retornos */
      r_item_valorBasePagamento,
      v_item_valorImpostosSomaPag,
      v_item_valorImpostosDiminuiPag,
      v_item_valorLiquidoItem);
    r_cab_quantidade               := r_cab_quantidade + p_item_quantidadeConvertida;
    r_cab_pesoLiquido              := r_cab_pesoLiquido + p_item_pesoLiquido;
    r_cab_pesoBruto                := r_cab_pesoBruto + p_item_pesoBruto;
    IF p_item_servico = 1 THEN
      r_cab_valorServicosBruto       := r_cab_valorServicosBruto + p_item_valorProdutoServicoBrut;
      r_cab_valorServicos            := r_cab_valorServicos + p_item_valorProdutoServico;
      r_cab_valorDescontoServicos    := r_cab_valorDescontoServicos + p_item_valorDescontoItem;
      r_cab_valorAcrescimoServicos   := r_cab_valorAcrescimoServicos + p_item_valorAcrescimoItem;
    ELSE 
      r_cab_valorProdutosBruto       := r_cab_valorProdutosBruto + p_item_valorProdutoServicoBrut;
      r_cab_valorProdutos            := r_cab_valorProdutos + p_item_valorProdutoServico;
      r_cab_valorDescontoProdutos    := r_cab_valorDescontoProdutos + p_item_valorDescontoItem;
      r_cab_valorAcrescimoProdutos   := r_cab_valorAcrescimoProdutos + p_item_valorAcrescimoItem;
    END IF;
    r_cab_valorFreteItem           := r_cab_valorFreteItem + p_item_valorFreteItem;
    r_cab_valorSeguroItem          := r_cab_valorSeguroItem + p_item_valorSeguroItem;
    r_cab_valorAdicFreteMarItem    := r_cab_valorAdicFreteMarItem + p_item_valorAdicFreteMarItem;
    r_cab_valorDespesasAduanItem   := r_cab_valorDespesasAduanItem + p_item_valorDespesasAduanItem;
    r_cab_valorFreteGeral          := r_cab_valorFreteGeral + p_item_valorFreteGeral;
    r_cab_valorSeguroGeral         := r_cab_valorSeguroGeral + p_item_valorSeguroGeral;
    r_cab_valorDescontoGeral       := r_cab_valorDescontoGeral + v_item_valorDescontoGeral;
    r_cab_valorOutrasDespGeral     := r_cab_valorOutrasDespGeral + p_item_valorOutrasDespGeral;
    r_cab_valorAdicFreteMarGeral   := r_cab_valorAdicFreteMarGeral + p_item_valorAdicFreteMarGeral;
    r_cab_valorDespesasAduanGeral  := r_cab_valorDespesasAduanGeral + p_item_valorDespesasAduanGeral;
    r_cab_valorBasePagamento       := r_cab_valorBasePagamento + r_item_valorBasePagamento;
    IF p_item_usarPrecoAVista = 1 AND p_item_geraFinanceiro = 1 AND v_cfop_geraFinanceiro = 1 THEN
      r_cab_valorAVistaMinimo        := r_cab_valorAVistaMinimo + p_item_valorProdutoServico - p_item_valorDescontoTotal + p_item_valorOutrasDespTotal;
    END IF;
    IF r_cab_valorFreteTotal = 0 AND p_item_valorFreteTotal <> 0 AND NOT(p_person_190_modeloFrete IS NULL) AND p_person_190_modeloFrete <> ' ' THEN
      r_cab_modalidadeFrete          := p_person_190_modeloFrete;
    END IF;    
    r_cab_valorFreteTotal          := r_cab_valorFreteTotal + p_item_valorFreteTotal;
    r_cab_valorSeguroTotal         := r_cab_valorSeguroTotal + p_item_valorSeguroTotal;
    v_cab_valorDescontoTotal       := v_cab_valorDescontoTotal + p_item_valorDescontoTotal;
    v_cab_valorOutrasDespTotal     := v_cab_valorOutrasDespTotal + p_item_valorOutrasDespTotal;
    r_cab_valorAdicFreteMarTotal   := r_cab_valorAdicFreteMarTotal + p_item_valorAdicFreteMarTotal;
    r_cab_valorDespesasAduanTotal  := r_cab_valorDespesasAduanTotal + p_item_valorDespesasAduanTotal;
    r_cab_valorImpostosSomaPag     := r_cab_valorImpostosSomaPag + v_item_valorImpostosSomaPag;
    r_cab_valorImpostosDiminuiPag  := r_cab_valorImpostosDiminuiPag + v_item_valorImpostosDiminuiPag;
    r_cab_valorLiquidoItem         := r_cab_valorLiquidoItem + v_item_valorLiquidoItem;
    SELECT COALESCE (MAX (sequencia),0) + 1
    INTO v_item_sequencia
    FROM MOORCAMENTOXITENS
    WHERE orcamento = p_cab_orcamento;
    ADD_ORCAMENTO_ITEM_GRAVA (
      p_estabelecimentoAtivo,
      r_obrigaFinalizar,
      p_cab_orcamento,
      v_cab_modeloDocumento,
      v_cab_entradaSaida,
      v_cab_estabelecimento,
      v_cab_dataEmissao,
      v_cab_dataEntrega,
      v_etOrc_situacaoOrcamento,
      0,
      v_item_sequencia,
      0,
      0,
      p_item_vendedor,
      0,
      p_item_gradeProduto,
      p_item_servico,
      p_item_atividadeServico,
      'A',
      0,
      p_item_idFormulaTinta,
      p_item_personalizacao,
      0,
      p_item_idLoteEstoque,
      p_item_vinculoItemDocumento,
      p_item_operacaoFiscal,
      0,
      p_item_movimentaEstoque,
      (CASE WHEN p_item_geraFinanceiro = 1 AND v_cfop_geraFinanceiro = 1 THEN 1 ELSE 0 END),
      0,
      p_item_localEstoque,
      0,
      p_item_pessoaParticipante,
      p_item_dataEntrega,
      p_item_controleQuantidade,
      p_item_unidadeMedidaConversao,
      p_item_conversorQuantidade,
      p_item_loteMinimo,
      p_item_loteMultiplo,
      p_item_altura,
      p_item_largura,
      p_item_comprimento,
      p_item_pecas,
      p_item_quantidade,
      p_item_quantidadeConvertida,
      0,
      p_item_quantidade,
      p_item_controleEntrega,
      1,
      p_item_pesoLiquido,
      p_item_pesoBruto,
      p_item_tipoPreco,
      p_item_tabelaPreco,
      p_item_precoSugestaoAPrazo,
      p_item_precoSugestaoAVista,
      p_item_precoDesconto,
      p_item_precoMinimo,
      p_item_usarPrecoAVista,
      p_item_precoPautaTabelado,
      p_item_precoUnitarioBruto,
      p_item_acrescimoUnitarioCompos,
      p_item_precoUnitario,
      p_item_precoUnitarioConvertido,
      p_item_valorProdutoServicoBrut,
      p_item_valorProdutoServico,
      p_item_percDescontoItem,
      p_item_valorDescontoItem,
      p_item_percAcrescimoItem,
      p_item_valorAcrescimoItem,
      p_item_valorFreteItem,
      p_item_valorSeguroItem,
      p_item_valorAdicFreteMarItem,
      p_item_valorDespesasAduanItem,
      p_item_valorFreteGeral,
      p_item_valorSeguroGeral,
      v_item_valorDescontoGeral,
      p_item_valorOutrasDespGeral,
      p_item_valorAdicFreteMarGeral,
      p_item_valorDespesasAduanGeral,
      r_item_valorBasePagamento,
      0,
      0,
      0,
      p_item_valorFreteTotal,
      p_item_valorSeguroTotal,
      p_item_valorDescontoTotal,
      p_item_valorOutrasDespTotal,
      p_item_valorAdicFreteMarTotal,
      p_item_valorDespesasAduanTotal,
      v_opFisc_cfop,
      v_opFisc_indicadorISSQN,
      v_opFisc_aliquotaISSQN,
      v_item_baseISSQN,
      v_item_valorISSQN,
      v_opFisc_aliquotaIRRF,
      v_item_baseIRRF,
      v_item_valorIRRF,
      v_opFisc_aliquotaINSS,
      v_item_baseINSS,
      v_item_valorINSS,
      v_opFisc_retencaoPIS,
      v_item_baseRetPIS,
      v_item_valorRetPIS,
      v_opFisc_retencaoCOFINS,
      v_item_baseRetCOFINS,
      v_item_valorRetCOFINS,
      v_opFisc_retencaoCSLL,
      v_item_baseRetCSLL,
      v_item_valorRetCSLL,
      v_opFisc_aliquotaII,
      v_item_baseII,
      v_item_valorII,
      v_opFisc_aliquotaIOF,
      v_item_baseIOF,
      v_item_valorIOF,
      v_opFisc_codigoEnquadramIPI,
      v_opFisc_stIPI,
      v_opFisc_aliquotaIPI,
      v_opFisc_valorAliquotaIPI,
      v_item_baseIPI,
      v_item_valorIPI,
      v_opFisc_stPIS,
      v_opFisc_aliquotaPIS,
      v_opFisc_valorAliquotaPIS,
      v_item_basePIS,
      v_item_valorPIS,
      v_opFisc_aliquotaPISST,
      v_opFisc_valorAliquotaPISST,
      v_item_basePISST,
      v_item_valorPISST,
      v_opFisc_stCOFINS,
      v_opFisc_aliquotaCOFINS,
      v_opFisc_valorAliquotaCOFINS,
      v_item_baseCOFINS,
      v_item_valorCOFINS,
      v_opFisc_aliquotaCOFINSST,
      v_opFisc_valorAliquotaCOFINSST,
      v_item_baseCOFINSST,
      v_item_valorCOFINSST,
      v_opFisc_stSimplesNacional,
      v_opFisc_creditoSimplesNac,
      v_item_baseCreditoSimplesNac,
      v_item_valorCreditoSimplesNac,
      v_opFisc_stICMS,
      v_opFisc_modalBaseCalcICMS,
      v_opFisc_reducaoBaseICMS,
      v_opFisc_aliquotaICMS,
      v_opFisc_diferimentoICMS,
      v_opFisc_motivoDesoneracaoICMS,
      v_item_baseICMS,
      v_item_valorICMSOperacao,
      v_item_valorICMSDiferido,
      v_item_valorICMS,
      v_item_valorICMSDesoneracao,
      v_opFisc_modalBaseCalcICMSST,
      v_opFisc_margemValorAdicST,
      v_opFisc_reducaoBaseST,
      v_opFisc_aliquotaICMSST,
      v_opFisc_aliquotaSTSuportConsF,
      v_item_baseICMSST,
      v_item_valorICMSST,
      v_item_baseICMSSTAnteriormente,
      v_item_valorICMSSTAnteriorment,
      v_item_valorICMSProprioSubstit,
      v_opFisc_reducaoBaseICMSEfetiv,
      v_opFisc_aliquotaICMSEfetivo,
      v_item_baseICMSEfetivo,
      v_item_valorICMSEfetivo,
      (CASE WHEN v_munEndEst_uf <> v_munEndPess_uf AND v_munEndEst_uf <> 'EX' AND v_munEndPess_uf <> 'EX' AND v_cab_indicadorConsumidorFinal = '1' THEN v_opFisc_aliquotaICMSUFDestin ELSE 0 END),
      (CASE WHEN v_munEndEst_uf <> v_munEndPess_uf AND v_munEndEst_uf <> 'EX' AND v_munEndPess_uf <> 'EX' AND v_cab_indicadorConsumidorFinal = '1' THEN v_opFisc_aliquotaICMSInterest ELSE 0 END),
      (CASE WHEN v_munEndEst_uf <> v_munEndPess_uf AND v_munEndEst_uf <> 'EX' AND v_munEndPess_uf <> 'EX' AND v_cab_indicadorConsumidorFinal = '1' THEN v_opFisc_partilhaICMSInterest ELSE 0 END),
      v_item_baseICMSUFDestinatario,
      v_item_valorICMSUFDestinatario,
      v_item_baseICMSUFRemetente,
      v_item_valorICMSUFRemetente,
      v_opFisc_aliquotaFCP,
      v_item_baseFCP,
      v_item_valorFCP,
      v_opFisc_aliquotaFCPST,
      v_item_baseFCPST,
      v_item_valorFCPST,
      v_opFisc_aliquotaFCPSTAnterior,
      v_item_baseFCPSTAnteriormente,
      v_item_valorFCPSTAnteriormente,
      v_opFisc_aliquotaFCPUFDestin,
      v_item_baseFCPUFDestinatario,
      v_item_valorFCPUFDestinatario,
      v_item_aliquotaEstImpFederais,
      v_item_aliquotaEstImpEstaduais,
      v_item_aliquotaEstImpMunicipai,
      v_item_baseEstimadaImpostos,
      v_item_valorEstImpFederais,
      v_item_valorEstImpEstaduais,
      v_item_valorEstImpMunicipais,
      v_item_valorImpostosSomaPag,
      v_item_valorImpostosDiminuiPag,
      v_item_valorLiquidoItem,
      p_item_observacoesDigitadas,
      p_item_observacoes,
      /* Retornos */
      r_obrigaFinalizar,
      r_idItemOrcamento
    );    
    IF v_modDoc_habilitaAmbiente = 1 THEN
      MERGE INTO MOORCAMENTOXAMBIENTES a
      USING (
        SELECT
          r_idItemOrcamento      idItemOrcamento,
          p_item_ambiente        ambiente,
          p_item_amb_observacoes observacoes
        FROM DUAL
      ) b ON (a.idItemOrcamento = b.idItemOrcamento)
      WHEN MATCHED THEN
        UPDATE SET
          a.ambiente    = b.ambiente,
          a.observacoes = b.observacoes
      WHEN NOT MATCHED THEN
        INSERT (
          idItemOrcamento,
          ambiente,
          observacoes)
        VALUES (
          b.idItemOrcamento,
          b.ambiente,
          b.observacoes);
    END IF;
    IF p_idItemOrcamentoReferenciado > 0 THEN
      ADD_ORCAMENTO_ITEM_ORC_GRAVA (
        p_estabelecimentoAtivo,
        r_idItemOrcamento,
        p_idItemOrcamentoReferenciado,
        p_item_quantidade);
    ELSE
      IF p_nomeTempComposicao <> ' ' THEN
        ADD_ORCAMENTO_ITEM_COMP_TEMP (
          p_uniqueMachineID,
          p_estabelecimentoAtivo,
          p_nomeTempComposicao,
          p_temp_sequencia,
          r_idItemOrcamento);
      END IF;
    END IF;
    IF p_idItemDocTransferencia > 0 THEN
      ADD_ORCAMENTO_ITEM_TRANS_GRAVA (
        p_estabelecimentoAtivo,
        v_cab_entradaSaida,
        p_idItemDocTransferencia,
        r_idItemOrcamento,
        p_item_quantidade);
    END IF;
    v_idEnderecoEstoqueOrcamento := 0;
    IF p_idEnderecoEstoque > 0 THEN
      ADD_ORCAMENTO_ITEM_ENDER_GRAVA (
        p_estabelecimentoAtivo,
        0,
        r_idItemOrcamento,
        p_idEnderecoEstoque,
        p_item_quantidade,
        p_item_quantidade,
        p_item_observacoes,
        /* Retornos */
        v_idEnderecoEstoqueOrcamento);
    END IF;
    IF p_idNumeroSerie > 0 THEN
      ADD_ORCAMENTO_ITEM_N_SER_GRAVA (
        p_estabelecimentoAtivo,
        0,
        r_idItemOrcamento,
        v_idEnderecoEstoqueOrcamento,
        p_item_gradeProduto,
        p_idNumeroSerie,
        0,
        /* Retornos */
        v_auxNumber);
    END IF;
    IF p_item_servico = 1 AND p_item_atividadeServico > 0 AND v_ativServ_habilitaAtivPrev = 1 THEN
      ADD_ORCAMENTO_ITEM_PREV_INSERE (
        p_usuarioLogado,
        p_estabelecimentoAtivo,
        r_idItemOrcamento,
        p_item_atividadeServico,
        v_ativServ_validoPrevisto);
    END IF;
    IF p_atualizarTempMargem = 1
      AND (p_regMarg_exibPercMargemCab = 1
        OR p_regMarg_exibImagemMargemCab = 1
        OR p_regMarg_exibPercMargemItem = 1
        OR p_regMarg_exibImagemMargemItem = 1
        OR p_regMarg_exibDetMargemItem = 1)
      AND v_cab_tipoDocumento IN (101,102,301,501,503) THEN
      ADD_TEMP_MARGEM_ITEM_GRAVA (
        p_uniqueMachineID,
        p_config_65_casasDecEntrada,
        p_config_209_filtrarGrupoEcon,
        p_config_362_calcCustoPorGrade,
        p_regMarg_tipoPreco,
        p_regMarg_tabelaPreco,
        p_regMarg_fatorMultiplicador,
        p_regMarg_tipoPrecoB,
        p_regMarg_tabelaPrecoB,
        p_regMarg_fatorMultiplicadorB,
        p_regMarg_reduzirImpostos,
        p_regMarg_reduzirTarifaCartao,
        p_regMarg_taxaCapitacaoCustoFi,
        p_regMarg_exibImagemMargemCab,
        p_regMarg_regraImagemCab,
        p_regMarg_exibImagemMargemItem,
        p_regMarg_regraImagemItem,
        'O',
        p_cab_orcamento,
        v_cab_estabelecimento,
        v_cab_dataPreco,
        v_cab_prazoMedioPonderado,
        r_cab_valorFreteTotal,
        r_cab_valorSeguroTotal,
        r_cab_valorAdicFreteMarTotal,
        r_cab_valorDespesasAduanTotal,
        r_cab_valorLiquidoItem,
        p_cab_valorTarifaCartao,
        r_cab_valorMargem,
        v_munEndEst_uf,
        v_item_sequencia,
        0,
        0,
        p_item_idFormulaTinta,
        p_item_personalizacao,
        p_item_localEstoque,
        p_item_pessoaParticipante,
        p_item_quantidade,
        p_item_valorFreteTotal,
        p_item_valorSeguroTotal,
        p_item_valorAdicFreteMarTotal,
        p_item_valorDespesasAduanTotal,
        v_item_valorII,
        v_item_valorIOF,
        v_item_valorIPI,
        0,
        v_item_valorPIS,
        v_item_valorPISST,
        v_item_valorCOFINS,
        v_item_valorCOFINSST,
        v_item_valorCreditoSimplesNac,
        v_item_valorICMSOperacao,
        v_item_valorICMSDiferido,
        v_item_valorICMS,
        v_item_valorICMSDesoneracao,
        v_item_valorICMSST,
        v_item_valorICMSSTAnteriorment,
        v_item_valorICMSUFDestinatario,
        v_item_valorICMSUFRemetente,
        v_item_valorFCP,
        v_item_valorFCPST,
        v_item_valorFCPSTAnteriormente,
        v_item_valorFCPUFDestinatario,
        v_item_valorLiquidoItem,
        p_gradProd_produto,
        p_gradProd_cor,
        p_gradProd_tamanho,
        p_prod_controleEstoque,
        p_locEst_indicadorPropPosseIt,
        /* Retornos */
        r_cab_valorMargem,
        r_cab_percentualMargem,
        r_cab_imagemMargem,
        r_item_valorLiquidoSemFreteSeg,
        r_item_valorCaptacao,
        r_item_valorTarifaCartao,
        r_item_valorImpostos,
        r_item_precoCusto,
        r_item_valorCusto,
        r_item_valorMargem,
        r_item_percentualMargem,
        r_item_imagemMargem);
    END IF;
  END IF;
  IF p_manterFinanceiro = 0
    AND (r_cab_valorFreteGeral <> 0
      OR r_cab_valorSeguroGeral <> 0
      OR r_cab_valorDescontoGeral <> 0
      OR r_cab_valorOutrasDespGeral <> 0
      OR r_cab_valorAdicFreteMarGeral <> 0
      OR r_cab_valorDespesasAduanGeral <> 0) THEN
    r_calculoImpostosPendente := 1;
  END IF;
  UPDATE MOORCAMENTOS SET
    modalidadeFrete               = r_cab_modalidadeFrete,
    ultimoVendedorItem            = r_cab_ultimoVendedorItem,
    quantidade                    = r_cab_quantidade,
    pesoLiquido                   = r_cab_pesoLiquido,
    pesoBruto                     = r_cab_pesoBruto,
    valorProdutosBruto            = r_cab_valorProdutosBruto,
    valorProdutos                 = r_cab_valorProdutos,
    valorDescontoProdutos         = r_cab_valorDescontoProdutos,
    valorAcrescimoProdutos        = r_cab_valorAcrescimoProdutos,
    valorServicosBruto            = r_cab_valorServicosBruto,
    valorServicos                 = r_cab_valorServicos,
    valorDescontoServicos         = r_cab_valorDescontoServicos,
    valorAcrescimoServicos        = r_cab_valorAcrescimoServicos,
    valorFreteItem                = r_cab_valorFreteItem,
    valorSeguroItem               = r_cab_valorSeguroItem,
    valorAdicFreteMarinhaMerItem  = r_cab_valorAdicFreteMarItem,
    valorDespesasAduaneirasItem   = r_cab_valorDespesasAduanItem,
    valorFreteGeral               = r_cab_valorFreteGeral,
    valorSeguroGeral              = r_cab_valorSeguroGeral,
    valorDescontoGeral            = r_cab_valorDescontoGeral,
    valorOutrasDespesasGeral      = r_cab_valorOutrasDespGeral,
    valorAdicFreteMarinhaMerGeral = r_cab_valorAdicFreteMarGeral,
    valorDespesasAduaneirasGeral  = r_cab_valorDespesasAduanGeral,
    condicaoPagamento             = v_cab_condicaoPagamento,
    numeroParcelas                = v_cab_numeroParcelas,
    somaPrazoParcelas             = v_cab_somaPrazoParcelas,
    valorXPrazoParcelas           = v_cab_valorXPrazoParcelas,
    prazoMedio                    = v_cab_prazoMedio,
    prazoMedioPonderado           = v_cab_prazoMedioPonderado,
    valorBasePagamento            = r_cab_valorBasePagamento,
    valorAVistaMinimo             = r_cab_valorAVistaMinimo,
    valorEntradaMinima            = v_cab_valorEntradaMinima,
    valorAVistaEntrada            = v_cab_valorAVistaEntrada,
    valorPagamentoBruto           = r_cab_valorPagamentoBruto,
    valorDescontoPagamento        = v_cab_valorDescontoPagamento,
    valorOutrasDespesasPagamento  = v_cab_valorOutrasDespPag,
    valorJurosPagamento           = v_cab_valorJurosPagamento,
    valorPagamentoLiquido         = r_cab_valorPagamentoLiquido,
    valorTroco                    = r_cab_valorTroco,
    valorFreteTotal               = r_cab_valorFreteTotal,
    valorSeguroTotal              = r_cab_valorSeguroTotal,
    valorDescontoTotal            = v_cab_valorDescontoTotal,
    valorOutrasDespesasTotal      = v_cab_valorOutrasDespTotal,
    valorAdicFreteMarinhaMerTotal = r_cab_valorAdicFreteMarTotal,
    valorDespesasAduaneirasTotal  = r_cab_valorDespesasAduanTotal,
    valorImpostosSomaPagamento    = r_cab_valorImpostosSomaPag,
    valorImpostosDiminuiPagamento = r_cab_valorImpostosDiminuiPag,
    valorLiquidoItem              = r_cab_valorLiquidoItem
  WHERE orcamento = p_cab_orcamento;
END ADD_ORCAMENTO_ITEM_INSERE;

/

INSERT INTO SICONFIGURACOES (configuracao, descricao, ativo, subcategoriaConfiguracao, tipoCampo, mascara, exibirCampo, tipoArquivo, conteudoSugestao, tabelaSistema, observacoes) values (376, 'Permite excluir pagamento de orçamento com adiantamento vinculado', 1, 30001, 'L', '1', 'E', 0, 'N', ' ', ' ');

COMMIT;

INSERT INTO SICATEGORIASPERSCAMPOS (categoriaPersonalCampo, descricao, ativo, observacoes) VALUES (10, 'Logística', 1, ' ');

COMMIT;

INSERT INTO SISUBCATEGORIASPERSCAMPOS (subcategoriaPersonalCampo, descricao, ativo, categoriaPersonalCampo, observacoes) VALUES (100001, 'Logística', 1, 10, ' ');

COMMIT;

INSERT INTO SIPERSONALIZACOESCAMPOS (personalizacaoCampo, ordenacao, descricao, ativo, subcategoriaPersonalCampo, tipoCampo, mascara, exibirCampo, tipoArquivo, alteraTipoCampo, alteraExibirCampo, visivelSugestao, modificavelSugestao, obrigatorioSugestao, nomeCampoSugestao, conteudoSugestao, tabelaSistema, observacoes) VALUES (222, 100001001, 'Motorista (Entrega)', 1, 100001, 'N', '14', 'P', 0, 0, 0, 1, 1, 0, 'Motorista', ' ', 'CAPESSOAS', ' ');

COMMIT;

INSERT INTO SIPERSONALIZACOESCAMPOS (personalizacaoCampo, ordenacao, descricao, ativo, subcategoriaPersonalCampo, tipoCampo, mascara, exibirCampo, tipoArquivo, alteraTipoCampo, alteraExibirCampo, visivelSugestao, modificavelSugestao, obrigatorioSugestao, nomeCampoSugestao, conteudoSugestao, tabelaSistema, observacoes) VALUES (223, 30002018, 'Coluna "Referência" nos itens dos documentos de Saída', 1, 30002, 'A', '120', 'E', 0, 0, 1, 0, 0, 0, 'Referência', ' ', ' ', ' ');

COMMIT;

UPDATE SIPERSONALIZACOESCAMPOS SET descricao = 'Coluna "Referência" nos itens dos documentos de Entrada' WHERE personalizacaoCampo = 170;

COMMIT;

INSERT INTO SIPERSONALIZACOESCAMPOS (personalizacaoCampo, ordenacao, descricao, ativo, subcategoriaPersonalCampo, tipoCampo, mascara, exibirCampo, tipoArquivo, alteraTipoCampo, alteraExibirCampo, visivelSugestao, modificavelSugestao, obrigatorioSugestao, nomeCampoSugestao, conteudoSugestao, tabelaSistema, observacoes) VALUES (224, 30002019, 'Coluna "Quantidade Disponível" no painel de compras', 1, 30002, 'A', '120', 'E', 0, 0, 1, 0, 0, 0, 'Disponível', ' ', ' ', ' ');

COMMIT;

INSERT INTO SIVERSOESSISTEMA (idVersaoSistema, versaoAplicativo, dataLiberacaoVersao, possuiConversaoTabelas, atualizada, dataAtualizacaoVersao, observacoes) VALUES (2022002003, '2022.2.3', sysdate, 1, 1, sysdate, ' ');

COMMIT;

--exec dbms_utility.compile_schema('ADDERI');
exec dbms_stats.gather_schema_stats('ADDERI');

/*
*/