public function grabarusuarionormaldataAction()
 {
     try {
         $SesionUsuarioPlugin = $this->SesionUsuarioPlugin();
         $usuario_id = $SesionUsuarioPlugin->getUsuarioId();
         $EntityManagerPlugin = $this->EntityManagerPlugin();
         $UsuarioData = new UsuarioData();
         $UsuarioBO = new UsuarioBO();
         //$PerfilBO 				= new PerfilBO();
         $GrupoDispoCabBO = new GrupoDispoCabBO();
         $GrupoPrecioCabBO = new GrupoPrecioCabBO();
         $InventarioBO = new InventarioBO();
         $CalidadBO = new CalidadBO();
         $UsuarioBO->setEntityManager($EntityManagerPlugin->getEntityManager());
         $GrupoDispoCabBO->setEntityManager($EntityManagerPlugin->getEntityManager());
         $GrupoPrecioCabBO->setEntityManager($EntityManagerPlugin->getEntityManager());
         $InventarioBO->setEntityManager($EntityManagerPlugin->getEntityManager());
         $CalidadBO->setEntityManager($EntityManagerPlugin->getEntityManager());
         $respuesta = $SesionUsuarioPlugin->isLoginAdmin();
         if ($respuesta == false) {
             return false;
         }
         $body = $this->getRequest()->getContent();
         $json = json_decode($body, true);
         $accion = $json['accion'];
         //I, M
         $UsuarioData->setId($json['id']);
         $UsuarioData->setClienteId($json['cliente_id']);
         $UsuarioData->setNombre($json['nombre']);
         $UsuarioData->setUsername($json['username']);
         $UsuarioData->setPassword($json['password']);
         $UsuarioData->setEmail($json['email']);
         $UsuarioData->setPerfilId(\Application\Constants\Perfil::ID_CLIENTE);
         $UsuarioData->setEstado($json['estado']);
         $UsuarioData->setGrupoDispoCabId($json['grupo_dispo_cab_id']);
         $UsuarioData->setGrupoPrecioCabId($json['grupo_precio_cab_id']);
         $UsuarioData->setInventarioId($json['inventario_id']);
         $UsuarioData->setCalidadId($json['calidad_id']);
         $response = new \stdClass();
         switch ($accion) {
             case 'I':
                 $UsuarioData->setUsuarioIngId($usuario_id);
                 $result = $UsuarioBO->ingresar($UsuarioData);
                 break;
             case 'M':
                 $UsuarioData->setUsuarioModId($usuario_id);
                 $result = $UsuarioBO->modificar($UsuarioData);
                 break;
             default:
                 $result['validacion_code'] = 'ERROR';
                 $result['respuesta_mensaje'] = 'ACCESO NO VALIDO';
                 break;
         }
         //end switch
         //Se consulta el registro siempre y cuando el validacion_code sea OK
         if ($result['validacion_code'] == 'OK') {
             $row = $UsuarioBO->consultar($json['id'], \Application\Constants\ResultType::MATRIZ);
         } else {
             $row = null;
         }
         //end if
         //Retorna la informacion resultante por JSON
         $response = new \stdClass();
         $response->respuesta_code = 'OK';
         $response->validacion_code = $result['validacion_code'];
         $response->respuesta_mensaje = $result['respuesta_mensaje'];
         if ($row) {
             $response->row = $row;
             //$response->cbo_perfil_id		= $PerfilBO->getComboPerfilRestringido($row['perfil_id'], " ");
             $response->cbo_cbo_grupo_dispo = $GrupoDispoCabBO->getComboGrupoDispo($row['grupo_dispo_cab_id'], " ");
             $response->cbo_estado = \Application\Classes\ComboGeneral::getComboEstado($row['estado'], "");
         } else {
             $response->row = null;
             $response->cbo_tipo = '';
             $response->cbo_estado = '';
         }
         //end if
         $json = new JsonModel(get_object_vars($response));
         return $json;
         //false
     } catch (\Exception $e) {
         $excepcion_msg = utf8_encode($this->ExcepcionPlugin()->getMessageFormat($e));
         $response = $this->getResponse();
         $response->setStatusCode(500);
         $response->setContent($excepcion_msg);
         return $response;
     }
 }
 /**
  * Consultar
  * 
  * @param string $id
  * @param int $resultType
  * @return \Dispo\Data\UsuarioData|NULL|array
  */
 public function consultar($id, $resultType = \Application\Constants\ResultType::OBJETO)
 {
     switch ($resultType) {
         case \Application\Constants\ResultType::OBJETO:
             $UsuarioData = new UsuarioData();
             $sql = ' SELECT usuario.* ' . ' FROM usuario ' . ' WHERE usuario.id = :id ';
             $stmt = $this->getEntityManager()->getConnection()->prepare($sql);
             $stmt->bindValue(':id', $id);
             $stmt->execute();
             $row = $stmt->fetch();
             //Se utiliza el fecth por que es un registro
             if ($row) {
                 $UsuarioData->setId($row['id']);
                 $UsuarioData->setNombre($row['nombre']);
                 $UsuarioData->setUsername($row['username']);
                 $UsuarioData->setPassword($row['password']);
                 $UsuarioData->setEmail($row['email']);
                 $UsuarioData->setPerfilId($row['perfil_id']);
                 $UsuarioData->setClienteId($row['cliente_id']);
                 $UsuarioData->setLoginFox($row['login_fox']);
                 $UsuarioData->setEstado($row['estado']);
                 $UsuarioData->setGrupoDispoCabId($row['grupo_dispo_cab_id']);
                 $UsuarioData->setGrupoPrecioCabId($row['grupo_precio_cab_id']);
                 $UsuarioData->setInventarioId($row['inventario_id']);
                 $UsuarioData->setCalidadId($row['calidad_id']);
                 $UsuarioData->setFecIngreso($row['fec_ingreso']);
                 $UsuarioData->setFecModifica($row['fec_modifica']);
                 $UsuarioData->setUsuarioIngId($row['usuario_ing_id']);
                 $UsuarioData->SetUsuarioModId($row['usuario_mod_id']);
                 return $UsuarioData;
             } else {
                 return null;
             }
             //end if
             break;
         case \Application\Constants\ResultType::MATRIZ:
             $sql = ' SELECT usuario.*, usuario_ing.username as usuario_ing_user_name, usuario_mod.username as usuario_mod_user_name, ' . '        cliente.nombre cliente_nombre, ' . '		 calidad.clasifica_fox, ' . '        inventario.punto_corte, ' . '        grupo_precio_cab.inventario_id as grupo_precio_cab_inventario_id, ' . '        grupo_precio_cab.calidad_id as grupo_precio_cab_calidad_id, ' . '        grupo_dispo_cab.inventario_id as grupo_dispo_cab_inventario_id, ' . '        grupo_dispo_cab.calidad_id as grupo_dispo_cab_calidad_id ' . ' FROM usuario LEFT JOIN usuario as usuario_ing ' . '                           ON usuario_ing.id = usuario.usuario_ing_id ' . '					 LEFT JOIN usuario as usuario_mod ' . '                           ON usuario_mod.id = usuario.usuario_mod_id ' . '					 LEFT JOIN cliente ' . '              				ON cliente.id	= usuario.cliente_id' . '              	     LEFT JOIN grupo_precio_cab ' . '                     		ON grupo_precio_cab.id  = usuario.grupo_precio_cab_id ' . '					 LEFT JOIN grupo_dispo_cab ' . '                           ON grupo_dispo_cab.id	= usuario.grupo_dispo_cab_id ' . '					 LEFT JOIN inventario ' . '                           ON inventario.id		= usuario.inventario_id' . '			   		 LEFT JOIN calidad ' . '                           ON calidad.id			= usuario.calidad_id ' . ' WHERE usuario.id = :id ';
             $stmt = $this->getEntityManager()->getConnection()->prepare($sql);
             $stmt->bindValue(':id', $id);
             $stmt->execute();
             $row = $stmt->fetch();
             //Se utiliza el fecth por que es un registro
             return $row;
             break;
     }
     //end switch
 }