} } ?> <li><a href="index.php"><i class="fa fa-home"></i></a></li> </ul> </div> <!-- /.navbar-collapse --> <!-- Navbar Right Menu --> <div class="navbar-custom-menu"> <ul class="nav navbar-nav"> <!-- Notifications Menu --> <?php include './include/notificaciones.class.php'; $obj_notificaciones = new Notificaciones(); $contador_notificaciones = $obj_notificaciones->traerTotalNotificaciones($id); ?> <?php if ($tipo == 'persona') { ?> <li class="dropdown notifications-menu"> <!-- Menu toggle button --> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-bell-o"></i> <span class="label label-danger"><?php echo $contador_notificaciones; ?> </span> </a> <ul class="dropdown-menu">
/** * Usar una accion grupal * * @static * @param $usuario * @param $id_accion * @param $id_equipo * @param $res : recursos del jugador * @param $habilidad * @return int id de la nueva accion grupal */ public static function usarGrupal($usuario, $id_accion, $id_equipo, $res, $habilidad) { $id_usuario = $usuario->id_usuario; /* Se deberia obtener la accion grupal mediante su PK (id_accion_grupal) Como $id_accion equivale $id_habilidad por como se redirige desde acciones/index para obtener la accion grupal debo buscar por id_equipo y id_habilidad NOTA: no se contempla la posibilidad de en un mismo equipo haya varias acciones iguales pero con distinto creador (aunque dicha posibilidad existe) ya que debe arreglarse la redireccion */ $res['dinero'] -= $habilidad['dinero']; $res['animo'] -= $habilidad['animo']; $res['influencias'] -= $habilidad['influencias']; $res['influencias_bloqueadas'] += $habilidad['influencias']; //sumarselos al crear nueva accion grupal $accion_grupal = new AccionesGrupales(); $accion_grupal->setAttributes(array('usuarios_id_usuario' => $id_usuario, 'habilidades_id_habilidad' => $id_accion, 'equipos_id_equipo' => $id_equipo, 'influencias_acc' => $habilidad['influencias'], 'animo_acc' => $habilidad['animo'], 'dinero_acc' => $habilidad['dinero'], 'jugadores_acc' => 1, 'finalizacion' => $habilidad['cooldown_fin'] + time(), 'completada' => 0)); //guardar en los modelos $res->save(); $accion_grupal->save(); //Crear participación del creador $participacion = new Participaciones(); $participacion->acciones_grupales_id_accion_grupal = $accion_grupal->id_accion_grupal; $participacion->usuarios_id_usuario = $id_usuario; $participacion->dinero_aportado = $habilidad['dinero']; $participacion->influencias_aportadas = $habilidad['influencias']; $participacion->animo_aportado = $habilidad['animo']; if (!$participacion->save()) { Yii::app()->user->setFlash('error', 'Participación no creada. (AccionesController,actionUsar.'); throw new Exception("Participación no creada. (AccionesController,actionUsar)"); } //Enviamos la notificación correspondiente $notificacion = new Notificaciones(); $notificacion->fecha = time(); $notificacion->mensaje = Usuarios::model()->findByPk($id_usuario)->nick . " ha abierto la acción " . Habilidades::model()->findByPk($id_accion)->nombre; $notificacion->imagen = "images/iconos/notificaciones/nueva_grupal.png"; $notificacion->save(); //Enviamos la notificación a la afición $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo' => $id_equipo)); foreach ($componentes as $componente) { $usrnotif = new Usrnotif(); $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } // EXP: sumar experencia al usuario $usuario->sumarExp(Usuarios::MEDIA_EXP); return $accion_grupal['id_accion_grupal']; }
public function executeEdit() { if ($this->getRequestParameter('layout', '')) { $this->setLayout('popup'); } $this->tablaFicheros = TablaPeer::getTablaFicheros(); $this->id_formulario_proviene = $this->getRequestParameter('id_formulario_proviene', null); $this->id_tabla_proviene = $this->getRequestParameter('id_tabla_proviene', null); $this->formulario = $this->getFormularioOrCreate(); $this->items = $this->formulario->getArrayItems(); if ($this->getRequest()->getMethod() == sfRequest::POST) { //GENERAMOS EL ID DEL FORMULARIO PARA QUE LO PUEDA COGER LA TAREA AL GUARDALA if ($this->formulario->getIdFormulario() == 0) { $this->saveFormulario($this->formulario); } $this->updateFormularioFromRequest(); $this->saveFormulario($this->formulario); $this->getUser()->setFlash('notice', 'Las modificaciones se han guardado'); if ($this->getRequestParameter('save_and_add')) { if ($this->id_formulario_proviene != null) { return $this->redirect('formularios/create/?id_tabla=' . $this->formulario->getIdTabla() . "&id_formulario_proviene=" . $this->id_formulario_proviene); } else { return $this->redirect('formularios/create/?id_tabla=' . $this->formulario->getIdTabla()); } } else { if ($this->getRequestParameter('save_and_list')) { /*$ruta=sfContext::getInstance()->getUser()->getAttribute('ruta_legedia',null);*/ $ruta = UsuarioPeer::getRuta(); if ($this->id_formulario_proviene != null) { return $this->redirect('formularios/edit?id_formulario=' . $this->id_formulario_proviene); } else { $dir = $ruta . "/formularios/list/?filters[id_empresa]=" . $this->formulario->getTabla()->getIdEmpresa() . "&filters[id_tabla]=" . $this->formulario->getIdTabla() . "&filter=filter"; header("location: {$dir}"); } exit; //return $this->redirect('formularios/list'); } else { if ($this->id_formulario_proviene != null) { return $this->redirect('formularios/edit?id_formulario=' . $this->id_formulario_proviene); } else { $pre = str_replace('formularios/edit', 'notificaciones/inscribir/id_fichero/', Notificaciones::selfURL()); if (isset($_POST['modelo']) && isset($_POST['sistema']) && isset($_POST['tip'])) { header('Location: ' . $pre . $this->formulario->getIdFormulario() . '?model=' . $_POST['modelo'] . '&type=' . $_POST['tip'] . '&system=' . $_POST['sistema'] . '&redirect=1'); } elseif (isset($_POST['modelo']) && isset($_POST['sistema'])) { header('Location: ' . $pre . $this->formulario->getIdFormulario() . '?model=' . $_POST['modelo'] . '&system=' . $_POST['sistema'] . '&redirect=1'); } else { //echo "--".$this->formulario->getIdFormulario();exit(); return $this->redirect('formularios/edit?id_formulario=' . $this->formulario->getIdFormulario()); } } } } } else { $this->tablas_auxiliares = array(); if ($this->formulario->getIdFormulario() != 0) { //Obtengo si hay un campo de tipo Tabla cuya tabla sea esta y tenga el mostrar_en_padre $c = new Criteria(); $c->AddJoin(CampoPeer::ID_CAMPO, RelCampoTablaPeer::ID_CAMPO, Criteria::JOIN); $c->AddJoin(RelCampoTablaPeer::ID_TABLA, TablaPeer::ID_TABLA, Criteria::JOIN); $id_empresa = sfContext::getInstance()->getUser()->getAttribute('idempresa', 0); $c->addAnd(TablaPeer::ID_EMPRESA, $id_empresa, Criteria::EQUAL); $c->addAnd(CampoPeer::TIPO, CampoPeer::ID_TABLA, Criteria::EQUAL); $c->addAnd(CampoPeer::MOSTRAR_EN_PADRE, 1, Criteria::EQUAL); $c->addAnd(CampoPeer::VALOR_TABLA, $this->formulario->getIdTabla(), Criteria::EQUAL); $campos_rel = CampoPeer::doSelect($c); foreach ($campos_rel as $campo_rel) { //DEL CAMPO OBTENEMOS LA TABLA $tablas_rel = $campo_rel->getRelCampoTablas(); $tabla_rel = $tablas_rel[0]; unset($tablas_rel); $c = $this->getCriterio(); $c->addJoin(FormularioPeer::ID_FORMULARIO, ItemPeer::ID_FORMULARIO, Criteria::JOIN); $c->addJoin(ItemPeer::ID_ITEM_BASE, ItemBasePeer::ID_ITEM_BASE, Criteria::JOIN); $c->addAnd(ItemBasePeer::ID_CAMPO, $campo_rel->getIdCampo(), Criteria::EQUAL); $c->addAnd(ItemPeer::ID_TABLA, $this->formulario->getIdFormulario(), Criteria::EQUAL); $c->addAnd(FormularioPeer::ID_TABLA, $tabla_rel->getIdTabla(), Criteria::EQUAL); $this->processSort(false); $this->addSortCriteria($c); $c->setDistinct(); $pager = new sfPropelPager('Formulario', sfConfig::get('app_listas_formularios')); $pager->setPeerMethod('doSelectJoinTabla'); $pager->setCriteria($c); $pager->setPage($this->getRequestParameter('page', 1)); $pager->init(); $this->tablas_auxiliares[] = array("forms" => $pager, "id_tabla" => $tabla_rel->getIdTabla()); } } $this->labels = $this->getLabels(); } }
/** * Elimina las notificaciones existentes * * @return void */ public static function borrarNotificaciones() { //Borramos conexiones de notificaciones leidas Usrnotif::model()->deleteAllByAttributes(array('leido' => 1)); //Cogemos todas las notificaciones $notificaciones = Notificaciones::model()->findAll(); foreach ($notificaciones as $notificacion) { //si a alguna de las notificaciones ha sido leida por todos los usuarios se borra $u = Usrnotif::model()->findByAttributes(array('notificaciones_id_notificacion' => $notificacion->id_notificacion)); if ($u === null) { $notificacion->delete(); } } }
echo '<div id="_4">' . get_partial('04', array('action' => $action, 'notificacion' => $notificacion)) . '</div>'; echo '<div id="_5">' . get_partial('05', array('action' => $action, 'notificacion' => $notificacion)) . '</div>'; echo '<div id="_6">' . get_partial('06', array('action' => $action, 'notificacion' => $notificacion)) . '</div>'; echo '<div id="_7">' . get_partial('07', array('action' => $action, 'notificacion' => $notificacion)) . '</div>'; echo '<div id="_8">' . get_partial('08', array('notificacion' => $notificacion)) . '</div>'; echo '<div id="_9">' . get_partial('09', array('action' => $action, 'notificacion' => $notificacion)) . '</div>'; echo '<div id="_10">' . get_partial('10', array('action' => $action, 'notificacion' => $notificacion)) . '</div>'; if ($notificacion->tipo == 'Supresion') { echo '<div id="_11">' . get_partial('11', array('action' => $action, 'notificacion' => $notificacion, 'codigo_agencia' => $codigo_agencia)) . '</div>'; } ?> </div> <div id="sf_admin_container"><div id="sf_admin_bar"><div class="sf_admin_filters"> <ul class="sf_admin_actions"><?php if (isset($insert) && $insert || $notificacion->procesado == '0') { $o = substr(Notificaciones::selfURL(), 0, strpos(Notificaciones::selfURL(), '/notificaciones')); $u = substr($o, 0, strrpos($o, '/')) . '/images/icons/'; echo '<li>' . link_to(__('Enviar a la APD'), 'notificaciones/enviar?id_fichero=' . $id_fichero . '&id_notificacion=' . $notid, array('class' => 'sf_admin_action_save', 'style' => ' text-decoration:none; float:right; background-color:#E3E3E3; border-color:-moz-use-text-color #999999 -moz-use-text-color -moz-use-text-color; border-style:none solid none none; border-width:0 4px 0 0; color:#333333; cursor:pointer; font-family:Arial,sans-serif; font-size:11px; padding:4px 3px 3px 20px; -moz-background-clip:border; -moz-background-inline-policy:continuous;
<?php echo input_hidden_tag('id_file', $formulario->getPrimaryKey()); if ($formulario->getTabla()->getEsFicheros() && trim($formulario->getPrimaryKey()) != "") { ?> <div id="sf_admin_bar"><div class="sf_admin_filters"><fieldset id="notis_widget"> <h2><?php echo __('Notificaciones a la APD'); ?> </h2><?php $c = new Criteria(); $c->addAscendingOrderByColumn(NotificacionesPeer::FECHA); $notificaciones = $formulario->getNotificacioness($c); foreach ($notificaciones as $noti) { $date = substr($noti->getFecha(), 4, 4) . '-' . substr($noti->getFecha(), 2, 2) . '-' . substr($noti->getFecha(), 0, 2); $time = substr($noti->getHoraProceso(), 0, 2) . ':' . substr($noti->getHoraProceso(), 2, 2) . ':' . substr($noti->getHoraProceso(), 4, 2); $o = substr(Notificaciones::selfURL(), 0, strpos(Notificaciones::selfURL(), '/formularios')); $u = substr($o, 0, strrpos($o, '/')) . '/images/icons/'; ?> <ul style="margin-left: 7%; clear: both"> <li style="list-style-image: url(<?php echo $u . 'bullet_green.png'; ?> )"> <label style="float: none"><?php echo format_date($date, 'p', 'es') . ', ' . format_date($time, 't') . ':'; ?> </label> <label style="float: left; color: black"><?php echo link_to($noti->getTipo(), 'notificaciones/consultar?id_fichero=' . $formulario->getIdFormulario() . '&id_notificacion=' . $noti->getNotid()) . '</label>'; if (!$noti->getProcesado()) { ?>
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0"> <div class="navbar-header"> <a href="#" class="navbar-minimalize minimalize-styl-2 btn btn-primary"><i class="fa fa-bars"></i> </a> </div> <ul class="nav navbar-top-links navbar-right pull-right"> <li class="dropdown"> <a href="#" data-toggle="dropdown" class="dropdown-toggle count-info"> <i class="fa fa-bell"></i> <?php $notificacion = Notificaciones::getNotificaciones(); ?> <span id="count_user" class="label label-warning"><?php echo $notificacion['total']; ?> </span> </a> <ul id="lista_notificaciones" class="dropdown-menu dropdown-alerts content mCustomScrollbar minimal-dark"> <?php if (!empty($notificacion['notificaciones'])) { foreach ($notificacion['notificaciones'] as $oportunidad) { if ($oportunidad['tipo'] == 'nueva_oportunidad') { ?> <li id="marcar_leido<?php echo $oportunidad['id']; ?> "> <a href="javascript:"> <div> <i class="fa fa-dollar fa-fw"></i> <?php
if (jQuery(this).attr('checked') == true) { tipo = this.value; return false; } else tipo = ''; }); var sistema; jQuery('.docu').each(function() { if (jQuery(this).attr('checked') == true) { sistema = this.value; return false; } else sistema = ''; }); for(var i = 0; i < c.length; i++) { jQuery(c[i]).hide(); } jQuery('#formulario').show(); jQuery.get("<?php echo Notificaciones::selfURL(); ?> ", { model: modelo, type: tipo, system: sistema }, function (data) { jQuery('#append').append(data); }); return false; }); }); --></script> <br /> <div style="width:50%; padding-left:25%;"> <table class="quitar_borde"> <tr> <td class="quitar_borde"><?php echo image_tag('nota.png'); ?> </td>
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param Notificaciones $value A Notificaciones object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(Notificaciones $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getNotid(); } // if key === null self::$instances[$key] = $obj; } }
public function jugarse() { switch ($this->turno) { case self::PRIMER_TURNO: //Turno inicial (preparar partido) $this->inicializaEncuentro(); $this->generaCronicaBase(); $this->guardaEstado(); break; case self::TURNO_DESCANSO: $this->generaEstadoDescanso(); $this->generaCronicaDescanso(); $this->guardaEstado(); break; case $this->turno > self::PRIMER_TURNO && $this->turno < self::ULTIMO_TURNO && $this->turno != self::TURNO_DESCANSO: //Este apartado incluye el descanso del partido! //Turnos de partido $this->generar_estado(); $this->guardaEstado(); break; case self::ULTIMO_TURNO: //Turno para generar el estado y crónica finales $this->generar_estado(); $this->generaCronicaUltimoTurno(); /****/ $this->finalizaEncuentro(); /****/ $this->guardaEstado(); /****/ $this->actualizaSiguientePartido($this->id_local); $this->actualizaSiguientePartido($this->id_visitante); $this->rellenaSiguientePartido($this->id_local); $this->rellenaSiguientePartido($this->id_visitante); $this->eliminaGrupales($this->id_local); $this->eliminaGrupales($this->id_visitante); //Creamos una notificación de fin de partido $notificacion = new Notificaciones(); $notificacion->fecha = time(); $notificacion->mensaje = Equipos::model()->findByPk($this->id_local)->nombre . " " . $this->goles_local . " - " . $this->goles_visitante . " " . Equipos::model()->findByPk($this->id_visitante)->nombre; $notificacion->imagen = "images/iconos/notificaciones/partido_terminado.png"; $notificacion->save(); //Enviamos la notificación a los interesados $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo' => $this->id_local)); foreach ($componentes as $componente) { $usrnotif = new Usrnotif(); $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); //Devuelvo la influencia a los participantes7 $componente->recursos->influencias_partido_bloqueadas = 0; $componente->recursos->save(); } $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo' => $this->id_visitante)); foreach ($componentes as $componente) { $usrnotif = new Usrnotif(); $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); //Devuelvo la influencia a los participantes $componente->recursos->influencias_partido_bloqueadas = 0; $componente->recursos->save(); } /****/ break; /*case self::ULTIMO_TURNO: //Turno para permitir visualizar el fin de partido durante un tiempo extra //y cambiar los datos del siguiente partido $this->finalizaEncuentro(); $this->guardaEstado(); $this->actualizaSiguientePartido($this->id_local); $this->actualizaSiguientePartido($this->id_visitante); $this->rellenaSiguientePartido($this->id_local); $this->rellenaSiguientePartido($this->id_visitante); $this->eliminaGrupales($this->id_local); $this->eliminaGrupales($this->id_visitante); //Creamos una notificación de fin de partido $notificacion = new Notificaciones; $notificacion->fecha = time(); $notificacion->mensaje = Equipos::model()->findByPk($this->id_local)->nombre . "(local)" . " vs " . Equipos::model()->findByPk($this->id_visitante)->nombre . "(visitante)"; $notificacion->imagen = "images/iconos/notificaciones/partido_terminado.png"; $notificacion->save(); //Enviamos la notificación a los interesados $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_local)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_visitante)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } break;*/ /*case self::ULTIMO_TURNO: //Turno para permitir visualizar el fin de partido durante un tiempo extra //y cambiar los datos del siguiente partido $this->finalizaEncuentro(); $this->guardaEstado(); $this->actualizaSiguientePartido($this->id_local); $this->actualizaSiguientePartido($this->id_visitante); $this->rellenaSiguientePartido($this->id_local); $this->rellenaSiguientePartido($this->id_visitante); $this->eliminaGrupales($this->id_local); $this->eliminaGrupales($this->id_visitante); //Creamos una notificación de fin de partido $notificacion = new Notificaciones; $notificacion->fecha = time(); $notificacion->mensaje = Equipos::model()->findByPk($this->id_local)->nombre . "(local)" . " vs " . Equipos::model()->findByPk($this->id_visitante)->nombre . "(visitante)"; $notificacion->imagen = "images/iconos/notificaciones/partido_terminado.png"; $notificacion->save(); //Enviamos la notificación a los interesados $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_local)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_visitante)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } break;*/ default: // No debería llegar aquí echo "Jodimos algo"; } }
$resultado = mysqli_query($mysqli, $traer_numero); $contador = mysqli_num_rows($resultado); return $contador; } function traerNotificaciones($idUsuario) { include 'conexion.php'; $traer_notificacion = "SELECT * from notificaciones where idUsuario={$idUsuario} ORDER BY fechaAgregada DESC"; $resultado = $mysqli->query($traer_notificacion); while ($rows = $resultado->fetch_assoc()) { if ($rows['leido'] == 0) { echo "<li name='lista'><!-- start notification -->\n <a href='/avisos.php?accion=leer&id={$rows['idPublicacion']}' class='noti-a' value='{$rows['idNotificacion']}'>\n <input type='hidden' name='notificacion' value='{$rows['idNotificacion']}'>\n <i class='fa fa-users text-aqua'></i> {$rows['notificacion_texto']}\n </a>\n </li>"; } else { echo "<li class='btn-default' name='lista' value='{$rows['idNotificacion']}'><!-- start notification -->\n <a href='/avisos.php?accion=leer&id={$rows['idPublicacion']}' class='noti-a' value='{$rows['idNotificacion']}'>\n <input type='hidden' name='notificacion' value='{$rows['idNotificacion']}'>\n <i class='fa fa-users text-aqua'></i> {$rows['notificacion_texto']}\n </a>\n </li>"; } } } function agregarVisto($idNotificacion) { include 'conexion.php'; $cambiar_visto = "UPDATE notificaciones set leido=1 WHERE idNotificacion={$idNotificacion};"; mysqli_query($mysqli, $cambiar_visto); $count = mysqli_affected_rows($mysqli); mysqli_close($mysqli); return $count; } } if (isset($_POST['notificacion'])) { $obj = new Notificaciones(); echo $obj->agregarVisto($_POST['notificacion']); }
?> </h1> <div id="sf_admin_header"> <?php include_partial('formularios/list_header', array('pager' => $pager)); include_partial('formularios/list_messages', array('pager' => $pager)); ?> </div> <div id="sf_admin_content"><?php if ($formulario->getTabla() == 'Ficheros') { if (isset($_GET['i'])) { $pre = substr(Notificaciones::selfURL(), 0, strpos(Notificaciones::selfURL(), '&i')); } else { $pre = Notificaciones::selfURL(); } ?> <ul class='sf_admin_actions' style="padding-bottom: 2%"><?php echo "<li>" . button_to(__('Notificados'), $pre . '&i=1', array('class' => 'sf_admin_action_list', 'style' => 'float:left')) . "</li>"; echo "<li>" . button_to(__('No Procesados'), $pre . '&i=0', array('class' => 'sf_admin_action_list', 'style' => 'float:left')) . "</li>"; echo "<li>" . button_to(__('No Notificados'), $pre . '&i=2', array('class' => 'sf_admin_action_list', 'style' => 'float:left')) . "</li>"; echo "<li>" . button_to(__('Todos'), $pre, array('class' => 'sf_admin_action_list', 'style' => 'float:left')) . "</li>"; ?> </ul><?php } if (!$pager->getNbResults()) { ?> <blockquote class="warning"><p> <?php echo __('no hay resultados');
/** * Guardar Formulario de Cliente Juridico * * @return boolean */ function guardar_actividad() { if (Util::is_array_empty($_POST)) { return false; } //Init Fieldset variable $fieldset = array(); //Remover el boton de submit que por default //viene con el valor "Guardar" unset($_POST["campo"]["guardar"]); $modulo_relacionado_con = $this->seleccionar_modulos_relacionado_con(array('valor' => $_POST['campo']['modulo_relacion'])); if (!isset($_POST["campo"]["uuid_cliente"])) { $uuid_cliente = $this->seleccionar_cliente_de_oportunidad($_POST["campo"]["uuid_oportunidad"]); //$uuid_cliente= $uuid_cliente[0]['uuid_cliente']; $fieldset["uuid_cliente"] = $uuid_cliente[0]['uuid_cliente']; } unset($_POST["campo"]["modulo_relacion"]); //Recorrer arreglo e insertar los valores que no estan vacios //en el fieldset foreach ($_POST["campo"] as $fieldname => $fieldvalue) { if (empty($fieldvalue)) { continue; } //check if is an array if (is_array($fieldvalue)) { foreach ($fieldvalue as $name => $value) { if ($value != "") { if (strpos($name, 'uuid_') !== false) { $fieldset["{$name} = UNHEX('{$value}')"] = NULL; } else { $fieldset[$name] = $this->security->xss_clean($value); } } } } else { if (strpos($fieldname, 'uuid_') !== false) { $this->db->set($fieldname, "UNHEX('{$fieldvalue}')", FALSE); } else { $fieldset[$fieldname] = $fieldvalue; } } } if (isset($_POST['campo']['completada'])) { if ($_POST['campo']['completada'] != 0 || $_POST['campo']['completada'] == "") { $fieldset["completada"] = 1; } else { $fieldset["completada"] = 0; } } else { $fieldset["completada"] = 0; } //Si el $fieldset es vacio if (Util::is_array_empty($fieldset)) { return false; } // // Begin Transaction // docs: https://ellislab.com/codeigniter/user-guide/database/transactions.html // $this->db->trans_start(); $fieldset["creado_por"] = $this->session->userdata('id_usuario'); $fieldset["fecha_creacion"] = date('Y-m-d H-i-s'); $fieldset["relacionado_con"] = $modulo_relacionado_con[0]['id_cat']; $fieldset["fecha"] = date('Y-m-d H:i:s', strtotime($fieldset["fecha"])); //Campos adicionales $this->db->set('uuid_actividad', 'ORDER_UUID(uuid())', FALSE); //Guardar Actividad $this->db->insert('act_actividades', $fieldset); $idActividad = $this->db->insert_id(); //--------------------------------------- //End Transaction $this->db->trans_complete(); $uuid_oportunidad = $_POST['campo']['uuid_oportunidad']; $uuid_tipo = $this->db->query("SELECT HEX(uuid_tipo_actividad) AS uuid_tipo,etiqueta FROM act_tipo_actividades WHERE etiqueta LIKE '%telefonica%'")->row_array(); $tipo_actividad = $_POST['campo']['uuid_tipo_actividad']; $oportunidades = $this->db->query("select count(uuid_oportunidad) as oportunidades from act_actividades where HEX(uuid_oportunidad) ='" . $uuid_oportunidad . "'")->row_array(); if ($this->is_redis_as_runnig && $oportunidades['oportunidades'] == 1 && $uuid_tipo['uuid_tipo'] != $tipo_actividad) { //armar datos $uuid_asignado = $_POST["campo"]["uuid_asignado"]; $creado_por = CRM_Controller::$uuid_usuario; $datosOportunidad = $this->db->query("Select id_oportunidad, nombre from opp_oportunidades where HEX(uuid_oportunidad) = '" . $uuid_oportunidad . "' ")->row_array(); $datos_notificaciones = array(); $data_notificacion = array('id_oportunidad' => $datosOportunidad['id_oportunidad'], 'nombre' => $datosOportunidad['nombre'], 'tipo' => 'tiene_oportunidad'); $datos_notificaciones['data'] = json_encode($data_notificacion); $notificacion = Notificaciones::guardar_notificaciones($datos_notificaciones, $uuid_asignado, $creado_por); $args = array('id' => $notificacion['id']); $schedules = Jobs::mostrar_jobs(array('id_job' => 3)); $fecha_tarea = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s ') . $schedule['recurrencia'])); $datetime = new DateTime($fecha_tarea, new DateTimeZone('America/Panama')); if (!empty($schedules)) { foreach ($schedules as $schedule) { $schedule_usuarios = json_decode($schedule['uuid_usuarios']); $args = array_merge($args, array('id_job_conf' => $schedule['id'], 'oportunidad_id' => $datosOportunidad['id_oportunidad'], 'tiempo_ejecucion' => $fecha_tarea, 'recurrencia' => $schedule['recurrencia'])); if (in_array($uuid_asignado, $schedule_usuarios->uuid_usuarios)) { ResqueScheduler::enqueueAt($datetime, 'notificacion', 'Notificaciones', $args); } else { ResqueScheduler::enqueueAt($datetime, 'notificacion', 'Notificaciones', $args); } } } } if ($this->is_redis_as_runnig && $oportunidades['oportunidades'] >= 5) { $oportunidades = $this->db->query("select HEX(uuid_tipo_actividad) as uuid_tipo_actividad from act_actividades where HEX(uuid_oportunidad) ='" . $uuid_oportunidad . "' LIMIT 5")->result_array(); $tipo = $this->db->query("SELECT HEX(uuid_tipo_actividad) AS uuid_tipo FROM act_tipo_actividades WHERE etiqueta LIKE '%reunion%' OR etiqueta LIKE '%visita%'")->result_array(); $array5_opotunidad = array(); $array_tipo = array(); foreach ($oportunidades as $actividades) { array_push($array5_opotunidad, $actividades['uuid_tipo_actividad']); } foreach ($tipo as $actividades) { array_push($array_tipo, $actividades['uuid_tipo']); } $array_conciden = array_intersect($array5_opotunidad, $array_tipo); if (count($array_conciden) == 0) { //armar datos $uuid_asignado = $_POST["campo"]["uuid_asignado"]; $creado_por = CRM_Controller::$uuid_usuario; $datosOportunidad = $this->db->query("Select id_oportunidad, nombre from opp_oportunidades where HEX(uuid_oportunidad) = '" . $uuid_oportunidad . "' ")->row_array(); $datos_notificaciones = array(); $data_notificacion = array('id_oportunidad' => $datosOportunidad['id_oportunidad'], 'nombre' => $datosOportunidad['nombre'], 'tipo' => 'tiene_actividad'); $datos_notificaciones['data'] = json_encode($data_notificacion); $notificacion = Notificaciones::guardar_notificaciones($datos_notificaciones, $uuid_asignado, $creado_por); $args = array('id' => $notificacion['id']); $schedules = Jobs::mostrar_jobs(array('id_job' => 7)); $fecha_tarea = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s ') . $schedule['recurrencia'])); $datetime = new DateTime($fecha_tarea, new DateTimeZone('America/Panama')); if (!empty($schedules)) { foreach ($schedules as $schedule) { $schedule_usuarios = json_decode($schedule['uuid_usuarios']); $args = array_merge($args, array('id_job_conf' => $schedule['id'], 'oportunidad_id' => $datosOportunidad['id_oportunidad'], 'tiempo_ejecucion' => $fecha_tarea, 'recurrencia' => $schedule['recurrencia'])); if (in_array($uuid_asignado, $schedule_usuarios->uuid_usuarios)) { ResqueScheduler::enqueueAt($datetime, 'notificacion', 'Notificaciones', $args); } else { ResqueScheduler::enqueueAt($datetime, 'notificacion', 'Notificaciones', $args); } } } } } // Managing Errors if ($this->db->trans_status() === FALSE) { log_message("error", "MODULO: Actividades --> No se pudo guadar los datos de la actividad en DB."); return false; } else { /* Notifications::guardar_notificacion( array( "tipo_notificacion"=>'actualizacion', "modulo"=>$_POST['campo']['relacionado_con'], "id"=>$_POST['campo']['uuid_relacion'], ));*/ //guardar el id en variable de session $this->session->set_userdata('uuid_actividad', $idActividad); return true; } }
function __construct() { //Instancia de Codeigniter self::$ci =& get_instance(); self::$uuid_usuario = CRM_Controller::$uuid_usuario; }
public function ajax_notificaciones() { if ($this->input->is_ajax_request()) { $nodes = $this->input->post('sockets'); echo Notificaciones::getNotificaciones($nodes); exit; } }
/** * Actualizar Etapa de Oportunidad * * @param string $id_cliente * @return boolean */ function ajax_actualizar_oportunidad($id_oportunidad = NULL) { $id_oportunidad = $this->input->post('id_oportunidad', true); $id_etapa = $this->input->post('id_etapa', true); //Si el $fieldset es vacio if (empty($id_oportunidad) || empty($id_etapa)) { return false; } // // Begin Transaction // docs: https://ellislab.com/codeigniter/user-guide/database/transactions.html // $this->db->trans_start(); $fieldset = array("id_etapa_venta" => $id_etapa); $clause = array("uuid_oportunidad = UNHEX('{$id_oportunidad}')" => NULL); //Actualizar Cliente Potencial $this->db->where($clause)->update('opp_oportunidades', $fieldset); //----------------- // Verificar si la etapa fue actualiza a Vendido //----------------- $fields = array("ocat.valor AS etapa_venta", "HEX(opp.uuid_propiedad) AS uuid_propiedad"); $clause = array("opp.uuid_oportunidad = UNHEX('{$id_oportunidad}')" => NULL); $checkEtapa = $this->db->select($fields)->distinct()->from('opp_oportunidades AS opp')->join('opp_oportunidades_cat AS ocat', 'ocat.id_cat = opp.id_etapa_venta', 'LEFT')->where($clause)->get()->result_array(); //----------------- // Obtener los Estados de las Propiedades //----------------- $listaEstadosPropiedades = $this->db->select("id_cat AS id_estado_propiedad")->distinct()->from('rpo_propiedades_cat')->where("valor", "no_disponible")->get()->result_array(); //verificar si la etapa fue actualiza a Vendido //si es vendido, cambiar la propiedad a No Disponible. if (!empty($checkEtapa) && !empty($checkEtapa[0]["etapa_venta"]) && $checkEtapa[0]["etapa_venta"] == "vendido") { //Actualizar Propiedad $fieldset = array("id_estado_propiedad" => $listaEstadosPropiedades[0]["id_estado_propiedad"]); $clause = array("uuid_propiedad = UNHEX('" . $checkEtapa[0]["uuid_propiedad"] . "')" => NULL); $this->db->where($clause)->update('rpo_propiedades', $fieldset); } //--------------------------------------- //End Transaction $this->db->trans_complete(); //redis if ($this->is_redis_as_runnig && ($checkEtapa[0]["etapa_venta"] != "vendido" && $checkEtapa[0]["etapa_venta"] != "venta_perdida")) { //verifica si el redis esta corriendo //armar datos $creado_por = CRM_Controller::$uuid_usuario; $datosOportunidad = $this->db->query("Select id_oportunidad, nombre, fecha_creacion,HEX(id_asignado) as id_asignado from opp_oportunidades where HEX(uuid_oportunidad) = '" . $id_oportunidad . "' ")->row_array(); $datos_notificaciones = array(); $data_notificacion = array('id_oportunidad' => $datosOportunidad['id_oportunidad'], 'nombre' => $datosOportunidad['nombre'], 'tipo' => 'oportunidad_actualizar_etapa', 'etapa' => $checkEtapa[0]["etapa_venta"]); $datos_notificaciones['data'] = json_encode($data_notificacion); $uuid_asignado = $datosOportunidad['id_asignado']; $notificacion = Notificaciones::guardar_notificaciones($datos_notificaciones, $uuid_asignado, $creado_por); $args = array('id' => $notificacion['id']); //$this->redis->publish('oportunidad',json_encode(array('id_asignado' =>$uuid_asignado, 'id_notificacion' => $notificacion['id'] ))); $schedules = Jobs::mostrar_jobs(array('id_job' => 2)); if (!empty($schedules)) { foreach ($schedules as $schedule) { $fecha_tarea = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s ') . $schedule['recurrencia'])); $datetime = new DateTime($fecha_tarea, new DateTimeZone('America/Panama')); $args = array_merge($args, array('id_job_conf' => $schedule['id'], 'oportunidad_id' => $datosOportunidad['id_oportunidad'], 'fecha_oportunidad' => $datosOportunidad['fecha_creacion'], 'tiempo_ejecucion' => $fecha_tarea, 'recurrencia' => $schedule['recurrencia'])); $schedule_usuarios = json_decode($schedule['uuid_usuarios']); if (in_array($uuid_asignado, $schedule_usuarios->uuid_usuarios)) { ResqueScheduler::enqueueAt($datetime, 'notificacion' . time(), 'Notificaciones', $args); } else { ResqueScheduler::enqueueAt($datetime, 'notificacion' . time(), 'Notificaciones', $args); } } } } // Managing Errors if ($this->db->trans_status() === FALSE) { log_message("error", "MODULO: Oportunidades --> No se pudo actualizar la etapa de la oportunidad en DB."); return array("respuesta" => false, "mensaje" => "Hubo un error al tratar de actualizar la etapa de la oportunidad."); } else { //Limpiar cache @CRM_Controller::$cache->delete("infoOportunidad"); @CRM_Controller::$cache->delete("listado_oportunidades"); return array("respuesta" => true, "mensaje" => "Se ha cambiado la etapa de la oportunidad satisfactoriamente."); } }
return false; }); // Hook up the print link. jQuery('.print-button').click(function() { // Print the DIV. jQuery('#printable').css({'margin-left' : '1%'}); jQuery('#printable').css({'margin-right' : '1%'}); jQuery('head').append('<link rel="stylesheet" href="<?php echo substr(Notificaciones::selfURL(), 0, strpos(Notificaciones::selfURL(), 'web/') + 4) . '/css/principal.css'; ?> " type="text/css" media="print" />'); jQuery('head').append('<link rel="stylesheet" href="<?php echo substr(Notificaciones::selfURL(), 0, strpos(Notificaciones::selfURL(), 'web/') + 4) . '/css/sfCssTabs.css'; ?> " type="text/css" media="print" />'); jQuery('head').append('<link rel="stylesheet" href="<?php echo substr(Notificaciones::selfURL(), 0, strpos(Notificaciones::selfURL(), 'web/') + 4) . '/css/notificaciones.css'; ?> " type="text/css" media="print" />'); jQuery('#printable').print(); // Cancel click event. return false; }); }); --> </script> <?php $dir = sfConfig::get('sf_upload_dir') . DIRECTORY_SEPARATOR . $id_fichero . '-' . $id_notificacion . '.xml'; $con = Propel::getConnection(); $query = "SELECT `notificaciones`.* FROM `notificaciones` WHERE `notificaciones`.`notid` = '" . $id_notificacion . "' AND `notificaciones`.`id_fichero` = '" . $id_fichero . "';"; $statement = $con->prepare($query);
public function ajax_marcar_leido() { if ($this->input->is_ajax_request()) { $id = $this->input->post('id'); Notificaciones::marcar_leido($id); exit; } }
/** * Suma la experiencia indicada al jugador * * Si el jugador sube de nivel, actualiza los valores de: * * - indicadores de recursos * - nivel * - exp_necesaria * - puntos_desbloqueo * * > La funcion contempla la posibilidad de subir varios niveles de golpe * * @param int $exp experencia a sumar al jugador * @return boolean indicador si el jugador ha subido de nivel (true si el jugador ha subido) */ public function sumarExp($exp) { /* Experencia acumulada */ $exp_acc = $this->exp + $exp; $this->setAttributes(array('exp' => $exp_acc)); /* Comprobar si subimos de nivel */ if ($exp_acc >= $this->exp_necesaria) { $nivel_actual = $this->nivel; $nivel_inicial = $nivel_actual; $exp_sig_nivel = $this->exp_necesaria; $puntos_desbloqueo = $this->puntos_desbloqueo; /* Posible subir varios niveles */ while ($exp_acc >= $exp_sig_nivel) { $nivel_actual = $nivel_actual + 1; $puntos_desbloqueo += 1; Yii::app()->user->setFlash('nivel', 'Enhorabuena, has subido de nivel. Ahora tienes nivel ' . $nivel_actual); $exp_sig_nivel = Usuarios::expNecesaria($nivel_actual); //Creamos una notificacion para el nivel y otra para los puntos de desbloqueo $notificacionNivel = new Notificaciones(); $notificacionNivel->fecha = time(); $notificacionNivel->mensaje = " Enhorabuena, has subido de nivel. Ahora tienes nivel " . $nivel_actual; $notificacionNivel->imagen = "images/iconos/notificaciones/nivel.png"; $notificacionNivel->save(); $notificacionPuntos = new Notificaciones(); $notificacionPuntos->fecha = time(); $notificacionPuntos->mensaje = " Tus puntos de desbloqueo han aumentado. Ahora tienes " . $puntos_desbloqueo; $notificacionPuntos->imagen = "images/iconos/notificaciones/puntos_desbloqueo.png"; $notificacionPuntos->save(); //Guardamos las notificaciones en ursnotif $usrnotif = new Usrnotif(); $usrnotif->notificaciones_id_notificacion = $notificacionNivel->id_notificacion; $usrnotif->usuarios_id_usuario = $this->id_usuario; $usrnotif->save(); $usrnotifPuntos = new Usrnotif(); $usrnotifPuntos->notificaciones_id_notificacion = $notificacionPuntos->id_notificacion; $usrnotifPuntos->usuarios_id_usuario = $this->id_usuario; $usrnotifPuntos->save(); } /* Obtener los nuevos valores de los atributos del personaje: * ritmo de generacion de recursos * valores maximos de los recursos */ $nuevos_atributos = $this->actualizarAtributos($nivel_inicial, $nivel_actual); /* Guardamos los nuevos atributos del usuario */ $this->setAttributes(array('nivel' => $nivel_actual, 'exp_necesaria' => $exp_sig_nivel, 'puntos_desbloqueo' => $puntos_desbloqueo)); $this->recursos->setAttributes(array('dinero_gen' => $nuevos_atributos['dinero_gen'], 'animo_gen' => $nuevos_atributos['animo_gen'], 'influencias_gen' => $nuevos_atributos['influencias_gen'], 'animo_max' => $nuevos_atributos['animo_max'], 'influencias_max' => $nuevos_atributos['influencias_max'], 'influencias_bloqueadas' => $nuevos_atributos['influencias_bloqueadas'])); $this->save(); $this->recursos->save(); return true; } else { /* No aumentamos de nivel: guardamos la nueva exp acumulada */ $this->save(); return false; } }