AJUDA COM LOGICA

CAIO.FR.SP 14/11/2009 10:51:58
#327742
galera preciso daajuda de voces pra criar uma logica.
é o seguinte estou fazendo um sisteminha para uma academia (olhem no forum mostrem suas telas)
e to parando na questao de gerar mensalidades
queria a ajuda de voce pra criar essa função, pensei na seguinte logica:
quando cadastro um cliente ele gera no db 12 mensalidades uma para cada mes, mas se o aluno frequentar a a cademia 2 mese por exemplo vai fikar 10 mensalidades em aberto e posteriormente em atraso.
qlguem pode me ajuda com uma logica mas eficiente?
abraços
BOLAXAO 14/11/2009 11:26:46
#327744
ae Caio...
no meu tcc da etec fiz um sistema para academia, so q a logica nao estava legal..
depois de comcluir o projeto pensei na seguinte lógica para as mensalidades:

Bancodedados tem uma parte (tabela) reservada para armazenar os campos (cod-integer, data-varchar e emisão-varchar)
nesta data, o operador escolhe o dia em que a mensalidade sera gerada.. por exemplo dia 1° ou 5°.. tanto faz..
blz..
depois de escolher o dia, mes...
o sistema cria um cadastro que é armazenaddo na tabela..

cod:1, data:01/10, emisão:nao

o sistema ao ser iniciado vai verificar se ja foi emitido neste mes..
emisao = nao
gerar mensalidades
declarar emisao como SIM

criar outro registro na tabela com a data do mes seguinte--cod=2, data=01/11, emisao=não

+ o - isso a logica q eu usaria..

qualquer duvida to aqui
CAIO.IN.DUST 14/11/2009 12:53:19
#327753
Caio, tudo bem, eu já passei por isso e a solução foi a seguinte (Pode não ser a melhor mais atendeu)

Bom para começar meu caso não é com clientes (alunos) mas com serviços, so para ilustrar mesmo, pode ser que você esteja tratando o produto da academia como um serviço e nao individual para cada cliente (não sei se fui claro)

Mas vamos lá, cada contrato de serviço tem um registro na tabela de contratos que vincular o contrato com o cliente, e tem dados como dia do vencimento, inicio do serviço data final (se nao tem data prevista é null), status do contrato, quantidade de faturas geradas (esse campo é para facilitar as consultas, pois na geração ja é atualizado ai não preciso dar um count na tabela de faturas),data da geração da ultima fatura, e outros.

Bom a base é sqlServer 2000, temos uma procedure que todos os dias roda na madrugada para geração dessas faturas e envio do arquivo para geração dos boletos para a grafica, Mas é bem simples,

1) Filtro todos os contratos ativos onde a diferença da data (dia do vencimento)/month(date)/year(date) e hoje seja menos de 20 dias e o mes da ultima date de geração da fatura não seja o mes corrente corrente.

2) Faço mais uma verificação com todas as possiveis faturas na tebela de faturas geradas, para saber se já não existe (pode ter sido gerado manualmente) e caso ja gerado eu so flego a data e crio um log

Bom o nosso aqui é bem simples e esta funcionando bem, até agora não apresentou problemas (espero que não apresente) hehehe


Abraços.
EMANDRADE2002 14/11/2009 14:16:01
#327756
Para poder fazer uma logica mas prescisa temos que saber o seguinte:
essas mensalidades vai ser geradas todas para um mesmo dia de vencimento ?
Ou vai ter cliente que vai pagar dia 10 e outro dia 20 ?
é presciso mas detalhes para poder elaborar uma função que servirá ao proposto. veja ai como vai ser e posta ai pra nos essas informções.
CAIO.FR.SP 14/11/2009 15:18:30
#327757
EMANDRADE2002, entao cada mensalidade vence em um determinado dia.
EDERMIR 16/11/2009 07:59:47
#327797
CAIO_FR_SP

Se o cliente contratar um SERVIÇO para 5, 10 ou 12 meses, então você pode emitir os boletos correspondentes pois a falta de pagamento acarreta em atraso conforme cláusula contratual.

Opções:
- Você pode emitir os boletos com vencimento À VISTA e com a ORIENTAÇÃO AO CAIXA: [Ô]NÃO RECEBER APÓS DIA xx/xx/xx[Ô]. (minha preferida)

- Emita os Boletos do mês.

- Os boletos NUNCA serão vencidos.


Escolha a melhor.
RCMRO 16/11/2009 10:22:37
#327814
Pessoal,

Vocês estão discutindo LÓGICA?
Aonde está a lógica de tudo isso que vocês explanaram?

Pára com isso. Cadê a regra do cliente para esse caso? Vai inventar uma e esperar o cliente dizer que não era assim e escrever tudo de novo?

E ainda tem gente que acredita que o CRUZ-CREDS vai colar... Isso ai, por mais simples que seja, precisa de um analista e não somente de programadores inventando código para adaptar uma coisa que está na cabeça deles e não na do cliente.
GREGO 16/11/2009 13:34:44
#327846
RCMRO - o cliente sempre tem a razão, ele conhece a regra de negócios dele, cada um pode trabalhar de uma forma, não é porque uma empresa é pequena que ela tem que trabalhar seguindo [Ô]padrões[Ô] definidos por analistas de sistemas.

Caio é simples isso:

Existe os boletos que de alguma forma estão relacionados aos clientes, no cadastro de cliente você coloca um campo de status, e toda vez que esse campo for alterado que permaneça um histórico, assim saberemos quando este cliente foi desativado, ai na contas a receber basta vc listar apenas os boletos com a data de vencimento dentro da data de ativação do cliente.

espero ter ajudado
RCMRO 16/11/2009 17:08:42
#327882
Adoro quando comprovam as minhas teorias...
Tks.
DANIKULL 16/11/2009 20:07:33
#327898
CAIO_FR_SP, boa noite.

Infelizmente o que você colocou no início é a pura verdade você pode gerar as dozes mensalidades de um só vez, mas pensse em contratos, para se usar a academia do seu cliente ele deve gerar um contrato, seja ele de 3 meses, 6 meses ou um ano sei lá veja isso com ele. Quano houver a aceitação do contrato novo ou renovado gera-se as menssalidades, Agora se o usuario assinar por 12 meses frequentar 2 meses 10 ficaram pendentes até ele trancar a matricula, mais isso não elimina a dívida ela ficara pendente ate o pagamento, ou seja, se ele pagou os 2 primeiro meses e trancou no terçeiro só vai dever uma, sele não pagou as duas e trancou na terceira vai ficar devendo 3, entendeu???
Quanto ao status do cliente é só para o sistema não gerar contas a pagar caso o cliente esteja trancado ou cancelado, ok???
EDERMIR 17/11/2009 08:25:01
#327912
Este tópico deveria ser alterado para [OFF] TRATAMENTO DE BOLETOS
Tópico encerrado , respostas não são mais permitidas