primer commit proyecto

parent 9a797494
Pipeline #29 failed with stages
primer
\ No newline at end of file
#!/usr/bin/env php
<?php
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
set_time_limit(0);
require dirname(__DIR__).'/vendor/autoload.php';
if (!class_exists(Application::class)) {
throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.');
}
$input = new ArgvInput();
if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
}
if ($input->hasParameterOption('--no-debug', true)) {
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
}
require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) {
umask(0000);
if (class_exists(Debug::class)) {
Debug::enable();
}
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$application = new Application($kernel);
$application->run($input);
#!/usr/bin/env php
<?php
if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) {
echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
exit(1);
}
if (false === getenv('SYMFONY_PHPUNIT_VERSION')) {
putenv('SYMFONY_PHPUNIT_VERSION=6.5');
}
if (false === getenv('SYMFONY_PHPUNIT_REMOVE')) {
putenv('SYMFONY_PHPUNIT_REMOVE=');
}
if (false === getenv('SYMFONY_PHPUNIT_DIR')) {
putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit');
}
require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit';
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"sensio/framework-extra-bundle": "^5.1",
"symfony/asset": "4.2.*",
"symfony/console": "4.2.*",
"symfony/dotenv": "4.2.*",
"symfony/expression-language": "4.2.*",
"symfony/flex": "^1.1",
"symfony/form": "4.2.*",
"symfony/framework-bundle": "4.2.*",
"symfony/monolog-bundle": "^3.1",
"symfony/orm-pack": "*",
"symfony/process": "4.2.*",
"symfony/security-bundle": "4.2.*",
"symfony/serializer-pack": "*",
"symfony/swiftmailer-bundle": "^3.1",
"symfony/translation": "4.2.*",
"symfony/twig-bundle": "4.2.*",
"symfony/validator": "4.2.*",
"symfony/web-link": "4.2.*",
"symfony/yaml": "4.2.*",
"twig/extensions": "^1.5"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.1",
"symfony/debug-pack": "*",
"symfony/maker-bundle": "^1.11",
"symfony/profiler-pack": "*",
"symfony/test-pack": "*",
"symfony/web-server-bundle": "4.2.*"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"paragonie/random_compat": "2.*",
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "4.2.*"
}
}
}
This diff is collapsed.
<?php
use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
// Load cached env vars if the .env.local.php file exists
// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) {
$_SERVER += $env;
$_ENV += $env;
} elseif (!class_exists(Dotenv::class)) {
throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
} else {
// load all the .env files
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
}
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
<?php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true],
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true],
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true]
];
framework:
cache:
# Put the unique name of your app here: the prefix seed
# is used to compute stable namespaces for cache keys.
#prefix_seed: your_vendor_name/app_name
# The app cache caches to the filesystem by default.
# Other options include:
# Redis
#app: cache.adapter.redis
#default_redis_provider: redis://localhost
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
#app: cache.adapter.apcu
# Namespaced pools use the above "app" backend by default
#pools:
#my.dedicated.cache: ~
debug:
# Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
# See the "server:dump" command to start a new server.
dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
services:
EasyCorp\EasyLog\EasyLogHandler:
public: false
arguments: ['%kernel.logs_dir%/%kernel.environment%.log']
#// FIXME: How to add this configuration automatically without messing up with the monolog configuration?
#monolog:
# handlers:
# buffered:
# type: buffer
# handler: easylog
# channels: ['!event']
# level: debug
# easylog:
# type: service
# id: EasyCorp\EasyLog\EasyLogHandler
monolog:
handlers:
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: ["!event"]
# uncomment to get logging in your browser
# you may have to allow bigger header sizes in your Web server configuration
#firephp:
# type: firephp
# level: info
#chromephp:
# type: chromephp
# level: info
console:
type: console
process_psr_3_messages: false
channels: ["!event", "!doctrine", "!console"]
framework:
router:
strict_requirements: true
# See https://symfony.com/doc/current/email/dev_environment.html
swiftmailer:
# send all emails to a specific address
#delivery_addresses: ['me@example.com']
web_profiler:
toolbar: false
intercept_redirects: false
framework:
profiler: { only_exceptions: false }
parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
doctrine_migrations:
dir_name: '%kernel.project_dir%/src/Migrations'
# namespace is arbitrary but should be different from App\Migrations
# as migrations classes should NOT be autoloaded
namespace: DoctrineMigrations
framework:
secret: '%env(APP_SECRET)%'
#default_locale: en
#csrf_protection: true
#http_method_override: true
# Enables session support. Note that the session will ONLY be started if you read or write from it.
# Remove or comment this section to explicitly disable session support.
session:
handler_id: ~
cookie_secure: auto
cookie_samesite: lax
#esi: true
#fragments: true
php_errors:
log: true
doctrine:
orm:
auto_generate_proxy_classes: false
metadata_cache_driver:
type: service
id: doctrine.system_cache_provider
query_cache_driver:
type: service
id: doctrine.system_cache_provider
result_cache_driver:
type: service
id: doctrine.result_cache_provider
services:
doctrine.result_cache_provider:
class: Symfony\Component\Cache\DoctrineProvider
public: false
arguments:
- '@doctrine.result_cache_pool'
doctrine.system_cache_provider:
class: Symfony\Component\Cache\DoctrineProvider
public: false
arguments:
- '@doctrine.system_cache_pool'
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
excluded_404s:
# regex: exclude all 404 errors from the logs
- ^/
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
console:
type: console
process_psr_3_messages: false
channels: ["!event", "!doctrine"]
deprecation:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"
deprecation_filter:
type: filter
handler: deprecation
max_level: info
channels: ["php"]
framework:
router:
strict_requirements: ~
utf8: true
security:
encoders:
App\Entity\PlaylistUserAdministrator:
algorithm: bcrypt
App\Entity\UsuarioAdministrador:
algorithm: bcrypt
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
#providers:
# used to reload user from session & other features (e.g. switch_user)
# app_user_provider:
# entity:
# class: App\Entity\UsuarioAdministrador
# property: uad_user
# used to reload user from session & other features (e.g. switch_user)
# used to reload user from session & other features (e.g. switch_user)
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
#access_control:
# - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
# - { path: ^/backend/*, roles: ROLE_USER }
# - { path: ^/admin, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
sensio_framework_extra:
router:
annotations: false
swiftmailer:
url: '%env(MAILER_URL)%'
spool: { type: 'memory' }
framework:
test: true
session:
storage_id: session.storage.mock_file
monolog:
handlers:
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: ["!event"]
framework:
router:
strict_requirements: true
swiftmailer:
disable_delivery: true
web_profiler:
toolbar: false
intercept_redirects: false
framework:
profiler: { collect: false }
framework:
default_locale: '%locale%'
translator:
default_path: '%kernel.project_dir%/translations'
fallbacks:
- '%locale%'
twig:
default_path: '%kernel.project_dir%/templates'
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
services:
_defaults:
public: false
autowire: true
autoconfigure: true
# Uncomment any lines below to activate that Twig extension
Twig\Extensions\ArrayExtension: ~
Twig\Extensions\DateExtension: ~
Twig\Extensions\IntlExtension: ~
Twig\Extensions\TextExtension: ~
framework:
validation:
email_validation_mode: html5
###FRONTEND###
front_index:
path: /
controller: App\FrontendBundle\Controller\IndexController::presentacion
methods: [GET,POST]
front_validar_msisdn:
path: app/musica/validar/msisdn
controller: App\FrontendBundle\Controller\IndexController::validarMsisdn
methods: POST
front_validar_pin:
path: app/musica/validar/pin
controller: App\FrontendBundle\Controller\IndexController::validarPin
methods: [POST]
front_forbidden_url:
path: app/musica/sin/acceso
controller: App\FrontendBundle\Controller\IndexController::prohibido
####
front_canciones_lista:
path: app/lista/canciones
controller: App\FrontendBundle\Controller\ListadoController::canciones
front_canciones_lista_no_contratadas:
path: app/lista/canciones/no/contratadas
controller: App\FrontendBundle\Controller\ListadoController::cancionesNoContratadas
front_canciones_contratar:
path: app/lista/canciones/contratar
controller: App\FrontendBundle\Controller\ListadoController:contratar
methods: [POST]
front_canciones_descontratar:
path: app/lista/canciones/descontratar
controller: App\FrontendBundle\Controller\ListadoController::desuscribir
methods: [POST]
front_listas_contratadas:
path: app/listas/contratadas
controller: App\FrontendBundle\Controller\ListadoController::listasContratadas
methods: [POST]
front_listas_no_contratadas:
path: app/listas/disponibles
controller: App\FrontendBundle\Controller\ListadoController::listasNoContratadas
methods: [POST]
#PRUEBAS
front_prueba:
path: app/musica/fake
controller: App\FrontendBundle\Controller\IndexController::fake
front_test:
path : app/musica/test
controller: App\FrontendBundle\Controller\IndexController::test
\ No newline at end of file
controllers:
resource: ../../src/FrontendBundle/Controller/
type: annotation
_errors:
resource: '@TwigBundle/Resources/config/routing/errors.xml'
prefix: /_error
web_profiler_wdt:
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
prefix: /_wdt
web_profiler_profiler:
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
prefix: /_profiler
# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: 'es'
imagenes_listas_directory: '%kernel.project_dir%/public/listas/imagenes'
short_imagenes_directory: '/listas/imagenes'
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\FrontendBundle\Controller\:
resource: '../src/FrontendBundle/Controller'
tags: ['controller.service_arguments']
\ No newline at end of file
<?php
/**
* ###################
* 1-INICIO SESION PHP
* ###################
*
*/
if (session_id() == '' || !isset($_SESSION)) {
session_start();
}
/**
* ###################
* 2-INICIO VARIABLES PHP
* ###################
*
*/
$status_code = null;
$desc = '';
$xmlOutput = '';
$xmlDesc = '';
$output = '';
/**
* ###################
* 3-TRATAMIENTO URL Y XML PHP
* ###################
*
*/
$params = urldecode($_SERVER['QUERY_STRING']);
$url = "http://vpwproxy.vas.entelpcs.cl/vpw.php?#PARAMETROS";
$url = str_replace('#PARAMETROS', $params, $url);
$msisdn = $_POST["msisdn"];
$xml = "<?xml version='1.0' encoding='UTF-8'?><unsubscribe><entry>569" . $msisdn . "</entry></unsubscribe>";
/**
* ###################
* 4-LLAMADO A CURL
* ###################
*
*/
try {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$output = curl_exec($ch);
$xmlDesc = $output;
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$xmlOutput = simplexml_load_string($output);
if (isset($xmlOutput->error)) {
$desc = (string) $xmlOutput->error;
} else if (isset($xmlOutput->info)) {
$desc = (string) $xmlOutput->info;
}
if ($desc == "") {
switch ($status_code) {
case 300:
$desc = "No fue posible consultar plan.";
break;
case 403:
$desc = "IP no autorizada.";
break;
}
}
} catch (\Exception $e) {
$status_code = null;
$desc = null;
}
/**
* ###################
* 5-RESULTADO CURL
* ###################
*
*/
//echo '{"desc" : "'.$desc.'", "status_code" : '.$status_code.', "callbackUrl" : "'.$url.'"}';
echo "$desc|$status_code|$xmlDesc";
<?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.entelmusic.cl";
if(empty($params)){
//$urlRetorno = $_SESSION["urlRetorno"];
write_log("Retorno con msisdn vacio, por parametros vacio", "INFO");
write_log($urlRetorno, "INFO");
header("Location: http://new.entelmusic.cl?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.entelmusic.cl?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.entelmusic.cl?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.entelmusic.cl?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.entelmusic.cl?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.entelmusic.cl?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.entelmusic.cl?msisdn=$msisdn");
die();
}
/**
* ################################################
* 5-LLAMADA A URL ENTEL PARA OBTENCION DE MSISDN
* ################################################
*/
$protocol = getProtocolOfSelfHost();
$selfHost = $protocol . $_SERVER['HTTP_HOST'];
$urlFinalEntel = "$urlEntel&content=$selfHost/script_entelmusic.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
/**
* ###################
* 1-INICIO SESION PHP
* ###################
*
*/
if (session_id() == '' || !isset($_SESSION)) {
session_start();
}
/**
* ###################
* 2-INICIO VARIABLES PHP
* ###################
*
*/
$status_code = null;
$desc = '';
$xmlOutput = '';
$xmlDesc = '';
$output = '';
/**
* ###################
* 3-TRATAMIENTO URL Y XML PHP
* ###################
*
*/
$params = urldecode($_SERVER['QUERY_STRING']);
$url = "http://vpwproxy.vas.entelpcs.cl/vpw.php?#PARAMETROS";
$url = str_replace('#PARAMETROS', $params, $url);
$msisdn = $_POST["msisdn"];
$xml = "<?xml version='1.0' encoding='UTF-8'?><subscribe><entry>569" . $msisdn . "</entry></subscribe>";
/**
* ###################
* 4-LLAMADO A CURL
* ###################
*
*/
try {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$output = curl_exec($ch);
$xmlDesc = $output;
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$xmlOutput = simplexml_load_string($output);
if (isset($xmlOutput->error)) {
$desc = (string) $xmlOutput->error;
} else if (isset($xmlOutput->info)) {
$desc = (string) $xmlOutput->info;
}
if ($desc = "") {
switch ($status_code) {
case 300:
$desc = "No fue posible consultar plan.";
break;
case 402:
$desc = "El movil no tiene saldo.";
break;
case 501:
$desc = "Fallo en la configuracioon de validacion.";
break;
case 302:
$desc = "El movil ya esta agendado.";
break;
case 415 :
$desc = "El movil no es compatible.";
break;
case 410:
$desc = "El movil no tiene perfil compatible";
break;
}
}
} catch (\Exception $e) {
$status_code = null;
$desc = null;
}
/**
* ###################
* 5-RESULTADO CURL
* ###################
*
*/
//echo '{"desc" : "'.$desc.'", "status_code" : '.$status_code.', "callbackUrl" : "'.$url.'"}';
echo "$desc|$status_code|$xmlDesc";
include.path=${php.global.include.path}
php.version=PHP_70
source.encoding=UTF-8
src.dir=src
tags.asp=false
tags.short=false
web.root=.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.php.project</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/php-project/1">
<name>entelmusc</name>
</data>
</configuration>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="config/bootstrap.php"
>
<php>
<ini name="error_reporting" value="-1" />
<env name="APP_ENV" value="test" />
<env name="SHELL_VERBOSITY" value="-1" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
</whitelist>
</filter>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
</phpunit>
# Use the front controller as index file. It serves as a fallback solution when
# every other rewrite/redirect fails (e.g. in an aliased environment without
# mod_rewrite). Additionally, this reduces the matching process for the
# start page (path "/") because otherwise Apache will apply the rewriting rules
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
DirectoryIndex index.php
# By default, Apache does not evaluate symbolic links if you did not enable this
# feature in your server configuration. Uncomment the following line if you
# install assets as symlinks or if you experience problems related to symlinks
# when compiling LESS/Sass/CoffeScript assets.
# Options FollowSymlinks
# Disabling MultiViews prevents unwanted negotiation, e.g. "/index" should not resolve
# to the front controller "/index.php" but be rewritten to "/index.php/index".
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
# Determine the RewriteBase automatically and set it as environment variable.
# If you are using Apache aliases to do mass virtual hosting or installed the
# project in a subdirectory, the base path will be prepended to allow proper
# resolution of the index.php file and to redirect to the correct URI. It will
# work in environments without path prefix as well, providing a safe, one-size
# fits all solution. But as you do not need it in this case, you can comment
# the following 2 lines to eliminate the overhead.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
# Sets the HTTP_AUTHORIZATION header removed by Apache
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect to URI without front controller to prevent duplicate content
# (with and without `/index.php`). Only do this redirect on the initial
# rewrite by Apache and not on subsequent cycles. Otherwise we would get an
# endless redirect loop (request -> rewrite to front controller ->
# redirect -> request -> ...).
# So in case you get a "too many redirects" error or you always get redirected
# to the start page because your Apache does not expose the REDIRECT_STATUS
# environment variable, you have 2 choices:
# - disable this feature by commenting the following 2 lines or
# - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
# following RewriteCond (best solution)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
# If the requested filename exists, simply serve it.
# We only want to let Apache serve files and not directories.
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
# Rewrite all other queries to the front controller.
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# When mod_rewrite is not available, we instruct a temporary redirect of
# the start page to the front controller explicitly so that the website
# and the generated links can still be used.
RedirectMatch 307 ^/$ /index.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
#cache mp3 and m3u8 files for one day
<FilesMatch ".(mp3|m3u8)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
#cache css, javascript and text files for one week
<FilesMatch ".(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
#cache flash and images for one month
<FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
#disable cache for script files
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
/*!
* Start Bootstrap - One Page Wonder v5.0.3 (https://startbootstrap.com/template-overviews/one-page-wonder)
* Copyright 2013-2019 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-one-page-wonder/blob/master/LICENSE)
*/
body {
font-family: 'Lato';
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: 'Catamaran';
font-weight: 800 !important;
}
.btn-xl {
text-transform: uppercase;
padding: 1.5rem 3rem;
font-size: 0.9rem;
font-weight: 700;
letter-spacing: 0.1rem;
}
.bg-black {
background-color: #000 !important;
}
.rounded-pill {
border-radius: 5rem;
}
.navbar-custom {
padding-top: 1rem;
padding-bottom: 1rem;
background-color: rgba(0, 0, 0, 0.7);
}
.navbar-custom .navbar-brand {
text-transform: uppercase;
font-size: 1rem;
letter-spacing: 0.1rem;
font-weight: 700;
}
.navbar-custom .navbar-nav .nav-item .nav-link {
text-transform: uppercase;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.1rem;
}
header.masthead {
position: relative;
overflow: hidden;
padding-top: calc(7rem + 72px);
padding-bottom: 7rem;
background: -webkit-gradient(linear, left bottom, left top, from(#ff6a00), to(#ee0979));
background: linear-gradient(0deg, #ff6a00 0%, #ee0979 100%);
background-repeat: no-repeat;
background-position: center center;
background-attachment: scroll;
background-size: cover;
}
header.masthead .masthead-content {
z-index: 1;
position: relative;
}
header.masthead .masthead-content .masthead-heading {
font-size: 4rem;
}
header.masthead .masthead-content .masthead-subheading {
font-size: 2rem;
}
header.masthead .bg-circle {
z-index: 0;
position: absolute;
border-radius: 100%;
background: -webkit-gradient(linear, left bottom, left top, from(#ee0979), to(#ff6a00));
background: linear-gradient(0deg, #ee0979 0%, #ff6a00 100%);
}
header.masthead .bg-circle-1 {
height: 90rem;
width: 90rem;
bottom: -55rem;
left: -55rem;
}
header.masthead .bg-circle-2 {
height: 50rem;
width: 50rem;
top: -25rem;
right: -25rem;
}
header.masthead .bg-circle-3 {
height: 20rem;
width: 20rem;
bottom: -10rem;
right: 5%;
}
header.masthead .bg-circle-4 {
height: 30rem;
width: 30rem;
top: -5rem;
right: 35%;
}
@media (min-width: 992px) {
header.masthead {
padding-top: calc(10rem + 55px);
padding-bottom: 10rem;
}
header.masthead .masthead-content .masthead-heading {
font-size: 6rem;
}
header.masthead .masthead-content .masthead-subheading {
font-size: 4rem;
}
}
.bg-primary {
background-color: #ee0979 !important;
}
.btn-primary {
background-color: #ee0979;
border-color: #ee0979;
}
.btn-primary:active, .btn-primary:focus, .btn-primary:hover {
background-color: #bd0760 !important;
border-color: #bd0760 !important;
}
.btn-primary:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(238, 9, 121, 0.5);
box-shadow: 0 0 0 0.2rem rgba(238, 9, 121, 0.5);
}
.btn-secondary {
background-color: #ff6a00;
border-color: #ff6a00;
}
.btn-secondary:active, .btn-secondary:focus, .btn-secondary:hover {
background-color: #cc5500 !important;
border-color: #cc5500 !important;
}
.btn-secondary:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(255, 106, 0, 0.5);
box-shadow: 0 0 0 0.2rem rgba(255, 106, 0, 0.5);
}
/*!
* Start Bootstrap - One Page Wonder v5.0.3 (https://startbootstrap.com/template-overviews/one-page-wonder)
* Copyright 2013-2019 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-one-page-wonder/blob/master/LICENSE)
*/body{font-family:Lato}h1,h2,h3,h4,h5,h6{font-family:Catamaran;font-weight:800!important}.btn-xl{text-transform:uppercase;padding:1.5rem 3rem;font-size:.9rem;font-weight:700;letter-spacing:.1rem}.bg-black{background-color:#000!important}.rounded-pill{border-radius:5rem}.navbar-custom{padding-top:1rem;padding-bottom:1rem;background-color:rgba(0,0,0,.7)}.navbar-custom .navbar-brand{text-transform:uppercase;font-size:1rem;letter-spacing:.1rem;font-weight:700}.navbar-custom .navbar-nav .nav-item .nav-link{text-transform:uppercase;font-size:.8rem;font-weight:700;letter-spacing:.1rem}header.masthead{position:relative;overflow:hidden;padding-top:calc(7rem + 72px);padding-bottom:7rem;background:-webkit-gradient(linear,left bottom,left top,from(#ff6a00),to(#ee0979));background:linear-gradient(0deg,#ff6a00 0,#ee0979 100%);background-repeat:no-repeat;background-position:center center;background-attachment:scroll;background-size:cover}header.masthead .masthead-content{z-index:1;position:relative}header.masthead .masthead-content .masthead-heading{font-size:4rem}header.masthead .masthead-content .masthead-subheading{font-size:2rem}header.masthead .bg-circle{z-index:0;position:absolute;border-radius:100%;background:-webkit-gradient(linear,left bottom,left top,from(#ee0979),to(#ff6a00));background:linear-gradient(0deg,#ee0979 0,#ff6a00 100%)}header.masthead .bg-circle-1{height:90rem;width:90rem;bottom:-55rem;left:-55rem}header.masthead .bg-circle-2{height:50rem;width:50rem;top:-25rem;right:-25rem}header.masthead .bg-circle-3{height:20rem;width:20rem;bottom:-10rem;right:5%}header.masthead .bg-circle-4{height:30rem;width:30rem;top:-5rem;right:35%}@media (min-width:992px){header.masthead{padding-top:calc(10rem + 55px);padding-bottom:10rem}header.masthead .masthead-content .masthead-heading{font-size:6rem}header.masthead .masthead-content .masthead-subheading{font-size:4rem}}.bg-primary{background-color:#ee0979!important}.btn-primary{background-color:#ee0979;border-color:#ee0979}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#bd0760!important;border-color:#bd0760!important}.btn-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(238,9,121,.5);box-shadow:0 0 0 .2rem rgba(238,9,121,.5)}.btn-secondary{background-color:#ff6a00;border-color:#ff6a00}.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover{background-color:#c50!important;border-color:#c50!important}.btn-secondary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(255,106,0,.5);box-shadow:0 0 0 .2rem rgba(255,106,0,.5)}
\ No newline at end of file
/*
html5slider - a JS implementation of <input type=range> for Firefox 4 and up
https://github.com/fryn/html5slider
Copyright (c) 2010-2011 Frank Yan, <http://frankyan.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
(function() {
// test for native support
var test = document.createElement('input');
try {
test.type = 'range';
if (test.type == 'range')
return;
} catch (e) {
return;
}
// test for required property support
if (!document.mozSetImageElement || !('MozAppearance' in test.style))
return;
var scale;
var isMac = navigator.platform == 'MacIntel';
var thumb = {
radius: isMac ? 9 : 6,
width: isMac ? 22 : 12,
height: isMac ? 16 : 20
};
var track = '-moz-linear-gradient(top, transparent ' + (isMac ?
'6px, #999 6px, #999 7px, #ccc 9px, #bbb 11px, #bbb 12px, transparent 12px' :
'9px, #999 9px, #bbb 10px, #fff 11px, transparent 11px') +
', transparent)';
var styles = {
'min-width': thumb.width + 'px',
'min-height': thumb.height + 'px',
'max-height': thumb.height + 'px',
padding: 0,
border: 0,
'border-radius': 0,
cursor: 'default',
'text-indent': '-999999px' // -moz-user-select: none; breaks mouse capture
};
var onChange = document.createEvent('HTMLEvents');
onChange.initEvent('change', true, false);
if (document.readyState == 'loading')
document.addEventListener('DOMContentLoaded', initialize, true);
else
initialize();
function initialize() {
// create initial sliders
Array.forEach(document.querySelectorAll('input[type=range]'), transform);
// create sliders on-the-fly
document.addEventListener('DOMNodeInserted', onNodeInserted, true);
}
function onNodeInserted(e) {
check(e.target);
if (e.target.querySelectorAll)
Array.forEach(e.target.querySelectorAll('input'), check);
}
function check(input, async) {
if (input.localName != 'input' || input.type == 'range');
else if (input.getAttribute('type') == 'range')
transform(input);
else if (!async)
setTimeout(check, 0, input, true);
}
function transform(slider) {
var isValueSet, areAttrsSet, isChanged, isClick, prevValue, rawValue, prevX;
var min, max, step, range, value = slider.value;
// lazily create shared slider affordance
if (!scale) {
scale = document.body.appendChild(document.createElement('hr'));
style(scale, {
'-moz-appearance': isMac ? 'scale-horizontal' : 'scalethumb-horizontal',
display: 'block',
visibility: 'visible',
opacity: 1,
position: 'fixed',
top: '-999999px'
});
document.mozSetImageElement('__sliderthumb__', scale);
}
// reimplement value and type properties
var getValue = function() { return '' + value; };
var setValue = function setValue(val) {
value = '' + val;
isValueSet = true;
draw();
delete slider.value;
slider.value = value;
slider.__defineGetter__('value', getValue);
slider.__defineSetter__('value', setValue);
};
slider.__defineGetter__('value', getValue);
slider.__defineSetter__('value', setValue);
slider.__defineGetter__('type', function() { return 'range'; });
// sync properties with attributes
['min', 'max', 'step'].forEach(function(prop) {
if (slider.hasAttribute(prop))
areAttrsSet = true;
slider.__defineGetter__(prop, function() {
return this.hasAttribute(prop) ? this.getAttribute(prop) : '';
});
slider.__defineSetter__(prop, function(val) {
val === null ? this.removeAttribute(prop) : this.setAttribute(prop, val);
});
});
// initialize slider
slider.readOnly = true;
style(slider, styles);
update();
slider.addEventListener('DOMAttrModified', function(e) {
// note that value attribute only sets initial value
if (e.attrName == 'value' && !isValueSet) {
value = e.newValue;
draw();
}
else if (~['min', 'max', 'step'].indexOf(e.attrName)) {
update();
areAttrsSet = true;
}
}, true);
slider.addEventListener('mousedown', onDragStart, true);
slider.addEventListener('keydown', onKeyDown, true);
slider.addEventListener('focus', onFocus, true);
slider.addEventListener('blur', onBlur, true);
function onDragStart(e) {
isClick = true;
setTimeout(function() { isClick = false; }, 0);
if (e.button || !range)
return;
var width = parseFloat(getComputedStyle(this, 0).width);
var multiplier = (width - thumb.width) / range;
if (!multiplier)
return;
// distance between click and center of thumb
var dev = e.clientX - this.getBoundingClientRect().left - thumb.width / 2 -
(value - min) * multiplier;
// if click was not on thumb, move thumb to click location
if (Math.abs(dev) > thumb.radius) {
isChanged = true;
this.value -= -dev / multiplier;
}
rawValue = value;
prevX = e.clientX;
this.addEventListener('mousemove', onDrag, true);
this.addEventListener('mouseup', onDragEnd, true);
}
function onDrag(e) {
var width = parseFloat(getComputedStyle(this, 0).width);
var multiplier = (width - thumb.width) / range;
if (!multiplier)
return;
rawValue += (e.clientX - prevX) / multiplier;
prevX = e.clientX;
isChanged = true;
this.value = rawValue;
}
function onDragEnd() {
this.removeEventListener('mousemove', onDrag, true);
this.removeEventListener('mouseup', onDragEnd, true);
}
function onKeyDown(e) {
if (e.keyCode > 36 && e.keyCode < 41) { // 37-40: left, up, right, down
onFocus.call(this);
isChanged = true;
this.value = value + (e.keyCode == 38 || e.keyCode == 39 ? step : -step);
}
}
function onFocus() {
if (!isClick)
this.style.boxShadow = !isMac ? '0 0 0 2px #fb0' :
'0 0 2px 1px -moz-mac-focusring, inset 0 0 1px -moz-mac-focusring';
}
function onBlur() {
this.style.boxShadow = '';
}
// determines whether value is valid number in attribute form
function isAttrNum(value) {
return !isNaN(value) && +value == parseFloat(value);
}
// validates min, max, and step attributes and redraws
function update() {
min = isAttrNum(slider.min) ? +slider.min : 0;
max = isAttrNum(slider.max) ? +slider.max : 100;
if (max < min)
max = min > 100 ? min : 100;
step = isAttrNum(slider.step) && slider.step > 0 ? +slider.step : 1;
range = max - min;
draw(true);
}
// recalculates value property
function calc() {
if (!isValueSet && !areAttrsSet)
value = slider.getAttribute('value');
if (!isAttrNum(value))
value = (min + max) / 2;;
// snap to step intervals (WebKit sometimes does not - bug?)
value = Math.round((value - min) / step) * step + min;
if (value < min)
value = min;
else if (value > max)
value = min + ~~(range / step) * step;
}
// renders slider using CSS background ;)
function draw(attrsModified) {
calc();
if (isChanged && value != prevValue)
slider.dispatchEvent(onChange);
isChanged = false;
if (!attrsModified && value == prevValue)
return;
prevValue = value;
var position = range ? (value - min) / range * 100 : 0;
var bg = '-moz-element(#__sliderthumb__) ' + position + '% no-repeat, ';
style(slider, { background: bg + track });
}
}
function style(element, styles) {
for (var prop in styles)
element.style.setProperty(prop, styles[prop], 'important');
}
})();
.bg-primary {
background-color: $primary !important;
}
.btn-primary {
background-color: $primary;
border-color: $primary;
&:active,
&:focus,
&:hover {
background-color: darken($primary, 10%) !important;
border-color: darken($primary, 10%) !important;
}
&:focus {
box-shadow: 0 0 0 0.2rem fade-out($primary, 0.5);
}
}
.btn-secondary {
background-color: $secondary;
border-color: $secondary;
&:active,
&:focus,
&:hover {
background-color: darken($secondary, 10%) !important;
border-color: darken($secondary, 10%) !important;
}
&:focus {
box-shadow: 0 0 0 0.2rem fade-out($secondary, 0.5);
}
}
body {
@include body-font;
}
h1,
h2,
h3,
h4,
h5,
h6 {
@include heading-font;
}
.btn-xl {
text-transform: uppercase;
padding: 1.5rem 3rem;
font-size: 0.9rem;
font-weight: 700;
letter-spacing: 0.1rem;
}
.bg-black {
background-color: $black !important;
}
.rounded-pill {
border-radius: 5rem;
}
header.masthead {
position: relative;
overflow: hidden;
padding-top: calc(7rem + 72px);
padding-bottom: 7rem;
background: linear-gradient(0deg, $secondary 0%, $primary 100%);
background-repeat: no-repeat;
background-position: center center;
background-attachment: scroll;
background-size: cover;
.masthead-content {
z-index: 1;
position: relative;
.masthead-heading {
font-size: 4rem;
}
.masthead-subheading {
font-size: 2rem;
}
}
.bg-circle {
z-index: 0;
position: absolute;
border-radius: 100%;
background: linear-gradient(0deg, $primary 0%, $secondary 100%);
}
.bg-circle-1 {
height: 90rem;
width: 90rem;
bottom: -55rem;
left: -55rem;
}
.bg-circle-2 {
height: 50rem;
width: 50rem;
top: -25rem;
right: -25rem;
}
.bg-circle-3 {
height: 20rem;
width: 20rem;
bottom: -10rem;
right: 5%;
}
.bg-circle-4 {
height: 30rem;
width: 30rem;
top: -5rem;
right: 35%;
}
}
@media (min-width: 992px) {
header.masthead {
padding-top: calc(10rem + 55px);
padding-bottom: 10rem;
.masthead-content {
.masthead-heading {
font-size: 6rem;
}
.masthead-subheading {
font-size: 4rem;
}
}
}
}
@mixin heading-font {
font-family: 'Catamaran';
font-weight: 800 !important;
}
@mixin body-font {
font-family: 'Lato';
}
.navbar-custom {
padding-top: 1rem;
padding-bottom: 1rem;
background-color: fade-out($black, 0.3);
.navbar-brand {
text-transform: uppercase;
font-size: 1rem;
letter-spacing: 0.1rem;
font-weight: 700;
}
.navbar-nav {
.nav-item {
.nav-link {
text-transform: uppercase;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.1rem;
}
}
}
}
// Variables
// Restated Bootstrap Variables
$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
$gray-300: #dee2e6 !default;
$gray-400: #ced4da !default;
$gray-500: #adb5bd !default;
$gray-600: #868e96 !default;
$gray-700: #495057 !default;
$gray-800: #343a40 !default;
$gray-900: #212529 !default;
$black: #000 !default;
$primary: #ee0979 !default;
$secondary: #ff6a00 !default;
// Core variables and mixins
@import "variables.scss";
@import "mixins.scss";
// Global CSS
@import "global.scss";
// Components
@import "navbar.scss";
@import "masthead.scss";
@import "bootstrap-overrides.scss";
@media all and (max-width: 500px) {
table,
thead,
tbody,
th,
td,
tr {
display: block;
}
}
th:nth-child(odd)
{
background-color:black;
color: whitesmoke;
}
th:nth-child(even)
{
background-color:black;
color: whitesmoke;
}
.alineacion {
text-align: center;
}
.alineacion p {
display: inline-block;
}
.alineacion p span {
display: block;
text-align: right
}
.modal-open {
overflow: hidden !important;
position:fixed !important;
width: 100% !important;
height: 100% !important;
}
.modalTitleCustom{
line-height: 1.42857143 !important;
float: left !important;
margin: 0px 30px 10px 10px !important;
}
.modalCloseCustom{
padding: 0 !important;
margin: 10px 10px 10px 10px !important;
}
.player{
align-content: center;
border: 2px solid whitesmoke;
background: aliceblue;
}
.player_layout{
background-color: black;
}
.song{
font-size: x-large;
font-style: italic;
font-weight: 500;
color: whitesmoke;
padding: 10px 0 0 10px;
}
.album{
font-size: medium;
font-style: italic;
font-weight: 300;
color: whitesmoke;
padding: 5px 5px 5px 10px;
}
.artist{
font-size: small;
font-style: italic;
font-weight: 300;
color: whitesmoke;
padding: 10px 10px 10px 10px;
}
.playlist_pic{
float: right;
}
.playing {
background-color: #42c3f47d !important;
}
.currentSongTime{
color: whitesmoke;
}
.maxSongTime{
color: whitesmoke;
}
.slider-song-modal{
height: 50px;
width: 200px;
}
input[type="range"] {
width: 250px;
margin-top: -5px;
}
input{
display:none\9!important;
}
input[type="range"] {
-webkit-appearance: none;
border: 1px solid black;
position: absolute;
top: 18px;
display: block;
width: 63%;
height: 15px;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
background-color: #242323;
left: 90px;
-webkit-box-shadow: inset 0px 4px 4px rgba(0,0,0,.6);
-moz-box-shadow: inset 0px 4px 4px rgba(0,0,0,.6);
box-shadow: inset 0px 4px 4px rgba(0,0,0,.6);
}
input::-webkit-slider-thumb {
-webkit-appearance: none;
width: 20px;
height: 20px;
border:1px solid black;
-webkit-border-radius: 10px;
border-radius: 10px;
background: #80e4df; /* Old browsers */
background: -webkit-linear-gradient(top, #80e4df 0%, #75dbd6 13%, #5ec4bf 33%, #57bbb6 47%, #419d99 80%, #378f8b 100%);
background: -moz-linear-gradient(top, #80e4df 0%, #75dbd6 13%, #5ec4bf 33%, #57bbb6 47%, #419d99 80%, #378f8b 100%);
background: -o-linear-gradient(top, #80e4df 0%, #75dbd6 13%, #5ec4bf 33%, #57bbb6 47%, #419d99 80%, #378f8b 100%);
background: linear-gradient(top, #80e4df 0%, #75dbd6 13%, #5ec4bf 33%, #57bbb6 47%, #419d99 80%, #378f8b 100%); /* W3C */
}
.artistListNamesContainer{
word-break : break-word;
width: 200px;
}
.no_list{
display: table;
margin: 0 auto;
}
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
select {
word-wrap: normal;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
cursor: pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */
\ No newline at end of file
This diff is collapsed.
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
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.
<?php
use App\Kernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/config/bootstrap.php';
session_start();
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
This diff is collapsed.
<?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\Repository;
use Doctrine\ORM\EntityRepository;
/**
* Description of PluImagenRepository
*
* @author Ing 04
*/
class PluImagenRepository extends EntityRepository{
public function findImagenById($id) {
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select(array('i'))
->from('App:PluImagen', 'i')
->where('i.imaId = :id')
->setParameter('id', $id);
$query = $qb->getQuery();
return $query->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT)[0];
}
}
<?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\Repository;
use Doctrine\ORM\EntityRepository;
/**
* Description of PluListaRepository
*
* @author Ing 04
*/
class PluListaRepository extends EntityRepository {
const CLIENTE = 1;//Para Entel , Cliente Entel Music
public function findListaById($id) {
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select(array('p'))
->from('App:PluLista', 'p')
->where('p.lisId = :id')
->setParameter('id', $id);
$query = $qb->getQuery();
return $query->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT)[0];
}
public function getCancionesLista($id){
$objectLista = $this->getEntityManager()->createQueryBuilder()
->select(array('l'))
->from("App:PluLista", 'l')
->where("l.lisId = $id ")
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT)[0];
$canciones = array();
foreach($objectLista->getCanciones() as $key => $cancion){
$canciones[] = $cancion;
}
return $canciones;
}
public function getAllListasVigentes(){
$qb = $this->getEntityManager()->createQueryBuilder();
$fechaActual = new \DateTime();
$qb->select(array('p'))
->from('App:PluLista', 'p')
->where("p.lisEliminado = 0")
->andWhere("p.lisVigenciaInicio <= '".$fechaActual->format('Y-m-d H:i:s')."'")
->andWhere("p.lisVigenciaTermino >= '".$fechaActual->format('Y-m-d H:i:s')."'");
$query = $qb->getQuery();
return $query->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT);
}
public function getListasVigentes($msisdn){
$qb = $this->getEntityManager()->createQueryBuilder();
$fechaActual = new \DateTime();
$listasUsuario = self::getListasUsuario($msisdn);
$qb->select(array('p'))
->from('App:PluLista', 'p')
->where("p.lisEliminado = 0")
->andWhere("p.tag = ".self::CLIENTE)
->andWhere("p.lisVigenciaInicio <= '".$fechaActual->format('Y-m-d H:i:s')."'")
->andWhere("p.lisVigenciaTermino >= '".$fechaActual->format('Y-m-d H:i:s')."'");
if($listasUsuario != "" ) $qb->andWhere("p.lisId NOT IN ($listasUsuario)");
$query = $qb->getQuery();
return $query->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT);
}
public function getListadoCancionesAgregadas($lista) {
$cancionesAgregadas = array();
$sql = "SELECT
pliscan.ca_id
FROM plu_lista_canciones AS pliscan
WHERE pliscan.lis_id = " . $lista;
$stmt = $this->getEntityManager()->getConnection()->prepare($sql);
$stmt->execute();
while ($canciones = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$cancionesAgregadas[] = $canciones['ca_id'];
}
return $cancionesAgregadas;
}
public function counter() {
$qb = $this->getEntityManager()->createQueryBuilder();
return $qb
->select('count(plu.lisId)')
->from("App:PluLista", "plu")
->where($qb->expr()->eq("plu.lisEliminado", 0))
->getQuery()
->getSingleScalarResult();
}
public function getCantCancionesAgregadas($id) {
$sql = "SELECT count(*) as cant
FROM plu_lista_canciones AS pliscan
WHERE pliscan.lis_id = " . $id;
$stmt = $this->getEntityManager()->getConnection()->prepare($sql);
$stmt->execute();
$cant = $stmt->fetch(\PDO::FETCH_ASSOC);
return $cant["cant"];
}
public function getListasUsuario($msisdn){
$qb = $this->getEntityManager()->createQueryBuilder();
$result= array();
$qb->select(array('p'))
->from("App:PluSuscripcion", 'p')
->where("p.susVigente = 1")
->andWhere("p.susUltimoTipoXml = 1")
->andWhere("p.susMsisdn = '$msisdn'");
$query = $qb->getQuery();
$execute = $query->getResult();
foreach ($execute as $pos => $object) {
$result[] = $object->getLisId()->getLisId();
}
$idListas = implode(", ", $result);
return $idListas;
}
public function getObjectListasUsuario($msisdn){
$qb = $this->getEntityManager()->createQueryBuilder();
$fechaActual = new \DateTime();
$result= array();
$qb->select(array('p'))
->from("App:PluSuscripcion", 'p')
->where("p.susVigente = 1")
->andWhere("p.susUltimoTipoXml = 1")
->andWhere("p.susMsisdn = '$msisdn'")
->andwhere("p.susInicio <= '".$fechaActual->format('Y-m-d H:i:s')."'")
->andWhere("p.susFin >= '".$fechaActual->format('Y-m-d H:i:s')."'");
$query = $qb->getQuery();
$execute = $query->getResult();
foreach ($execute as $pos => $object) {
if($object->getLisId()->getTag()->getTagId() == self::CLIENTE ){
$result[] = $object->getLisId();
}
}
return $result;
}
}
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Album
*
* @ORM\Table(name="album")
* @ORM\Entity
*/
class Album
{
/**
* @var int
*
* @ORM\Column(name="alb_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $albId;
/**
* @var string|null
*
* @ORM\Column(name="alb_nombre", type="string", length=100, nullable=true)
*/
private $albNombre;
/**
* @var \DateTime|null
*
* @ORM\Column(name="alb_duracion", type="time", nullable=true)
*/
private $albDuracion;
/**
* @var int|null
*
* @ORM\Column(name="alb_ano", type="smallint", nullable=true)
*/
private $albAno;
/**
* @var int|null
*
* @ORM\Column(name="alb_tipo", type="smallint", nullable=true)
*/
private $albTipo;
/**
* @var string|null
*
* @ORM\Column(name="alb_imagen", type="string", length=1000, nullable=true)
*/
private $albImagen;
/**
* @var string|null
*
* @ORM\Column(name="alb_pdf", type="string", length=1000, nullable=true)
*/
private $albPdf;
/**
* @var int|null
*
* @ORM\Column(name="alb_eliminado", type="smallint", nullable=true)
*/
private $albEliminado;
/**
* @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="Artista", inversedBy="alb")
* @ORM\JoinTable(name="album_artista",
* joinColumns={
* @ORM\JoinColumn(name="alb_id", referencedColumnName="alb_id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="art_id", referencedColumnName="art_id")
* }
* )
*/
private $art;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Genero", mappedBy="alb")
*/
private $gen;
/**
* Constructor
*/
public function __construct()
{
$this->art = new \Doctrine\Common\Collections\ArrayCollection();
$this->gen = new \Doctrine\Common\Collections\ArrayCollection();
}
public function getAlbId(): ?int
{
return $this->albId;
}
public function getAlbNombre(): ?string
{
return $this->albNombre;
}
public function setAlbNombre(?string $albNombre): self
{
$this->albNombre = $albNombre;
return $this;
}
public function getAlbDuracion(): ?\DateTimeInterface
{
return $this->albDuracion;
}
public function setAlbDuracion(?\DateTimeInterface $albDuracion): self
{
$this->albDuracion = $albDuracion;
return $this;
}
public function getAlbAno(): ?int
{
return $this->albAno;
}
public function setAlbAno(?int $albAno): self
{
$this->albAno = $albAno;
return $this;
}
public function getAlbTipo(): ?int
{
return $this->albTipo;
}
public function setAlbTipo(?int $albTipo): self
{
$this->albTipo = $albTipo;
return $this;
}
public function getAlbImagen(): ?string
{
return $this->albImagen;
}
public function setAlbImagen(?string $albImagen): self
{
$this->albImagen = $albImagen;
return $this;
}
public function getAlbPdf(): ?string
{
return $this->albPdf;
}
public function setAlbPdf(?string $albPdf): self
{
$this->albPdf = $albPdf;
return $this;
}
public function getAlbEliminado(): ?int
{
return $this->albEliminado;
}
public function setAlbEliminado(?int $albEliminado): self
{
$this->albEliminado = $albEliminado;
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|Artista[]
*/
public function getArt(): Collection
{
return $this->art;
}
public function addArt(Artista $art): self
{
if (!$this->art->contains($art)) {
$this->art[] = $art;
}
return $this;
}
public function removeArt(Artista $art): self
{
if ($this->art->contains($art)) {
$this->art->removeElement($art);
}
return $this;
}
/**
* @return Collection|Genero[]
*/
public function getGen(): Collection
{
return $this->gen;
}
public function addGen(Genero $gen): self
{
if (!$this->gen->contains($gen)) {
$this->gen[] = $gen;
$gen->addAlb($this);
}
return $this;
}
public function removeGen(Genero $gen): self
{
if ($this->gen->contains($gen)) {
$this->gen->removeElement($gen);
$gen->removeAlb($this);
}
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ApiListasEntel
*
* @ORM\Table(name="api_listas_entel", indexes={@ORM\Index(name="fk_usuariomovil_apilistasentel", columns={"umo_msisdn"})})
* @ORM\Entity
*/
class ApiListasEntel
{
/**
* @var int
*
* @ORM\Column(name="ale_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $aleId;
/**
* @var string|null
*
* @ORM\Column(name="ale_code", type="string", length=50, nullable=true)
*/
private $aleCode;
/**
* @var string|null
*
* @ORM\Column(name="ale_la", type="string", length=20, nullable=true)
*/
private $aleLa;
/**
* @var string|null
*
* @ORM\Column(name="ale_medio", type="string", length=15, nullable=true)
*/
private $aleMedio;
/**
* @var \DateTime|null
*
* @ORM\Column(name="ale_fecha_renovacion", type="datetime", nullable=true)
*/
private $aleFechaRenovacion;
/**
* @var \DateTime|null
*
* @ORM\Column(name="ale_fecha_suscripcion", type="datetime", nullable=true)
*/
private $aleFechaSuscripcion;
/**
* @var \DateTime|null
*
* @ORM\Column(name="ale_fecha_termino", type="datetime", nullable=true)
*/
private $aleFechaTermino;
/**
* @var int|null
*
* @ORM\Column(name="ale_cont_renovacion", type="smallint", nullable=true)
*/
private $aleContRenovacion;
/**
* @var int|null
*
* @ORM\Column(name="ale_cont_reintento_renovacion", type="smallint", nullable=true)
*/
private $aleContReintentoRenovacion;
/**
* @var int|null
*
* @ORM\Column(name="ale_cont_reintento_renovacion_periodo", type="smallint", nullable=true)
*/
private $aleContReintentoRenovacionPeriodo;
/**
* @var int|null
*
* @ORM\Column(name="ale_estado", type="smallint", nullable=true, options={"comment"="1 Activa
2 Inactiva"})
*/
private $aleEstado;
/**
* @var \UsuarioMovil
*
* @ORM\ManyToOne(targetEntity="UsuarioMovil")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="umo_msisdn", referencedColumnName="umo_msisdn")
* })
*/
private $umoMsisdn;
public function getAleId(): ?int
{
return $this->aleId;
}
public function getAleCode(): ?string
{
return $this->aleCode;
}
public function setAleCode(?string $aleCode): self
{
$this->aleCode = $aleCode;
return $this;
}
public function getAleLa(): ?string
{
return $this->aleLa;
}
public function setAleLa(?string $aleLa): self
{
$this->aleLa = $aleLa;
return $this;
}
public function getAleMedio(): ?string
{
return $this->aleMedio;
}
public function setAleMedio(?string $aleMedio): self
{
$this->aleMedio = $aleMedio;
return $this;
}
public function getAleFechaRenovacion(): ?\DateTimeInterface
{
return $this->aleFechaRenovacion;
}
public function setAleFechaRenovacion(?\DateTimeInterface $aleFechaRenovacion): self
{
$this->aleFechaRenovacion = $aleFechaRenovacion;
return $this;
}
public function getAleFechaSuscripcion(): ?\DateTimeInterface
{
return $this->aleFechaSuscripcion;
}
public function setAleFechaSuscripcion(?\DateTimeInterface $aleFechaSuscripcion): self
{
$this->aleFechaSuscripcion = $aleFechaSuscripcion;
return $this;
}
public function getAleFechaTermino(): ?\DateTimeInterface
{
return $this->aleFechaTermino;
}
public function setAleFechaTermino(?\DateTimeInterface $aleFechaTermino): self
{
$this->aleFechaTermino = $aleFechaTermino;
return $this;
}
public function getAleContRenovacion(): ?int
{
return $this->aleContRenovacion;
}
public function setAleContRenovacion(?int $aleContRenovacion): self
{
$this->aleContRenovacion = $aleContRenovacion;
return $this;
}
public function getAleContReintentoRenovacion(): ?int
{
return $this->aleContReintentoRenovacion;
}
public function setAleContReintentoRenovacion(?int $aleContReintentoRenovacion): self
{
$this->aleContReintentoRenovacion = $aleContReintentoRenovacion;
return $this;
}
public function getAleContReintentoRenovacionPeriodo(): ?int
{
return $this->aleContReintentoRenovacionPeriodo;
}
public function setAleContReintentoRenovacionPeriodo(?int $aleContReintentoRenovacionPeriodo): self
{
$this->aleContReintentoRenovacionPeriodo = $aleContReintentoRenovacionPeriodo;
return $this;
}
public function getAleEstado(): ?int
{
return $this->aleEstado;
}
public function setAleEstado(?int $aleEstado): self
{
$this->aleEstado = $aleEstado;
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;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ApiWappushmasiveEntel
*
* @ORM\Table(name="api_wappushmasive_entel", indexes={@ORM\Index(name="fk_plan_apiwappushmasiveentel", columns={"pla_id"})})
* @ORM\Entity
*/
class ApiWappushmasiveEntel
{
/**
* @var int
*
* @ORM\Column(name="apm_id", type="integer", nullable=false, options={"comment"="=transid"})
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $apmId;
/**
* @var string|null
*
* @ORM\Column(name="apm_code", type="string", length=50, nullable=true)
*/
private $apmCode;
/**
* @var string|null
*
* @ORM\Column(name="apm_la", type="string", length=20, nullable=true)
*/
private $apmLa;
/**
* @var int|null
*
* @ORM\Column(name="apm_tarifa_wappush", type="integer", nullable=true)
*/
private $apmTarifaWappush;
/**
* @var string|null
*
* @ORM\Column(name="apm_servicetag", type="string", length=50, nullable=true)
*/
private $apmServicetag;
/**
* @var int|null
*
* @ORM\Column(name="apm_total_moviles", type="smallint", nullable=true, options={"comment"="cantidad de moviles enviados!"})
*/
private $apmTotalMoviles;
/**
* @var int|null
*
* @ORM\Column(name="apm_mobilesonlist", type="smallint", nullable=true, options={"comment"="Cantidad de móviles existentes en la lista de distribución. NOTIFICACION"})
*/
private $apmMobilesonlist;
/**
* @var int|null
*
* @ORM\Column(name="apm_mobilerequested", type="smallint", nullable=true, options={"comment"="Cantidad de móviles sobre los que se solicitó despacho. NOTIFICACION"})
*/
private $apmMobilerequested;
/**
* @var int|null
*
* @ORM\Column(name="apm_dispatched", type="smallint", nullable=true, options={"comment"="Cantidad de móviles a los que fue posible realizar el despacho. NOTIFICACION"})
*/
private $apmDispatched;
/**
* @var string|null
*
* @ORM\Column(name="apm_detalle", type="text", length=65535, nullable=true)
*/
private $apmDetalle;
/**
* @var \DateTime|null
*
* @ORM\Column(name="apm_fecha_envio", type="datetime", nullable=true)
*/
private $apmFechaEnvio;
/**
* @var int|null
*
* @ORM\Column(name="apm_estado", type="smallint", nullable=true, options={"comment"="0 En espera respuesta a peticion
1 Esperando Notificacion
2 Ok
3 Error
4 Liberada por error u otra causa."})
*/
private $apmEstado;
/**
* @var \DateTime|null
*
* @ORM\Column(name="apm_fecha_notificacion", type="datetime", nullable=true)
*/
private $apmFechaNotificacion;
/**
* @var int|null
*
* @ORM\Column(name="apm_codigo_interno", type="smallint", nullable=true)
*/
private $apmCodigoInterno;
/**
* @var string|null
*
* @ORM\Column(name="apm_codigo_operador", type="string", length=50, nullable=true)
*/
private $apmCodigoOperador;
/**
* @var string|null
*
* @ORM\Column(name="apm_descripcion", type="text", length=65535, nullable=true)
*/
private $apmDescripcion;
/**
* @var int
*
* @ORM\Column(name="apm_tipo_envio", type="smallint", nullable=false, options={"default"="1"})
*/
private $apmTipoEnvio = '1';
/**
* @var string|null
*
* @ORM\Column(name="apm_response_message", type="string", length=50, nullable=true)
*/
private $apmResponseMessage;
/**
* @var string|null
*
* @ORM\Column(name="apm_response_mpushid", type="string", length=100, nullable=true)
*/
private $apmResponseMpushid;
/**
* @var string|null
*
* @ORM\Column(name="apm_response_xml", type="string", length=500, nullable=true)
*/
private $apmResponseXml;
/**
* @var \Plan
*
* @ORM\ManyToOne(targetEntity="Plan")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="pla_id", referencedColumnName="pla_id")
* })
*/
private $pla;
public function getApmId(): ?int
{
return $this->apmId;
}
public function getApmCode(): ?string
{
return $this->apmCode;
}
public function setApmCode(?string $apmCode): self
{
$this->apmCode = $apmCode;
return $this;
}
public function getApmLa(): ?string
{
return $this->apmLa;
}
public function setApmLa(?string $apmLa): self
{
$this->apmLa = $apmLa;
return $this;
}
public function getApmTarifaWappush(): ?int
{
return $this->apmTarifaWappush;
}
public function setApmTarifaWappush(?int $apmTarifaWappush): self
{
$this->apmTarifaWappush = $apmTarifaWappush;
return $this;
}
public function getApmServicetag(): ?string
{
return $this->apmServicetag;
}
public function setApmServicetag(?string $apmServicetag): self
{
$this->apmServicetag = $apmServicetag;
return $this;
}
public function getApmTotalMoviles(): ?int
{
return $this->apmTotalMoviles;
}
public function setApmTotalMoviles(?int $apmTotalMoviles): self
{
$this->apmTotalMoviles = $apmTotalMoviles;
return $this;
}
public function getApmMobilesonlist(): ?int
{
return $this->apmMobilesonlist;
}
public function setApmMobilesonlist(?int $apmMobilesonlist): self
{
$this->apmMobilesonlist = $apmMobilesonlist;
return $this;
}
public function getApmMobilerequested(): ?int
{
return $this->apmMobilerequested;
}
public function setApmMobilerequested(?int $apmMobilerequested): self
{
$this->apmMobilerequested = $apmMobilerequested;
return $this;
}
public function getApmDispatched(): ?int
{
return $this->apmDispatched;
}
public function setApmDispatched(?int $apmDispatched): self
{
$this->apmDispatched = $apmDispatched;
return $this;
}
public function getApmDetalle(): ?string
{
return $this->apmDetalle;
}
public function setApmDetalle(?string $apmDetalle): self
{
$this->apmDetalle = $apmDetalle;
return $this;
}
public function getApmFechaEnvio(): ?\DateTimeInterface
{
return $this->apmFechaEnvio;
}
public function setApmFechaEnvio(?\DateTimeInterface $apmFechaEnvio): self
{
$this->apmFechaEnvio = $apmFechaEnvio;
return $this;
}
public function getApmEstado(): ?int
{
return $this->apmEstado;
}
public function setApmEstado(?int $apmEstado): self
{
$this->apmEstado = $apmEstado;
return $this;
}
public function getApmFechaNotificacion(): ?\DateTimeInterface
{
return $this->apmFechaNotificacion;
}
public function setApmFechaNotificacion(?\DateTimeInterface $apmFechaNotificacion): self
{
$this->apmFechaNotificacion = $apmFechaNotificacion;
return $this;
}
public function getApmCodigoInterno(): ?int
{
return $this->apmCodigoInterno;
}
public function setApmCodigoInterno(?int $apmCodigoInterno): self
{
$this->apmCodigoInterno = $apmCodigoInterno;
return $this;
}
public function getApmCodigoOperador(): ?string
{
return $this->apmCodigoOperador;
}
public function setApmCodigoOperador(?string $apmCodigoOperador): self
{
$this->apmCodigoOperador = $apmCodigoOperador;
return $this;
}
public function getApmDescripcion(): ?string
{
return $this->apmDescripcion;
}
public function setApmDescripcion(?string $apmDescripcion): self
{
$this->apmDescripcion = $apmDescripcion;
return $this;
}
public function getApmTipoEnvio(): ?int
{
return $this->apmTipoEnvio;
}
public function setApmTipoEnvio(int $apmTipoEnvio): self
{
$this->apmTipoEnvio = $apmTipoEnvio;
return $this;
}
public function getApmResponseMessage(): ?string
{
return $this->apmResponseMessage;
}
public function setApmResponseMessage(?string $apmResponseMessage): self
{
$this->apmResponseMessage = $apmResponseMessage;
return $this;
}
public function getApmResponseMpushid(): ?string
{
return $this->apmResponseMpushid;
}
public function setApmResponseMpushid(?string $apmResponseMpushid): self
{
$this->apmResponseMpushid = $apmResponseMpushid;
return $this;
}
public function getApmResponseXml(): ?string
{
return $this->apmResponseXml;
}
public function setApmResponseXml(?string $apmResponseXml): self
{
$this->apmResponseXml = $apmResponseXml;
return $this;
}
public function getPla(): ?Plan
{
return $this->pla;
}
public function setPla(?Plan $pla): self
{
$this->pla = $pla;
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;
}
}
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.
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