UC00067 - Controle de caixa

De Wiki Java - Interno
Edição feita às 13h21min de 19 de novembro de 2013 por Daniel (disc | contribs)

Ir para: navegação, pesquisa

Conteúdo

Objetivo

Gerar movimentos de suprimento/sangria e fechamento de caixa.

Atores

  • Usuário

Pré-requisitos

  • No projeto da rotina (receber), em confsrc > META-INF > messages > view.properties definir o nome como Controle de caixa. Este nome será utilizado para criar a página no Wiki
  • Considerar documento Padrões de desenvolvimento.

Resultado esperado

  • Ter realizados e controlados movimentos de sangria/suprimento e fechamento de caixa.

Diagrama de classes

Caixa.png

Fluxo de eventos

Fluxos principais

Fluxo 1: Usuário acessa a rotina Menu > Movimentos > Tesouraria > Controle de caixa.

  • Sistema exibe tela inicial da rotina conforme regra de negócio RN05.


Fluxo 2: Usuário aciona o botão <Sangria/Suprimento>.


Fluxo 3: Usuário informa os dados da sangria ou suprimento e aciona o botão <Salvar>.

  • Sistema procede conforme regra de negócio RN06.

Fluxos alternativos

Fluxo 1:

Fluxos de exceções

Fluxo 1:

Regras de negócio

RN01 - Descrição dos campos e funcionalidades da rotina de suprimento/sangria

  1. Tipo de movimento: Neste campo deverá ser definido se o movimento será de sangria ou de suprimento de caixa. Sua informação é obrigatória e a opção padrão será sangria.
  2. Data: Neste campo deverá ser informada a data em que o movimento está sendo realizado. Esta informação é obrigatória e a data deverá serio maior ou igual à data de movimento (data de login).
  3. Valor: Neste campo deverá ser informado o valor da sangria ou suprimento a ser realizado. A informação é obrigatória e somente serão aceitos valores maiores que zero.
  4. Usuário: Neste campo deverá ser informado o usuário/operador do caixa cujo movimento de sangria ou suprimento será realizado. Serão listados somente usuários que são operadores de caixa e que possuem caixa aberto. Assim que um usuário/operador for selecionado o sistema deverá marcar automaticamente os mesmos turnos marcados na abertura do caixa do mesmo.
  5. Motivo: Neste campo deverá ser esclarecido um motivo para sangria ou suprimento a ser realizado. Esta informação é obrigatória.
  6. Turno: Assim que um usuário válido for informado estes dados serão automaticamente preenchidos. Por padrão este campo ficará sempre desabilitado, ou seja, será somente para leitura.
    Após os movimentos de sangria e suprimento deverá ser gerado, obrigatoriamente, um recibo. 
    Este recibo deverá seguir o modelo do recibo emitido na abertura de caixa.

Movimentações

  1. Ao realizar uma sangria deverá ser gerado um movimento de débito no subcaixa do usuário utilizando a conta caixa de débito de suprimento e um movimento de crédito no subcaixa da tesouraria utilizando a conta caixa de crédito de suprimento. As contas caixas de crédito e débito de suprimento são configuradas nos parâmetros da abertura de caixa.
  2. Ao realizar um suprimento deverá ser gerado um movimento de débito no subcaixa da tesouraria utilizando a conta caixa de débito de suprimento e um movimento de crédito no subcaixa do usuário utilizando a conta caixa para crédito de suprimento. As contas caixas de crédito e débito de suprimento são configuradas nos parâmetros da abertura de caixa.

RN02 - Descrição dos campos e funcionalidades da rotina de fechamento na aba Conferência cega

  1. Usuário: Neste campo deverá ser informado um usuário cujo caixa será fechado. Somente serão listados neste campo usuários que são operadores de caixa e que possuem caixa aberto. Uma vez que o usuário for informado o sistema preencherá automaticamente a data de abertura e os turnos conforme informado na abertura do caixa. A informação deste dado é obrigatória.
  2. Data de abertura: Campo somente para leitura. Será automaticamente preenchido após o usuário ser informado.
  3. Turno: Idem data de abertura.
  4. Formas de pagamento: Nestes campos o usuário/caixa deverá informar, em cada forma de pagamento, o valor correspondente às vendas do dia. Estes dados deverão ser digitados através de conferência cega, ou seja, o usuário deverá primeiro informar os valores para depois confrontar com o que o sistema calcular. À medida que os valores forem informados estes serão totalizados no campo Total à direita.
  5. Botão <Fechamento>: Quando este botão for acionado será exibida a aba Fechamento.
    É importante ressaltar que para sangrias e suprimentos do caixa o usuário deverá manter os recibos gerados para conferência.

