menuIzquierdo.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <?php
  2. /*
  3. Sistema de Portales de Soler y Palau SA de CV
  4. (2018) Desarrollos y Servicios en Tecnología Inteligente S de RL de CV
  5. Versión 1.0
  6. Última Actualización: 27/12/2020
  7. Código del Módulo: GAS002
  8. */
  9. $strModulo = 'HYC002';
  10. $_SESSION['GBL_PERFIL_ACTUAL'] = 'ADMINISTRADOR';
  11. $strEsp = true;
  12. $bolMultiPerfil = false;
  13. $strPerfilUsuario = 'SUPERVISOR';
  14. $_SESSION['GBL_USUARIO'] = 10;
  15. //require_once('shared/conexionBaseDatos.php');
  16. //require_once('shared/encriptacion.php');
  17. //require_once('shared/iniciaSesion.php');
  18. //require_once('shared/funciones.php');
  19. // Para acceder a esta página el usuario debe tener un login válido
  20. //require_once('shared/sesionIniciada.php');
  21. // Determina si el usuario tiene múltiples perfiles
  22. /*$arrPerfiles = json_decode($_SESSION['GBL_PERFILES'],true);
  23. $intPerfiles = 0;
  24. foreach($arrPerfiles as $perfil) { if($perfil['IDPORTAL']=='GAS') { $intPerfiles++; } }
  25. if($intPerfiles>1) { $bolMultiPerfil = true; } else { $bolMultiPerfil = false; }
  26. // Para Usuario Especial
  27. $strIDUsuario = trim($_SESSION['GBL_DINUM']);
  28. $gstEsp = oci_parse($conBaseDatos, 'SELECT USAD FROM ITT_GAS_CONF WHERE USAD=:USAD');
  29. oci_bind_by_name($gstEsp, ':USAD', $strIDUsuario);
  30. if (oci_execute($gstEsp)) {
  31. while ($rowEsp = oci_fetch_array($gstEsp, OCI_ASSOC + OCI_RETURN_NULLS)) {
  32. $idEsp = $rowEsp['USAD'];
  33. }
  34. } else {
  35. $bolError = true;
  36. $rErrorDescripcion = 'Ocurrió un error al consultar los datos de la tabla ITT_GAS_CONF.';
  37. }
  38. if(!empty($idEsp)){
  39. $strEsp = true;
  40. }else{
  41. $strEsp = false;
  42. }
  43. if($strEsp == true){
  44. $bolMultiPerfil = true;
  45. // Buscamos el perfil de cada Usuario
  46. $strUsuario = trim($_SESSION['GBL_USUARIO']);
  47. $gstPerf = oci_parse($conBaseDatos, "SELECT IDUSUARIO, IDPERFIL, IDPORTAL FROM ITT_USUARIOS_PERFILES WHERE IDPORTAL='GAS' AND IDUSUARIO=:IDUSUARIO ");
  48. oci_bind_by_name($gstPerf, ':IDUSUARIO', $strUsuario);
  49. if (oci_execute($gstPerf)) {
  50. while ($rowPerf = oci_fetch_array($gstPerf, OCI_ASSOC + OCI_RETURN_NULLS)) {
  51. $strPerfilUsuario = $rowPerf['IDPERFIL'];
  52. }
  53. } else {
  54. $bolError = true;
  55. $rErrorDescripcion = 'Ocurrió un error al consultar los datos de la tabla ITT_USUARIOS_PERFILES.';
  56. }
  57. }*/
  58. ?>
  59. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  60. <html xmlns="http://www.w3.org/1999/xhtml">
  61. <head>
  62. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  63. <meta http-equiv="imagetoolbar" content="no" />
  64. <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Poppins:400,500,700,300,600">
  65. <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans">
  66. <link media="screen" rel="stylesheet" type="text/css" href="css/principal.css" />
  67. <link rel="shortcut icon" type="image/x-icon" href="css/layout/global/sp.ico" />
  68. <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad:true"></script>
  69. <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js'></script>
  70. <script>require(["dojo/dom", "dojo/_base/fx", "dojo/query", "dojo/dom-construct", "dojo/dom-class", "dijit/registry", "dojo/dom-style",
  71. "dojo/ready", "dojo/on", "dojo/window"],
  72. function(dom, fx, query, domConstruct, domClass, dijit, style, ready, on, win) {
  73. cerrarModulos = function(modulo){
  74. query(".menuPrimero").forEach(function(nodePadre,indexPadre,nodelistPadre) {
  75. var idElemento = nodePadre.id;
  76. if(idElemento != modulo){
  77. if (domClass.contains(idElemento, "menu_perfil_linea")){
  78. domClass.remove(idElemento, "menuExtendido");
  79. domClass.add(idElemento, "menuCompacto");
  80. }else if(domClass.contains(idElemento, "menu_perfil_linea_segundo")){
  81. domClass.remove(idElemento, "menuExtendidoSegundo");
  82. domClass.add(idElemento, "menuCompactoSegundo");
  83. }
  84. if(dom.byId(idElemento)){
  85. query("."+idElemento).forEach(function(node,index,nodelist) { style.set(node.id, {display:"none"}); });
  86. }
  87. }
  88. });
  89. };
  90. cerrarSubModulos = function(modulo){
  91. query(".menu_perfil_linea_segundo").forEach(function(nodePadre,indexPadre,nodelistPadre) {
  92. var idElemento = nodePadre.id;
  93. if(idElemento != modulo){
  94. if (domClass.contains(idElemento, "menuPrimero")){
  95. domClass.remove(idElemento, "menuExtendidoSegundo");
  96. domClass.add(idElemento, "menuCompactoSegundo");
  97. }
  98. if(dom.byId(idElemento)){
  99. query("."+idElemento).forEach(function(node,index,nodelist) { style.set(node.id, {display:"none"}); });
  100. }
  101. }
  102. });
  103. };
  104. abrirCerrarModulo = function(modulo){
  105. // Módulos Principales
  106. if (domClass.contains(modulo, "menuExtendido")){
  107. // Cerrar Módulo
  108. domClass.remove(modulo, "menuExtendido");
  109. domClass.add(modulo, "menuCompacto");
  110. cerrarModulos("TODOS");
  111. }else if(domClass.contains(modulo, "menuCompacto")){
  112. // Abrir Módulo
  113. domClass.remove(modulo, "menuCompacto");
  114. domClass.add(modulo, "menuExtendido");
  115. cerrarModulos(modulo);
  116. query("."+modulo).forEach(function(node,index,nodelist) { style.set(node.id, {display:"block"}); });
  117. }
  118. // Sub-Módulos
  119. if (domClass.contains(modulo, "menuExtendidoSegundo")){
  120. // Cerrar Módulo
  121. domClass.remove(modulo, "menuExtendidoSegundo");
  122. domClass.add(modulo, "menuCompactoSegundo");
  123. cerrarSubModulos("TODOS");
  124. }else if(domClass.contains(modulo, "menuCompactoSegundo")){
  125. // Abrir Módulo
  126. domClass.remove(modulo, "menuCompactoSegundo");
  127. domClass.add(modulo, "menuExtendidoSegundo");
  128. cerrarSubModulos(modulo);
  129. query("."+modulo).forEach(function(node,index,nodelist) { style.set(node.id, {display:"block"}); });
  130. }
  131. };
  132. ready(function() {
  133. cerrarModulos("");
  134. // Modificar estilos dependiendo de la existencia de scroll
  135. if($('#bodyScroller').hasScrollBar() == true){
  136. $('#menu_perfil_normal').css('width', '155px');
  137. $('#menu_perfil').css('width', '155px');
  138. }else{
  139. $('#menu_perfil_normal').css('width', '175px');
  140. $('#menu_perfil').css('width', '175px');
  141. }
  142. on(window, "resize", function() {
  143. if($('#bodyScroller').hasScrollBar() == true){
  144. $('#menu_perfil_normal').css('width', '155px');
  145. $('#menu_perfil').css('width', '155px');
  146. }else{
  147. $('#menu_perfil_normal').css('width', '175px');
  148. $('#menu_perfil').css('width', '175px');
  149. }
  150. });
  151. });
  152. });
  153. function actualizaModulo(id, up) {
  154. window.parent.frames.app_modulo.location.href = id;
  155. if (typeof up === 'undefined') { up = false; }
  156. if(up==true) { setTimeout(function(){ location.reload(); },1000); }
  157. }
  158. // Función para detectar la existencia de scrool en un elemento
  159. (function($) {
  160. $.fn.hasScrollBar = function() { return this.get(0).scrollHeight > this.height(); }
  161. })(jQuery);
  162. </script>
  163. </head>
  164. <body id="bodyScroller">
  165. <div id="menu_encabezado">
  166. <span id="HYC"></span>
  167. </div>
  168. <?php if(!empty($_SESSION['GBL_PERFIL_ACTUAL'])) { ?>
  169. <div id="menu_perfil">
  170. <div id="menu_perfil_linea" class="sombra menuPerfil">
  171. <table width="100%" height="100%">
  172. <tr height="100%">
  173. <td width="40px" height="100%"><strong>Perfil:</strong></td>
  174. <?php if($strEsp == true){ ?>
  175. <td height="100%"><?php echo($strPerfilUsuario); ?></td>
  176. <?php }else{ ?>
  177. <td height="100%"><?php echo(substr($_SESSION['GBL_PERFIL_ACTUAL'],4)); ?></td>
  178. <?php } ?>
  179. </tr>
  180. </table>
  181. </div>
  182. <div id="menu_perfil_linea" class="sombra menuPerfil">
  183. <table width="100%" height="100%">
  184. <tr height="100%">
  185. <td width="40px" height="100%"><strong>Usuario:</strong></td>
  186. <td height="100%"><?php echo($_SESSION['GBL_USUARIO']); ?></td>
  187. </tr>
  188. </table>
  189. </div>
  190. </div>
  191. <div id="menu_perfil" class="opciones">
  192. <?php if($bolMultiPerfil==true) { ?>
  193. <div class="menu_perfil_linea noShadow menuSegundo" onclick="actualizaModulo('HYC001.php',true)">Cambiar Perfil</div>
  194. <?php } ?>
  195. <!--<div class="menu_perfil_linea noShadow menuSegundo" onclick="actualizaModulo('plantillaEjemplo.php')">Plantilla Ejemplo</div>
  196. <div class="menu_perfil_linea noShadow menuSegundo" onclick="actualizaModulo('panelControl.php')">Panel de Control</div>-->
  197. <div id="PC" class="menu_perfil_linea noShadow menuPrimero menuExtendido" onclick="abrirCerrarModulo(this.id)">Paneles de Control</div>
  198. <div id="PC1" class="menu_perfil_linea noShadow menuSegundo PC" onclick="actualizaModulo('indicadores.php')">Indicadores</div>
  199. <div id="PC2" class="menu_perfil_linea noShadow menuSegundo PC" onclick="actualizaModulo('energia.php')">Energía</div>
  200. <div id="PS" class="menu_perfil_linea noShadow menuPrimero menuExtendido" onclick="abrirCerrarModulo(this.id)">Planta S&P</div>
  201. <div id="PS1" class="menu_perfil_linea noShadow menuSegundo PS" onclick="actualizaModulo('centroTrabajo.php')">Centro de Trabajo</div>
  202. <div id="PS2" class="menu_perfil_linea noShadow menuSegundo PS" onclick="actualizaModulo('maquinaria.php')">Maquinaria</div>
  203. <div id="MT" class="menu_perfil_linea noShadow menuPrimero menuExtendido" onclick="abrirCerrarModulo(this.id)">Mantenimiento</div>
  204. <div id="MT1" class="menu_perfil_linea noShadow menuSegundo MT" onclick="actualizaModulo('mantoPreventivo.php')">Mantenimiento Preventivo</div>
  205. <div id="MT2" class="menu_perfil_linea noShadow menuSegundo MT" onclick="actualizaModulo('bitacorasDeMantenimiento.php')">Órdenes de Mantenimiento</div>
  206. <div id="MT3" class="menu_perfil_linea noShadow menuSegundo MT" onclick="actualizaModulo('refacciones.php')">Refacciones</div>
  207. <div id="MT4" class="menu_perfil_linea noShadow menuSegundo MT" onclick="actualizaModulo('docElectronicos.php')">Documentos Electrónicos</div>
  208. </div>
  209. <?php } ?>
  210. </body>
  211. </html>