Jump to content


Photo

Numero De Parcelas Define Data_inicio/data_fim [duvida]


  • Faça o login para participar
7 replies to this topic

#1 DAn.

DAn.

    Turista

  • Usuários
  • 34 posts
  • Sexo:Masculino

Posted 14/07/2008, 12:01

fala ae gnt!

to precisando de uma ajudinha sobre esse assunto..

to fazendo um sistema intranet. e esbarrei nesse probleminha.

na forma de pagamento.. o kra pode escolher o numero de parcelas do pgto e a data de inicio.

ae na tela de confirmaçao e no meu banco de dados tem que ficar registrado a data de inicio e final do pagamento, de acordo com o numero de parcelas.

eu to usando essa funçaozinha: $data_fin = date ("d-m-Y", strtotime("+$parcela month")); //$parcela eh a quantidade de parcelas.

mas ela pega a data atual e nao a data de inicio, pra ele fazer a conta. somando errado neh.

algm pode me ajudar em fazer somar certinho o numero de parcelas na data inicio e na final

#2 Eduardo F.

Eduardo F.

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 14/07/2008, 13:04

Olá DAn.
Cara o seu php pega a data atual porque você está usando a função date que retorna a data do servidor em que seus scripts estão, portanto, fazendo date(d-m-Y) vc receberá como resposta "14-07-2007" naturalmente.
Se o cliente escolhe a data de início do pagamento, vc deve usar ela para fazer o seu cálculo. Vc não explicitou como o cliente escolhe a data de início, por isso não sei lhe dizer como proceder.
Geralmente nós vemos por aí 3 comboboxes onde o cliente escolhe o dia o mês e o ano. Às vezes o box do ano nem é mostrado, mas se vc fez dessa maneira vc deve pegar o valor do box mes e somar com o número de parcelas. Caso o número estoure (maior que 12) vc tem de fazer uma verificação para aumentar 1 no ano e tratar o valor para que o mês seja correto.
Bom, eu tentei ajudar dando este exemplo, mas caso ainda esteja confuso, afinal não sou nada bom em explicar hehehehe, mande como resposta a maneira que os seus clientes escolhem a data de início do pagamento, assim poderei dar uma resposta mais direcionada.

Issae, um grande abraço.

#3 DAn.

DAn.

    Turista

  • Usuários
  • 34 posts
  • Sexo:Masculino

Posted 14/07/2008, 15:18

bem..eh o seguinte.

o usuario ira fazer tipo um cadastro.

terá um form pro nome, serviço, vai escolher o numero de parcelas, o valor, e a data de inicio que vai se efetuar o pagamento.

isso ta td funcionando direitinho. no script e na logica.

meu problema ta em somar as parcelas no mes da data de inicio, dando a data final do pagamento, entendeu?

eu tentei modificar akela funçao. tentei por assim:

$data_final = date ("$data_inicio", strtotime("+$parcela month"));

ele dah erro. falando de "; inesperado". eu pus com "d-m-Y" no lugar do $data_inicio e funciona normalmente, mas somando da data atual.

entendeu? qualquer coisa eu posto o codigo todo. mas acho que nao eh preciso

Edição feita por: DAn., 14/07/2008, 15:19.


#4 Eduardo F.

Eduardo F.

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 14/07/2008, 21:29

Vamos lá DAn.
Cara a parte do cadastro e tal eu entendi perfeitamente, mas, como eu te falei anteriormente, você está usando a função date() do php para gerar uma data que lhe interessa. O caso é que a função date() somente serve para retornar a data que está definida no servidor.
Olhando na documentação do PHP encontrei isso "Retorna uma string de acordo com a string format dada usando o inteiro timestamp dado ou a hora atual local se nenhum timestamp é dado.", você pode checar isso em http://br.php.net/date. Logo usar a função date() com uma variável que você setou não vai rolar.
Para fazer o que você quer você vai ter de tratar a informação armazenada na variável $data_inicio.
Por exemplo, se a sua variável $data_inicio armazena algo do tipo "dd-mm-aaaa", você pode declarar um array e usa explode() na variável $data_inicio e assim obter em cada item do array o dia, o mês e o ano e daí trabalhar com eles e gerar a data final de pagamento.
Bom, eu espero que você tenha entendido a idéia, peço que você poste novamente alguns dados do seu php para podermos desenvolver a solução para o seu script.
Aguardo seu retorno, um abraço.

#5 DAn.

DAn.

    Turista

  • Usuários
  • 34 posts
  • Sexo:Masculino

Posted 15/07/2008, 09:56

uhum eu pensei nisso tbm..

$separa = explode("-",$data);

echo "data: $data_ini

dia: $separa[0] 

mes: $separa[1]

ano: $separa[2]";

e somar as parcelas no mes. mas o problema vai ser se passar de 12 (dezembro). ae vai ter que mudar o ano e voltar o mes.

vc tem alguma ideia? to pensando aki como fazer.

#6 Eduardo F.

Eduardo F.

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 15/07/2008, 10:02

Pois é DAn. Você vai ter que fazer uma rotina que cheque se o mês passou de 12 ou não. Já fiz isso algumas vezes e foi sempre na base dos ifs. Uma idéia que vem direto na cabeça é:

$mes = $mes + $nroparcelas;
if($mes > 12) {
	 $ano++;
	 $mes = $mes - 12;
}

Dessa maneira o mês e o ano são corrigidos.

Bom, espero ter ajudado. Qualquer coisa posta de novo ^^

#7 DAn.

DAn.

    Turista

  • Usuários
  • 34 posts
  • Sexo:Masculino

Posted 15/07/2008, 10:27

mt bom!

coube como uma luva aki.

eu tava viajando fazendo por while ¬¬"

esse if ta lindo.

brigadao msm kra! vc me adiantou mt.

agradecido.

abraços!!

#8 Eduardo F.

Eduardo F.

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 15/07/2008, 13:33

Hehehe, sem problemas. Fico feliz por ter ajudado.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq