Como os dados são processados
O método getPedidosRecebidos() executa um único comando SQL complexo que usa CTEs (Common Table Expressions — subconsultas nomeadas) para organizar os dados em etapas.
Etapa por etapa
1. CTE m — Pedidos no período
Seleciona movimentações do tipo PEDIDO alteradas entre o ponteiro e a data limite. Faz LEFT JOIN com stage_pedido_lx para integração LX.
2. CTE mi — Itens do pedido
Para cada pedido, soma as quantidades de cada produto (grade) nos itens ativos do pedido.
3. CTE mr — Recebimentos vinculados
Busca movimentações filhas (recebimentos) ligadas ao pedido pai, apenas com situação Finalizado.
4. CTE mri — Itens recebidos
Soma as quantidades recebidas de cada produto em cada recebimento vinculado ao pedido.
5. SELECT final — Montagem do registro
Junta pedido + itens pedidos + itens recebidos + dados da filial (nome, CNPJ, código).
Campos calculados
| Campo destino | Como é calculado |
|---|---|
QTDE_PEDIDA |
Soma dos itens do pedido (mi.qtde) |
QTDE_RECEBIDA |
Soma dos itens recebidos (COALESCE(mri.qtde, 0)) |
QTDE_PENDENTE |
IF((pedida - recebida) < 0, 0, pedida - recebida) |
ENTRADA_CONFIRMADA |
1 se situação = FINALIZADO, senão 0 |
SITUACAO |
DESATIVO se Cancelado/Aberto, senão ATIVO |
DATA_TRANSFERENCIA |
NOW() no momento da gravação |
SKU |
Código do produto (mi.codigo) |
CHAVE_NFE |
Chave da nota fiscal do pedido |
Atualização de registros existentes
O INSERT usa ON DUPLICATE KEY UPDATE, ou seja:
- Se o registro não existe (chave primária nova) → insere.
- Se o registro já existe → atualiza apenas: QTDE_RECEBIDA, QTDE_PENDENTE, QTDE_PEDIDA, ENTRADA_CONFIRMADA, DATA_TRANSFERENCIA e SITUACAO.
Chave primária: ID_PRODUTO_GRADE + COD_FILIAL + ID_FILIAL + ID_MOVIMENTACAO_PAI + CNPJ_FILIAL
Filtros aplicados
| Filtro | Valor | Motivo |
|---|---|---|
modulo |
'PEDIDO' | Apenas movimentações de pedido |
tipo_estoque |
'PEDIDO' | Confirma tipo de estoque |
m.data |
> ponteiro AND <= limite | Janela incremental |
md.situacao |
'ATIVO' | Itens não excluídos |
md.id_produto_grade |
IS NOT NULL | Produtos com grade definida |
mr.situacao |
'Finalizado' | Recebimentos concluídos |