UC00067 - Controle de caixa

De Wiki Java - Interno
Edição feita às 09h11min de 25 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: Na rotina de sangria/suprimento, usuário realiza um movimento de sangria informando um valor maior do que o total em dinheiro existente no subcaixa do operador naquele momento acionando o botão [Salvar] em seguida.

  • Sistema verifica se no subcaixa do operador existe valor em dinheiro igual ou maior que o valor informado para sangria. *Caso exista dinheiro suficiente no caixa do operador, a sangria será feita normalmente.
  • Caso valor em dinheiro no subcaixa do operador seja menor que o valor informado para a sangria, antes de realizar o movimento em questão será emitida ao usuário a seguinte mensagem de confirmação: O valor informado para a sangria é maior que o valor em dinheiro existente no caixa do operador neste momento. Este movimento poderá gerar diferenças no fechamento de caixa, uma vez que sangrias/suprimentos são contabilizados como dinheiro. Deseja prosseguir?

Fluxos de exceções

Fluxo 1: Tendo mais de um caixa fechado para um determinado operador, usuário tenta a alteração/exclusão de um fechamento anterior ao último caixa fechado.

  • Sistema aborta a operação e emite a seguinte mensagem de alerta: É permitida a alteração/exclusão somente para o último registro de fechamento de caixa do operador.


Fluxo 2: Usuário tenta alterar/excluir o último caixa fechado para um determinado operador, mas o operador em questão possui um caixa ainda em aberto.

  • Sistema aborta a operação e emite a seguinte mensagem de alerta: Não é permitido alterar/excluir fechamentos de caixa de um operador enquanto o mesmo possuir caixa em aberto.

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.
    
    Se for informado um valor de sangria maior que o valor em dinheiro existente no caixa do operador naquele momento uma mensagem de confirmação deverá ser exibida antes de realizar 
    o movimento.

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, entradas/saídas avulsas (rotina de movimento de caixa) e liquidações realizadas por este usuário/operador. Sangrias, suprimentos, movimentos de caixa avultos e liquidações serão discriminadas em um grid logo à direita com os seguintes detalhes:
    • MOVIMENTO: Indica se foi sangria, suprimento, movimento de caixa avulso 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. Para movimentos de caixa avulsos será exibido Referente ao movimento avulso de XXXX de caixa realizado dia YY/YY/YYYY com o valor de ZZ,ZZ pelo usuário WWWW na conta caixa AAAAAA- AAAAAA, onde X corresponde ao tipo de movimento (entrada ou saída), Y corresponde à data do movimento, Z corresponde ao valor do movimento, W corresponde ao usuário que realizou o movimento e A corresponde à conta caixa do movimento.
  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 (total calculado), 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. O movimento de saída deverá ser equivalente ao movimento de entrada gerado nas contas caixa/formas de pagamento configuradas no PDV, exemplo: Considerando que no PDV apenas as formas de pagamento dinheiro e cartão estão configurados para gerar caixa, um determinado operador vende 15.000,00 (total calculado) sendo 10.000,00 em dinheiro, 2.500,00 em cartão e 2.500,00 em contas a receber. Ao gerar o movimento de saída referente ao fechamento deste caixa o sistema considerará apenas 12.500,00, uma vez que estas são as formas de pagamento configuradas para gerar caixa na venda.
    • Sangria/Suprimento: Sangrias e suprimentos devem ser considerados como dinheiro, ou seja, todos os suprimentos feitos em um determinado caixa deverão ser somados e todas as sangrias deverão ser subtraídas. Tanto a soma quanto a subtração de sangrias e suprimentos deverão considerar a forma de pagamento dinheiro e sua respectiva 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 (caso tenha gerado crédito na venda), porém ao gerar a entrada com o subcaixa do tesoureiro este não será considerado uma vez que não é dinheiro.
    • Trocas: A exemplo do crédito aproveitado, a troca deverá gerar movimento de saída na conta de fechamento com o subcaixa do operador para zerá-lo, mas ao gerar a entrada no subcaixa do tesoureiro o total de troca não será considerado.
    • Movimentos de caixa avulsos: Caso no subcaixa do operador tenha sido realizados movimentos de caixa avulsos, sejam ele de entrada ou de saída, estes serão considerados da seguinte forma:
      • Movimento avulso de saída: Serão considerados e listados no grid da tela de fechamento, onde o total dos movimentos avulso de saída será subtraído da forma de pagamento dinheiro.
      • Movimento avulso de entrada: Serão considerados e listados no grid da tela de fechamento, onde o total dos movimentos avulsos de entrada será somado à forma de pagamento dinheiro.
  2. Com o valor de saída gerado no fechamento, deverá ser gerada uma entrada nas mesmas formas de pagamento/contas caixa configuradas para gerar caixa na venda (PDV) utilizando o subcaixa do tesoureiro.
  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.
    
    Se o total calculado for igual a 0,00 o caixa não poderá ser fechado.

Layout sugerido

Ferramentas pessoais
Espaços nominais

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