Bug #574
Bug nos movimentos registrados
0%
Description
Cristiane:
Estou tentando excluir 2 lotes do Etambutol vencidos no sistema e não estou conseguindo.
Dados:
Unidade: SAE - SERVIÇO DE ATENÇÃO ESPECIALIZADO DE BRUSQUE
Ajustar estoque
Etambutol (verificar os 2 lotes que estão em vermelho, ou seja, vencidos)
Excluir lote
Motivo: Expiração da validade
A tela volta como se eu não tivesse feito nada!
History
#1
Updated by Maurício Dos Santos about 12 years ago
- Status changed from New to Resolved
Cristiane,
Bem, atualizei o banco de testes com o banco que está em produção e em seguida fiz o acerto, gostaria que voce verificasse se está tudo correto.
Aguardo o seu ok para passar para produção esse acerto.
Informações técnicas:
A query que faz esse acerto foi levemente modificada, já que uma inconsistência no registro de movimentos (faltam registros em batchmovements que se relacionam com movements) está impedindo a sua execução. Veja a seguir a query que faz o acerto e em seguida a query que mostra essa inconsistência.
Query que faz o acerto:
update stockposition
set quantity = (select sum(a.quantity * a.oper)
from movement a
where a.unit_id=stockposition.unit_id and a.source_id=stockposition.source_id and a.medicine_id=stockposition.medicine_id);
update stockposition
set totalprice = (select sum(b.quantity * a.oper * c.unitPrice)
from batchmovement b
join movement a on a.id=b.movement_id
join batch c on c.id=b.batch_id
where a.unit_id=stockposition.unit_id and a.source_id=stockposition.source_id and a.medicine_id=stockposition.medicine_id)
where (select workspace_id from tbunit u where u.id = stockposition.unit_id) = 1;
delete from batchquantity;
insert into batchquantity (batch_id, source_id, unit_id, quantity)
select a.batch_id, b.source_id, b.unit_id, sum(a.quantity * b.oper)
from batchmovement a
join movement b on b.id = a.movement_id
group by a.batch_id, b.source_id, b.unit_id;
delete from batchquantity
where quantity = 0;
delete from stockposition
where quantity = 0;
Query que mostra a inconsistência:
select m.id, t.id, t.workspace_id
from movement m
inner join tbunit t on t.id = unit_id
where m.id not in (select movement_id from batchmovement);
#2
Updated by Maurício Dos Santos about 12 years ago
- Status changed from Resolved to Closed