| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- <?php
- $strModulo = 'maquinaria';
- $arrCT = array();
- $arrMaq = array();
- $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'] = 'T';
- $arrCT[0]['name'] = 'Todos';
- $contadorCT = 1;
- $contadorMaq = 0;
- foreach ($arrResultadoPeticion['datosRespuesta'] as $idCentroT => $arrData){
- $arrCT[$contadorCT]['idCT'] = $idCentroT;
- $arrCT[$contadorCT]['name'] = $idCentroT;
- $contadorCT++;
- foreach ($arrData['maquinas'] as $clave => $valor){
- //echo $arrData['maquinas'][$clave]['nombre'].'<br>';
- $arrMaq[$contadorMaq]['idCT'] = $idCentroT;
- $arrMaq[$contadorMaq]['name'] = $arrData['maquinas'][$clave]['nombre'];
- $arrMaq[$contadorMaq]['id'] = $arrData['maquinas'][$clave]['id'];
- $contadorMaq++;
- }
- }
- $jsonCentrosT = json_encode($arrCT);
- $jsonMaquinaria = json_encode($arrMaq);
- $CT_recibido = $_GET['ct'];
- ?>
- <!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 href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
- <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", "dijit/form/ComboBox", "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, ComboBox, request) {
- const idModulo = "<?php echo($strModulo);?>";
- const arrCentrosT = <?php echo($jsonCentrosT); ?>;
- const arrMaquinaria = <?php echo($jsonMaquinaria); ?>;
- const CT_recibido = "<?php echo($CT_recibido); ?>";
- var idMaquina = "";
- // 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",
- store: new Memory({ idProperty: "idCT", data: arrCentrosT }),
- autoComplete: true,
- maxHeight: 300,
- style: "width: 100%;",
- placeHolder: "Seleccione una opción",
- onChange: function(idCt){
- if((idCt != "") && (idCt != "T")){
- dijit.byId('combo_Maquinaria').set("disabled", false);
- dijit.byId('combo_Maquinaria').query.idCT = this.item.idCT || /.*!/;
- dijit.byId('combo_Maquinaria').reset();
- }else{
- dijit.byId('combo_Maquinaria').reset();
- dijit.byId('combo_Maquinaria').set("disabled", true);
- }
- }
- }, "select_CentroTrabajo");
- new ComboBox({
- id: "combo_Maquinaria",
- store: new Memory({ data: arrMaquinaria }),
- autoComplete: true,
- maxHeight: 300,
- query: {idCT: /.*/},
- style: "width: 100%;",
- required: false,
- searchAttr: "name",
- disabled: true,
- placeHolder: "Seleccione una opción",
- onChange: function(val){
- if((this.item != null)){
- idMaquina = this.item.id;
- }else{
- dijit.byId('combo_Maquinaria').set("value", "");
- idMaquina = "";
- }
- }
- }, "combo_Maquinaria");
- /****************************************************************** Botones ******************************************************************/
- new Button({
- id: "btn_Buscar",
- label: "Buscar",
- iconClass: "dijitIconSearch",
- showLabel: false,
- onClick: function(){
- let centroT = dijit.byId('select_CentroTrabajo').value;
- if(centroT != ""){
- consultarDatos(centroT, idMaquina);
- }
- }
- }, "btn_Buscar").startup();
- /****************************************************************** Funciones ******************************************************************/
- consultarDatos = function(ct, maq){
- let urlBusqueda = "datosPlanta.php";
- if(ct != ""){
- urlBusqueda += "?ct=" + ct;
- }
- if(maq != ""){
- urlBusqueda += "&maq=" + maq;
- }
- request.post(urlBusqueda, {
- data: {
- accion: 'accion',
- idModulo: idModulo
- }
- }).then(
- function (response) {
- var objResponse = JSON.parse(response);
- if (objResponse['estatus'] == "ERROR") {
- dgEjecuta.hide();
- dgResultadoError.setContent(objResponse['errorDescripcion']);
- dgResultadoError.show();
- } else {
- let datosRecibidos = objResponse["datosRespuesta"];
- domConstruct.empty("div_Cards");
- for(var centroTrabajo in datosRecibidos){
- //console.log(datosRecibidos[centroTrabajo]['maquinas']);
- for(var maquina in datosRecibidos[centroTrabajo]['maquinas']){
- //console.log(datosRecibidos[centroTrabajo]['maquinas'][maquina]['nombre']);
- var divCol = domConstruct.create("div", {
- class: "col pb-5",
- }, "div_Cards");
- var div_C = domConstruct.create("div", {
- class: "card",
- }, divCol);
- var img_C = domConstruct.create("img", {
- class: "card-img-top",
- height: "180px",
- src: datosRecibidos[centroTrabajo]['maquinas'][maquina]['rutaImagen']
- }, div_C);
- var div_Body = domConstruct.create("div", {
- class: "card-body"
- }, div_C);
- var h5_C = domConstruct.create("h5", {
- class: "card-title",
- innerHTML: datosRecibidos[centroTrabajo]['maquinas'][maquina]['nombre']
- }, div_Body);
- var p_C = domConstruct.create("p", {
- class: "card-text fst-italic",
- innerHTML: "Centro de Trabajo: <b>"+centroTrabajo+"</b>"
- }, div_Body);
- var idMaquinaUrl = datosRecibidos[centroTrabajo]['maquinas'][maquina]['id']
- var urlIr = "detalles.php?ct="+centroTrabajo+"&maq="+idMaquinaUrl
- var a_C = domConstruct.create("a", {
- class: "btn btn-link",
- innerHTML: "Ver Detalles",
- href: urlIr
- }, div_Body);
- }
- }
- }
- }
- );
- };
- 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-110)+"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-110)+"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);
- if(CT_recibido != ""){
- consultarDatos(CT_recibido, "");
- dijit.byId('select_CentroTrabajo').set("value", CT_recibido);
- }else{
- consultarDatos("", "");
- }
- });
- });
- </script>
- <style>
- .card{
- width:300px;
- height:300px;
- box-shadow: 10px 5px 5px #b0bec5;
- transition: width 2s, height 2s, transform 2s;
- border-radius: 5px;
- border-color: #34495E;
- }
- img{
- opacity: 0.8;
- }
- .card:hover{
- transform: scale(1.1);
- }
- .col{
- flex: 0 0 0%;
- }
- </style>
- </head>
- <body class="claro">
- <div id="loadingOverlay" class="loadingOverlay pageOverlay">
- <div class="loadingMessage">Espere...</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">Maquinaria</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"/>
- </td>
- <td width="5%" colspan="1"></td>
- <td width="10%" colspan="2" class="etiquetaFormulario">
- <label class="noTopPadding">Maquinaria:</label>
- </td>
- <td width="20%" colspan="4">
- <input id="combo_Maquinaria"/>
- </td>
- <td width="35%" colspan="7">
- <button id="btn_Buscar" type="button"></button>
- </td>
- </tr>
- </table>
- <div id="djTab" data-dojo-type="dijit/layout/LayoutContainer" style="overflow-y: auto;">
- <div class="container" style="margin-left: 5px; margin-right: 5px; margin-top: 20px">
- <div class="row" id="div_Cards">
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </body>
|