src/Services/Helper.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Services;
  3. use App\Entity\MemberActivity;
  4. use App\Entity\Member;
  5. use App\Entity\Transaction;
  6. use DateTime;
  7. class Helper
  8. {
  9.     public $em;
  10.     public function __construct($em null$token null)
  11.     {
  12.         $this->em $em;
  13.     }
  14.     
  15.     // Registrar en la tabla activity que este usuario ha querido app_member_edit la contraseña
  16.     public function memberActivity($em$keyActivity$idMember)
  17.     {
  18.         $created = new \Datetime("now");
  19.         $memberActivity = new MemberActivity();
  20.         $memberActivity->setKeyActivity($keyActivity);
  21.         $idMember $em->getRepository(Member::class)->findOneBy(array('idMember' => $idMember));
  22.         $memberActivity->setIdMember($idMember);
  23.         $memberActivity->setFecha($created->getTimestamp());
  24.         $em->persist($memberActivity);
  25.         $em->flush();
  26.     }
  27.     // Limpiar los GET y POST que nos llegan para evitar códigos "Ataques"
  28.     public function sanitize($input)
  29.     {
  30.         if (is_array($input)) {
  31.             foreach ($input as $var => $val) {
  32.                 $output[$var] = $this->sanitize($val);
  33.             }
  34.         } else {
  35.             if (get_magic_quotes_gpc()) {
  36.                 $input stripslashes($input);
  37.             }
  38.             $input self::cleanInput($input);
  39.         }
  40.         return $input;
  41.     }
  42.     public function cleanInput($input)
  43.     {
  44.         $search = array(
  45.             '@<script[^>]*?>.*?</script>@si'// Elimina javascript
  46.             '@<[\/\!]*?[^<>]*?>@si'// Elimina las etiquetas HTML
  47.             '@<style[^>]*?>.*?</style>@siU'// Elimina las etiquetas de estilo
  48.             '@<![\s\S]*?--[ \t\n\r]*>@'// Elimina los comentarios multi-línea
  49.         );
  50.         $output preg_replace($search''$input);
  51.         return $output;
  52.     }
  53.     public function getNumeroFactura($idMember)
  54.     {
  55.         $em $this->em;
  56.         $numeroFactura null;
  57.         $fechaActual = new DateTime();
  58.         $year $fechaActual->format('Y');
  59.         $facturacion $em->getRepository(Transaction::class)->findOneBy(array('finished' => 1),array('facturationNumber' => 'DESC'));
  60.         ///////////////////////////////////////////////////////////////////////////////////////////////
  61.         if (!$facturacion) {
  62.             $numeroFactura "A000001";
  63.             return $numeroFactura '-' $year;
  64.         } else {
  65.             $facturationDate explode("-",$facturacion->getFacturationNumber());
  66.             if($facturationDate[1] == $year){
  67.                 $numeroFactura $facturationDate[0];
  68.                 $numeroFactura++;
  69.                 $numeroFactura == strval($numeroFactura);    
  70.             } else {
  71.                 $numeroFactura "A000001";
  72.                 return $numeroFactura '-' $year;
  73.             }
  74.         }
  75.         switch (strlen($numeroFactura)) {
  76.             case 1:
  77.             $numeroFactura "A00000" $numeroFactura;
  78.             break;
  79.             case 2:
  80.             $numeroFactura "A0000" $numeroFactura;
  81.             break;
  82.             case 3:
  83.             $numeroFactura "A000" $numeroFactura;
  84.             break;
  85.             case 4:
  86.             $numeroFactura "A00" $numeroFactura;
  87.             break;
  88.             case 5:
  89.             $numeroFactura "A0" $numeroFactura;
  90.             break;
  91.             case 6:
  92.             $numeroFactura "A" $numeroFactura;
  93.             break;
  94.         }
  95.         $numeroFactura $numeroFactura '-' $year;
  96.         
  97.         return $numeroFactura;
  98.     }
  99.     // END Limpiar los GET y POST que nos llegan para evitar códigos "Ataques"
  100.     // Generar un slug a partir de un nombre
  101.     function slugify($string){
  102.         $string self::stripAccents($string);
  103.         return strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/''-'$string), '-'));
  104.     }
  105.     function stripAccents($string){
  106.         $a = ['à','á','â','ã','ä','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ','À','Á','Â','Ã','Ä','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý'];
  107.         $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'];
  108.         return str_replace($a,$b,$string);
  109.         
  110.     }
  111.     // END Generar un slug a partir de un nombre
  112. }