Função PHP para gerar uma data em dia útil para pagamento de boletos

Olá!

Estava desenvolvendo um sistema para gerar boletos e me deparei com o seguinte problema: gerar o boleto com vencimento somente para dias úteis. É claro que, se o vencimento do boleto estivesse caindo em um sábado, por exemplo, bancos e lotérica aceitariam o pagamento em uma segunda-feira. Porém, para o tipo de negócio que estou desenvolvendo o sistema, que é um sistema de venda de ingressos, o cliente tem de pagar o ingresso com uma certa antecedência da data do evento. Por isso, precisa-se calcular fatores como: dias para pagamento do boleto e dias para confirmar o pagamento (geralmente é 48 horas, 2 dias).
Então, para que eu possa ver em qual data cairia o pagamento do boleto, resolvi trabalhar em um método/função. Sabendo em qual data seria o limite para o pagamento, adicionando dois dias para a confirmação de pagamento, poderia comparar com a data do evento. Se a data do evento for maior que a data limite para o pagamento mais dois dias, o boleto poderá ser gerado para essa data. Caso contrário, somente o pagamento por Cartão de Crédito seria permitido.

Método/Função 1 – Pega o dia da semana
Esse método não foi desenvolvido por mim. Foi criado pelo Felipe Marques. O usei, porém, para poder pegar o dia da semana de determinada data em Português.

Função 2 – Retorna uma data em dia útil de acordo com a data de geração da venda
Esse método não foi desenvolvido por mim. Foi criado pelo Felipe Marques. O usei, porém, para poder pegar o dia da semana de determinada data em Português.

Exemplo: Digamos que a venda de um ingresso para o dia 25/11/2014 (terça-feira) em uma quinta-feira ($data = 20/11/2014). Se definirmos como 3 dias o prazo para pagamento do produto (DIAS_PGTO), o pagamento poderá ser realizado até o dia 23 de novembro (Domingo). Porém, nesse dia, por não ser dia útil, não é possível pagar o boleto. O pagamento seria realizado no próximo dia útil – segunda-feira (24/11/2014). Como o prazo para confirmar o pagamento é de até 48 horas, o prazo extrapolaria a data do evento para qual o ingresso seria vendido (dia 25). Com esse método, podemos fazer a verificação (a verificação se uma data é menor que a outra não está explícita na função) e impedir tal venda por boleto. Não sei se fui bem claro, mas espero que tenham entendido. Obrigado!

CategoriasSem categoria

5 comentários

    • William Zimmermann Autor do postResponder

      Olá Filipe, eu que agradeço pela função! Vou corrigir.

  1. Junior Neves Responder

    Bom dia William e Felipe,

    Preciso calcular os dias úteis do mês atual até o dia 25 e ainda somar com os dias úteis a partir do dia 26 do mês passado, exemplo: a comissão de técnicos é calculada entre 26/11/2015 à 25/12/2015 e assim por diante.

    Podem me ajudar, não consigo criar essa função, vocês sabem como fazer?

    Obrigado

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.