public function listContactGroup($value, $type = "id")
 {
     $criteria = new Criteria();
     $criteria->add(GrupoTrabajoScPeer::FLAG, 1);
     if ($type == "id") {
         $criteria->add(GrupoTrabajoScPeer::ID, $value);
     } else {
         $criteria->add(GrupoTrabajoScPeer::NAME, '%' . $value . '%', Criteria::LIKE);
     }
     $criteria->addJoin(GrupoTrabajoScPeer::ID, DetalleGrupoTrabajoScPeer::GRUPO_ID);
     $lista = DetalleGrupoTrabajoScPeer::doSelect($criteria);
     return array("success" => true, "object" => $lista, "message" => "succes!");
 }
 public function executeSearch_contact(sfWebRequest $request)
 {
     //la busqueda se realizara por el email o por el nombre
     //por ahora solo x el email
     $name_or_email = $request->getParameter('data');
     $group_id = $request->getParameter('workGroup');
     $current_user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     //reviso si la session existe
     if ($current_user != null) {
         $criterio_user = new Criteria();
         $criterio_user->add(DetalleGrupoTrabajoScPeer::EMAIL, '%' . $name_or_email . '%', Criteria::LIKE);
         $criterio_user->add(GrupoTrabajoScPeer::OWNER_ID, $current_user->getId());
         $criterio_user->add(GrupoTrabajoScPeer::ID, $group_id);
         $criterio_user->addJoin(DetalleGrupoTrabajoScPeer::GRUPO_ID, GrupoTrabajoScPeer::ID);
         $list_results = DetalleGrupoTrabajoScPeer::doSelect($criterio_user);
         $this->results = $list_results;
         return sfView::SUCCESS;
     } else {
         return sfView::ERROR;
     }
 }
 /**
  * If this collection has already been initialized with
  * an identical criteria, it returns the collection.
  * Otherwise if this UserSc is new, it will return
  * an empty collection; or if this UserSc has previously
  * been saved, it will retrieve related DetalleGrupoTrabajoScs from storage.
  *
  * This method is protected by default in order to keep the public
  * api reasonable.  You can provide public methods for those you
  * actually need in UserSc.
  */
 public function getDetalleGrupoTrabajoScsJoinGrupoTrabajoSc($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     if ($criteria === null) {
         $criteria = new Criteria(UserScPeer::DATABASE_NAME);
     } elseif ($criteria instanceof Criteria) {
         $criteria = clone $criteria;
     }
     if ($this->collDetalleGrupoTrabajoScs === null) {
         if ($this->isNew()) {
             $this->collDetalleGrupoTrabajoScs = array();
         } else {
             $criteria->add(DetalleGrupoTrabajoScPeer::USER_ID, $this->id);
             $this->collDetalleGrupoTrabajoScs = DetalleGrupoTrabajoScPeer::doSelectJoinGrupoTrabajoSc($criteria, $con, $join_behavior);
         }
     } else {
         // the following code is to determine if a new query is
         // called for.  If the criteria is the same as the last
         // one, just return the collection.
         $criteria->add(DetalleGrupoTrabajoScPeer::USER_ID, $this->id);
         if (!isset($this->lastDetalleGrupoTrabajoScCriteria) || !$this->lastDetalleGrupoTrabajoScCriteria->equals($criteria)) {
             $this->collDetalleGrupoTrabajoScs = DetalleGrupoTrabajoScPeer::doSelectJoinGrupoTrabajoSc($criteria, $con, $join_behavior);
         }
     }
     $this->lastDetalleGrupoTrabajoScCriteria = $criteria;
     return $this->collDetalleGrupoTrabajoScs;
 }
 public function executeSave_indicator(sfWebRequest $request)
 {
     $request->setRequestFormat('json');
     $indicadorId = $request->getParameter('indicatorId');
     $titulo = $request->getParameter('title');
     $descripcion = $request->getParameter('description');
     $valor_minimo = $request->getParameter('valueMin');
     $valor_deseado = $request->getParameter('valueDes');
     $valor_optimo = $request->getParameter('valueOpt');
     $responsable_id = $request->getParameter('responsableId');
     $responsable_email = $request->getParameter('responsableEmail');
     $grupo_trabajo_id = $request->getParameter('workGroup');
     $conector_id = $request->getParameter('conectorId');
     /* Google, Facebook, Twitter */
     $attribute_id = $request->getParameter('attributeId');
     $tableId = $request->getParameter('tableId');
     $facebook_username = $request->getParameter('facebook_username');
     $twitter_username = $request->getParameter('twitter_username');
     $fec_ini = $request->getParameter('fec_ini');
     $fec_fin = $request->getParameter('fec_fin');
     $json_children = $request->getParameter('indicatorChildren');
     $oaux_manejo_data = $request->getParameter('oaux_manejo_data');
     $json = json_decode($json_children);
     if (count($json) > 0) {
         foreach ($json as $row) {
             $indicador_children = IndicatorsScPeer::retrieveByPK($row->{'pk'});
             $indicador_children->setConectoresConfigure($row->{'values'});
             $indicador_children->save();
         }
     }
     //primero validamos y esta logeado
     //segundo validamos si el idicador existe
     //tercero verificamos si se asigno un usuario
     //(si se le asigno un usuario)cuarto vamos a revisar si el usuario que es asignado esta en e grupo de trabajo
     /*si no esta en grupo de trabajo envio una solictud ( antes verifico si no le mande una solicitud antes)
      * por que no se va estar mandando varias solicitudes al mismo usuario
      * en este caso las solicitudes son 1 vez por grupo de trabajo y no por indicador
      */
     //despues de vefiricar grabamos la primera vesion del indicador con los datos secundarios
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     if ($user != null) {
         $indicador = IndicatorsScPeer::retrieveByPK($indicadorId);
         if (is_object($indicador)) {
             if ($responsable_email != "") {
                 /* aca vamos crear el registro de asignaciones, esta tabla me permite manejar un
                    historial  de las asignacion de resposanble x indicador
                    asi podre ver todas los responsables de un determinado indicador.*/
                 $asignacion_indicador = new AsignacionSc();
                 $asignacion_indicador->setGrupoId($grupo_trabajo_id);
                 $asignacion_indicador->setEmail($responsable_email);
                 $asignacion_indicador->setTreeId($indicador->getTreeId());
                 $asignacion_indicador->setIndicadorId($indicador->getId());
                 $asignacion_indicador->setCreateAt(time());
                 $asignacion_indicador->setUpdateAt(time());
                 /**********************************************************************/
                 if ($responsable_id != "") {
                     /*
                      *
                      */
                     if ($responsable_id != $indicador->getResponsableId()) {
                         $serviceDataIndicadores = new dataIndicadoresImplementation();
                         $serviceDataIndicadores->changeOwnerIndicadores($indicador, $responsable_id);
                     }
                     /******************************************/
                     $asignacion_indicador->setFlag(json_encode(array("estado" => true, "owner_id" => $user->getId())));
                     $asignacion_indicador->setUserId($responsable_id);
                     $indicador->setResponsableId($responsable_id);
                     $indicador->setEmailResponsable($responsable_email);
                 } else {
                     //envio solicitud
                     //antes verificar si no le enviando una solicitud antes
                     $rsp = $this->evaluar_solicitud($responsable_email, $grupo_trabajo_id, $user);
                     if ($rsp['success']) {
                         $criterio = new Criteria();
                         $criterio->add(DetalleGrupoTrabajoScPeer::EMAIL, '%' . $responsable_email . '%', Criteria::LIKE);
                         $criterio->add(DetalleGrupoTrabajoScPeer::GRUPO_ID, $grupo_trabajo_id);
                         $cantidad = DetalleGrupoTrabajoScPeer::doCount($criterio);
                         if ($cantidad <= 0) {
                             $newDetalle = new DetalleGrupoTrabajoSc();
                             $newDetalle->setEmail($responsable_email);
                             $newDetalle->setGrupoId($grupo_trabajo_id);
                             $newDetalle->save();
                         }
                         $indicador->setEmailResponsable($responsable_email);
                         $indicador->setResponsableId(null);
                         $asignacion_indicador->setFlag(json_encode(array("estado" => false, "owner_id" => $user->getId())));
                     } else {
                         $this->message = $rsp['message'];
                         return sfView::ERROR;
                     }
                 }
                 $asignacion_indicador->save();
             } else {
                 $indicador->setResponsableId(null);
                 $indicador->setEmailResponsable('');
             }
             if ($descripcion != "") {
                 $indicador->setDescripcion($descripcion);
             }
             if ($valor_minimo != "") {
                 $indicador->setValorMinimo($valor_minimo);
             }
             if ($valor_deseado != "") {
                 $indicador->setValorDeseado($valor_deseado);
             }
             if ($valor_optimo != "") {
                 $indicador->setValorOptimo($valor_optimo);
             }
             if ($titulo != "") {
                 $indicador->setTitulo($titulo);
             }
             if ($oaux_manejo_data == '1') {
                 /* ingreso manual */
                 $indicador->setDetNetworkAttributeId(null);
                 $indicador->setUsernameInNetwork(null);
                 $indicador->setValorActualEntregado(0);
                 $indicador->setGaFecIni(null);
                 $indicador->setGaFecFin(null);
             } elseif ($oaux_manejo_data == '2') {
                 /* ingreso automatico */
                 if ($conector_id != '' && $attribute_id != '') {
                     $c = new Criteria();
                     $c->add(NetworkPeer::NAME, $conector_id);
                     $c->add(DetNetworkAttributePeer::ATTRIBUTE_ID, $attribute_id);
                     $c->addJoin(NetworkPeer::ID, DetNetworkAttributePeer::NETWORK_ID);
                     $det_network_attribute = DetNetworkAttributePeer::doSelectOne($c);
                     if ($conector_id == 'Facebook') {
                         if ($facebook_username != '') {
                             $indicador->setDetNetworkAttributeId($det_network_attribute->getId());
                             $indicador->setUsernameInNetwork($facebook_username);
                             /* se extrae valor de la consulta */
                             $data = $this->privateFunctionGetFacebookData($facebook_username, $det_network_attribute->getId());
                             if ($data != null) {
                                 $indicador->setValorActualEntregado($data);
                             } else {
                                 $indicador->setValorActualEntregado(0);
                             }
                         } else {
                             $indicador->setDetNetworkAttributeId(null);
                             $indicador->setUsernameInNetwork(null);
                             $indicador->setValorActualEntregado(0);
                             $indicador->setGaFecIni(null);
                             $indicador->setGaFecFin(null);
                         }
                     } elseif ($conector_id == 'Twitter') {
                         if ($twitter_username != '') {
                             $indicador->setDetNetworkAttributeId($det_network_attribute->getId());
                             $indicador->setUsernameInNetwork($twitter_username);
                             /* se extrae valor de la consulta */
                             $data = $this->privateFunctionGetTwitterData($twitter_username, $det_network_attribute->getId());
                             $indicador->setValorActualEntregado($data);
                         } else {
                             $indicador->setDetNetworkAttributeId(null);
                             $indicador->setUsernameInNetwork(null);
                             $indicador->setValorActualEntregado(0);
                             $indicador->setGaFecIni(null);
                             $indicador->setGaFecFin(null);
                         }
                     } elseif ($conector_id == 'Google Analytics') {
                         if ($tableId != '' && $tableId != 'null') {
                             $indicador->setDetNetworkAttributeId($det_network_attribute->getId());
                             $indicador->setUsernameInNetwork($tableId);
                             /* se extrae valor de la consulta */
                             $data = $this->privateFunctionGetGoogleAnalyticsData($indicador->getId(), $tableId, $fec_ini, $fec_fin, $det_network_attribute->getId());
                             $indicador->setGaFecIni($fec_ini);
                             $indicador->setGaFecFin($fec_fin);
                             $indicador->setValorActualEntregado($data);
                         } else {
                             if (is_object($det_network_attribute)) {
                                 $indicador->setDetNetworkAttributeId($det_network_attribute->getId());
                             } else {
                                 $indicador->setDetNetworkAttributeId(null);
                             }
                             $indicador->setUsernameInNetwork(null);
                             $indicador->setValorActualEntregado(0);
                             $indicador->setGaFecIni(null);
                             $indicador->setGaFecFin(null);
                         }
                     }
                 } else {
                     $indicador->setDetNetworkAttributeId(null);
                     $indicador->setUsernameInNetwork(null);
                     $indicador->setValorActualEntregado(0);
                     $indicador->setGaFecIni(null);
                     $indicador->setGaFecFin(null);
                 }
             }
             $indicador->save();
         } else {
             $this->message = 'not found indicator';
             return sfView::ERROR;
         }
     } else {
         $this->message = 'session expired';
         return sfView::ERROR;
     }
 }
 public function executeSave_bost_group(sfWebRequest $request)
 {
     $request->setRequestFormat('json');
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     $bost_id = $request->getParameter('bostId');
     $rowId = $request->getParameter('rowId');
     if ($user != null) {
         $row = DetalleGrupoTrabajoScPeer::retrieveByPK($rowId);
         if (is_object($row)) {
             if ($bost_id == "none") {
                 $row->setBostId(0);
             } else {
                 $row->setBostId($bost_id);
             }
             $row->save();
             return sfView::SUCCESS;
         } else {
             return sfView::ERROR;
         }
     } else {
         return sfView::ERROR;
     }
 }
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
  * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
  * The default key type is the column's phpname (e.g. 'AuthorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = DetalleGrupoTrabajoScPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setEmail($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setUserId($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setGrupoId($arr[$keys[3]]);
     }
 }
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(DetalleGrupoTrabajoScPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(DetalleGrupoTrabajoScPeer::DATABASE_NAME);
         $criteria->add(DetalleGrupoTrabajoScPeer::ID, $pks, Criteria::IN);
         $objs = DetalleGrupoTrabajoScPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
 private function executeLevel_down($user, $group)
 {
     $criterio = new Criteria();
     $criterio->add(DetalleGrupoTrabajoScPeer::GRUPO_ID, $group->getId());
     $criterio->add(DetalleGrupoTrabajoScPeer::BOST_ID, $user->getId());
     $detalle_list_bean = DetalleGrupoTrabajoScPeer::doSelect($criterio);
     if (count($detalle_list_bean) > 0) {
         return $detalle_list_bean;
     } else {
         return null;
     }
 }