Actualizacion proyecto topsify

parent 4fc2b4df
<?php
/**
* ###################
* 1-INICIO SESION PHP
* ###################
*
*/
if (session_id() == '' || !isset($_SESSION)) {
session_start();
}
/**
* #################################
* 2-OBTENCION DE URI Y PARAMETROS
* #################################
*/
$params = getParametersArray(urldecode($_SERVER['QUERY_STRING']));
write_log($_SERVER['QUERY_STRING'], "INFO");
/**
* ####################################################################################
* 6-CASO CUANDO ENTEL REDIIRECCIONA HACIA ESTA PAGINA CON EL MSISDN EN LA QUERY (GET)
* ####################################################################################
*/
$urlRetorno = "http://new.hitsahora.cl/app/musica";
if(empty($params)){
//$urlRetorno = $_SESSION["urlRetorno"];
write_log("Retorno con msisdn vacio, por parametros vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.hitsahora.cl/app/musica?msisdn=&m=1");
die();
}else if($params[0] == "&error"){
//$urlRetorno = $_SESSION["urlRetorno"];
write_log("Retorno con msisdn vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.hitsahora.cl/app/musica?msisdn=&m=1");
die();
}else if ($params[0] == "&entelsid" && $params[1] == "") {
//$urlRetorno = $_SESSION["urlRetorno"];
write_log("Retorno con msisdn vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.hitsahora.cl/app/musica?msisdn=&m=1");
die();
} else if ($params[0] == "&entelsid" && $params[1] != "") {
//$urlRetorno = $_SESSION["urlRetorno"];
$json = obtenerMsisdnBySID($params[1]);
write_log($json["msisdn"],"INFO");
if ($json["msisdn"] == "") {
write_log("Retorno con msisdn vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.hitsahora.cl/app/musica?msisdn=&m=1");
die();
}
$msisdn = $json['msisdn'];
write_log("Retorno con msisdn", "INFO");
write_log($urlRetorno, "INFO");
write_log($msisdn, "INFO");
$msisdn = substr($msisdn, 3);
header("Location: http://new.hitsahora.cl/app/musica?msisdn=$msisdn");
die();
}
/**
* #################################
* 3-DEFINICION DE DATOS A UTILIZAR
* #################################
*/
$urlRetorno = explode("=", $params[0])[1];
$_SESSION["urlRetorno"] = $urlRetorno;
$urlEntel = "http://smanager.vas.entelpcs.cl/get_content?stype=0";
/**
* #################################
* 4-CHEQUEO DE IP CLIENTE
* #################################
*/
$check = checkIP(getClientIp(null, false));
//Chequeo IP
if (!$check) {
write_log("IP no válida", "INFO");
header("Location: http://new.hitsahora.cl/app/musica?msisdn=&m=1");
die();
}
/**
* #################################
* 4-CHEQUEO MSISDN DE COOKIE ENTEL
* #################################
*/
if (isset($_COOKIE['User-Identity-Forward-msisdn']) && $_COOKIE['User-Identity-Forward-msisdn'] != "") {
$msisdn = substr($_COOKIE['User-Identity-Forward-msisdn'], -11);
write_log("COOKIE identificada", "INFO");
write_log("$msisdn obtenido", "INFO");
header("Location: http://new.hitsahora.cl/app/musica?msisdn=$msisdn");
die();
}
/**
* ################################################
* 5-LLAMADA A URL ENTEL PARA OBTENCION DE MSISDN
* ################################################
*/
$protocol = getProtocolOfSelfHost();
$selfHost = $protocol . $_SERVER['HTTP_HOST'];
$urlFinalEntel = "$urlEntel&content=$selfHost/script.php?";
write_log("Redireccionando a entel", "INFO");
write_log("$urlFinalEntel", "INFO");
header("Location: $urlFinalEntel");
die();
#######FUNCIONES####################
function getClientIp($ip = null, $deep_detect = TRUE) {
write_log("entrando a obtencion de IP...","INFO");
if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) {
$ip = $_SERVER["REMOTE_ADDR"];
if ($deep_detect) {
if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
} else {
$ip = $_SERVER["REMOTE_ADDR"];
}
write_log($ip,"INFO");
return $ip;
}
function getParametersArray($uri) {
write_log("entrando a obtencion de parametros URI...","INFO");
$arr = explode("&", $uri);
if (!empty($arr)) {
$arr2 = explode("=", $uri);
write_log(json_encode($arr2),"INFO");
return $arr2;
}
write_log(json_encode($arr),"INFO");
return $arr;
}
function getProtocolOfSelfHost() {
write_log("entrando a obtencion de protocolo HOST...","INFO");
$protocol = "";
if (isset($_SERVER['HTTPS']) &&
($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$protocol = 'https://';
} else {
$protocol = 'http://';
}
write_log(json_encode($protocol),"INFO");
return $protocol;
}
function checkIP($ip) {
write_log("entrando a chequeo de ip...","INFO");
$url = "http://soperator.gearlabs.cl/GetOperador?ip=$ip";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
write_log($output,"INFO");
write_log($httpcode, "INFO");
if ($httpcode == 200) {
if ($output !== "") {
$operador = json_decode($output, true)["operador"];
if ($operador == "entel") {
return true;
}
}
}
return false;
}
function obtenerMsisdnBySID($sId) {
write_log("entrando a obtencion de msisdn por sid...","INFO");
$params = array('sId' => $sId);
$url = 'http://54.221.214.144/smanager/smanager.php?' . http_build_query($params);
$retornoJson = null;
write_log("llamando url $url ....","INFO");
try {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$output = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
write_log($output,"INFO");
write_log($status_code, "INFO");
curl_close($ch);
if ($status_code == 200) {
$retornoJson = json_decode($output, true);
//$operador = $retornoJson['operador'];
}
} catch (\Exception $e) {
$retornoJson = array();
return $retornoJson;
}
return $retornoJson;
}
function write_log($cadena, $tipo) {
if (!file_exists("/tmp/logs")) {
mkdir("/tmp/logs", 0777, true);
}
$arch = fopen("/tmp/logs/proxy_" . date("Y-m-d") . ".txt", "a+");
fwrite($arch, "[" . date("Y-m-d H:i:s.u") . " " . $_SERVER['REMOTE_ADDR'] . " " .
" - $tipo ] " . $cadena . PHP_EOL);
fclose($arch);
}
########################
?>
<?php
namespace App\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\PluLista;
use App\Entity\PluImagen;
use App\Entity\PluCancion;
use App\Entity\Audio;
use App\Utilities\Utiles;
class CancionesController extends AbstractController
{
private $manager = null;
private $queryBuilder = null;
public function busqueda():Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::busqueda', 'app/canciones');
return $this->render('backend/canciones/canciones_sin_preparar.html.twig',array("audios" =>[]));
}
public function buscarCancion(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::buscarCancion', 'app/canciones');
$this->manager = $this->getDoctrine()->getManager('default');
$filtro = $request->get('filtro');
$searchString = $request->get('searchString');
$log->debug("$filtro | $searchString");
$listadoCancionesPreparadas = $this->manager->getRepository(PluCancion::class)->getListadoIdCancionesPreparadas();
if($filtro == 1){//Artista
$audiosPreparados = $this->manager->getRepository(PluCancion::class)->getAudioNoPreparadoByArtistaLike($searchString,$listadoCancionesPreparadas);
}else if($filtro == 2){//Album
$audiosPreparados = $this->manager->getRepository(PluCancion::class)->getAudioNoPreparadoByAlbumLike($searchString, $listadoCancionesPreparadas);
}else if($filtro == 3){//Cancion
$audiosPreparados = $this->manager->getRepository(PluCancion::class)->getAudioNoPreparadoByCancionLike($searchString, $listadoCancionesPreparadas);
}
return $this->render('backend/canciones/lista_canciones_no_preparadas.html.twig', array(
'audios' => $audiosPreparados));
}
public function prepararCancion(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::prepararCancion', 'app/canciones');
$json = new JsonResponse();
$this->manager = $this->getDoctrine()->getManager('default');
$idCancion = $request->get("idCancion");
$cancionOriginal = $this->manager->getRepository(Audio::class)->find($idCancion);
$path = "";
$cant = $this->manager->getRepository(PluCancion::class)->chequearCantCancion($cancionOriginal);
if($cant > 0){
$log->debug("La cancion $idCancion ya esta siendo procesada...");
$json->setData(array('errors' => 'Estimado usuario, esta cancion ya se encuentra en proceso de preparación...'));
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST);
return $json;
}
$log->debug("Generando cancion para audio $idCancion...");
$cancionPreparada = new PluCancion();
$cancionPreparada->setIdOriginal($cancionOriginal);
$cancionPreparada->setCanEstado(PluCancion::ESTADO_NO_PROCESADO);
$cancionPreparada->setCanEliminado(PluCancion::ELIMINADO_FALSE);
$cancionPreparada->setCreatedAt(new \DateTime());
$cancionPreparada->setUpdatedAt(new \DateTime());
$this->manager->persist($cancionPreparada);
$this->manager->flush();
if($cancionPreparada){
$log->debug("Cancion generada para audio $idCancion...");
$json->setData(array('success' => 'Cancion seleccionada para preparación.'));
$json->setStatusCode(JsonResponse::HTTP_OK);
return $json;
}else{
$log->debug("Ha ocurrido un error al tratar de generar la cancion para el audio $idCancion...");
$json->setData(array('errors' => 'Estimado usuario, en estos momentos no podemos atender su solicitud. Intente más tarde por favor.'));
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST);
return $json;
}
}
public function listadoCancionesPreparadas(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::listadoCancionesPreparadas', 'app/canciones');
$log->debug("Mostrando listado de canciones preparadas...");
$ua = $request->headers->get('User-Agent');
$canciones = $this->getDoctrine()->getRepository(PluCancion::class)->getCancionesByEstadoAsObjects(1);
return $this->render('backend/canciones/lista_canciones.html.twig', array("canciones"=>$canciones, "isChrome"=>Utiles::isWindowsChrome($ua)));
}
}
<?php
namespace App\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\PluLista;
use App\Entity\PluImagen;
use App\Entity\PluCancion;
use App\Entity\Audio;
use App\Utilities\Utiles;
class CancionesController extends AbstractController
{
private $manager = null;
private $queryBuilder = null;
public function busqueda():Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::busqueda', 'app/canciones');
return $this->render('backend/canciones/canciones_sin_preparar.html.twig',array("audios" =>[]));
}
public function buscarCancion(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::buscarCancion', 'app/canciones');
$this->manager = $this->getDoctrine()->getManager('default');
$filtro = $request->get('filtro');
$searchString = $request->get('searchString');
$log->debug("$filtro | $searchString");
$listadoCancionesPreparadas = $this->manager->getRepository(PluCancion::class)->getListadoIdCancionesPreparadas();
if($filtro == 1){//Artista
$audiosPreparados = $this->manager->getRepository(PluCancion::class)->getAudioNoPreparadoByArtistaLike($searchString,$listadoCancionesPreparadas);
}else if($filtro == 2){//Album
$audiosPreparados = $this->manager->getRepository(PluCancion::class)->getAudioNoPreparadoByAlbumLike($searchString, $listadoCancionesPreparadas);
}else if($filtro == 3){//Cancion
$audiosPreparados = $this->manager->getRepository(PluCancion::class)->getAudioNoPreparadoByCancionLike($searchString, $listadoCancionesPreparadas);
}
return $this->render('backend/canciones/lista_canciones_no_preparadas.html.twig', array(
'audios' => $audiosPreparados));
}
public function prepararCancion(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::prepararCancion', 'app/canciones');
$json = new JsonResponse();
$this->manager = $this->getDoctrine()->getManager('default');
$idCancion = $request->get("idCancion");
$cancionOriginal = $this->manager->getRepository(Audio::class)->find($idCancion);
$path = "";
$cant = $this->manager->getRepository(PluCancion::class)->chequearCantCancion($cancionOriginal);
if($cant > 0){
$log->debug("La cancion $idCancion ya esta siendo procesada...");
$json->setData(array('errors' => 'Estimado usuario, esta cancion ya se encuentra en proceso de preparación...'));
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST);
return $json;
}
$log->debug("Generando cancion para audio $idCancion...");
$cancionPreparada = new PluCancion();
$cancionPreparada->setIdOriginal($cancionOriginal);
$cancionPreparada->setCanEstado(PluCancion::ESTADO_NO_PROCESADO);
$cancionPreparada->setCanEliminado(PluCancion::ELIMINADO_FALSE);
$cancionPreparada->setCreatedAt(new \DateTime());
$cancionPreparada->setUpdatedAt(new \DateTime());
$this->manager->persist($cancionPreparada);
$this->manager->flush();
if($cancionPreparada){
$log->debug("Cancion generada para audio $idCancion...");
$json->setData(array('success' => 'Cancion seleccionada para preparación.'));
$json->setStatusCode(JsonResponse::HTTP_OK);
return $json;
}else{
$log->debug("Ha ocurrido un error al tratar de generar la cancion para el audio $idCancion...");
$json->setData(array('errors' => 'Estimado usuario, en estos momentos no podemos atender su solicitud. Intente más tarde por favor.'));
$json->setStatusCode(JsonResponse::HTTP_BAD_REQUEST);
return $json;
}
}
public function listadoCancionesPreparadas(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::ListadoController::listadoCancionesPreparadas', 'app/canciones');
$log->debug("Mostrando listado de canciones preparadas...");
$ua = $request->headers->get('User-Agent');
$canciones = $this->getDoctrine()->getRepository(PluCancion::class)->getCancionesByEstadoAsObjects(1);
return $this->render('backend/canciones/lista_canciones.html.twig', array("canciones"=>$canciones, "isChrome"=>Utiles::isWindowsChrome($ua)));
}
}
<?php
namespace App\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\PluLista;
use App\Entity\PluCancion;
class IndexController extends AbstractController
{
private $manager = null;
public function inicio(Request $request): Response
{
$this->manager = $this->getDoctrine()->getManager('default');
$numLis = $this->manager->getRepository(PluLista::class)->counter();
$numCanPrep = $this->manager->getRepository(PluCancion::class)->counter();
return $this->render('backend/index.html.twig', array("numLis" => $numLis, "numCanPrep" => $numCanPrep));
}
}
<?php
namespace App\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\PluLista;
use App\Entity\PluCancion;
class IndexController extends AbstractController
{
private $manager = null;
public function inicio(Request $request): Response
{
$this->manager = $this->getDoctrine()->getManager('default');
$numLis = $this->manager->getRepository(PluLista::class)->counter();
$numCanPrep = $this->manager->getRepository(PluCancion::class)->counter();
return $this->render('backend/index.html.twig', array("numLis" => $numLis, "numCanPrep" => $numCanPrep));
}
}
<?php
namespace App\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\PluLista;
use App\Entity\PluImagen;
use App\Entity\PluCancion;
use App\Entity\PluSuscripcion;
use App\Entity\Audio;
use App\Entity\PluRegistroTxCobro;
use App\Entity\PluRegistroTxDesinscripcion;
use App\Entity\PluRegistroTxSuscripcion;
use App\Utilities\Utiles;
class SuscripcionesController extends AbstractController
{
private $manager = null;
public function busqueda():Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::busqueda', 'app/suscripciones');
$log->debug("entrando en listado de suscripciones...");
$this->manager = $this->getDoctrine()->getManager('default');
$filtros = $this->manager->getRepository(PluSuscripcion::class)->getListaMsisdn();
return $this->render('backend/suscripciones/busqueda_suscripciones.html.twig',array("suscripciones" =>[], "filtros" =>$filtros));
}
public function buscarSuscripcion(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::buscarSuscripcion', 'app/suscripciones');
$this->manager = $this->getDoctrine()->getManager('default');
$filtro = $request->get('filtro');
$fechaInicio = $request->get('fechaInicio');
$fechaFin = $request->get('fechaFin');
$log->debug("$filtro | $fechaInicio | $fechaFin");
$suscripciones = $this->manager->getRepository(PluSuscripcion::class)->getSuscripciones($filtro,$fechaInicio." 00:00:00",$fechaFin." 23:59:59");
return $this->render('backend/suscripciones/suscripciones.html.twig', array(
'suscripciones' => $suscripciones,
));
}
public function busquedaAlertas(Request $request): Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::busquedaAlertas', 'app/alertas-suscripciones');
$log->debug("entrando en listado de alertas de suscripciones...");
$this->manager = $this->getDoctrine()->getManager('default');
$filtros = $this->manager->getRepository(PluSuscripcion::class)->getListaMsisdn();
$filtrosTipo = ["Suscripción", "Desinscripción", "Cobro"];
return $this->render('backend/suscripciones/busqueda_alertas_suscripciones.html.twig',array("alertas" =>[], "filtros" =>$filtros, "filtrosTipo" => $filtrosTipo));
}
public function buscarAlertas(Request $request): Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::alertasSuscripciones', 'app/alertas-suscripciones');
$this->manager = $this->getDoctrine()->getManager('default');
$filtroTipo = $request->get('filtroTipo');
$filtro = $request->get('filtro');//1-suscripciones 2-desuscripciones 3-cobros
$fechaInicio = $request->get('fechaInicio');
$fechaFin = $request->get('fechaFin');
$log->debug("$filtro | $fechaInicio | $fechaFin");
switch($filtroTipo){
case 1:
//Suscripciones
$alertas = $this->manager->getRepository(PluRegistroTxSuscripcion::class)->getAlertasSuscripciones($filtro, $fechaInicio,$fechaFin);
break;
case 2:
//Desinscripciones
$alertas = $this->manager->getRepository(PluRegistroTxDesinscripcion::class)->getAlertasDesinscripciones($filtro, $fechaInicio,$fechaFin);
break;
case 3:
//Cobros
$alertas = $this->manager->getRepository(PluRegistroTxCobro::class)->getAlertasCobros($filtro, $fechaInicio,$fechaFin);
break;
default:
break;
}
return $this->render('backend/suscripciones/alertas.html.twig', array(
'alertas' => $alertas,
));
}
}
<?php
namespace App\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\PluLista;
use App\Entity\PluImagen;
use App\Entity\PluCancion;
use App\Entity\PluSuscripcion;
use App\Entity\Audio;
use App\Entity\PluRegistroTxCobro;
use App\Entity\PluRegistroTxDesinscripcion;
use App\Entity\PluRegistroTxSuscripcion;
use App\Utilities\Utiles;
class SuscripcionesController extends AbstractController
{
private $manager = null;
public function busqueda():Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::busqueda', 'app/suscripciones');
$log->debug("entrando en listado de suscripciones...");
$this->manager = $this->getDoctrine()->getManager('default');
$filtros = $this->manager->getRepository(PluSuscripcion::class)->getListaMsisdn();
return $this->render('backend/suscripciones/busqueda_suscripciones.html.twig',array("suscripciones" =>[], "filtros" =>$filtros));
}
public function buscarSuscripcion(Request $request):Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::buscarSuscripcion', 'app/suscripciones');
$this->manager = $this->getDoctrine()->getManager('default');
$filtro = $request->get('filtro');
$fechaInicio = $request->get('fechaInicio');
$fechaFin = $request->get('fechaFin');
$log->debug("$filtro | $fechaInicio | $fechaFin");
$suscripciones = $this->manager->getRepository(PluSuscripcion::class)->getSuscripciones($filtro,$fechaInicio." 00:00:00",$fechaFin." 23:59:59");
return $this->render('backend/suscripciones/suscripciones.html.twig', array(
'suscripciones' => $suscripciones,
));
}
public function busquedaAlertas(Request $request): Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::busquedaAlertas', 'app/alertas-suscripciones');
$log->debug("entrando en listado de alertas de suscripciones...");
$this->manager = $this->getDoctrine()->getManager('default');
$filtros = $this->manager->getRepository(PluSuscripcion::class)->getListaMsisdn();
$filtrosTipo = ["Suscripción", "Desinscripción", "Cobro"];
return $this->render('backend/suscripciones/busqueda_alertas_suscripciones.html.twig',array("alertas" =>[], "filtros" =>$filtros, "filtrosTipo" => $filtrosTipo));
}
public function buscarAlertas(Request $request): Response{
$log = Utiles::setLog('App\BackendBundle\Controller::SuscripcionesController::alertasSuscripciones', 'app/alertas-suscripciones');
$this->manager = $this->getDoctrine()->getManager('default');
$filtroTipo = $request->get('filtroTipo');
$filtro = $request->get('filtro');//1-suscripciones 2-desuscripciones 3-cobros
$fechaInicio = $request->get('fechaInicio');
$fechaFin = $request->get('fechaFin');
$log->debug("$filtro | $fechaInicio | $fechaFin");
switch($filtroTipo){
case 1:
//Suscripciones
$alertas = $this->manager->getRepository(PluRegistroTxSuscripcion::class)->getAlertasSuscripciones($filtro, $fechaInicio,$fechaFin);
break;
case 2:
//Desinscripciones
$alertas = $this->manager->getRepository(PluRegistroTxDesinscripcion::class)->getAlertasDesinscripciones($filtro, $fechaInicio,$fechaFin);
break;
case 3:
//Cobros
$alertas = $this->manager->getRepository(PluRegistroTxCobro::class)->getAlertasCobros($filtro, $fechaInicio,$fechaFin);
break;
default:
break;
}
return $this->render('backend/suscripciones/alertas.html.twig', array(
'alertas' => $alertas,
));
}
}
<?php
namespace App\BackendBundle\DataFixtures;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use App\Entity\PlaylistUserAdministrator;
class UserAdministratorFixtures extends Fixture
{
private $passwordEncoder;
public function __construct(UserPasswordEncoderInterface $passwordEncoder)
{
$this->passwordEncoder = $passwordEncoder;
}
public function load(ObjectManager $manager)
{
// $product = new Product();
// $manager->persist($product);
$userAdmin = new PlaylistUserAdministrator();
$userAdmin->setUadUsername('admin');
$userAdmin->setPassword($this->passwordEncoder->encodePassword(
$userAdmin,
'12345678'
));
$manager->persist($userAdmin);
$manager->flush();
$manager->flush();
}
}
<?php
namespace App\BackendBundle\DataFixtures;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use App\Entity\PlaylistUserAdministrator;
class UserAdministratorFixtures extends Fixture
{
private $passwordEncoder;
public function __construct(UserPasswordEncoderInterface $passwordEncoder)
{
$this->passwordEncoder = $passwordEncoder;
}
public function load(ObjectManager $manager)
{
// $product = new Product();
// $manager->persist($product);
$userAdmin = new PlaylistUserAdministrator();
$userAdmin->setUadUsername('admin');
$userAdmin->setPassword($this->passwordEncoder->encodePassword(
$userAdmin,
'12345678'
));
$manager->persist($userAdmin);
$manager->flush();
$manager->flush();
}
}
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
namespace App\BackendBundle\EventListener;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\HttpFoundation\Session\Session;
use App\Entity\UsuarioAdministrador;
/**
* Description of LoginListener
*
* @author Ing 04
*/
class LoginListener {
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{
$session = new Session();
$user = $event->getAuthenticationToken()->getUser();
if($user instanceof UsuarioAdministrador){
$user->setUadUltimoAcceso(new \DateTime());
$this->em->persist($user);
$this->em->flush();
$session->set('uad_correo', $user->getUadCorreo());
$session->set('uad_ultimo_acceso', $user->getUadUltimoAcceso()->format('Y-m-d h:i:s'));
}
}
}
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
namespace App\BackendBundle\EventListener;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\HttpFoundation\Session\Session;
use App\Entity\UsuarioAdministrador;
/**
* Description of LoginListener
*
* @author Ing 04
*/
class LoginListener {
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{
$session = new Session();
$user = $event->getAuthenticationToken()->getUser();
if($user instanceof UsuarioAdministrador){
$user->setUadUltimoAcceso(new \DateTime());
$this->em->persist($user);
$this->em->flush();
$session->set('uad_correo', $user->getUadCorreo());
$session->set('uad_ultimo_acceso', $user->getUadUltimoAcceso()->format('Y-m-d h:i:s'));
}
}
}
<?php
namespace App\BackendBundle\Security;
//use App\Entity\PlaylistUserAdministrator;
use App\Entity\UsuarioAdministrador;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Csrf\CsrfToken;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator;
use Symfony\Component\Security\Http\Util\TargetPathTrait;
class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
{
use TargetPathTrait;
private $entityManager;
private $urlGenerator;
private $csrfTokenManager;
private $passwordEncoder;
public function __construct(EntityManagerInterface $entityManager, UrlGeneratorInterface $urlGenerator, CsrfTokenManagerInterface $csrfTokenManager, UserPasswordEncoderInterface $passwordEncoder)
{
$this->entityManager = $entityManager;
$this->urlGenerator = $urlGenerator;
$this->csrfTokenManager = $csrfTokenManager;
$this->passwordEncoder = $passwordEncoder;
}
public function supports(Request $request)
{
return 'app_login' === $request->attributes->get('_route')
&& $request->isMethod('POST');
}
public function getCredentials(Request $request)
{
$credentials = [
'uad_username' => $request->request->get('uad_username'),
'password' => $request->request->get('password'),
'csrf_token' => $request->request->get('_csrf_token'),
];
$request->getSession()->set(
Security::LAST_USERNAME,
$credentials['uad_username']
);
return $credentials;
}
public function getUser($credentials, UserProviderInterface $userProvider)
{
$token = new CsrfToken('authenticate', $credentials['csrf_token']);
if (!$this->csrfTokenManager->isTokenValid($token)) {
throw new InvalidCsrfTokenException();
}
$user = $this->entityManager->getRepository(UsuarioAdministrador::class)->findOneBy(['uadUser' => $credentials['uad_username']]);
if (!$user) {
// fail authentication with a custom error
throw new CustomUserMessageAuthenticationException('Usuario Inválido.');
}
return $user;
}
public function checkCredentials($credentials, UserInterface $user)
{
return $this->passwordEncoder->isPasswordValid($user, $credentials['password']);
}
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
return new RedirectResponse($targetPath);
}
$response = new RedirectResponse($this->getIndexPage(),302);
return $response;
}
/*public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
//TODO
}*/
protected function getLoginUrl()
{
return $this->urlGenerator->generate('app_login');
}
protected function getIndexPage(){
return $this->urlGenerator->generate('app_backend_index');
}
}
<?php
namespace App\BackendBundle\Security;
//use App\Entity\PlaylistUserAdministrator;
use App\Entity\UsuarioAdministrador;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Csrf\CsrfToken;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator;
use Symfony\Component\Security\Http\Util\TargetPathTrait;
class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
{
use TargetPathTrait;
private $entityManager;
private $urlGenerator;
private $csrfTokenManager;
private $passwordEncoder;
public function __construct(EntityManagerInterface $entityManager, UrlGeneratorInterface $urlGenerator, CsrfTokenManagerInterface $csrfTokenManager, UserPasswordEncoderInterface $passwordEncoder)
{
$this->entityManager = $entityManager;
$this->urlGenerator = $urlGenerator;
$this->csrfTokenManager = $csrfTokenManager;
$this->passwordEncoder = $passwordEncoder;
}
public function supports(Request $request)
{
return 'app_login' === $request->attributes->get('_route')
&& $request->isMethod('POST');
}
public function getCredentials(Request $request)
{
$credentials = [
'uad_username' => $request->request->get('uad_username'),
'password' => $request->request->get('password'),
'csrf_token' => $request->request->get('_csrf_token'),
];
$request->getSession()->set(
Security::LAST_USERNAME,
$credentials['uad_username']
);
return $credentials;
}
public function getUser($credentials, UserProviderInterface $userProvider)
{
$token = new CsrfToken('authenticate', $credentials['csrf_token']);
if (!$this->csrfTokenManager->isTokenValid($token)) {
throw new InvalidCsrfTokenException();
}
$user = $this->entityManager->getRepository(UsuarioAdministrador::class)->findOneBy(['uadUser' => $credentials['uad_username']]);
if (!$user) {
// fail authentication with a custom error
throw new CustomUserMessageAuthenticationException('Usuario Inválido.');
}
return $user;
}
public function checkCredentials($credentials, UserInterface $user)
{
return $this->passwordEncoder->isPasswordValid($user, $credentials['password']);
}
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
return new RedirectResponse($targetPath);
}
$response = new RedirectResponse($this->getIndexPage(),302);
return $response;
}
/*public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
//TODO
}*/
protected function getLoginUrl()
{
return $this->urlGenerator->generate('app_login');
}
protected function getIndexPage(){
return $this->urlGenerator->generate('app_backend_index');
}
}
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use App\Entity\UsuarioAdministrador;
class CambiarClaveUsuarioCommand extends Command
{
protected static $defaultName = 'app:cambiar-clave-usuario';
private $em;
private $encoder;
public function __construct($name = null, EntityManagerInterface $em, UserPasswordEncoderInterface $encoder ) {
parent::__construct($name);
$this->em = $em;
$this->encoder = $encoder;
}
protected function configure()
{
$this
->setDescription('Command para cambiar clave de un usuario dado')
->addArgument('usuario', InputArgument::REQUIRED, 'Nombre del Usuario')
->addArgument('clave', InputArgument::REQUIRED, 'Nueva clave del Usuario')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$io = new SymfonyStyle($input, $output);
$usuario = $input->getArgument('usuario');
$clave = $input->getArgument('clave');
if ($usuario) {
$usuarioAdministrador = $this->em
->getRepository(UsuarioAdministrador::class)
->findOneBy(array('uadUser' => $usuario));
$usuarioAdministrador->setPassword($this->encoder->encodePassword($usuarioAdministrador,
$clave
));
$usuarioAdministrador->setUpdatedAt(new \DateTime());
$io->success('Cambiando...');
$this->em->persist($usuarioAdministrador);
$this->em->flush();
}
$io->success('Cambio de clave exitosa.');
}
}
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use App\Entity\UsuarioAdministrador;
class CambiarClaveUsuarioCommand extends Command
{
protected static $defaultName = 'app:cambiar-clave-usuario';
private $em;
private $encoder;
public function __construct($name = null, EntityManagerInterface $em, UserPasswordEncoderInterface $encoder ) {
parent::__construct($name);
$this->em = $em;
$this->encoder = $encoder;
}
protected function configure()
{
$this
->setDescription('Command para cambiar clave de un usuario dado')
->addArgument('usuario', InputArgument::REQUIRED, 'Nombre del Usuario')
->addArgument('clave', InputArgument::REQUIRED, 'Nueva clave del Usuario')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$io = new SymfonyStyle($input, $output);
$usuario = $input->getArgument('usuario');
$clave = $input->getArgument('clave');
if ($usuario) {
$usuarioAdministrador = $this->em
->getRepository(UsuarioAdministrador::class)
->findOneBy(array('uadUser' => $usuario));
$usuarioAdministrador->setPassword($this->encoder->encodePassword($usuarioAdministrador,
$clave
));
$usuarioAdministrador->setUpdatedAt(new \DateTime());
$io->success('Cambiando...');
$this->em->persist($usuarioAdministrador);
$this->em->flush();
}
$io->success('Cambio de clave exitosa.');
}
}
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use App\Entity\PluCancion;
use App\Entity\PluLista;
use App\Utilities\Utiles;
class VigenciaCancionesPreparadasCommand extends Command
{
protected static $defaultName = 'app:vigencia-canciones-preparadas';
private $em;
const DIAS_MAXIMOS_VIGENCIA = 30;
public function __construct($name = null, EntityManagerInterface $em) {
parent::__construct($name);
$this->em = $em;
}
protected function configure()
{
$this
->setDescription('Comando que verifica la vigencia de las canciones que no se han agregado a ninguna lista y estan preparadas')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$io = new SymfonyStyle($input, $output);
$log = Utiles::setLog('App\Command::VigenciaCancionesPreparadasCommand', 'command/vigenciaCancionesPreparadas');
$log->debug("Iniciando ejecucion de command VigenciaCancionesPreparadasCommand... ");
$encontrado = false;
$canciones = $this->em
->getRepository(PluCancion::class)
->findAll();
$listas = $this->em
->getRepository(PluLista::class)
->findAll();
foreach($canciones as $cancion){
foreach($listas as $lista){
if($encontrado == false && $lista->hasCancion($cancion)){
$encontrado = true;
}
}
if($encontrado == false){
$dias = $cancion->getVigenciaPreparacion();
if($dias > self::DIAS_MAXIMOS_VIGENCIA){
$log->debug("Cancion Eliminada, supera los ".self::DIAS_MAXIMOS_VIGENCIA." dias, ID : ".$cancion->getCanId());
$io->success("Cancion Eliminada, supera los ".self::DIAS_MAXIMOS_VIGENCIA." dias, ID : ".$cancion->getCanId());
$this->em->remove($cancion);
$this->em->flush();
}else{
$log->debug("Cancion ID :".$cancion->getCanId()." vigente");
}
}else{
$log->debug("Cancion ID :".$cancion->getCanId()." se encuentra presente en una lista.");
}
$encontrado = false;
}
$log->debug("Finalizando ejecucion de command VigenciaCancionesPreparadasCommand... ");
$io->success('COMANDO EJECUTADO');
}
}
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use App\Entity\PluCancion;
use App\Entity\PluLista;
use App\Utilities\Utiles;
class VigenciaCancionesPreparadasCommand extends Command
{
protected static $defaultName = 'app:vigencia-canciones-preparadas';
private $em;
const DIAS_MAXIMOS_VIGENCIA = 30;
public function __construct($name = null, EntityManagerInterface $em) {
parent::__construct($name);
$this->em = $em;
}
protected function configure()
{
$this
->setDescription('Comando que verifica la vigencia de las canciones que no se han agregado a ninguna lista y estan preparadas')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$io = new SymfonyStyle($input, $output);
$log = Utiles::setLog('App\Command::VigenciaCancionesPreparadasCommand', 'command/vigenciaCancionesPreparadas');
$log->debug("Iniciando ejecucion de command VigenciaCancionesPreparadasCommand... ");
$encontrado = false;
$canciones = $this->em
->getRepository(PluCancion::class)
->findAll();
$listas = $this->em
->getRepository(PluLista::class)
->findAll();
foreach($canciones as $cancion){
foreach($listas as $lista){
if($encontrado == false && $lista->hasCancion($cancion)){
$encontrado = true;
}
}
if($encontrado == false){
$dias = $cancion->getVigenciaPreparacion();
if($dias > self::DIAS_MAXIMOS_VIGENCIA){
$log->debug("Cancion Eliminada, supera los ".self::DIAS_MAXIMOS_VIGENCIA." dias, ID : ".$cancion->getCanId());
$io->success("Cancion Eliminada, supera los ".self::DIAS_MAXIMOS_VIGENCIA." dias, ID : ".$cancion->getCanId());
$this->em->remove($cancion);
$this->em->flush();
}else{
$log->debug("Cancion ID :".$cancion->getCanId()." vigente");
}
}else{
$log->debug("Cancion ID :".$cancion->getCanId()." se encuentra presente en una lista.");
}
$encontrado = false;
}
$log->debug("Finalizando ejecucion de command VigenciaCancionesPreparadasCommand... ");
$io->success('COMANDO EJECUTADO');
}
}
This diff is collapsed.
This diff is collapsed.
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ApiSmsEntel
*
* @ORM\Table(name="api_sms_entel", indexes={@ORM\Index(name="fk_cliente_apisms", columns={"cli_id"}), @ORM\Index(name="fk_usuariomovil_apismsentel", columns={"umo_msisdn"})})
* @ORM\Entity
*/
class ApiSmsEntel
{
/**
* @var int
*
* @ORM\Column(name="asm_serial", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $asmSerial;
/**
* @var string|null
*
* @ORM\Column(name="asm_comando", type="string", length=100, nullable=true)
*/
private $asmComando;
/**
* @var string
*
* @ORM\Column(name="asm_la", type="string", length=10, nullable=false)
*/
private $asmLa;
/**
* @var string|null
*
* @ORM\Column(name="asm_id", type="string", length=100, nullable=true)
*/
private $asmId;
/**
* @var string
*
* @ORM\Column(name="asm_transid", type="string", length=100, nullable=false)
*/
private $asmTransid;
/**
* @var string|null
*
* @ORM\Column(name="asm_type", type="string", length=20, nullable=true)
*/
private $asmType;
/**
* @var string|null
*
* @ORM\Column(name="asm_servicetag", type="string", length=50, nullable=true)
*/
private $asmServicetag;
/**
* @var string|null
*
* @ORM\Column(name="asm_result", type="string", length=20, nullable=true)
*/
private $asmResult;
/**
* @var \DateTime|null
*
* @ORM\Column(name="asm_fecha", type="datetime", nullable=true)
*/
private $asmFecha;
/**
* @var \Cliente
*
* @ORM\ManyToOne(targetEntity="Cliente")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="cli_id", referencedColumnName="cli_id")
* })
*/
private $cli;
/**
* @var \UsuarioMovil
*
* @ORM\ManyToOne(targetEntity="UsuarioMovil")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="umo_msisdn", referencedColumnName="umo_msisdn")
* })
*/
private $umoMsisdn;
public function getAsmSerial(): ?int
{
return $this->asmSerial;
}
public function getAsmComando(): ?string
{
return $this->asmComando;
}
public function setAsmComando(?string $asmComando): self
{
$this->asmComando = $asmComando;
return $this;
}
public function getAsmLa(): ?string
{
return $this->asmLa;
}
public function setAsmLa(string $asmLa): self
{
$this->asmLa = $asmLa;
return $this;
}
public function getAsmId(): ?string
{
return $this->asmId;
}
public function setAsmId(?string $asmId): self
{
$this->asmId = $asmId;
return $this;
}
public function getAsmTransid(): ?string
{
return $this->asmTransid;
}
public function setAsmTransid(string $asmTransid): self
{
$this->asmTransid = $asmTransid;
return $this;
}
public function getAsmType(): ?string
{
return $this->asmType;
}
public function setAsmType(?string $asmType): self
{
$this->asmType = $asmType;
return $this;
}
public function getAsmServicetag(): ?string
{
return $this->asmServicetag;
}
public function setAsmServicetag(?string $asmServicetag): self
{
$this->asmServicetag = $asmServicetag;
return $this;
}
public function getAsmResult(): ?string
{
return $this->asmResult;
}
public function setAsmResult(?string $asmResult): self
{
$this->asmResult = $asmResult;
return $this;
}
public function getAsmFecha(): ?\DateTimeInterface
{
return $this->asmFecha;
}
public function setAsmFecha(?\DateTimeInterface $asmFecha): self
{
$this->asmFecha = $asmFecha;
return $this;
}
public function getCli(): ?Cliente
{
return $this->cli;
}
public function setCli(?Cliente $cli): self
{
$this->cli = $cli;
return $this;
}
public function getUmoMsisdn(): ?UsuarioMovil
{
return $this->umoMsisdn;
}
public function setUmoMsisdn(?UsuarioMovil $umoMsisdn): self
{
$this->umoMsisdn = $umoMsisdn;
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ApiSmsEntel
*
* @ORM\Table(name="api_sms_entel", indexes={@ORM\Index(name="fk_cliente_apisms", columns={"cli_id"}), @ORM\Index(name="fk_usuariomovil_apismsentel", columns={"umo_msisdn"})})
* @ORM\Entity
*/
class ApiSmsEntel
{
/**
* @var int
*
* @ORM\Column(name="asm_serial", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $asmSerial;
/**
* @var string|null
*
* @ORM\Column(name="asm_comando", type="string", length=100, nullable=true)
*/
private $asmComando;
/**
* @var string
*
* @ORM\Column(name="asm_la", type="string", length=10, nullable=false)
*/
private $asmLa;
/**
* @var string|null
*
* @ORM\Column(name="asm_id", type="string", length=100, nullable=true)
*/
private $asmId;
/**
* @var string
*
* @ORM\Column(name="asm_transid", type="string", length=100, nullable=false)
*/
private $asmTransid;
/**
* @var string|null
*
* @ORM\Column(name="asm_type", type="string", length=20, nullable=true)
*/
private $asmType;
/**
* @var string|null
*
* @ORM\Column(name="asm_servicetag", type="string", length=50, nullable=true)
*/
private $asmServicetag;
/**
* @var string|null
*
* @ORM\Column(name="asm_result", type="string", length=20, nullable=true)
*/
private $asmResult;
/**
* @var \DateTime|null
*
* @ORM\Column(name="asm_fecha", type="datetime", nullable=true)
*/
private $asmFecha;
/**
* @var \Cliente
*
* @ORM\ManyToOne(targetEntity="Cliente")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="cli_id", referencedColumnName="cli_id")
* })
*/
private $cli;
/**
* @var \UsuarioMovil
*
* @ORM\ManyToOne(targetEntity="UsuarioMovil")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="umo_msisdn", referencedColumnName="umo_msisdn")
* })
*/
private $umoMsisdn;
public function getAsmSerial(): ?int
{
return $this->asmSerial;
}
public function getAsmComando(): ?string
{
return $this->asmComando;
}
public function setAsmComando(?string $asmComando): self
{
$this->asmComando = $asmComando;
return $this;
}
public function getAsmLa(): ?string
{
return $this->asmLa;
}
public function setAsmLa(string $asmLa): self
{
$this->asmLa = $asmLa;
return $this;
}
public function getAsmId(): ?string
{
return $this->asmId;
}
public function setAsmId(?string $asmId): self
{
$this->asmId = $asmId;
return $this;
}
public function getAsmTransid(): ?string
{
return $this->asmTransid;
}
public function setAsmTransid(string $asmTransid): self
{
$this->asmTransid = $asmTransid;
return $this;
}
public function getAsmType(): ?string
{
return $this->asmType;
}
public function setAsmType(?string $asmType): self
{
$this->asmType = $asmType;
return $this;
}
public function getAsmServicetag(): ?string
{
return $this->asmServicetag;
}
public function setAsmServicetag(?string $asmServicetag): self
{
$this->asmServicetag = $asmServicetag;
return $this;
}
public function getAsmResult(): ?string
{
return $this->asmResult;
}
public function setAsmResult(?string $asmResult): self
{
$this->asmResult = $asmResult;
return $this;
}
public function getAsmFecha(): ?\DateTimeInterface
{
return $this->asmFecha;
}
public function setAsmFecha(?\DateTimeInterface $asmFecha): self
{
$this->asmFecha = $asmFecha;
return $this;
}
public function getCli(): ?Cliente
{
return $this->cli;
}
public function setCli(?Cliente $cli): self
{
$this->cli = $cli;
return $this;
}
public function getUmoMsisdn(): ?UsuarioMovil
{
return $this->umoMsisdn;
}
public function setUmoMsisdn(?UsuarioMovil $umoMsisdn): self
{
$this->umoMsisdn = $umoMsisdn;
return $this;
}
}
This diff is collapsed.
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Artista
*
* @ORM\Table(name="artista")
* @ORM\Entity
*/
class Artista
{
/**
* @var int
*
* @ORM\Column(name="art_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $artId;
/**
* @var string|null
*
* @ORM\Column(name="art_nombre", type="string", length=100, nullable=true)
*/
private $artNombre;
/**
* @var int|null
*
* @ORM\Column(name="art_eliminado", type="smallint", nullable=true)
*/
private $artEliminado;
/**
* @var \DateTime|null
*
* @ORM\Column(name="created_at", type="datetime", nullable=true)
*/
private $createdAt;
/**
* @var \DateTime|null
*
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Album", mappedBy="art")
*/
private $alb;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Contenido", inversedBy="art")
* @ORM\JoinTable(name="contenido_artista",
* joinColumns={
* @ORM\JoinColumn(name="art_id", referencedColumnName="art_id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="con_id", referencedColumnName="con_id")
* }
* )
*/
private $con;
/**
* Constructor
*/
public function __construct()
{
$this->alb = new \Doctrine\Common\Collections\ArrayCollection();
$this->con = new \Doctrine\Common\Collections\ArrayCollection();
}
public function getArtId(): ?int
{
return $this->artId;
}
public function getArtNombre(): ?string
{
return $this->artNombre;
}
public function setArtNombre(?string $artNombre): self
{
$this->artNombre = $artNombre;
return $this;
}
public function getArtEliminado(): ?int
{
return $this->artEliminado;
}
public function setArtEliminado(?int $artEliminado): self
{
$this->artEliminado = $artEliminado;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* @return Collection|Album[]
*/
public function getAlb(): Collection
{
return $this->alb;
}
public function addAlb(Album $alb): self
{
if (!$this->alb->contains($alb)) {
$this->alb[] = $alb;
$alb->addArt($this);
}
return $this;
}
public function removeAlb(Album $alb): self
{
if ($this->alb->contains($alb)) {
$this->alb->removeElement($alb);
$alb->removeArt($this);
}
return $this;
}
/**
* @return Collection|Contenido[]
*/
public function getCon(): Collection
{
return $this->con;
}
public function addCon(Contenido $con): self
{
if (!$this->con->contains($con)) {
$this->con[] = $con;
}
return $this;
}
public function removeCon(Contenido $con): self
{
if ($this->con->contains($con)) {
$this->con->removeElement($con);
}
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Artista
*
* @ORM\Table(name="artista")
* @ORM\Entity
*/
class Artista
{
/**
* @var int
*
* @ORM\Column(name="art_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $artId;
/**
* @var string|null
*
* @ORM\Column(name="art_nombre", type="string", length=100, nullable=true)
*/
private $artNombre;
/**
* @var int|null
*
* @ORM\Column(name="art_eliminado", type="smallint", nullable=true)
*/
private $artEliminado;
/**
* @var \DateTime|null
*
* @ORM\Column(name="created_at", type="datetime", nullable=true)
*/
private $createdAt;
/**
* @var \DateTime|null
*
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Album", mappedBy="art")
*/
private $alb;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Contenido", inversedBy="art")
* @ORM\JoinTable(name="contenido_artista",
* joinColumns={
* @ORM\JoinColumn(name="art_id", referencedColumnName="art_id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="con_id", referencedColumnName="con_id")
* }
* )
*/
private $con;
/**
* Constructor
*/
public function __construct()
{
$this->alb = new \Doctrine\Common\Collections\ArrayCollection();
$this->con = new \Doctrine\Common\Collections\ArrayCollection();
}
public function getArtId(): ?int
{
return $this->artId;
}
public function getArtNombre(): ?string
{
return $this->artNombre;
}
public function setArtNombre(?string $artNombre): self
{
$this->artNombre = $artNombre;
return $this;
}
public function getArtEliminado(): ?int
{
return $this->artEliminado;
}
public function setArtEliminado(?int $artEliminado): self
{
$this->artEliminado = $artEliminado;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* @return Collection|Album[]
*/
public function getAlb(): Collection
{
return $this->alb;
}
public function addAlb(Album $alb): self
{
if (!$this->alb->contains($alb)) {
$this->alb[] = $alb;
$alb->addArt($this);
}
return $this;
}
public function removeAlb(Album $alb): self
{
if ($this->alb->contains($alb)) {
$this->alb->removeElement($alb);
$alb->removeArt($this);
}
return $this;
}
/**
* @return Collection|Contenido[]
*/
public function getCon(): Collection
{
return $this->con;
}
public function addCon(Contenido $con): self
{
if (!$this->con->contains($con)) {
$this->con[] = $con;
}
return $this;
}
public function removeCon(Contenido $con): self
{
if ($this->con->contains($con)) {
$this->con->removeElement($con);
}
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Audio
*
* @ORM\Table(name="audio", indexes={@ORM\Index(name="fk_estadoaudio_audio", columns={"eau_id"})})
* @ORM\Entity
*/
class Audio
{
/**
* @var \DateTime|null
*
* @ORM\Column(name="aud_duracion", type="time", nullable=true)
*/
private $audDuracion;
/**
* @var int|null
*
* @ORM\Column(name="aud_secuencia_disco", type="smallint", nullable=true)
*/
private $audSecuenciaDisco;
/**
* @var int|null
*
* @ORM\Column(name="aud_disco", type="smallint", nullable=true)
*/
private $audDisco;
/**
* @var string|null
*
* @ORM\Column(name="aud_ruta_padre", type="string", length=1000, nullable=true)
*/
private $audRutaPadre;
/**
* @var string|null
*
* @ORM\Column(name="aud_ruta_padre_preview", type="string", length=1000, nullable=true)
*/
private $audRutaPadrePreview;
/**
* @var int|null
*
* @ORM\Column(name="aud_ano", type="smallint", nullable=true)
*/
private $audAno;
/**
* @var \Contenido
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\OneToOne(targetEntity="Contenido")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="con_id", referencedColumnName="con_id")
* })
*/
private $con;
/**
* @var \EstadoAudio
*
* @ORM\ManyToOne(targetEntity="EstadoAudio")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="eau_id", referencedColumnName="eau_id")
* })
*/
private $eau;
public function getAudDuracion(): ?\DateTimeInterface
{
return $this->audDuracion;
}
public function setAudDuracion(?\DateTimeInterface $audDuracion): self
{
$this->audDuracion = $audDuracion;
return $this;
}
public function getAudSecuenciaDisco(): ?int
{
return $this->audSecuenciaDisco;
}
public function setAudSecuenciaDisco(?int $audSecuenciaDisco): self
{
$this->audSecuenciaDisco = $audSecuenciaDisco;
return $this;
}
public function getAudDisco(): ?int
{
return $this->audDisco;
}
public function setAudDisco(?int $audDisco): self
{
$this->audDisco = $audDisco;
return $this;
}
public function getAudRutaPadre(): ?string
{
return $this->audRutaPadre;
}
public function setAudRutaPadre(?string $audRutaPadre): self
{
$this->audRutaPadre = $audRutaPadre;
return $this;
}
public function getAudRutaPadrePreview(): ?string
{
return $this->audRutaPadrePreview;
}
public function setAudRutaPadrePreview(?string $audRutaPadrePreview): self
{
$this->audRutaPadrePreview = $audRutaPadrePreview;
return $this;
}
public function getAudAno(): ?int
{
return $this->audAno;
}
public function setAudAno(?int $audAno): self
{
$this->audAno = $audAno;
return $this;
}
public function getCon(): ?Contenido
{
return $this->con;
}
public function setCon(?Contenido $con): self
{
$this->con = $con;
return $this;
}
public function getEau(): ?EstadoAudio
{
return $this->eau;
}
public function setEau(?EstadoAudio $eau): self
{
$this->eau = $eau;
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Audio
*
* @ORM\Table(name="audio", indexes={@ORM\Index(name="fk_estadoaudio_audio", columns={"eau_id"})})
* @ORM\Entity
*/
class Audio
{
/**
* @var \DateTime|null
*
* @ORM\Column(name="aud_duracion", type="time", nullable=true)
*/
private $audDuracion;
/**
* @var int|null
*
* @ORM\Column(name="aud_secuencia_disco", type="smallint", nullable=true)
*/
private $audSecuenciaDisco;
/**
* @var int|null
*
* @ORM\Column(name="aud_disco", type="smallint", nullable=true)
*/
private $audDisco;
/**
* @var string|null
*
* @ORM\Column(name="aud_ruta_padre", type="string", length=1000, nullable=true)
*/
private $audRutaPadre;
/**
* @var string|null
*
* @ORM\Column(name="aud_ruta_padre_preview", type="string", length=1000, nullable=true)
*/
private $audRutaPadrePreview;
/**
* @var int|null
*
* @ORM\Column(name="aud_ano", type="smallint", nullable=true)
*/
private $audAno;
/**
* @var \Contenido
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\OneToOne(targetEntity="Contenido")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="con_id", referencedColumnName="con_id")
* })
*/
private $con;
/**
* @var \EstadoAudio
*
* @ORM\ManyToOne(targetEntity="EstadoAudio")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="eau_id", referencedColumnName="eau_id")
* })
*/
private $eau;
public function getAudDuracion(): ?\DateTimeInterface
{
return $this->audDuracion;
}
public function setAudDuracion(?\DateTimeInterface $audDuracion): self
{
$this->audDuracion = $audDuracion;
return $this;
}
public function getAudSecuenciaDisco(): ?int
{
return $this->audSecuenciaDisco;
}
public function setAudSecuenciaDisco(?int $audSecuenciaDisco): self
{
$this->audSecuenciaDisco = $audSecuenciaDisco;
return $this;
}
public function getAudDisco(): ?int
{
return $this->audDisco;
}
public function setAudDisco(?int $audDisco): self
{
$this->audDisco = $audDisco;
return $this;
}
public function getAudRutaPadre(): ?string
{
return $this->audRutaPadre;
}
public function setAudRutaPadre(?string $audRutaPadre): self
{
$this->audRutaPadre = $audRutaPadre;
return $this;
}
public function getAudRutaPadrePreview(): ?string
{
return $this->audRutaPadrePreview;
}
public function setAudRutaPadrePreview(?string $audRutaPadrePreview): self
{
$this->audRutaPadrePreview = $audRutaPadrePreview;
return $this;
}
public function getAudAno(): ?int
{
return $this->audAno;
}
public function setAudAno(?int $audAno): self
{
$this->audAno = $audAno;
return $this;
}
public function getCon(): ?Contenido
{
return $this->con;
}
public function setCon(?Contenido $con): self
{
$this->con = $con;
return $this;
}
public function getEau(): ?EstadoAudio
{
return $this->eau;
}
public function setEau(?EstadoAudio $eau): self
{
$this->eau = $eau;
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* BitrateAudio
*
* @ORM\Table(name="bitrate_audio")
* @ORM\Entity
*/
class BitrateAudio
{
/**
* @var int
*
* @ORM\Column(name="bau_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $bauId;
/**
* @var string
*
* @ORM\Column(name="bau_nombre", type="string", length=30, nullable=false)
*/
private $bauNombre;
/**
* @var string
*
* @ORM\Column(name="bau_valor", type="string", length=30, nullable=false)
*/
private $bauValor;
/**
* @var \DateTime|null
*
* @ORM\Column(name="created_at", type="datetime", nullable=true)
*/
private $createdAt;
/**
* @var \DateTime|null
*
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*/
private $updatedAt;
public function getBauId(): ?int
{
return $this->bauId;
}
public function getBauNombre(): ?string
{
return $this->bauNombre;
}
public function setBauNombre(string $bauNombre): self
{
$this->bauNombre = $bauNombre;
return $this;
}
public function getBauValor(): ?string
{
return $this->bauValor;
}
public function setBauValor(string $bauValor): self
{
$this->bauValor = $bauValor;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* BitrateAudio
*
* @ORM\Table(name="bitrate_audio")
* @ORM\Entity
*/
class BitrateAudio
{
/**
* @var int
*
* @ORM\Column(name="bau_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $bauId;
/**
* @var string
*
* @ORM\Column(name="bau_nombre", type="string", length=30, nullable=false)
*/
private $bauNombre;
/**
* @var string
*
* @ORM\Column(name="bau_valor", type="string", length=30, nullable=false)
*/
private $bauValor;
/**
* @var \DateTime|null
*
* @ORM\Column(name="created_at", type="datetime", nullable=true)
*/
private $createdAt;
/**
* @var \DateTime|null
*
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*/
private $updatedAt;
public function getBauId(): ?int
{
return $this->bauId;
}
public function getBauNombre(): ?string
{
return $this->bauNombre;
}
public function setBauNombre(string $bauNombre): self
{
$this->bauNombre = $bauNombre;
return $this;
}
public function getBauValor(): ?string
{
return $this->bauValor;
}
public function setBauValor(string $bauValor): self
{
$this->bauValor = $bauValor;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment