| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- <?php
- $strModulo = 'docElectronicos';
- $arrCT = array();
- //$url = 'https://www.solerpalau.mx/plantasyp/datosPlanta.php';
- $url = 'https://www.solerpalau.mx/plantasyp/datosPlanta.php';
- $opciones = array('http' =>
- array(
- 'method' => 'GET',
- 'max_redirects' => '0',
- 'ignore_errors' => '1'
- )
- );
- $contexto = stream_context_create($opciones);
- $flujo = fopen($url, 'r', false, $contexto);
- $arrResultadoPeticion = json_decode(stream_get_contents($flujo), true);
- $arrCT[0]['idCT'] = 'todos';
- $arrCT[0]['name'] = 'Todos';
- $contadorCT = 1;
- foreach ($arrResultadoPeticion['datosRespuesta'] as $clave => $valor){
- $arrCT[$contadorCT]['idCT'] = $clave;
- $arrCT[$contadorCT]['name'] = $clave;
- $contadorCT++;
- }
- $jsonCentrosT = json_encode($arrCT);
- $arrCentrosTrabajo = array();
- $arrCentrosTrabajo['315'] = 'docs/315/Rechazadora ZENN-200/';
- $arrCentrosTrabajo['316'] = '';
- $arrCentrosTrabajo['559'] = '';
- $arrCentrosTrabajo['606'] = '';
- $arrCentrosTrabajo['613'] = 'docs/613/Salvagnini/';
- $arrCentrosTrabajo['023'] = 'docs/023/Punzonadora CUPRA/';
- $CT_recibido = '';
- if($_SERVER['REQUEST_METHOD'] == "POST"){
- $CT_recibido = $_POST['select_CentroTrabajo'];
- if($CT_recibido != 'todos'){
- foreach ($arrCentrosTrabajo as $claveCT => $carpetaPdfs){
- if($claveCT != $CT_recibido){
- unset($arrCentrosTrabajo[$claveCT]);
- }
- }
- }
- }
- // Creamos los elementos para Documentos Electrónicos
- $tbodyPdfs = '';
- $contadorArchivos = 1;
- foreach ($arrCentrosTrabajo as $claveCT => $carpetaPdfs){
- if(!empty($carpetaPdfs)){
- if(file_exists($carpetaPdfs)){
- if($directorio = opendir($carpetaPdfs)){
- while ($archivo = readdir($directorio)){
- if (!is_dir($archivo)){
- if (($archivo != ".") && ($archivo != "..")) {
- //echo $archivo.'<br>';
- $tbodyPdfs .= '<tr>';
- $tbodyPdfs .= '<td class="celdaTabla"> </td>';
- $tbodyPdfs .= '<td class="celdaTabla">'.$contadorArchivos.'</td>';
- $tbodyPdfs .= '<td class="celdaTabla">'.$claveCT.'</td>';
- $tbodyPdfs .= '<td class="celdaTabla">'.$archivo.'</td>';
- $tbodyPdfs .= '<td class="celdaTabla">';
- $rutaPDF = $carpetaPdfs.$archivo;
- $tbodyPdfs .= '<button id="btnP' . $contadorArchivos . '" data-dojo-type="dijit/form/Button" type="button" ';
- $tbodyPdfs .= 'data-dojo-props="showLabel:true,iconClass:\'dijitIttecPdf\'" ';
- $tbodyPdfs .= 'onclick="descargar(\'' . base64_encode($rutaPDF) . '\', \'PDF\')">Descargar PDF</button>';
- $tbodyPdfs .= '</td>';
- $tbodyPdfs .= '<td class="celdaTabla"> </td>';
- $tbodyPdfs .= '</tr>';
- $contadorArchivos++;
- }
- }
- }
- }
- }
- }
- }
- if(empty($tbodyPdfs)){
- $tbodyPdfs = '<td width="100%" colspan="20" class="celdaTabla" style="text-align:center;font-weight:bold;padding:8px;">Usted no cuenta con los permisos necesarios.</td>';
- }
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta http-equiv="imagetoolbar" content="no" />
- <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Poppins:400,500,700,300,600">
- <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans">
- <link media="screen" rel="stylesheet" type="text/css" href="css/principal.css" />
- <link media="screen" rel="stylesheet" type="text/css" href="css/pagination.css" /> <!--Paginador-->
- <link rel="shortcut icon" type="image/x-icon" href="css/layout/global/sp.ico" />
- <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.14.1/dijit/themes/claro/claro.css">
- <script src="//ajax.googleapis.com/ajax/libs/dojo/1.14.1/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad:true"></script>
- <script type="application/javascript">
- // Cargamos los complementos de dojo
- require(["dojo/dom", "dojo/_base/fx", "dojo/_base/array", "dojo/query", "dojo/dom-construct", "dijit/registry", "dojo/dom-style", "dojo/ready", "dojo/on", "dojo/window",
- "dojo/store/Memory", "dijit/form/FilteringSelect", "dijit/form/Button", "dojo/dom-class", "dijit/Dialog",
- "dojo/_base/lang", "dojox/grid/DataGrid", "dojo/data/ItemFileWriteStore", "dojox/grid/enhanced/plugins/DnD", "dojox/grid/EnhancedGrid", "dojox/grid/enhanced/plugins/Selector", "dojox/grid/enhanced/plugins/IndirectSelection", "dojox/grid/enhanced/plugins/NestedSorting",
- "dijit/ProgressBar", "dijit/ConfirmDialog", "dojo/dom-style", "dijit/form/ComboButton", "dijit/Menu", "dijit/MenuItem", "dijit/MenuSeparator", "dijit/Tooltip", "dijit/form/Form", "dijit/form/TextBox",
- "dojox/grid/enhanced/plugins/Filter", "dijit/form/ValidationTextBox", "dijit/form/NumberSpinner", "dojo/request", "dojo/parser"],
- function(dom, fx, array, query, domConstruct, dijit, style, ready, on, win,
- Memory, FilteringSelect, Button, domClass, Dialog,
- lang, DataGrid, ItemFileWriteStore, DnDConfig, EnhancedGrid, Selector, indirectSelection, nestedSorting,
- ProgressBar, ConfirmDialog, style, ComboButton, Menu, MenuItem, MenuSeparator, Tooltip, Form, TextBox, filter, ValidationTextBox, NumberSpinner, request) {
- const idModulo = "<?php echo($strModulo);?>";
- const arrCentrosT = <?php echo($jsonCentrosT); ?>;
- const CT_recibido = "<?php echo($CT_recibido); ?>";
- // Para Mostrar de Mensajes de "error o éxito"
- var dgEjecuta = new Dialog({title: 'Procesando...', style: 'width:300px'});
- var pbMarcar = new ProgressBar({value: Number.POSITIVE_INFINITY, layoutAlign: 'left'});
- dgEjecuta.setContent(pbMarcar);
- dgResultadoError = new ConfirmDialog({ title:"<b>Error</b>", style: "min-width:300px; heigth; auto" });
- style.set(dgResultadoError.cancelButton.domNode, 'display', 'none');
- dgResultadoExito = new ConfirmDialog({ title:"<b>Éxito</b>", style: "min-width:300px; heigth; auto" });
- style.set(dgResultadoExito.cancelButton.domNode, 'display', 'none');
- /****************************************************************** Inputs ******************************************************************/
- new FilteringSelect({
- id: "select_CentroTrabajo",
- name: "select_CentroTrabajo",
- store: new Memory({ idProperty: "idCT", data: arrCentrosT }),
- autoComplete: true,
- maxHeight: 300,
- style: "width: 100%;",
- placeHolder: "Seleccione una opción",
- onChange: function(idCt){
- }
- }, "select_CentroTrabajo");
- /****************************************************************** Botones ******************************************************************/
- new Button({
- id: "btn_Buscar",
- label: "Buscar",
- iconClass: "dijitIconSearch",
- showLabel: false,
- onClick: function(){
- let centroT = dijit.byId('select_CentroTrabajo').value;
- if(centroT != ""){
- dijit.byId("frm").submit();
- }
- }
- }, "btn_Buscar").startup();
- descargar = function (ruta, opcion) {
- dgEjecuta.set("title", "Descargando...");
- dgEjecuta.show();
- accion = "descargarArchivo";
- request.post('descargarArchivos.php', {
- data: {
- accion: accion,
- idModulo: idModulo,
- ruta: ruta
- }
- }).then(
- function(response) {
- var objResponse = JSON.parse(response);
- if(objResponse['estatus'] == "ERROR"){
- dgEjecuta.hide();
- dgResultadoError.setContent(objResponse['errorDescripcion']);
- dgResultadoError.show();
- }else{
- var data = objResponse['data'];
- var type = objResponse['type'];
- var datosArchivoSalida = objResponse['type'] + objResponse['data'];
- var nombreArchivoSalida = objResponse['fileName'];
- if(navigator.msSaveBlob){ // Adaptación para IE
- var blob = new Blob([s2ab(atob(data))],{
- type: type
- });
- navigator.msSaveBlob(blob, nombreArchivoSalida);
- dgEjecuta.hide();
- }else{
- // Creamos los elementos para descargar
- var spanDescarga = domConstruct.toDom('<span>Para recuperar el archivo, haz click en el siguiente enlace: </span>');
- domConstruct.place(spanDescarga, 'contenidoDescarga');
- var tipo = accion;
- var idElemento = "elementoA_"+tipo;
- var linkDescarga = domConstruct.toDom('<a href="' + datosArchivoSalida + '" id="'+idElemento+'" download="' + nombreArchivoSalida + '">'+nombreArchivoSalida+'</a>');
- domConstruct.place(linkDescarga, 'contenidoDescarga');
- // Evento requerido para cuando no se ejecuta el evento click automáticamente (especialmente en dispositivos móviles)
- var clickEjecutado = false;
- on(linkDescarga, "click", function (evt) {
- clickEjecutado = true;
- spanDescarga.remove();
- linkDescarga.remove();
- divDescargas.hide();
- });
- linkDescarga.click();
- dgEjecuta.hide();
- if(clickEjecutado == false){
- var tituloDescarga = "<b>Descarga</b>";
- divDescargas.set("title", tituloDescarga);
- divDescargas.show();
- }
- }
- }
- }
- );
- };
- ready(function() {
- // Actualizar el tamaño del TabContainer en función del tamaño de página
- var ventana = win.getBox();
- var strVentana = (ventana.h-75-50)+"px";
- style.set(dijit.byId("djTab").id, { height:strVentana });
- dijit.byId("djTab").resize();
- // Actualizar el tamaño del TabContainer en función del tamaño de página
- on(window, "resize", function() {
- var ventana = win.getBox();
- var strVentana = (ventana.h-75-50)+"px";
- style.set(dijit.byId("djTab").id, { height:strVentana });
- dijit.byId("djTab").resize();
- });
- // Eliminar la cortina de entrada
- fx.fadeOut({node: dom.byId("loadingOverlay"), duration: 1}).play();
- setTimeout(function () {
- domConstruct.destroy("loadingOverlay");
- }, 1);
- // Para cuando cierran el divisor que contiene las descargas
- divDescargas.on("Cancel", function (evt) {
- var contenido = document.getElementById("contenidoDescarga");
- while (contenido.firstChild) {
- contenido.removeChild(contenido.firstChild);
- }
- });
- if(CT_recibido != ""){
- dijit.byId('select_CentroTrabajo').set("value", CT_recibido);
- }
- });
- });
- // Función para convertir string a un array buffer (Necesario para descargar en IE)
- function s2ab(s) {
- var buf = new ArrayBuffer(s.length);
- var view = new Uint8Array(buf);
- for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
- return buf;
- }
- </script>
- <style type="text/css">
- .dijitIttecPdf {
- background-image: url("css/layout/site/lsPDF.gif");
- background-position: 1px;
- background-repeat: no-repeat;
- width: 14px;
- height: 14px;
- }
- </style>
- </head>
- <body class="claro">
- <div id="loadingOverlay" class="loadingOverlay pageOverlay">
- <div class="loadingMessage">Espere...</div>
- </div>
- <!-- Divisor para guardar las descargas -->
- <div data-dojo-type="dijit/Dialog" data-dojo-id="divDescargas" title="Descarga" style="top:0; position: absolute">
- <div id="contenidoDescarga" style="min-width:200px; min-height: 100px"></div>
- </div>
- <div id="wrapper_container_module">
- <div id="wrapper_table" style="position:relative;">
- <div data-dojo-type="dijit/form/Form" id="frm" data-dojo-id="frm" encType="multipart/form-data"
- action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" style="position:relative;">
- <script type="dojo/on" data-dojo-event="submit">return true;</script>
- <div id="wrapper_table_head">Documentos Electrónicos</div>
- <div id="wrapper_table_body_mod_app">
- <table width="100%" height="auto" border="0" style="border-spacing: 5px;">
- <tr>
- <td width="10%" colspan="2" class="etiquetaFormulario">
- <label class="noTopPadding">Centro de Trabajo:</label>
- </td>
- <td width="20%" colspan="4">
- <input id="select_CentroTrabajo" name="select_CentroTrabajo"/>
- </td>
- <td width="70%" colspan="14">
- <button id="btn_Buscar" type="button"></button>
- </td>
- </tr>
- </table>
- <div id="djTab" data-dojo-type="dijit/layout/TabContainer" data-dojo-props="tabPosition:'top'" style="width:100%;">
- <div data-dojo-type="dijit/layout/ContentPane" title="Lista de Documentos" data-dojo-props="selected:true">
- <table width="100%" height="auto" cellpadding="0" cellspacing="0">
- <thead>
- <tr>
- <td width="3%" class="encabezadoTabla"> </td>
- <td width="10%" class="encabezadoTabla"> # </td>
- <td width="20%" class="encabezadoTabla">Centro de Trabajo</td>
- <td width="39%" class="encabezadoTabla"> Nombre Archivo </td>
- <td width="25%" class="encabezadoTabla"> Acciones </td>
- <td width="3%" class="encabezadoTabla"> </td>
- </tr>
- </thead>
- <tbody id="TBPDFS">
- <?php echo($tbodyPdfs); ?>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </body>
|