RN03 - Descrição dos campos e funcionalidades da rotina de fechamento na aba Fechamento

Apuração do fechamento: Nesta seção serão confrontados os valores informados na aba de conferência cega com os valores calculados pelo sistema onde:

  1. CALCULADO: Para o usuário/caixa em questão serão consideradas e discriminadas em cada forma de pagamento todas as vendas realizadas desde a abertura de seu caixa. Serão contabilizados também, desde a abertura do caixa, movimentos de sangria, suprimento de caixa e liquidações realizadas por este usuário. Sangrias, suprimentos e liquidações serão discriminadas em um grid logo à direita com os seguintes detalhes:
    • MOVIMENTO: Indica se foi sangria, suprimento ou liquidação.
    • VALOR: Valor do movimento.
    • DATA/HORA: Data e hora em que o movimento foi realizado.
    • MOTIVO: No caso da sangria ou suprimento será exibida a justificativa para tal movimento quando o mesmo foi realizado. Já no caso da liquidação deverá ser exibido: “Referente à liquidação do título XXXXX para o cliente XXXXX - XXXXXXXXXXXXXX”, onde X corresponde respectivamente ao código do documento liquidado, código e nome do cliente.
  2. INFORMADO: Os valores informados em cada forma de pagamento na aba de conferência cega serão listados nesta coluna.
  3. DIFERENÇA: Exibirá o valor da diferença entre o valor calculado subtraído pelo informado, seja ele positivo ou negativo. Quando a diferença for negativa o campo deverá assumir a cor de fundo vermelha.
  4. Observações: Neste campo poderão ser inseridas algumas observações em relação ao fechamento de caixa. As observações são livres para o usuário digitar o que desejar.
  5. Total calculado: Exibirá o total geral que o sistema calculou para vendas, liquidações, sangrias e suprimentos realizados no caixa do usuário em questão.
  6. Total informado: Exibirá o total geral que o usuário/caixa informou para vendas, sangrias e suprimentos.
  7. Saldo final: Exibirá a diferença da subtração de total calculado e total informado. O ideal é que o saldo final fique zerado, indicando que o fechamento do caixa bateu perfeitamente com o que o sistema calculou.
    Caso o saldo final fique negativo, o campo em questão assumirá a cor de fundo vermelha.

Após realizar o fechamento de um caixa o sistema deverá imprimir os dados do mesmo, ou seja, todos os dados existentes na aba Fechamento. Na impressão deverá constar local para assinatura do operador e também do responsável pelo fechamento do caixa.

RN04 - Descrição das funcionalidades da rotina Parâmetros

Quando este botão for acionado será exibida ao usuário uma tela de configurações onde deverá ser definida uma conta caixa de crédito e também um subcaixa para geração do movimento de crédito o valor do caixa fechado.

Deverá ser exibido ao usuário um campo onde poderá ser parametrizado um percentual/valor de tolerância para quebra de caixa, seja ela negativa ou positiva. Este campo deverá ser chamado “Tolerância para quebra de caixa (positiva/negativa)”.

Ainda nesta tela deverão ser definidas uma conta caixa de débito para diferença negativa no fechamento de caixa e uma conta caixa de crédito para diferença positiva no fechamento. Para as diferenças será utilizado o mesmo subcaixa da geração de crédito com o valor de fechamento.

RN05 - Fechamento do caixa

Ocorrerá no momento em que o botão <Fechar caixa> for acionado. Neste momento o sistema deverá:

  1. Verificar se na aba “Conferência cega” um usuário válido foi informado. Caso usuário informado não seja válido uma mensagem com a não conformidade deverá ser exibida e o fechamento deverá ser abortado.
  2. Verificar se foi informado valor maior que zero para pelo menos uma forma de pagamento na aba “Conferência cega”. Se nenhum valor foi informado, uma mensagem com a não conformidade deverá ser exibida e o fechamento será abortado.
  3. Verificar se na aba “Fechamento” o campo “Saldo final” está com o valor zero. Se não estiver, uma mensagem de confirmação deverá ser exibida ao usuário informando que os valores calculado e informado não bateram e perguntando se ele deseja realmente fechar o caixa.
  4. Se todos os passos acima estiverem OK, gerar movimento de crédito na conta caixa/subcaixa especificados nos parâmetros. Se nos parâmetros do PDV o sistema estiver configurado para fechar caixa e gerar caixa para cada usuário/operador, será gerado um movimento de débito na(s) conta(s) caixa configurada(s) tendo como observação do movimento: “Referente ao fechamento do caixa do usuário XXXXXX no data/hora XX/XX/XXXX XX:XX”, sendo que X corresponde respectivamente ao nome do usuário que teve o caixa fechado e a data e hora do fechamento.
  5. Após fechar um caixa, atualizar seu status para FECHADO.


No fechamento, se um usuário válido que possui seu caixa em aberto foi informado, o sistema procederá conforme segue abaixo:

  1. Será verificado se na aba Conferência cega pelo menos uma forma de pagamento possui valor informado. Caso contrário o fechamento será abortado e uma mensagem com a não conformidade será exibida ao usuário.
  2. Será verificado se o saldo final do fechamento é igual a zero. Se sim, o caixa será fechado normalmente. Caso não seja, o sistema irá alertar o usuário da diferença e perguntar se deseja realmente fechar o caixa com a diferença.
  3. Ao fechar o caixa as seguintes movimentações serão realizadas:
    • Será gerado um movimento de crédito com a conta caixa e subcaixa definidos nos parâmetros da rotina de controle de caixa.
    • Será gerado movimento de crédito ou débito nas contas caixas definidas nos parâmetros para armazenar as diferenças entre calculado e informado no fechamento.
    • Caso PDV esteja configurado para gerar caixa para cada venda realizada pelo usuário, será gerado nas contas caixas configuradas nos parâmetros do PDV um movimento de débito com o subcaixa determinado nos parâmetros da rotina de controle de caixa.

RN05 - Tela inicial (tela de pesquisa)

A tela inicial da rotina deverá dispor dos botões/funcionalidades:

  1. Sangria/Suprimento
  2. Fechamento de caixa
  3. Parâmetros

Logo abaixo deverá ser exibido um grid que listará todas as movimentações realizadas com os seguintes dados:

  1. TIPO MOVIMENTO: Informa se um determinado registro foi gerado a partir de uma sangria, suprimento ou fechamento de caixa.
  2. RESPONSÁVEL: Informa o usuário que realizou o tipo de movimento listado na primeira coluna.
  3. DATA/HORA: Informará a data e hora em que a última movimentação foi realizada.
  4. STATUS CAIXA: Informa se o caixa encontra-se aberto ou fechado.
  5. USUÁRIO/CAIXA: Informa o usuário responsável pelo caixa.
  6. DATA ABERTURA: Informa a data de abertura do caixa.
  7. DATA FECHAMENTO: Se o caixa já foi fechado, informa a data de fechamento do mesmo.
  8. OBSERVAÇÕES: No caso de sangria e suprimento, informa o motivo da movimentação. Para fechamento, informa às observações que foram gravadas no mesmo.


Na última coluna do grid além das opções de alteração, visualização e exclusão, deverão estar disponíveis (somente para Controle de caixa) opções que permitam ao usuário realizar sangria/suprimento ou fechar um determinado caixa. Obviamente, se um caixa já foi fechado à opção de sangria/suprimento não ficará habilitada.


    O grid deverá ordenar seus registros de forma decrescente pela data da ultima movimentação.

RN06 - Validações gerais

  1. As telas de sangria/suprimento e de fechamento deverão considerar/exibir somente movimentações de data menor ou igual à data de login do usuário. Desta forma se o usuário logar com data retroativa ele não corre o risco visualizar/alterar movimentações futuras.

Layout sugerido

Ferramentas pessoais
Espaços nominais

Variantes
Visualizações
Ações
Navegação
Ferramentas