avance backend *1

parent c4f49b42
......@@ -78,23 +78,38 @@ app_backend_listado_canciones_preparadas:
path: backend/canciones/listado/preparadas
controller: App\BackendBundle\Controller\CancionesController::listadoCancionesPreparadas
#app_backend_listado_suscripciones:
# path: backend/suscripciones/busqueda
# controller: App\BackendBundle\Controller\SuscripcionesController::busqueda
#app_backend_buscar_suscripciones:
# path: backend/suscripciones/busqueda/lista/suscripciones
# controller: App\BackendBundle\Controller\SuscripcionesController::buscarSuscripcion
# methods: [POST]
#app_backend_listado_alertas:
# path: backend/alertas/busqueda
# controller: App\BackendBundle\Controller\SuscripcionesController::busquedaAlertas
#app_backend_buscar_alertas:
# path: backend/alertas/busqueda/lista/alertas
# controller: App\BackendBundle\Controller\SuscripcionesController::buscarAlertas
# methods: [POST]
app_backend_listado_suscripciones:
path: backend/suscripciones/busqueda
controller: App\BackendBundle\Controller\SuscripcionesController::busqueda
path: backend/suscripciones/listado
controller: App\BackendBundle\Controller\UtilidadesController::listado
methods: [GET]
app_backend_buscar_suscripciones:
path: backend/suscripciones/busqueda/lista/suscripciones
controller: App\BackendBundle\Controller\SuscripcionesController::buscarSuscripcion
methods: [POST]
app_backend_listado_alertas:
path: backend/alertas/busqueda
controller: App\BackendBundle\Controller\SuscripcionesController::busquedaAlertas
path: backend/suscripciones/resultado/busqueda
controller: App\BackendBundle\Controller\UtilidadesController:buscar
methods: [POST,GET]
app_backend_buscar_alertas:
path: backend/alertas/busqueda/lista/alertas
controller: App\BackendBundle\Controller\SuscripcionesController::buscarAlertas
methods: [POST]
app_backend_cancelar_suscripciones:
path: backend/suscripciones/cancelar
controller: App\BackendBundle\Controller\UtilidadesController:cancelar
methods: [POST]
#######
......
<?php
namespace App\BackendBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use App\Utilities\Utiles;
use App\Utilities\Kushki;
use App\Entity\PluSuscripcion;
class UtilidadesController extends AbstractController {
private $manager = null;
public function listado(): Response {
$log = Utiles::setLog('App\BackendBundle\Controller::UtilidadesController::listado', 'app/suscripciones');
$log->debug("entrando en listado de suscripciones vigentes...");
$this->manager = $this->getDoctrine()->getManager('default');
return $this->render('backend/suscripciones/listado_suscripciones.html.twig', array("suscripciones" => []));
}
public function buscar(Request $request): Response {
$log = Utiles::setLog('App\BackendBundle\Controller::UtilidadesController::buscar', 'app/suscripciones');
$this->manager = $this->getDoctrine()->getManager('default');
$msisdn = $request->get('msisdn');
$log->debug("numero de telefono a buscar $msisdn...");
$suscripciones = $this->manager->getRepository(PluSuscripcion::class)->getSuscripcionesVigentes($msisdn);
return $this->render('backend/suscripciones/suscripcionesAsociadas.html.twig', array(
'suscripciones' => $suscripciones,
));
}
public function cancelar(Request $request): Response {
$log = Utiles::setLog('App\BackendBundle\Controller::UtilidadesController::cancelar', 'app/suscripciones');
$em = $this->getDoctrine()->getManager('default');
$msisdn = $request->get('msisdn', null);
$suscripcionId = $request->get('suscripcionId', null);
$tipoSuscripcion = $request->get('tipoSuscripcion', null);
$lisId = $request->get("idLista", null);
if ($tipoSuscripcion == 1) {
$textoSuscripcion = "ENTEL";
} else {
$textoSuscripcion = "KUSHKI";
}
$log->debug("procediendo a cancelar la SUSCRIPCION $textoSuscripcion con id $suscripcionId para el MSISDN $msisdn, ");
if ($tipoSuscripcion == 1) {
$ultimaSuscripcionVigenteLista = $em->getRepository(PluSuscripcion::class)->findBySusId($suscripcionId)[0];
$suscripcion = new PluSuscripcion();
$suscripcion->setSusTipoSuscripcion(PluSuscripcion::TIPO_SUSCRIPCION_ENTEL);
$suscripcion->setLisId($ultimaSuscripcionVigenteLista->getLisId());
$suscripcion->setSusMsisdn($ultimaSuscripcionVigenteLista->getSusMsisdn());
$suscripcion->setSusInicio($ultimaSuscripcionVigenteLista->getSusInicio());
$suscripcion->setSusFin($ultimaSuscripcionVigenteLista->getSusFin());
$suscripcion->setSusVigente(PluSuscripcion::VIGENTE);
$suscripcion->setSusEliminado(PluSuscripcion::ELIMINADO_FALSE);
$suscripcion->setCreatedAt(new \DateTime());
$suscripcion->setUpdatedAt(new \DateTime());
$log->debug("Haciendo peticion a ENTEL VPW....");
$resultado = EntelVPW::desuscribirEntel($msisdn, $suscripcion->getLisId()->getLisId(), $suscripcion, $em);
$log->debug("Resultado desuscripcion ENTEL VPW :" . print_r($resultado, true));
$status = $resultado["statusCode"];
if ($status == 200) {
$ultimaSuscripcionVigenteLista->setSusVigente(PluSuscripcion::NO_VIGENTE);
$em->persist($ultimaSuscripcionVigenteLista);
$em->flush();
$suscripciones = $em->getRepository(PluSuscripcion::class)->getSuscripcionesVigentes($msisdn);
$log->debug("Cancelar suscripcion realizada correctamente para $suscripcionId, del usuario $msisdn | STATUS : $status...");
return $this->render('backend/suscripciones/suscripcionesAsociadas.html.twig', array(
'suscripciones' => $suscripciones,
));
} else {
$log->debug("Cancelar suscripcion no realizada para $suscripcionId, del usuario $msisdn | STATUS : $status...");
$suscripciones = $em->getRepository(PluSuscripcion::class)->getSuscripcionesVigentes($msisdn);
return $this->render('backend/suscripciones/suscripcionesAsociadas.html.twig', array(
'suscripciones' => $suscripciones,
));
}
} else if ($tipoSuscripcion == 2) {
$ultimaSuscripcionVigenteLista = $em->getRepository(PluSuscripcion::class)->findBySusId($suscripcionId)[0];
//Registro de desuscripcion
$suscripcion = new PluSuscripcion();
$suscripcion->setSusTipoSuscripcion(PluSuscripcion::TIPO_SUSCRIPCION_KUSHKI);
$suscripcion->setLisId($ultimaSuscripcionVigenteLista->getLisId());
$suscripcion->setSusMsisdn($ultimaSuscripcionVigenteLista->getSusMsisdn());
$suscripcion->setSusInicio($ultimaSuscripcionVigenteLista->getSusInicio());
$suscripcion->setSusFin($ultimaSuscripcionVigenteLista->getSusFin());
$suscripcion->setSusSuscriptionIdKushki($ultimaSuscripcionVigenteLista->getSusSuscriptionIdKushki());
$suscripcion->setSusTokenKushki($ultimaSuscripcionVigenteLista->getSusTokenKushki());
$suscripcion->setSusPayTypeKushki($ultimaSuscripcionVigenteLista->getSusPayTypeKushki());
$suscripcion->setSusStartDateKushki($ultimaSuscripcionVigenteLista->getSusStartDateKushki());
$suscripcion->setSusVigente(PluSuscripcion::VIGENTE);
$suscripcion->setSusEliminado(PluSuscripcion::ELIMINADO_FALSE);
$suscripcion->setCreatedAt(new \DateTime());
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
$log->debug("Haciendo peticion a KUSHKI-CANCELAR SUSCRIPCION....");
$kushki = new Kushki();
$result = $kushki->callCancelarSuscripcionKushki($em, $suscripcion);
$log->debug("Resultado KUSHKI-CANCELAR SUSCRIPCION..." . print_r($result, true));
$log->debug("analizando respuesta KUSHKI- SUSCRIPCION.....");
$http_status = $result["code"];
$message = $result["message"];
$internalId = $result["internalId"];
$subscriptionId = $result["subscriptionId"];
if ($http_status == 204) {
$suscripcion->setSusUltimoTipoXml(PluSuscripcion::TIPO_XML_DESINSCRIPCION);
$suscripcion->setSusHttpCodeKushki($http_status);
$suscripcion->setSusResponseKushki(json_encode($result));
$suscripcion->setSusTransactionIdKushki($internalId);
$suscripcion->setSusSuscriptionIdKushki($ultimaSuscripcionVigenteLista->getSusSuscriptionIdKushki());
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
$ultimaSuscripcionVigenteLista->setSusVigente(PluSuscripcion::NO_VIGENTE);
$em->persist($ultimaSuscripcionVigenteLista);
$em->flush();
$suscripciones = $em->getRepository(PluSuscripcion::class)->getSuscripcionesVigentes($msisdn);
$log->debug("Cancelar suscripcion realizada correctamente para $suscripcionId, del usuario $msisdn | STATUS : $http_status...");
return $this->render('backend/suscripciones/suscripcionesAsociadas.html.twig', array(
'suscripciones' => $suscripciones,
));
} else {
$suscripcion->setSusUltimoTipoXml(PluSuscripcion::TIPO_XML_DESINSCRIPCION);
$suscripcion->setSusHttpCodeKushki($http_status);
$suscripcion->setSusResponseKushki(json_encode($result));
$suscripcion->setSusTransactionIdKushki($internalId);
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
$log->debug("Cancelar suscripcion no realizada para $suscripcionId, del usuario $msisdn | STATUS : $status...");
$suscripciones = $em->getRepository(PluSuscripcion::class)->getSuscripcionesVigentes($msisdn);
return $this->render('backend/suscripciones/suscripcionesAsociadas.html.twig', array(
'suscripciones' => $suscripciones,
));
}
}
return new Response();
}
}
......@@ -38,7 +38,8 @@ class VerificarFechaSuscripcionesCommand extends Command
$suscripciones = $this->em
->getRepository(PluSuscripcion::class)
->findBy(array("susVigente" => 1));
->findBy(array("susVigente" => PluSuscripcion::VIGENTE, "susTipoSuscripcion"=> PluSuscripcion::TIPO_SUSCRIPCION_ENTEL));
$fechaActual = new \DateTime();
foreach($suscripciones as $index=>$suscripcion):
$log->debug("Analizando suscripcion ".$suscripcion->getSusId()." de la lista ".$suscripcion->getLisId()->getLisId()." del msisdn ".$suscripcion->getSusMsisdn());
......
This diff is collapsed.
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="plu_parametro_configuracion")
* @ORM\Entity(repositoryClass="App\Repository\PluParametroConfiguracionRepository")
*/
class PluParametroConfiguracion
{
/**
* @var int
*
* @ORM\Column(name="pco_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $pcoId;
/**
* @var string|null
*
* @ORM\Column(name="pco_nombre", type="string", length=500, nullable=true)
*/
private $pcoNombre;
/**
* @var string|null
*
* @ORM\Column(name="pco_valor", type="string", length=500, nullable=true)
*/
private $pcoValor;
/**
* @var string|null
*
* @ORM\Column(name="pco_descripcion", type="string", length=500, nullable=true)
*/
private $pcoDescripcion;
public function getPcoId(): ?int
{
return $this->pcoId;
}
public function setPcoId(int $pcoId): self
{
$this->pcoId = $pcoId;
return $this;
}
public function getPcoNombre(): ?string
{
return $this->pcoNombre;
}
public function setPcoNombre(?string $pcoNombre): self
{
$this->pcoNombre = $pcoNombre;
return $this;
}
public function getPcoValor(): ?string
{
return $this->pcoValor;
}
public function setPcoValor(?string $pcoValor): self
{
$this->pcoValor = $pcoValor;
return $this;
}
public function getPcoDescripcion(): ?string
{
return $this->pcoDescripcion;
}
public function setPcoDescripcion(?string $pcoDescripcion): self
{
$this->pcoDescripcion = $pcoDescripcion;
return $this;
}
}
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="plu_parametro_configuracion")
* @ORM\Entity(repositoryClass="App\Repository\PluParametroConfiguracionRepository")
*/
class PluParametroConfiguracion
{
/**
* @var int
*
* @ORM\Column(name="pco_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $pcoId;
/**
* @var string|null
*
* @ORM\Column(name="pco_nombre", type="string", length=500, nullable=true)
*/
private $pcoNombre;
/**
* @var string|null
*
* @ORM\Column(name="pco_valor", type="string", length=500, nullable=true)
*/
private $pcoValor;
/**
* @var string|null
*
* @ORM\Column(name="pco_descripcion", type="string", length=500, nullable=true)
*/
private $pcoDescripcion;
public function getPcoId(): ?int
{
return $this->pcoId;
}
public function setPcoId(int $pcoId): self
{
$this->pcoId = $pcoId;
return $this;
}
public function getPcoNombre(): ?string
{
return $this->pcoNombre;
}
public function setPcoNombre(?string $pcoNombre): self
{
$this->pcoNombre = $pcoNombre;
return $this;
}
public function getPcoValor(): ?string
{
return $this->pcoValor;
}
public function setPcoValor(?string $pcoValor): self
{
$this->pcoValor = $pcoValor;
return $this;
}
public function getPcoDescripcion(): ?string
{
return $this->pcoDescripcion;
}
public function setPcoDescripcion(?string $pcoDescripcion): self
{
$this->pcoDescripcion = $pcoDescripcion;
return $this;
}
}
This diff is collapsed.
......@@ -31,6 +31,20 @@ class PluSuscripcionRepository extends ServiceEntityRepository {
->getResult();
return $result;
}
public function getSuscripcionesVigentes($msisdn){
$result = $this->createQueryBuilder('p')
->andWhere('p.susEliminado = 0')
->andWhere('p.susVigente = 1')
->andWhere("p.susMsisdn != '' ")
->andWhere('p.susMsisdn = :msisdn')
->andWhere('p.susUltimoTipoXml = 1')
->setParameters(array("msisdn" => $msisdn))
->orderBy('p.createdAt', 'ASC')
->getQuery()
->getResult();
return $result;
}
public function getListaMsisdn() {
$result = $this->createQueryBuilder('p')
......@@ -46,9 +60,25 @@ class PluSuscripcionRepository extends ServiceEntityRepository {
}
public function getUltimaSuscripcionLista($msisdn, $idLista) {
return $this->createQueryBuilder('p')
->where('p.susVigente = 1')
->andWhere('p.susTipoSuscripcion = 1')
->andWhere('p.susUltimoTipoXml = 1')
->andWhere('p.susEliminado = 0')
->andWhere('p.susMsisdn = :msisdn')
->andWhere('p.lisId = :id')
->setParameters(array("id" => $idLista, "msisdn" => $msisdn))
->orderBy('p.susId', 'DESC')
->getQuery()
->getOneOrNullResult();
}
public function getUltimaSuscripcionListaKushki($msisdn, $idLista) {
return $this->createQueryBuilder('p')
->where('p.susVigente = 1')
->andWhere('p.susUltimoTipoXml = 1')
->andWhere('p.susTipoSuscripcion = 2')
->andWhere('p.susUltimoTipoKushki = 1')
->andWhere('p.susEliminado = 0')
->andWhere('p.susMsisdn = :msisdn')
->andWhere('p.lisId = :id')
......
......@@ -18,6 +18,16 @@ class PluParametroConfiguracionRepository extends ServiceEntityRepository
{
parent::__construct($registry, PluParametroConfiguracion::class);
}
public function getParametroConfiguracion($value)
{
return $this->createQueryBuilder('p')
->andWhere('p.pcoNombre = :val')
->setParameter('val', $value)
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT)[0]
;
}
// /**
// * @return PluParametroConfiguracion[] Returns an array of PluParametroConfiguracion objects
......
<?php
namespace App\Utilities;
use App\Utilities\Utiles;
/*
* 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.
*/
/**
* Description of Kushki
*
* @author Ing 04
*/
class Kushki {
public $token;
public $productName;
public $productPrice;
public $productDescription;
public $userIdentifier;
public $name;
public $lastName;
public $email;
public $periodicity;
public $subscriptionStartDate;
public $internalId;
public $productId;
public function callSuscripcionKushki($em) {
$log = Utiles::setLog("Kushki::callSuscripcionKushki", 'app/ws/kushki/pagos/suscripcion');
$url = Utiles::getParametroConfiguracion("urlBaseGatewayPagos", $em).Utiles::getParametroConfiguracion("suscripcionPagos", $em).Utiles::getParametroConfiguracion("publicKeyKushki", $em)."/".Utiles::getParametroConfiguracion("clientIdKushki", $em);
try {
$log->debug('suscribiendo kushki... url:' . $url);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->getPostFields());
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$output = curl_exec($ch);
$status_code_suscribir = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$log->debug('Retorno status a suscribir externo:' . $status_code_suscribir . ' | desc:' . $output);
$data = json_decode($output, true);
return $data;
} catch (\Exception $e) {
$log->err(' Error al suscribir. url:' . $url . ' .Exception: ' . $e);
$status_code = null;
$desc = null;
$logError = Utiles::setLog("Kushki::callSuscripcionKushki", 'error/wsKushkiSuscripcion');
$logError->err(' Error al suscribir. url:' . $url . ' .Exception: ' . $e);
return ['code' => 500, 'message' => "", "subscriptionId" => "", "internalId" => ""];
}
}
public function callCancelarSuscripcionKushki($em, $suscripcion) {
$log = Utiles::setLog("Kushki::callSuscripcionKushki", 'app/ws/kushki/pagos/suscripcion');
$url = Utiles::getParametroConfiguracion("urlBaseGatewayPagos", $em).Utiles::getParametroConfiguracion("cancelarSuscripcionPagos", $em).Utiles::getParametroConfiguracion("publicKeyKushki", $em)."/".Utiles::getParametroConfiguracion("clientIdKushki", $em)."/".$suscripcion->getSusSuscriptionIdKushki();
try {
$log->debug('suscribiendo kushki... url:' . $url);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "clientInternalId=".$suscripcion->getSusId()."&userIdentifier=".$suscripcion->getSusMsisdn()."&startDate=".$suscripcion->getSusStartDateKushki()."&periodicity=".Utiles::getParametroConfiguracion("periodoSuscripcion", $em));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$output = curl_exec($ch);
$status_code_suscribir = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$log->debug('Retorno status a suscribir externo:' . $status_code_suscribir . ' | desc:' . $output);
$data = json_decode($output, true);
return $data;
} catch (\Exception $e) {
$log->err(' Error al suscribir. url:' . $url . ' .Exception: ' . $e);
$status_code = null;
$desc = null;
$logError = Utiles::setLog("Kushki::callSuscripcionKushki", 'error/wsKushkiSuscripcion');
$logError->err(' Error al suscribir. url:' . $url . ' .Exception: ' . $e);
return ['code' => 500, 'message' => "", "subscriptionId" => "", "internalId" => ""];
}
}
public function getPostFields(){
return "token=".$this->getToken()
."&productName=".$this->getProductName()
."&productPrice=".$this->getProductPrice()
."&productDescription=".$this->getProductDescription()
."&userIdentifier=".$this->getUserIdentifier()
."&name=".$this->getName()
."&lastName=".$this->getLastName()
."&email=".$this->getEmail()
."&periodicity=".$this->getPeriodicity()
."&subscriptionStartDate=".$this->getSubscriptionStartDate()
."&internalId=".$this->getInternalId()
."&productId=".$this->getProductId();
}
public function getToken() {
return $this->token;
}
public function getProductName() {
return $this->productName;
}
public function getProductPrice() {
return $this->productPrice;
}
public function getProductDescription() {
return $this->productDescription;
}
public function getUserIdentifier() {
return $this->userIdentifier;
}
public function getName() {
return $this->name;
}
public function getLastName() {
return $this->lastName;
}
public function getEmail() {
return $this->email;
}
public function getPeriodicity() {
return $this->periodicity;
}
public function getSubscriptionStartDate() {
return $this->subscriptionStartDate;
}
public function getInternalId() {
return $this->internalId;
}
public function setToken($token) {
$this->token = $token;
}
public function setProductName($productName) {
$this->productName = $productName;
}
public function setProductPrice($productPrice) {
$this->productPrice = $productPrice;
}
public function setProductDescription($productDescription) {
$this->productDescription = $productDescription;
}
public function setUserIdentifier($userIdentifier) {
$this->userIdentifier = $userIdentifier;
}
public function setName($name) {
$this->name = $name;
}
public function setLastName($lastName) {
$this->lastName = $lastName;
}
public function setEmail($email) {
$this->email = $email;
}
public function setPeriodicity($periodicity) {
$this->periodicity = $periodicity;
}
public function setSubscriptionStartDate($subscriptionStartDate) {
$this->subscriptionStartDate = $subscriptionStartDate;
}
public function setInternalId($internalId) {
$this->internalId = $internalId;
}
public function getProductId() {
return $this->productId;
}
public function setProductId($productId) {
$this->productId = $productId;
}
}
......@@ -5,6 +5,7 @@ namespace App\Utilities;
use Monolog\Logger;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\StreamHandler;
use App\Entity\PluParametroConfiguracion;
/*
* To change this license header, choose License Headers in Project Properties.
......@@ -205,5 +206,20 @@ class Utiles {
return "http://new.topsify.cl";
}
}
public static function getParametroConfiguracion($nombre,$em) {
$str_valor = '';
$parametro = $em->getRepository(PluParametroConfiguracion::class)->getParametroConfiguracion($nombre);
//print_r($parametro);
//exit;
if ($parametro)
$str_valor = $parametro->getPcoValor();
return $str_valor;
}
}
<!-- Modal -->
<div class="modal fade" id="modalCreacionSuscripcion" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 id="" class="modal-title modalTitleCustom">Crear Nueva Suscripción</h4>
<button onclick="" type="button" class="close modalCloseCustom" data-dismiss="modal">&times;</button>
</div>
<div id="" class="modal-body">
<div class="row">
<div class="col-md-12">
<p>Ingrese los datos de la nueva suscripción</p>
<div id="message-container-creacion-success"></div>
<div id="message-container-creacion"></div>
<form class="form-horizontal" action="/" method="post">
<div class="form-group">
<div class="col-md-12">
<label class="form-label">Teléfono Usuario</label>
<input class="form-control focused" id="msisdnUsuario" name="msisdnUsuario" maxlength="9" required title="Ingrese el telefono del usuario" type="text" placeholder="Ej:974867425">
</div>
<br>
</div>
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button id="btnCrearSuscripcion" type="button" onclick="crearSuscripcion(event)" class="btn btn-success">Crear</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
\ No newline at end of file
......@@ -35,9 +35,9 @@
</a>
<div id="listadoCanciones" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Funciones:</h6>
<a class="collapse-item" href="{{ path('app_backend_listado_index')}}">Listados Creados</a>
<a class="collapse-item" href="{{ path('app_backend_listado_nuevo')}}">Crear Listado</a>
<h6 class="collapse-header">Opciones</h6>
<a class="collapse-item" href="{{ path('app_backend_listado_index')}}">Listas Disponibles</a>
<a class="collapse-item" href="{{ path('app_backend_listado_nuevo')}}">Crear Nueva Lista</a>
</div>
</div>
</li>
......@@ -50,14 +50,14 @@
</a>
<div id="canciones" class="collapse" aria-labelledby="headingUtilities" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Funciones:</h6>
<h6 class="collapse-header">Opciones</h6>
<a class="collapse-item" href="{{ path('app_backend_listado_canciones_disponibles')}}">Preparar Canciones</a>
<a class="collapse-item" href="{{ path('app_backend_listado_canciones_preparadas')}}">Canciones Preparadas</a>
</div>
</div>
</li>
<li class="nav-item">
{#<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#suscripciones" aria-expanded="true" aria-controls="suscripciones">
<i class="fas fa-fw fa-list"></i>
<span>Suscripciones</span>
......@@ -68,7 +68,7 @@
<a class="collapse-item" href="{{ path('app_backend_listado_suscripciones')}}">Listado Suscripciones</a>
</div>
</div>
</li>
</li>#}
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#utilidades" aria-expanded="true" aria-controls="utilidades">
......@@ -77,8 +77,9 @@
</a>
<div id="utilidades" class="collapse" aria-labelledby="headingUtilities" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Funciones:</h6>
<a class="collapse-item" href="{{ path('app_backend_listado_alertas')}}">Alertas</a>
<h6 class="collapse-header">Opciones</h6>
<a class="collapse-item" href="{{ path('app_backend_listado_suscripciones')}}">Panel Suscripciones</a>
{#<a class="collapse-item" href="{{ path('app_backend_listado_alertas')}}">Alertas</a>#}
</div>
</div>
</li>
......
<!-- end page-header -->
<div class="row">
<div class="container-fluid">
<div class="table-responsive">
<table id="data-table" class="table table-striped table-bordered dt-responsive nowrap">
<thead>
<tr>
<th>Id</th>
<th>Msisdn</th>
<th>Tipo</th>
<th>Lista</th>
<th>Precio</th>
<th>Codigo</th>
<th>Estado</th>
<th>Causa</th>
<th>Fecha Inicio Suscripcion</th>
<th>Fecha Fin Suscripcion</th>
<th>Dias Restantes</th>
</tr>
</thead>
<tbody>
{% for suscripcion in suscripciones %}
<tr>
<td>{{suscripcion.getSusId()}}</td>
<td>{{suscripcion.getSusMsisdn()}}</td>
<td>{% if suscripcion.getSusUltimoTipoXml() == 1 %} <span style="background-color: greenyellow; color: whitesmoke"> Suscripción </span> {% else %} <span style="background-color: red; color: whitesmoke"> Desisncripción </span> {% endif %}</td>
<td>{{suscripcion.getLisId().getLisNombre()}}</td>
<td>{{suscripcion.getLisId().getLisPrecio()|localizedcurrency('CLP')}}</td>
<td>{{suscripcion.getLisId().getLisCode()}}</td>
<td>{% if suscripcion.getSusEstadoTx() == 1 %}<span style="background-color: greenyellow; color: whitesmoke">Vigente</span>{% else %}<span style="background-color: red; color: whitesmoke">No Vigente</span>{% endif %}</td>
<td>
{{suscripcion.getSusHttpDescr()}}
</td>
<td>{{suscripcion.getFechaInicioFormatted()}}</td>
<td>{{suscripcion.getFechaFinFormatted()}}</td>
<td>{{suscripcion.getTiempoRestanteSuscripcion()}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
\ No newline at end of file
<!-- end page-header -->
<div class="row">
<div class="container-fluid">
<div class="table-responsive">
<table id="data-table" class="table table-striped table-bordered dt-responsive nowrap">
<thead>
<tr>
<th>Id</th>
<th>Usuario</th>
<th>Tipo</th>
<th>Lista</th>
<th>Precio</th>
<th>Estado</th>
<th>Fecha Inicio Suscripcion</th>
<th>Fecha Fin Suscripcion</th>
<th>Dias Restantes</th>
<th>Opciones</th>
</tr>
</thead>
<tbody>
{% for suscripcion in suscripciones %}
<tr>
<td>{{suscripcion.getSusId()}}</td>
<td>{{suscripcion.getSusMsisdn()}}</td>
<td>{% if suscripcion.getSusTipoSuscripcion() == 1 %} <span style="background-color: blue; color: whitesmoke"> ENTEL </span> {% else %} <span style="background-color: green; color: whitesmoke"> KUSHKI </span> {% endif %}</td>
<td>{{suscripcion.getLisId().getLisNombre()}}</td>
<td>{{suscripcion.getLisId().getLisPrecio()|localizedcurrency('CLP')}}</td>
<td>{% if suscripcion.getSusVigente() == 1 %}<span style="background-color: black; color: whitesmoke">Activa</span>{% else %}<span style="background-color: red; color: whitesmoke">No Activa</span>{% endif %}</td>
<td>{{suscripcion.getFechaInicioFormatted()}}</td>
<td>{{suscripcion.getFechaFinFormatted()}}</td>
<td>{{suscripcion.getTiempoRestanteSuscripcion()}}</td>
<td>
<a id="cancelarSuscripcion" class="btn btn-sm" title="Cancelar Suscripción" onclick="cancelarSuscripcion(event, '{{ suscripcion.getLisId().getLisNombre() }}', '{{suscripcion.getSusMsisdn()}}', {{suscripcion.getSusId()}}, {{suscripcion.getSusTipoSuscripcion()}}, {{suscripcion.getLisId().getLisId()}})" href="" >
<i class="fa fa-trash fa-lg"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
\ No newline at end of file
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