Skip to content

Instantly share code, notes, and snippets.

@viniciusss
Created August 6, 2019 13:27
Show Gist options
  • Save viniciusss/708816e4ec8bf6cfa5c7d6cc6f428597 to your computer and use it in GitHub Desktop.
Save viniciusss/708816e4ec8bf6cfa5c7d6cc6f428597 to your computer and use it in GitHub Desktop.
CREATE DEFINER=`root`@`localhost` EVENT `produtoConferirEstoqueInterno` ON SCHEDULE EVERY 1 DAY STARTS '2018-04-20 23:50:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
select DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 6 MONTH), '%Y%m') into @mesSaldo;
select DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 6 MONTH), '%m/%Y') into @mesSaldoVisivel;
select DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 5 MONTH), '%Y%m') into @mesMovimentacaoInicio;
select DATE_FORMAT(NOW(), '%Y%m') into @mesMovimentacaoFim;
select 12361 into @idUsuario;
select 1448 into @assunto_id;
## Insert log de recalculo estoque
INSERT INTO webpdv.estoque_log_recalculo_gerencial
(storeno, mes_inicio, prdno, todos, id_usuario, data_hora, mensagem)
VALUES
(0, @mesSaldoVisivel, 0, 1, @idUsuario, now(), 'INICIO verificacao movimentacao do estoque interno.');
SELECT webpdv.chamado_abrir(@assunto_id, t2.storeno, @idUsuario,
CONCAT('ERRO NO ESTOQUE INTERNO - Produto ', t2.prdno, ' de grade ', t2.grade, ' consta com quantidade ', ROUND(t2.qtty_varejo/1000, 0), ' mas deveria ter estoque ', ROUND((t2.qtty + t2.movimentacao)/1000, 0), ' que é resultado do saldo inicio do mes ', @mesSaldoVisivel, ' com quantidade ', ROUND(t2.qtty/1000, 0), ' mais movimentacao de ', ROUND(t2.movimentacao/1000, 0) )
)
FROM (
select t1.storeno, t1.prdno, t1.grade,
t1.qtty,
t1.movimentacao,
(t1.qtty + t1.movimentacao) as saldo_esperado,
t1.qtty_varejo,
IF(t1.qtty_varejo != (t1.qtty + t1.movimentacao), 'Divergencia', 'OK') as situacao
from (
select s.storeno, s.prdno, s.grade, s.qtty,
webpdv.produto_calcula_movimentacao_interna(s.storeno, s.prdno, s.grade, @mesMovimentacaoInicio, @mesMovimentacaoFim) as movimentacao,
stk.qtty_varejo
from sqldados.stkchk s
INNER JOIN sqldados.stk
ON(stk.storeno = s.storeno AND stk.prdno = s.prdno AND stk.grade = s.grade)
where 1 = 1
and s.ym = @mesSaldo
) t1
having situacao = 'Divergencia'
) t2
;
## Insert log de recalculo estoque
INSERT INTO webpdv.estoque_log_recalculo_gerencial
(storeno, mes_inicio, prdno, todos, id_usuario, data_hora, mensagem)
VALUES
(0, @mesSaldoVisivel, 0, 1, @idUsuario, now(), 'FIM verificacao movimentacao do estoque interno.');
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment