UC00067 - Controle de caixa

De Wiki Java - Interno
Edição feita às 11h06min de 4 de julho de 2014 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/checkouts > Fechamento 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 RN01.


Fluxo 4: Usuário aciona o botão <Fechamento de caixa>.

Fluxos alternativos

Fluxo 1: Após acessar a rotina em questão, o usuário aciona na última coluna do grid o botão <Sangria/Suprimento> em um determinado caixa que esteja aberto.

  • Sistema exibe tela de sangrias e suprimentos em modo de inclusão já preenchida com o usuário e turno de acordo com o registro selecionado.


Fluxo 2: Após acessar a rotina em questão usuário aciona na última coluna do grid o botão <Fechamento de caixa> em um determinado caixa que esteja aberto.

  • Sistema exibe a tela de fechamento de caixa em modo de inclusão já com os dado do caixa selecionado preenchidos.

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. Na sangria deverão ser gerados dois movimentos conforme segue abaixo:
    • Saída na Conta caixa para débito de sangria utilizando o subcaixa do operador.
    • Entrada na Conta caixa para crédito de sangria utilizando o subcaixa do tesoureiro.
  2. No suprimento também deverão ser gerados dois movimentos conforme descrito abaixo:
    • Saída na Conta caixa para débito de suprimento utilizando o subcaixa do tesoureiro.
    • Entrada na Conta caixa para crédito de suprimento utilizando o subcaixa do operador.
   
    As contas de débito e crédito de suprimento e sangria assim como o subcaixa do tesoureiro são definidos nos parâmetros da rotina em questão.
    
    O histórico das movimentações de crédito e débito de suprimento deverá conter o usuário/caixa que foi movimentado, o usuário (tesoureiro) que realizou a movimentação, valor e data/hora.

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, que possuem acesso à filial logada 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. As formas de pagamento serão basicamente as mesmas utilizadas no PDV conforme segue abaixo:
    • Dinheiro
    • Cartão
    • Cheque
    • Cheque pré-datado
    • Contas a receber
    • Crédito aproveitado
    • Convênio
    • Depósito
    • Financiamento
    • Troca
    • Sangria (não consta no PDV)
    • Suprimento (não consta no PDV)
  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.
    Créditos gerados não serão considerados no fechamento de caixa.

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.

Movimentações

No fechamento de um caixa serão geradas no sistema os seguintes movimentos:

  1. Com o valor total do caixa a ser fechado, será gerado um movimento de saída utilizando o subcaixa do operador na conta caixa de fechamento definida nos parâmetros da rotina em questão.
    • Sangria/Suprimento: No fechamento de caixa sangrias e suprimentos devem ser consideradas como dinheiro, ou seja, todos os suprimentos feitos em um determinado caixa deverão considerados como dinheiro e somados na respectiva forma de pagamento/conta caixa. Todas as sangrias feitas em um determinado caixa também serão consideradas como dinheiro, porem estas serão subtraídas na respectiva forma de pagamento/conta caixa.
    • Crédito gerado: Este não será considerado, nem na venda e nem no fechamento.
    • Crédito aproveitado: No fechamento do caixa ao gerar o movimento de saída na conta caixa de fechamento o total de crédito aproveitado deverá ser utilizado para zerar o subcaixa do operador, porém ao gerar a entrada com o subcaixa do tesoureiro este não será considerado uma vez que não é dinheiro.
  2. Nas mesmas contas definidas nos parâmetros do PDV para movimentação de caixa na venda (quando utilizando fechamento), será gerado um movimento de entrada utilizando o subcaixa do tesoureiro. Se o PDV estiver configurado para gerar os valores das formas de pagamento em diferentes contas na venda, assim também será feito no fechamento, gerando valores respectivos a cada conta conforme constavam no fechamento.
  3. Caso no fechamento tenha ocorrido quebra de caixa, está será tratada da seguinte maneira:
    • Se o valor informado para fechamento do caixa foi maior que o calculado, o sistema lançará a diferença entre o valor calculado e o informado na conta caixa para quebra de caixa positiva definida nos parâmetros da rotina em questão utilizando o subcaixa do tesoureiro.
    • Se o valor informado para fechamento do caixa foi menor que o calculado, o sistema lançará a diferença entre o valor calculado e o informado na conta caixa para quebra de caixa negativa definida nos parâmetros da rotina em questão utilizando o subcaixa do tesoureiro.
    
    Em todas as movimentações de caixa deverão constar o seguinte histórico: Movimento referente ao fechamento de caixa do usuário ZZZZZZZ no dia XX/XX/XXXX às YY:YY horas. 
    Onde X, Y e Z correspondem respectivamente ao dia, hora  e usuário/operador do fechamento do caixa.

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

Visível somente para usuários com acesso total ao sistema, quando este botão for acionado será exibida ao usuário uma tela de configurações onde serão definidos:

  1. Subcaixa da tesouraria: Campo onde deverá ser selecionado um subcaixa no qual serão realizados os movimentos de sangria, suprimento, quebra e fechamento de caixa.
  2. Conta caixa para débito de sangria: Campo onde deverá ser informada uma conta caixa de débito onde serão gerados (com subcaixa do operador) movimentos de saída com os valores das sangrias de caixa realizadas.
  3. Conta caixa para crédito de sangria: Campo onde deverá ser informada uma conta caixa de crédito onde serão gerados (com subcaixa da tesouraria) movimentos de entrada com os valores das sangrias de caixa realizadas.
  4. Conta caixa para débito de suprimento: Campo onde deverá ser informada uma conta caixa de débito onde serão gerados (com subcaixa da tesouraria) movimentos de saída com os valores dos suprimentos de caixa realizados.
  5. Conta caixa para crédito de suprimento: Campo onde deverá ser informada uma conta caixa de crédito onde serão gerados (com subcaixa do operador) movimentos de entrada com os valores dos suprimentos de caixa realizados.
  6. Conta caixa para fechamento: Campo onde o usuário deverá informar uma conta caixa de débito onde serão gerados (com subcaixa de cada operador) movimentos de saída com os valores dos fechamentos de cada caixa.
  7. Conta para quebra de caixa positiva: Campo onde deverá ser informada uma conta caixa de crédito onde serão gerados (com subcaixa da tesouraria) movimentos de entrada com os valores de quebra de caixa positivos.
  8. Conta para quebra de caixa negativa: Campo onde deverá ser informada uma conta caixa de débito onde serão gerados (com subcaixa da tesouraria) movimentos de saída com os valores de quebra de caixa negativos.

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 - Regras gerais

  • 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.
  • No momento em que o botão [Fechar caixa] for acionado 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.


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.

Outras informações

Em resumo, o fluxo de movimentação de caixa de usuário da abertura ao fechamento é:

  1. No cadastro do usuário que for um caixa, deverá ser marcado o parâmetro “Operador de caixa” (UC00052 - Cadastro de Usuários).
  2. Nos parâmetros do PDV deverá ser definido:
    • Se será utilizado fechamento de caixa: Se sim, antes de realizar uma venda o sistema verificará se o usuário logado é operador de caixa e se possui um caixa em aberto, caso contrário o mesmo não poderá vender.
    • Se para cada venda será gerado movimento de caixa para o usuário/operador: Se sim, deverão ser definidas as contas caixa onde os movimentos serão gerados, uma para todas as vendas ou uma para cada forma de pagamento. O usuário/operador também deverá estar vinculado a um subcaixa.
  3. Se o PDV está configurado para gerar caixa para cada venda do usuário/operador, o usuário que for vender deve estar vinculado a um subcaixa no cadastro de subcaixa. Sendo assim quando as vendas forem realizadas, os movimentos de caixa serão realizados utilizando o subcaixa vinculado ao usuário.
  4. Um caixa para o usuário/operador deverá ser aberto na rotina de abertura de caixa, onde serão configuradas também contas para crédito e débito de suprimento de caixa.
  5. No PDV, quando utilizando fechamento de caixa, será verificado se o usuário logado é operador de caixa e se o mesmo está vinculado a um subcaixa (se gerando caixa para as vendas) antes de permitir que a venda seja realizada.
  6. Suprimentos, sangrias e fechamento de caixas deverão ser realizados na rotina de controle de caixa cujos detalhes estão neste documento.

Layout sugerido

Ferramentas pessoais
Espaços nominais

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