| [c281499] | 1 | <?php | 
|---|
| [3ec149c] | 2 | // ******************************************************************************************************************** | 
|---|
|  | 3 | // Aplicación WEB: ogAdmWebCon | 
|---|
|  | 4 | // Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla | 
|---|
|  | 5 | // Fecha Creación: Agosto-2010 | 
|---|
|  | 6 | // Fecha Última modificación: Agosto-2010 | 
|---|
|  | 7 | // Nombre del fichero: M_Iconos.php | 
|---|
|  | 8 | // Descripción :Este fichero implementa  el mantenimiento de la tabla Iconos | 
|---|
|  | 9 | // ******************************************************************************************************************** | 
|---|
|  | 10 | include_once("../includes/ctrlacc.php"); | 
|---|
|  | 11 | include_once("../clases/AdoPhp.php"); | 
|---|
|  | 12 | include_once("../includes/CreaComando.php"); | 
|---|
|  | 13 | include_once("../includes/TomaDato.php"); | 
|---|
|  | 14 | include_once("../includes/HTMLCTESELECT.php"); | 
|---|
|  | 15 | include_once("../clases/SockHidra.php"); | 
|---|
|  | 16 | include_once("../includes/FicherosPost.php"); | 
|---|
| [2307886] | 17 | include_once("../idiomas/php/".$idioma."/iconos_".$idioma.".php"); | 
|---|
| [6d356fe] | 18 |  | 
|---|
| [3ec149c] | 19 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 20 | // Captura de parámetros | 
|---|
|  | 21 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 22 | $opcion=""; | 
|---|
|  | 23 | $accion=""; | 
|---|
|  | 24 | $idicono=0; | 
|---|
|  | 25 |  | 
|---|
|  | 26 | if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; | 
|---|
|  | 27 | if (isset($_POST["accion"])) $accion=$_POST["accion"]; | 
|---|
|  | 28 | if (isset($_POST["idicono"])) $idicono=$_POST["idicono"]; | 
|---|
|  | 29 |  | 
|---|
|  | 30 | if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; | 
|---|
|  | 31 | if (isset($_GET["accion"])) $accion=$_GET["accion"]; | 
|---|
|  | 32 | if (isset($_GET["idicono"])) $idicono=$_GET["idicono"]; | 
|---|
|  | 33 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 34 | // Constantes | 
|---|
|  | 35 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 36 | // $opciones | 
|---|
|  | 37 | $INSERTAR=1; | 
|---|
|  | 38 | $ELIMINAR=2; | 
|---|
|  | 39 | $MODIFICAR=3; | 
|---|
|  | 40 | $CONSULTAR=4; | 
|---|
|  | 41 |  | 
|---|
|  | 42 | // Acciones | 
|---|
|  | 43 | $SIN_ACCION=0; | 
|---|
|  | 44 | $INSERTAR_REGISTRO=1; | 
|---|
|  | 45 | $BORRAR_REGISTRO=2; | 
|---|
|  | 46 | $MODIFICAR_REGISTRO=3; | 
|---|
|  | 47 | $LEER_REGISTRO=4; | 
|---|
|  | 48 |  | 
|---|
|  | 49 | $mopciones[1]="INSERTAR"; | 
|---|
|  | 50 | $mopciones[2]="ELIMINAR"; | 
|---|
|  | 51 | $mopciones[3]="MODIFICAR"; | 
|---|
|  | 52 | $mopciones[4]="CONSULTAR"; | 
|---|
|  | 53 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 54 | // Datos por defecto | 
|---|
|  | 55 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 56 | if(empty($opcion)) $opcion=$INSERTAR; | 
|---|
|  | 57 | if(empty($accion)) $accion=$SIN_ACCION; | 
|---|
|  | 58 | if(empty($idicono)) $idicono=0; | 
|---|
|  | 59 | $msg=""; | 
|---|
|  | 60 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 61 | // Conexion a la base de datos | 
|---|
|  | 62 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 63 | $cmd=CreaComando($cadenaconexion); | 
|---|
|  | 64 | if (!$cmd) // Fallo conexión con servidor de datos | 
|---|
|  | 65 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 66 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 67 | // Acción a ejecutar | 
|---|
|  | 68 | //------------------------------------------------------------------------------------------------------------------------------------------------- | 
|---|
|  | 69 | if($accion==$INSERTAR_REGISTRO || $accion==$MODIFICAR_REGISTRO){ | 
|---|
|  | 70 | $cmd->CreaParametro("@idicono",$idicono,1); | 
|---|
|  | 71 | IncializaCampos(); | 
|---|
|  | 72 | if (isset($_POST["swbf_urlicono"])) $swbf_urlicono=$_POST["swbf_urlicono"]; | 
|---|
|  | 73 | if (isset($_POST["urlicono"])) $urlicono=$_POST["urlicono"]; | 
|---|
|  | 74 | if (isset($_POST["idtipoicono"])) $idtipoicono=$_POST["idtipoicono"]; | 
|---|
|  | 75 | if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"]; | 
|---|
|  | 76 | $cmd->CreaParametro("@urlicono",$urlicono,0); | 
|---|
|  | 77 | $cmd->CreaParametro("@idtipoicono",$idtipoicono,1); | 
|---|
|  | 78 | $cmd->CreaParametro("@descripcion",$descripcion,0); | 
|---|
|  | 79 |  | 
|---|
|  | 80 | $UrlPagina=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // Url página | 
|---|
|  | 81 | // Se recibe fichero adjunto | 
|---|
| [6d356fe] | 82 | $NombreFichero_urlicono = $_FILES['urlicono']['name']; | 
|---|
| [3ec149c] | 83 | if(!empty($NombreFichero_urlicono)){ | 
|---|
| [6d356fe] | 84 | $NombreFicheroPost_urlicono = $_FILES['urlicono']['tmp_name']; | 
|---|
|  | 85 | $tamano_archivo = $_FILES['urlicono']['size']; | 
|---|
| [3ec149c] | 86 | if($tamano_archivo>100000){ | 
|---|
| [6d356fe] | 87 | $msg=$TbMsg["MSG_SIZE_FILE"]; | 
|---|
| [3ec149c] | 88 | IncializaCampos(); | 
|---|
|  | 89 | $opcion=$INSERTAR; | 
|---|
|  | 90 | $accion=$SIN_ACCION; | 
|---|
|  | 91 | } | 
|---|
|  | 92 | else{ | 
|---|
| [c281499] | 93 | if(!SalvaFichero_POST($UrlPagina,$NombreFicheroPost_urlicono,$NombreFichero_urlicono,$UrlFichero_urlicono)) | 
|---|
| [3ec149c] | 94 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 95 | else{ | 
|---|
| [6d356fe] | 96 | $msg=$TbMsg["SUCCESS_SEND"]; | 
|---|
| [3ec149c] | 97 | $cmd->ParamSetValor("@urlicono",basename($UrlFichero_urlicono)); | 
|---|
|  | 98 | } | 
|---|
|  | 99 | } | 
|---|
|  | 100 | } | 
|---|
|  | 101 | switch($accion){ | 
|---|
|  | 102 | case $INSERTAR_REGISTRO : | 
|---|
|  | 103 | $cmd->texto="INSERT INTO iconos (urlicono,idtipoicono,descripcion ) VALUES (@urlicono,@idtipoicono,@descripcion);"; | 
|---|
|  | 104 | $resul=$cmd->Ejecutar(); | 
|---|
|  | 105 | if (!$resul) | 
|---|
|  | 106 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 107 | break; | 
|---|
|  | 108 | case $MODIFICAR_REGISTRO: | 
|---|
|  | 109 | if(!empty($NombreFichero_urlicono) || !empty($swbf_urlicono)){ | 
|---|
|  | 110 | $filebaja_urlicono=""; | 
|---|
|  | 111 | if (isset($_POST["filebaja_urlicono"])) $filebaja_urlicono=$_POST["filebaja_urlicono"]; | 
|---|
|  | 112 | $UrlPagina=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // Url página | 
|---|
|  | 113 | if(!empty($filebaja_urlicono)){ | 
|---|
|  | 114 | if(!EliminaFichero($UrlPagina,$filebaja_urlicono)) | 
|---|
|  | 115 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 116 | else | 
|---|
| [6d356fe] | 117 | $msg=$TbMsg["SUCCESS_UPDATE"]; | 
|---|
| [3ec149c] | 118 | } | 
|---|
|  | 119 | } | 
|---|
|  | 120 | else{ | 
|---|
|  | 121 | if (isset($_POST["fileexist_urlicono"])) $urlicono=$_POST["fileexist_urlicono"]; | 
|---|
|  | 122 | $cmd->ParamSetValor("@urlicono",basename($urlicono)); | 
|---|
|  | 123 | } | 
|---|
|  | 124 | $cmd->texto="UPDATE iconos SET urlicono=@urlicono,idtipoicono=@idtipoicono,descripcion=@descripcion  WHERE idicono=@idicono"; | 
|---|
|  | 125 | $resul=$cmd->Ejecutar(); | 
|---|
|  | 126 | if (!$resul) | 
|---|
|  | 127 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 128 | break; | 
|---|
|  | 129 | } | 
|---|
|  | 130 | IncializaCampos(); | 
|---|
|  | 131 | $opcion=$INSERTAR; | 
|---|
|  | 132 | $accion=$SIN_ACCION; | 
|---|
|  | 133 | }else{ | 
|---|
|  | 134 | if($accion==$BORRAR_REGISTRO){ | 
|---|
|  | 135 | $cmd->texto="DELETE FROM iconos WHERE idicono=".$idicono; | 
|---|
|  | 136 | $resul=$cmd->Ejecutar(); | 
|---|
|  | 137 | if (!$resul) | 
|---|
|  | 138 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 139 | $filebaja_urlicono=""; | 
|---|
|  | 140 | if (isset($_POST["filebaja_urlicono"])) $filebaja_urlicono=$_POST["filebaja_urlicono"]; | 
|---|
|  | 141 | $UrlPagina=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // Url página | 
|---|
|  | 142 | if(!empty($filebaja_urlicono)){ | 
|---|
|  | 143 | if(!EliminaFichero($UrlPagina,$filebaja_urlicono)) | 
|---|
|  | 144 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 145 | else | 
|---|
| [6d356fe] | 146 | $msg=$TbMsg["SUCCESS_DELETE"]; | 
|---|
| [3ec149c] | 147 | } | 
|---|
|  | 148 | IncializaCampos(); | 
|---|
|  | 149 | $opcion=$INSERTAR; | 
|---|
|  | 150 | $accion=$SIN_ACCION; | 
|---|
|  | 151 | } | 
|---|
|  | 152 | else{ | 
|---|
|  | 153 | if($accion==$LEER_REGISTRO){ | 
|---|
|  | 154 | $rs=new Recordset; | 
|---|
|  | 155 | $cmd->texto="SELECT * FROM iconos WHERE idicono=".$idicono; | 
|---|
|  | 156 | $rs->Comando=&$cmd; | 
|---|
|  | 157 | if (!$rs->Abrir()) | 
|---|
|  | 158 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 159 | if ($rs->EOF) | 
|---|
|  | 160 | Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. | 
|---|
|  | 161 | $urlicono=$rs->campos["urlicono"]; | 
|---|
|  | 162 | $idtipoicono=$rs->campos["idtipoicono"]; | 
|---|
|  | 163 | $descripcion=$rs->campos["descripcion"]; | 
|---|
|  | 164 | } | 
|---|
|  | 165 | else{ // Sin accion | 
|---|
|  | 166 | IncializaCampos(); | 
|---|
|  | 167 | $opcion=$INSERTAR; | 
|---|
|  | 168 | $accion=$SIN_ACCION; | 
|---|
|  | 169 | } | 
|---|
|  | 170 | } | 
|---|
|  | 171 | } | 
|---|
|  | 172 | ?> | 
|---|
|  | 173 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 174 | <!-- Página HTML del Mantenimiento de la tabla | 
|---|
|  | 175 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 176 | <HTML> | 
|---|
|  | 177 | <HEAD> | 
|---|
|  | 178 | <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> | 
|---|
|  | 179 | <LINK rel="stylesheet" type="text/css" href="../estilos.css"> | 
|---|
|  | 180 | <SCRIPT language="javascript" src="M_Iconos.js"></SCRIPT> | 
|---|
| [043e67d] | 181 | <?php echo '   <SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/iconos_'.$idioma.'.js"></SCRIPT>'?> | 
|---|
| [3ec149c] | 182 | </HEAD> | 
|---|
|  | 183 | <BODY> | 
|---|
|  | 184 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 185 | <FORM name="fdatos" action="M_Iconos.php"  enctype="multipart/form-data" method="post"> | 
|---|
| [043e67d] | 186 | <input name="opcion" type="hidden" value="<?php echo $opcion?>"> | 
|---|
|  | 187 | <input name="accion" type="hidden" value="<?php echo $accion?>"> | 
|---|
|  | 188 | <input name="idicono" type="hidden" value="<?php echo $idicono?>"> | 
|---|
|  | 189 | <input name="filebaja_urlicono" type="hidden" value="<?php echo basename($urlicono)?>"> | 
|---|
|  | 190 | <input name="fileexist_urlicono" type="hidden" value="<?php echo $urlicono?>"> | 
|---|
| [3ec149c] | 191 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 192 | <DIV align=center id="Layer_Datos"> | 
|---|
| [043e67d] | 193 | <P class=cabeceras><?php echo $TbMsg["TITLE"] ; ?><BR> | 
|---|
|  | 194 | <SPAN class="subcabeceras"><?php echo $TbMsg["$mopciones[$opcion]"] ?></SPAN></P> | 
|---|
|  | 195 | <P align="center"><SPAN class=textos><?php echo $TbMsg["TABLE_TITLE"] ?></SPAN></P> | 
|---|
| [3ec149c] | 196 | <TABLE class="tabla_datos" align="center"> | 
|---|
| [6d356fe] | 197 |  | 
|---|
| [3ec149c] | 198 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
| [6d356fe] | 199 |  | 
|---|
|  | 200 | <TR> | 
|---|
| [043e67d] | 201 | <TH> <?php echo $TbMsg["TYPE"] ?>  </TH> | 
|---|
|  | 202 | <?php if ($opcion==$CONSULTAR || $opcion==$ELIMINAR){?> | 
|---|
|  | 203 | <TD><?php | 
|---|
| [6d356fe] | 204 | $TBtipo[1]=$TbMsg["TYPE_WEB"]; | 
|---|
|  | 205 | $TBtipo[2]=$TbMsg["TYPE_ITEMS"]; | 
|---|
|  | 206 | $TBtipo[3]=$TbMsg["TYPE_MENU"]; | 
|---|
|  | 207 | echo $TBtipo[$idtipoicono]; | 
|---|
|  | 208 | }else{ | 
|---|
|  | 209 | $parametros='0='.chr(13); | 
|---|
|  | 210 | $parametros.=$TbMsg["SELECT_WEB"].chr(13); | 
|---|
|  | 211 | $parametros.=$TbMsg["SELECT_ITEMS"].chr(13); | 
|---|
|  | 212 | $parametros.=$TbMsg["SELECT_MENU"]; | 
|---|
|  | 213 | echo '<TD>'.HTMLCTESELECT($parametros, "idtipoicono","estilodesple","",$idtipoicono,100).'</TD>'; | 
|---|
|  | 214 | }?> | 
|---|
|  | 215 | </TR> | 
|---|
|  | 216 |  | 
|---|
| [3ec149c] | 217 |  | 
|---|
|  | 218 | <!--------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 219 | <TR> | 
|---|
| [043e67d] | 220 | <TH> <?php echo $TbMsg["DESCRIP"] ?>   </TH> | 
|---|
|  | 221 | <?php if ($opcion==$CONSULTAR || $opcion==$ELIMINAR){?> | 
|---|
|  | 222 | <TD><?php echo $descripcion?></TD> | 
|---|
|  | 223 | <?php }else{?> | 
|---|
|  | 224 | <TD><INPUT class=cajatexto name="descripcion" maxlength=250  style="width:250" value="<?php echo $descripcion?>"></TD> | 
|---|
|  | 225 | <?php }?> | 
|---|
| [3ec149c] | 226 | </TR> | 
|---|
|  | 227 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
| [043e67d] | 228 | <?php if ($opcion==$CONSULTAR || $opcion==$ELIMINAR){?> | 
|---|
| [3ec149c] | 229 | <TR> | 
|---|
| [6d356fe] | 230 | <TH> Icono </TH> | 
|---|
| [043e67d] | 231 | <TD><?php echo basename($urlicono)?></TD> | 
|---|
| [3ec149c] | 232 | </TR> | 
|---|
| [043e67d] | 233 | <?php }else{ | 
|---|
| [3ec149c] | 234 | if ($opcion==$INSERTAR || ($opcion==$MODIFICAR && empty($urlicono))){?> | 
|---|
|  | 235 | <TR> | 
|---|
| [043e67d] | 236 | <TH>  <?php echo $TbMsg["ICON"] ?>  </TH> | 
|---|
|  | 237 | <TD><INPUT type=file class=cajatexto name="urlicono"  style="width:500" value="<?php echo $urlicono?>"> | 
|---|
| [3ec149c] | 238 | </TR> | 
|---|
| [043e67d] | 239 | <?php }else{?> | 
|---|
| [3ec149c] | 240 | <TR> | 
|---|
| [043e67d] | 241 | <TH>  <?php echo $TbMsg["ICON"] ?>  </TH> | 
|---|
|  | 242 | <TD><?php echo basename($urlicono)?></TD> | 
|---|
| [3ec149c] | 243 | </TR> | 
|---|
|  | 244 | <TR> | 
|---|
| [043e67d] | 245 | <TH>  <?php echo $TbMsg["REPLACE"] ?>  </TH> | 
|---|
|  | 246 | <TD><INPUT type=file class=cajatexto name="urlicono"  style="width:500" value="<?php echo $urlicono?>"> | 
|---|
| [3ec149c] | 247 | </TR> | 
|---|
| [043e67d] | 248 | <?php }?> | 
|---|
|  | 249 | <?php }?> | 
|---|
| [3ec149c] | 250 | </TR> | 
|---|
|  | 251 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 252 | </TABLE> | 
|---|
|  | 253 | </DIV> | 
|---|
|  | 254 | <BR> | 
|---|
|  | 255 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 256 | <DIV id="Layer_opciones"> | 
|---|
|  | 257 | <TABLE align="center" border="0" > | 
|---|
|  | 258 | <TR> | 
|---|
| [043e67d] | 259 | <?php switch($opcion){ | 
|---|
| [3ec149c] | 260 | case $CONSULTAR: | 
|---|
| [6d356fe] | 261 | echo '<TD><img style="cursor:hand" SRC="../images/boton_insertar_'.$idioma.'.gif" onclick="Cancelar()"></TD>'; | 
|---|
|  | 262 | break; | 
|---|
|  | 263 | case $ELIMINAR: | 
|---|
|  | 264 | echo '<TD><img SRC="../images/boton_confirmar_'.$idioma.'.gif" style="cursor:hand" onclick="Confirmar()"></TD>'; | 
|---|
|  | 265 | echo '<TD><img SRC="../images/boton_cancelar_'.$idioma.'.gif" style="cursor:hand" onclick="Cancelar()"></TD>'; | 
|---|
|  | 266 | break; | 
|---|
| [3ec149c] | 267 | default: | 
|---|
| [6d356fe] | 268 | echo '<TD><img style="cursor:hand" SRC="../images/boton_confirmar_'.$idioma.'.gif" onclick="Confirmar()"></TD>'; | 
|---|
|  | 269 | echo '<TD><img style="cursor:hand" SRC="../images/boton_cancelar_'.$idioma.'.gif" onclick="Cancelar()"></TD>'; | 
|---|
|  | 270 | break; | 
|---|
|  | 271 | }?> | 
|---|
| [3ec149c] | 272 | </TR> | 
|---|
|  | 273 | </TABLE> | 
|---|
| [6d356fe] | 274 | </DIV> | 
|---|
|  | 275 |  | 
|---|
|  | 276 |  | 
|---|
| [043e67d] | 277 | <?php | 
|---|
| [3ec149c] | 278 | //________________________________________________________________________________________________________ | 
|---|
|  | 279 | // Posiciona cursor en campo usuario y muestra mensaje de error si lo hubiera | 
|---|
|  | 280 | echo '<SCRIPT LANGUAGE="javascript">'; | 
|---|
|  | 281 | if (!empty($msg)) | 
|---|
|  | 282 | echo 'alert("'.$msg.'")'; | 
|---|
|  | 283 | echo '</SCRIPT>'; | 
|---|
|  | 284 | ?> | 
|---|
|  | 285 | <!---------------------------------------------------------------------------------------------------------------------------------------------------> | 
|---|
|  | 286 | </FORM> | 
|---|
|  | 287 | </BODY> | 
|---|
|  | 288 | </HTML> | 
|---|
| [043e67d] | 289 | <?php | 
|---|
| [3ec149c] | 290 | //______________________________________________________________________ | 
|---|
|  | 291 | //      Inicialiciza los campos de trabajo de la tabla | 
|---|
|  | 292 | //______________________________________________________________________ | 
|---|
|  | 293 | function IncializaCampos(){ | 
|---|
|  | 294 |  | 
|---|
|  | 295 | global $idicono; | 
|---|
|  | 296 | $idicono=0; | 
|---|
|  | 297 |  | 
|---|
|  | 298 | global $urlicono; | 
|---|
|  | 299 | global $idtipoicono; | 
|---|
|  | 300 | global $descripcion; | 
|---|
|  | 301 |  | 
|---|
|  | 302 | $urlicono=""; | 
|---|
|  | 303 | $idtipoicono=0; | 
|---|
|  | 304 | $descripcion=""; | 
|---|
|  | 305 | } | 
|---|
|  | 306 |  | 
|---|