<?php
namespace App\Services;
use App\Entity\MemberActivity;
use App\Entity\Member;
use App\Entity\Transaction;
use DateTime;
class Helper
{
public $em;
public function __construct($em = null, $token = null)
{
$this->em = $em;
}
// Registrar en la tabla activity que este usuario ha querido app_member_edit la contraseña
public function memberActivity($em, $keyActivity, $idMember)
{
$created = new \Datetime("now");
$memberActivity = new MemberActivity();
$memberActivity->setKeyActivity($keyActivity);
$idMember = $em->getRepository(Member::class)->findOneBy(array('idMember' => $idMember));
$memberActivity->setIdMember($idMember);
$memberActivity->setFecha($created->getTimestamp());
$em->persist($memberActivity);
$em->flush();
}
// Limpiar los GET y POST que nos llegan para evitar códigos "Ataques"
public function sanitize($input)
{
if (is_array($input)) {
foreach ($input as $var => $val) {
$output[$var] = $this->sanitize($val);
}
} else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$input = self::cleanInput($input);
}
return $input;
}
public function cleanInput($input)
{
$search = array(
'@<script[^>]*?>.*?</script>@si', // Elimina javascript
'@<[\/\!]*?[^<>]*?>@si', // Elimina las etiquetas HTML
'@<style[^>]*?>.*?</style>@siU', // Elimina las etiquetas de estilo
'@<![\s\S]*?--[ \t\n\r]*>@', // Elimina los comentarios multi-línea
);
$output = preg_replace($search, '', $input);
return $output;
}
public function getNumeroFactura($idMember)
{
$em = $this->em;
$numeroFactura = null;
$fechaActual = new DateTime();
$year = $fechaActual->format('Y');
$facturacion = $em->getRepository(Transaction::class)->findOneBy(array('finished' => 1),array('facturationNumber' => 'DESC'));
///////////////////////////////////////////////////////////////////////////////////////////////
if (!$facturacion) {
$numeroFactura = "A000001";
return $numeroFactura . '-' . $year;
} else {
$facturationDate = explode("-",$facturacion->getFacturationNumber());
if($facturationDate[1] == $year){
$numeroFactura = $facturationDate[0];
$numeroFactura++;
$numeroFactura == strval($numeroFactura);
} else {
$numeroFactura = "A000001";
return $numeroFactura . '-' . $year;
}
}
switch (strlen($numeroFactura)) {
case 1:
$numeroFactura = "A00000" . $numeroFactura;
break;
case 2:
$numeroFactura = "A0000" . $numeroFactura;
break;
case 3:
$numeroFactura = "A000" . $numeroFactura;
break;
case 4:
$numeroFactura = "A00" . $numeroFactura;
break;
case 5:
$numeroFactura = "A0" . $numeroFactura;
break;
case 6:
$numeroFactura = "A" . $numeroFactura;
break;
}
$numeroFactura = $numeroFactura . '-' . $year;
return $numeroFactura;
}
// END Limpiar los GET y POST que nos llegan para evitar códigos "Ataques"
// Generar un slug a partir de un nombre
function slugify($string){
$string = self::stripAccents($string);
return strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $string), '-'));
}
function stripAccents($string){
$a = ['à','á','â','ã','ä','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ','À','Á','Â','Ã','Ä','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý'];
$b = ['a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','u','y','y','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N','O','O','O','O','O','U','U','U','U','Y'];
return str_replace($a,$b,$string);
}
// END Generar un slug a partir de un nombre
}