SET DEFINE OFF;

create or replace FUNCTION FUNC_ADD_SINC_MONTA_COMANDO(
  p_nomeTabela      IN VARCHAR,
  p_nomeCampoCodigo IN VARCHAR,
  p_codigoPK        IN VARCHAR,
  p_tipoEdicao      IN CHAR)
  RETURN CLOB
IS
  v_comando          CLOB;
BEGIN
  IF p_tipoEdicao = 'E' AND p_nomeTabela = 'MOFINANCEIROS' THEN
    v_comando := 
'BEGIN
  ADD_MOFINANCEIROS_EXCLUI ('|| TRIM(p_codigoPK) ||');
END;';
  ELSIF p_tipoEdicao = 'E' AND p_nomeTabela = 'MOFINANCEIROXBAIXAS' THEN
    v_comando := 
'BEGIN
  ADD_MOFINANCEIROXBAIXAS_CORREL ('|| TRIM(p_codigoPK) ||');
END;';
  ELSIF p_tipoEdicao = 'E' AND p_nomeTabela = 'MOESTOQUES' THEN
    v_comando := 
'BEGIN
  ADD_MOESTOQUES_EXCLUI ('|| TRIM(p_codigoPK) ||');
END;';
  ELSIF p_tipoEdicao = 'E' AND p_nomeTabela = 'MOPREDOCUMXPAGAMENTOS' THEN
    v_comando := 
'BEGIN
  ADD_MOPREDOCUMXPAGAMENTOS_ECOR ('|| TRIM(p_codigoPK) ||');
  DELETE MOPREDOCUMXPAGAMENTOS WHERE idPagamentoPreDocumento = '|| TRIM(p_codigoPK) ||';
END;';
  ELSIF p_tipoEdicao = 'E' AND p_nomeTabela = 'MODOCFISCALXPAGAMENTOS' THEN
    v_comando := 
'BEGIN
  ADD_MODOCFISCALXPAGAMENTOS_E_C ('|| TRIM(p_codigoPK) ||');
  DELETE MODOCFISCALXPAGAMENTOS WHERE idPagamentoDocFiscal = '|| TRIM(p_codigoPK) ||';
END;';
  ELSIF p_tipoEdicao = 'E' AND p_nomeTabela = 'MOMOTIVOSBLOQUEIOS' THEN
    v_comando := 
'BEGIN
  ADD_MOMOTIVOSBLOQUEIOS_EXCLUI ('|| TRIM(p_codigoPK) ||');
END;';
  ELSE
    v_comando := ' ';
--    v_comando := FUNC_SINCRONIZA(
--      p_nomeTabela,
--      p_nomeCampoCodigo,
--      p_codigoPK,
--      CASE WHEN p_tipoEdicao = 'E' THEN 'DELETE' ELSE 'UPDATE' END);
  END IF;
RETURN v_comando;
END FUNC_ADD_SINC_MONTA_COMANDO;

/

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

COMMIT;

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

/*
*/