Jump to content

Ajuda com lógica


Carlos Rocha
 Share

Recommended Posts

Pessoal, boas!

Preciso com uma ajuda aqui com lógica.

Em meu projeto, tenho as tabelas de Administradores, Clientes e PlanosClientes.

Os planos dos Clientes são planos de acesso à internet de um provedor de internet via rádio aqui do vilarejo.

Tenho uma tabela Pagamentos com a seguinte estrutura SQL:

CREATE TABLE pagamentos (
 idPagamentos int(10) unsigned NOT NULL AUTO_INCREMENT,
 idPlanoClientes int(10) NOT NULL,
 idAdmins int(1) NOT NULL,
 mesReferencia char(7) NOT NULL,
 dataPgto date NOT NULL,
 valorPgto double NOT NULL,
 multa double NOT NULL,
 desconto double NOT NULL,
 totalPago double NOT NULL,
 formaPgto char(2) NOT NULL,
 observacao text,
 PRIMARY KEY (idPagamentos)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Obs.: O campo "mesReferencia" é um "char(7) NOT NULL" pois ele será populado com o mês e o ano da competência do lançamento.

Minha dificuldade é a seguinte: Se o cliente tivesse comprado um TV de LED financiada em 12 vezes por exemplo, bastava fazer 12 lançamentos de débitos para aquela compra que o cliente fez e ir dando ok no banco em cada parcela.

Mas nesse meu caso, isso não existe. Não dá para lançar todas as prestações porque não sabemos quanto tempo o cliente ficará com o plano. Na verdade, nem ele mesmo deve saber!

Como ficaria a tabela de pagamentos nesse caso?

Estou no caminho certo?

Outra dúvida: como saber quais parcelas o cliente ainda não pagou nesse caso?

Carlos Rocha

Edited by carcleo
Link to comment
Share on other sites

HappyHippyHippo

ter um plano é independente de um plano de pagamento.

isso levaria a que comprasse a televisão a 12 meses, ao fim do primeiro desaparecia, e como o primeiro é de "borla" porque normalmente só começas a pagar no primeiro dia do segundo mês, tinha uma TV de graça.

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Tentei fazer a consulta abaixo:

   SELECT pagamentos.idPagamentos, pagamentos.mesReferencia FROM pagamentos, planosclientes
   WHERE
          pagamentos.idPlanoClientes = planosclientes.idPlanosClientes AND
          pagamentos.idPlanoClientes = 8 AND
          pagamentos.mesReferencia BETWEEN DATE_FORMAT(planosclientes.dataInstalacao, '%Y%-%m') AND DATE_FORMAT(CURRENT_DATE(), '%Y%-%m') ;

Essa consulta me retorna todos os lançamentos dentro do período determinado por ***ano-mês***.

1) Dessa forma ela esta excluindo a saída caso alguma saída para mesReferencia coincida com planosclientes.dataInstalacao ou CURRENT_DATE()* Como fazer para incluir os extremos nesta consulta?

2) Outra coisa é que preciso listar, NÃO os valores de competência que estão lançados. Mas SIM os meses de competência que faltam para preencher todos os meses daquele intervalo.

Carlos Rocha

Edited by carcleo
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.