Problema encontrado:


Quando a R266 e a R287 estiverem abertas ao mesmo tempo, uma inconsistência pode ocorrer:


  • R287: Reabertura de movimento financeiro: O movimento financeiro seria reaberto normalmente, sem nenhum erro. No entanto, se e só se, a R266 estivesse aberta enquanto o mesmo movimento financeiro fosse reaberto, a data atual estaria desatualizada, permitindo encerrar com a data errada.

             

  • R266: Encerramento de movimento financeiro: O movimento financeiro seria encerrado normalmente, sem nenhum erro. No entanto, se e só se, a R287 estivesse aberta enquanto o mesmo movimento financeiro fosse encerrado, a data atual estaria desatualizada, permitindo reabrir com a data errada.


            


Solução: uma nova regra de negócio para prevenir esta inconsistência


Para solucionar, foi criada uma regra para, sempre que uma das rotinas previamente mencionadas estiverem abertas, notifique o usuário que a tela da rotina apresenta uma data atual incorreta, pois essa data foi atualizada enquanto a rotina estava em uso e é necessário atualizar a página para apresentar a data correta.


Exemplo:


Feito abertura da rotina R287 e R266, informo a conta caixa de código 1, que se encontra com Data de Movimento igual a 19/03/2020.


 

Com as duas rotinas abertas, confirmo a operação de reabertura do caixa, pela R287, para a data 18/03/2020.


 

Ao retornar para tela da rotina R266 (que permaneceu aberta durante a operação de reabertura), podemos perceber que o campo Movimento Atual permanece com a data anterior (o processo de reabertura feito na R287 ainda não foi refletido nessa tela).


 

Nesse momento, se tentarmos realizar a operação de encerramento, 

O sistema fará uma verificação do campo Movimento Atual (informado na tela) com a data de movimento atual (de fato) da conta. Nesse caso, tendo em vista que estão divergentes, o sistema emitirá o alerta abaixo.


 

Somente após atualização da aba da rotina, será possível realizar a operação normalmente. Este recurso também está presente para a rotina R287 (caso o processo tivesse sido o inverso).



Fluxograma do processo: