Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Utilizando Datas


joanita

Pergunta

Como definir preços ex:(Suite verde (epoca baixa 10€ / alta 20€) conforme a data no ano (ou seja metade do ano é época alta a outra metade é baixa)... queria que o script visse a data atual e caso fosse época alta mostrava um preço, se fosse baixa mostrava o outro?

 

Existe forma de ao criar uma reserva, seja gravada a data de inserção e depois no php recuperar a data de inserção?

 

há como definir o script para eliminar automaticamente uma reserva, sempre que esta ultrapasse a data inserida no campo de checkout?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

1.

<?php
    $inicio_alta = new DateTime("2016-06-15"); //exemplo
    $fim_alta = $inicio_alta->add(new DateInterval("P3M")); //adiciona 3 meses
    echo $fim_alta->format("Y-m-d h:i:s");

E dá também uma olhada neste exemplo.

2. Sim. A opção chama-se CURRENT_TIMESTAMP.

3. Há, utilizando triggers

Editado por wootzor
Link para o comentário
Compartilhar em outros sites

  • 0

adoro isso no php, da pra fazer TUDO... o pior é fazelo porque basta um desleixo numa virgula pra já nada funcionar, quem domina a programação facilmente da com os erros, agora quem ta ainda no inicio como eu... desespera muito facilmente!

Ok... preciso mais ajudas (ou propriamente exemplos) o que é necessário postar aqui para me ajudarem a aplicar isso no meu código?

wootzor esse exemplo parece definir apenas os intervalos entre épocas, e como faço o php perceber quando é quando e inserir os valores adequados por epoca? inda nem sequer criei os campos necessários com os valores... como farias?

 

atualmente estamos assim:

<php

    // define a data de inicio da epoca alta
    $inicio_alta = new DateTime("01-04-2016"); //exemplo
    
    //adiciona 5 meses a essa data
    $fim_alta = $inicio_alta->add(new DateInterval("P5M"));
    
    // mostra data do fim da epoca alta
    echo "<p align ='center'>Data de fim da Época Alta: <b>";
    echo $fim_alta->format("d-m-y");
    echo "</b> ás <b>";
    echo $fim_alta->format("h:i:s"); echo "</b></p>";

?>

Editado por joanita
Link para o comentário
Compartilhar em outros sites

  • 0
<?php
  $inicio_alta = new DateTime("2016-04-01");
  $fim_alta = $inicio_alta->add(new DateInterval("P5M"));
  echo "Fim da época alta: " . $fim_alta->format("d-m-Y h:i:s") . "<br />";
  $hoje = new DateTime("now");
  if (($hoje >= $inicio_alta) && ($hoje <= $fim_alta))
  {
    //Aplicar Preços de Verão (por ex., pegas no preço "base" da tabela, acrescentas x% e mostras o novo preço)
  }
  else
  {
    //Aplicar Preços de época baixa
  }

 

Link para o comentário
Compartilhar em outros sites

  • 0

deixa ver se percebi... e onde é que isso vai buscar os respetivos preços? ou seja cada suite terá que ter 2 preços, o da alta e da baixa...

supõe... n campo suite, quando é escolhida a suite, isso deveria assumir que naquela data o preço daquela suite é tal... e mostraria isso numoutro campo o final da reserva $total que inda não criei na db... mas seria mostrado o valor da reserva nesse campo(mais a frente veremos ainda como adicionar o valor de outros campos e mostrar no $total) ex: preço do late_checkout, preço das atividades, preço camas_extra, preço do jantar_incluido etc... todos devem ser somados e exibido um total do valor geral da reserva com todos os campos

inicialmente eu tinha imaginado que teria que criar na tabela um campo para o valor da epoca baixa, ourto pra alta, um pra data em que foi inserido o registo da reserva, etc... por isso é q penso que seria interessante as pessoas q me ajudam poderem ter acesso ao script para testar e melhorarmos

 

Editado por joanita
Link para o comentário
Compartilhar em outros sites

  • 0

A questão é que, se puseres os preços de época alta e época baixa na tabela, vais estar a acrescentar informação "desnecessária" no sentido em que são dados que podem ser inferidos directamente em PHP sem necessidade de armazenamento permanente na base de dados. Imagina que o preço por noite da tua suite mais simples é 100€ (preço base ou de época baixa). Quando chegares à época alta, podes simplesmente ir buscar o valor à BD e recalculares o preço em função da nova margem (ex: $preço *= 1.15), o que permite até maior versatilidade, já que são cálculos que podes fazer e apresentar directamente no script e não precisas de estar constantemente a fazer pedidos à BD.

Editado por wootzor
Link para o comentário
Compartilhar em outros sites

  • 0

eu já coloquei estes campos no sql:

  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `nome` text CHARACTER SET utf8 NOT NULL,
  `telefone` decimal(9,0) NOT NULL,
  `email` varchar(50) CHARACTER SET utf8 NOT NULL,
  `suite` varchar(50) CHARACTER SET utf8 NOT NULL,
  `valor_suite` decimal(9,0) NOT NULL,
  `tipo_reserva` text CHARACTER SET utf8 NOT NULL,
  `data_reserva` date NOT NULL,
  `checkin` date NOT NULL,
  `checkout` date NOT NULL,
  `late_checkout` text CHARACTER SET utf8 NOT NULL,
  `pagamento` decimal(4,0) NOT NULL,
  `hora_chegada` time NOT NULL,
  `camas_extra` varchar(30) CHARACTER SET utf8 NOT NULL,
  `valor_camas_extra` decimal(9,0) NOT NULL,
  `berco` varchar(30) CHARACTER SET utf8 NOT NULL,
  `pequeno_almoco` varchar(30) CHARACTER SET utf8 NOT NULL,
  `jantar` varchar(30) CHARACTER SET utf8 NOT NULL,
  `data_jantar` date NOT NULL,
  `valor_jantar` decimal(9,0) NOT NULL,
  `animais` decimal(1,0) NOT NULL,
  `valor_animais` decimal(9,0) NOT NULL,
  `atividades` varchar(30) CHARACTER SET utf8 NOT NULL,
  `valor_atividade` decimal(9,0) NOT NULL,
  `transporte` varchar(30) CHARACTER SET utf8 NOT NULL,
  `valor_transporte` decimal(9,0) NOT NULL,
  `pedido_especial` varchar(250) CHARACTER SET utf8 NOT NULL,
  `valor_pedido_especial` decimal(9,0) NOT NULL,
  `valor_total` decimal(9,0) NOT NULL,

imagina... o campo "valor_suite" serviria para armazenar o valor, mas poderia ser feito como dizes para verificar se era epoca alta ou baixa e então depositar o valor neste campo... é q é assim... depois sera necessario somar os diversos campor valor e alguns são por ex:os gastos com comida e bebida que atraves do edit vao sendo colocados... tas a ver a coisa?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...