Este sistema foi implementado para um evento equestre em que os membros efetuavam um pagamento no inicio do evento, era-lhes dado um cartão, e durante o evento poderiam ir consumindo enquanto tivessem saldo. Depois de terminar o saldo, poderíamos efetuar mais um (ou vários) carregamentos para poderem continuar aconsumir.


O sistema assume os seguintes pressupostos:


  1. quando um cliente faz um carregamento é impresso um documento do tipo Consumo uma vez que esse documento não tem qualquer valor fiscar (ivas) e permite que o cliente fique com uma prova de que pagou
  2. durante o evento ou no final, os cartões serão fechados e nesse momento é que os documentos são integrados para efeitos de SAF-T
  3. O relatório X permite ver a realidade atual (valor faturado mais o valor que está em aberto nos cartões). O sistema respeita o facto de podermos escolher data diferentes e vermos os valores reais dessas datas uma vez que os produtos que estão dentro dos cartões passaram a ter a data para se conseguir fazer isto
  4. O relatório Z dá o que foi faturado (não incluindo o que ainda está em aberto nos cartões)


Para se implementar tudo isto, foram usadas as seguintes flags:


prepago) Desconta produtos registados, nos produtos em automático (1)

prepago) Valor default para cartões pre pagos (nulo)

prepago) Não permite abrir cartões que ainda não estejam carregados (nulo)

consumos) Afetam vendas (0)

geral) Operações diversas no ecran de registo (24_Adicionar valor a produto automático)


Criou-se um produto a pedir preço chamado "Carregamento". Colocou-se o id desse produto como produto em automático na aréa de cartões.


A área de cartões foi criada com 1000 mesas uma vez que foram impressos 1000 cartões.


Quando um cartão é aberto, o sistema pede o valor para Carregamento (produto em automático). Quando se abrir esse cartão novamente e se inserirem produtos, o valor dos produtos vai ser descontado no valor do produto Carregamento até esse produto ainda tiver valor para consumir. Depois disso, aparecerá uma mensagem de erro e o cliente terá de efetuar novo carregamento (usando as operações diversas do ecrã de registo).