ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Como controlar pagamento antecipado?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Ter Fev 05, 2019 9:55 am    Assunto: Como controlar pagamento antecipado? Responder com Citação

Amigos, estou com essa situação num sistema de agendamento de consultas para fisioterapia.

Costumeiramente o paciente faz 10 sessões e ao final ele paga.
Programei o sistema da seguinte forma:

Código:
Ao agendar, gravo os dados do paciente na tabela AGENDA, os dados dos procedimentos a serem aplicados na tabela PRODUCAO e o valor da sessão na tabela CONTASRECEBER.


Então, no momento do pagamento seleciona-se as 10 sessões para dar baixa.

Dito isso, existem pacientes que pagam antecipadamente as 10 sessões, já na primeira consulta.
Estou buscando uma forma de cadastrar as demais sessões como pagas, mas não estou achando uma forma prática de fazer isso.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Ter Fev 05, 2019 1:41 pm    Assunto: Responder com Citação

na tabela contas a receber nao tem um campo PAGO (S/N), VALOR_PAGO e DATA_PAGTO?
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Qua Fev 06, 2019 6:39 am    Assunto: Responder com Citação

Cada agendamento realizado gera uma conta a receber, que tem sim esses campos que você citou.

No entanto pensa no seguinte:

Fui até a clinica hoje e disse que faria 10 sessões. Já paguei todas, mas vou agendar as sessões uma vez por semana, um dia antes da mesma acontecer, por telefone.

Aí que não estou conseguindo achar uma forma de já lançar como paga. O sistema precisa avisar o usuario, no momento do agendamento, que estaria paga. Mas se for agendar a 11ª, aí gerar a cobrança
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Qua Fev 06, 2019 7:41 am    Assunto: Responder com Citação

coloca um campo entrada, na hora q for agendar, esse valor vc lanca no contas a receber como pago, sendo a data de pagto o dia q esta cadastrando, depois vc desconta esse valor do total. o valor q sobrar vc divide e lanca no receber
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Qui Fev 07, 2019 9:14 am    Assunto: Responder com Citação

Vamos lá, deixa eu ver se entendi.

Criar um campo ENTRADA ou CREDITO no cadastro do cliente.

Ao realizar o primeiro agendamento, na tela de agendamento, ter um edit para informar a ENTRADA.
Se entrada > que valor da sessão, grava valor entrada no cadastro do cliente - valor da sessão atual e grava a sessão atual como paga.

No proximo agendamento, verifica se ainda existe credito e vai abatendo o valor até zerar.

Seria mais ou menos isso?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Sex Fev 08, 2019 8:15 am    Assunto: Responder com Citação

lanca a entrada no contas a receber como quitado ja
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Sex Fev 08, 2019 8:19 am    Assunto: Responder com Citação

no caso vc teria q ter as tabelas:

Código:
- CLIENTES
  codcliente
  nome
  ...
- SESSOES
  codsessao
  codcliente
  data
  qtde
  valor_unitario
  valor_total
- SESSOES_AGENDA
  codsessao
  data
  hora
- RECEBER
  codreceber
  codsessao
  codcliente
  valor
  vencimento
  pago (S/N)
  data_pagto

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Sex Fev 08, 2019 12:45 pm    Assunto: Responder com Citação

Não entendi a sua logica.

Porque uma tabela de sessões e uma sessoes agenda?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Ter Fev 12, 2019 7:57 am    Assunto: Responder com Citação

a tabela sessao vai ter o ID da secao do cliente, pq ele pode fazer varias vezes. por exemplo: vai um dia e marca 3 sessoes, cobra dele, depois volta marca mais 5, cobra dele novamente. é com o id desta tabela q vc controla o contas a receber

e a tabela sessoes_agenda, é pra vc marcar os horarios q ele vai fazer a sessao, e tb indicar o profissional q vai atender
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Qua Fev 13, 2019 12:26 pm    Assunto: Responder com Citação

Minha estrutura é semelhante.

Na tabela agenda, vai o codigo do paciente data e hora
na tabela produção vai os procedimentos que serão aplicados na sessão e o valor de cada um
na tabela contasreceber vai o o valor e o codigo da sessão

Mas ainda assim não estou entendendo como controlar os pagamentos antecipados.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Qui Fev 14, 2019 7:54 am    Assunto: Responder com Citação

Citação:
Na tabela agenda, vai o codigo do paciente data e hora
na tabela produção vai os procedimentos que serão aplicados na sessão e o valor de cada um
na tabela contasreceber vai o o valor e o codigo da sessão


falta uma tabela na sua estrutura. vou modificar a estrutura de exemplo

Código:
- CLIENTES
  codcliente
  nome
  ...

- PROCEDIMENTOS
  codprocedimento
  procedimento
  valor

- SESSOES
  codsessao
  codcliente
  data
  qtde
  valor_total (somar todos procedimentos aqui)
  entrada (este valor vc salva no receber como pago)
  parcelas
  valor_parcelas (valor_total - entrada / parcelas)

- SESSOES_PROCEDIMENTOS
  codsessao
  codprocedimento
  valor

- SESSOES_AGENDA
  codsessao
  data
  hora

- RECEBER
  codreceber
  codsessao
  codcliente
  numero
  parcela
  valor
  vencimento
  pago (S/N)
  data_pagto

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Sex Fev 15, 2019 9:54 am    Assunto: Responder com Citação

Vou mudar um pouco. Ao invés de fazer o calculo com o valor, vou informar quantas sessões o paciente pagou.

Ainda estou pensando como fazer, mas vamos dar uma estudada.

A minha estrutura precisaria verificar se a sessão foi paga durante o processo de agendamento.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Sex Fev 15, 2019 1:43 pm    Assunto: Responder com Citação

e se ele pagar so uma parte?
faz do jeito q te falei q da certo
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
renanbg
Colaborador
Colaborador


Registrado: Quinta-Feira, 12 de Abril de 2012
Mensagens: 1158

MensagemEnviada: Seg Fev 18, 2019 7:41 am    Assunto: Responder com Citação

Sim, pensando dessa forma está correto.

Mas ainda não consegui elaborar uma forma de controlar as sessões pagas antecipadamente, com base no seu exemplo. Vou postar aqui como faço hoje pra ver se ajuda.

O paciente chega e pede um horario. O usuario clica num TCalendar, que abre os horarios daquele dia em um dbgrid. Seleciona o horario desejado e clica num botão que vai abrir um formulario. Neste formulario se informa o nome do paciente e os procedimentos que serão aplicados na seção.

Ao gravar, faço mais ou menos isso.

codpaciente, data e hora = TABELA AGENDA
cod_agendamento, codprocedimento, valor = TABELA PRODUCAO
codagendamento, valor, pago, data_pagamento = TABELA CONTASRECEBER

Suponhamos que o paciente fará 10 sessões em dias alternados. O custo destas sessões é de 400,00 e ele já paga tudo na primeira sessão, mas não agenda as demais. Ele agenda somente a segunda e vai agendar uma a uma sempre que vier até a clinica. Então, baseado na forma que faço, como verificar que ele já tem a sessão paga no momento que for agendar?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB