SET DEFINE OFF;

create or replace PROCEDURE ADD_MODOCTROCAXITENS_EXCLUI (
  p_idItemDocTroca IN NUMBER)
IS
  s_quantidade              NUMBER;
  s_idItemPreDocumentoSaida NUMBER;
  s_idItemDocFiscalSaida    NUMBER;
  s_idEstoque               NUMBER;
BEGIN
  SELECT
    quantidade,
    idItemPreDocumentoSaida,
    idItemDocFiscalSaida,
    idEstoque
  INTO
    s_quantidade,
    s_idItemPreDocumentoSaida,
    s_idItemDocFiscalSaida,
    s_idEstoque
  FROM MODOCTROCAXITENS
  WHERE idItemDocTroca = p_idItemDocTroca;
  DELETE MODOCTROCAXITENS WHERE idItemDocTroca = p_idItemDocTroca;
  IF s_idItemPreDocumentoSaida > 0 THEN
    UPDATE MOPREDOCUMXITENS
    SET quantidadeDevolvidaRetornada =
      CASE
        WHEN quantidadeDevolvidaRetornada < s_quantidade
        THEN 0
        ELSE quantidadeDevolvidaRetornada - s_quantidade
      END
    WHERE idItemPreDocumento = s_idItemPreDocumentoSaida;
  END IF;
  IF s_idItemDocFiscalSaida > 0 THEN
    UPDATE MODOCFISCALXITENS
    SET quantidadeDevolvidaRetornada =
      CASE
        WHEN quantidadeDevolvidaRetornada < s_quantidade
        THEN 0
        ELSE quantidadeDevolvidaRetornada - s_quantidade
      END
    WHERE idItemDocFiscal = s_idItemDocFiscalSaida;
  END IF;
  IF s_idEstoque > 0 THEN
    ADD_MOESTOQUES_EXCLUI (s_idEstoque);
  END IF;
END ADD_MODOCTROCAXITENS_EXCLUI;

/

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

COMMIT;

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

/*
*/