Project

General

Profile

Bug #574

Bug nos movimentos registrados

Added by Maurício Dos Santos about 12 years ago. Updated about 12 years ago.

Status:
Closed
Priority:
Normal
Target version:
Start date:
04/08/2013
Due date:
% Done:

0%

Componente:

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

Also available in: Atom PDF