| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427 |
- <?php
- $strModulo = 'PRUEBA';
- $strDatos = "";
- $linkStr = __FILE__;
- $linkArr = explode("/", $linkStr);
- $link = end($linkArr);
- if($_SERVER['REQUEST_METHOD'] == "POST"){
- $ctrab = $_POST["CTRAB"];
- $maq = $_POST["MAQ"];
- $norden = $_POST["NORDEN"];
- $fini = $_POST["FINI"];
- $ffin = $_POST["FFIN"];
- if(!(empty($ctrab) && empty($maq) && empty($norden) && empty($fini) && empty($ffin))){
- if($ctrab == "#315"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI001', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0100', FechaOrden: '22/10/2021' }, \n";
- $strDatos .= "{ id: 'BI004', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0080', FechaOrden: '01/09/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($ctrab == "#613"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI002', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0098', FechaOrden: '18/10/2021' }, \n";
- $strDatos .= "{ id: 'BI003', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0095', FechaOrden: '05/09/2021' }, \n";
- $strDatos .= "{ id: 'BI005', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0075', FechaOrden: '29/08/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($ctrab == "#023"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI006', CentroDeTrabajo: 'Centro de Trabajo #023', Maquina: 'Punzonadora', NumOrden: '0065', FechaOrden: '17/08/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($maq == "rec"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI001', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0100', FechaOrden: '22/10/2021' }, \n";
- $strDatos .= "{ id: 'BI004', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0080', FechaOrden: '01/09/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($maq == "pan"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI002', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0098', FechaOrden: '18/10/2021' }, \n";
- $strDatos .= "{ id: 'BI003', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0095', FechaOrden: '05/09/2021' }, \n";
- $strDatos .= "{ id: 'BI005', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0075', FechaOrden: '29/08/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($maq == "pun"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI006', CentroDeTrabajo: 'Centro de Trabajo #023', Maquina: 'Punzonadora', NumOrden: '0065', FechaOrden: '17/08/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($norden == "0100"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI001', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0100', FechaOrden: '22/10/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($norden == "0098"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI002', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0098', FechaOrden: '18/10/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($norden == "0095"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI003', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0095', FechaOrden: '05/09/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($norden == "0080"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI004', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0080', FechaOrden: '01/09/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($norden == "0075"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI005', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0075', FechaOrden: '29/08/2021' }, \n";
- $strDatos .= "]; \n";
- }else if($norden == "0065"){
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI006', CentroDeTrabajo: 'Centro de Trabajo #023', Maquina: 'Punzonadora', NumOrden: '0065', FechaOrden: '17/08/2021' }, \n";
- $strDatos .= "]; \n";
- }else{
- $strDatos .= "[] \n";
- }
- }else{
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI001', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0100', FechaOrden: '22/10/2021' }, \n";
- $strDatos .= "{ id: 'BI002', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0098', FechaOrden: '18/10/2021' }, \n";
- $strDatos .= "{ id: 'BI003', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0095', FechaOrden: '05/09/2021' }, \n";
- $strDatos .= "{ id: 'BI004', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0080', FechaOrden: '01/09/2021' }, \n";
- $strDatos .= "{ id: 'BI005', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0075', FechaOrden: '29/08/2021' }, \n";
- $strDatos .= "{ id: 'BI006', CentroDeTrabajo: 'Centro de Trabajo #023', Maquina: 'Punzonadora', NumOrden: '0065', FechaOrden: '17/08/2021' }, \n";
- $strDatos .= "]; \n";
- }
- }else{
- $strDatos .= "[ \n";
- $strDatos .= "{ id: 'BI001', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0100', FechaOrden: '22/10/2021' }, \n";
- $strDatos .= "{ id: 'BI002', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0098', FechaOrden: '18/10/2021' }, \n";
- $strDatos .= "{ id: 'BI003', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0095', FechaOrden: '05/09/2021' }, \n";
- $strDatos .= "{ id: 'BI004', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0080', FechaOrden: '01/09/2021' }, \n";
- $strDatos .= "{ id: 'BI005', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0075', FechaOrden: '29/08/2021' }, \n";
- $strDatos .= "{ id: 'BI006', CentroDeTrabajo: 'Centro de Trabajo #023', Maquina: 'Punzonadora', NumOrden: '0065', FechaOrden: '17/08/2021' }, \n";
- $strDatos .= "]; \n";
- }
- ?>
- <!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 urlPeticiones = "plantillaEjemplo_DO.php";
- const idModulo = "<?php echo($strModulo);?>";
- // 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');
- /*const datos = [
- { id: 'BI001', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0100', FechaOrden: '22/10/2021' },
- { id: 'BI002', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0098', FechaOrden: '18/10/2021' },
- { id: 'BI003', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0095', FechaOrden: '05/09/2021' },
- { id: 'BI004', CentroDeTrabajo: 'Centro de Trabajo #315', Maquina: 'Rechazadora', NumOrden: '0080', FechaOrden: '01/09/2021' },
- { id: 'BI005', CentroDeTrabajo: 'Centro de Trabajo #613', Maquina: 'Paneladora', NumOrden: '0075', FechaOrden: '29/08/2021' },
- { id: 'BI006', CentroDeTrabajo: 'Centro de Trabajo #612', Maquina: 'Punzonadora', NumOrden: '0065', FechaOrden: '17/08/2021' },
- ];*/
- const datos = <?php echo $strDatos; ?>
- /****************************************************************** Botones ******************************************************************/
- // Limpiar
- new Button({
- label: "Limpiar",
- iconClass: "dijitEditorIcon dijitEditorIconRemoveFormat",
- showLabel: true,
- onClick: function() {
- dijit.byId("frm").submit();
- }
- }, "BTNLIMPIAR").startup();
- // Buscar
- new Button({
- id: "BTNBUSCAR",
- label: "Buscar",
- iconClass: "dijitIcon dijitIconDatabase",
- showLabel: true,
- onClick: function(){
- dijit.byId("frm").submit();
- }
- }, "BTNBUSCAR").startup();
- // Buscar
- new Button({
- id: "BTNPETICION",
- label: "Realizar Petición",
- iconClass: "dijitIconFunction",
- showLabel: true,
- onClick: function(){
- realizaAccion("buscarDatos");
- }
- }, "BTNPETICION").startup();
- /****************************************************************** Acciones ******************************************************************/
- realizaAccion = function (accion){
- dgEjecuta.set("title", "Consultando...");
- dgEjecuta.show();
- request.post(urlPeticiones, {
- data: {
- accion: accion,
- idModulo: idModulo,
- dato1: "prueba"
- }
- }).then(
- function (response) {
- var objResponse = JSON.parse(response);
- if (objResponse['estatus'] == "ERROR") {
- dgEjecuta.hide();
- dgResultadoError.setContent(objResponse['errorDescripcion']);
- dgResultadoError.show();
- } else {
- let datosRecibidos = objResponse["datosRecibidos"];
- console.log(datosRecibidos);
- dgEjecuta.hide();
- }
- }
- );
- };
- crearTabla = function (datos) {
- domConstruct.empty('TBREGISTROS');
- if (datos.length > 0) {
- for (const key in datos) {
- var trRegistro = domConstruct.create('tr', { class: '' }, 'TBREGISTROS');
- var tdVacioInicio = domConstruct.create('td', { class: 'celdaTabla', innerHTML: '' }, trRegistro);
- // Centro de Trabajo
- var CentroDeTrabajo = datos[key]['CentroDeTrabajo'];
- var tdCentroDeTrabajo = domConstruct.create('td', { class: 'celdaTabla', innerHTML: CentroDeTrabajo }, trRegistro);
- // Máquina
- var Maquina = datos[key]['Maquina'];
- var tdMaquina = domConstruct.create('td', { class: 'celdaTabla', innerHTML: Maquina }, trRegistro);
- // # De Orden
- var NumOrden = datos[key]['NumOrden'];
- var tdNumOrden = domConstruct.create('td', { class: 'celdaTabla', innerHTML: NumOrden }, trRegistro);
- // Fecha de laOrden
- var FechaOrden = datos[key]['FechaOrden'];
- var tdFechaOrden = domConstruct.create('td', { class: 'celdaTabla', innerHTML: FechaOrden }, trRegistro);
- // Acciones
- var tdAcciones = domConstruct.create('td', { class: 'celdaTabla', innerHTML: '' }, trRegistro);
- var btnPdf = domConstruct.create('button', { type: 'button' }, tdAcciones);
- new Button({
- label: 'Orden de Trabajo',
- iconClass: 'dijitIconTask',
- showLabel: false,
- onClick: function () {
- pdf(datos[key]['NumOrden']);
- }
- }, btnPdf).startup();
- var btnAbrir = domConstruct.create('button', { type: 'button' }, tdAcciones);
- new Button({
- label: 'Revisar Archivo',
- iconClass: 'dijitIconFolderOpen',
- showLabel: false,
- onClick: function () {
- abrir(datos[key]['NumOrden']);
- }
- }, btnAbrir).startup();
- var tdVacioFinal = domConstruct.create('td', { class: 'celdaTabla', innerHTML: '' }, trRegistro);
- }
- }
- }
- 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-120)+"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-120)+"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);
- crearTabla(datos);
- });
- });
- function abrir(numOrden){ document.getElementById("numOrden").value = numOrden; document.getElementById("frmAbrir").submit(); }
- function pdf(numOrden){ document.getElementById("pdf").value = numOrden; document.getElementById("frmPDF").submit(); }
- </script>
- </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"> Bitácora de Mantenimiento </div>
- <div id="wrapper_table_body_mod_app">
- <table width="100%" height="auto">
- <tr>
- <td width="15%" colspan="3" class="etiquetaFormulario">
- <label class="noTopPadding" for="CTRAB">Centro de trabajo:</label>
- <input type="hidden" id="pagina" name="pagina" value="" /> <!--Paginador-->
- </td>
- <td width="30%" colspan="6">
- <select id="CTRAB" name="CTRAB" data-dojo-type="dijit/form/Select" style="width:100%" required="false">
- <option value="" selected></option>
- <option value="#315">Centro de Trabajo #315</option>
- <option value="#023">Centro de Trabajo #023</option>
- <option value="#613">Centro de Trabajo #613</option>
- </select>
- </td>
- <td width="10%" colspan="2"></td>
- <td width="10%" colspan="2" class="etiquetaFormulario">
- <label class="noTopPadding" for="MAQ">Máquina:</label>
- </td>
- <td width="35%" colspan="7">
- <select id="MAQ" name="MAQ" data-dojo-type="dijit/form/Select" style="width:100%" required="false">
- <option value="" selected></option>
- <option value="rec">Rechazadora</option>
- <option value="pan">Paneladora</option>
- <option value="pun">Punzonadora</option>
- </select>
- </td>
- </tr>
- <tr>
- <td width="15%" colspan="3" class="etiquetaFormulario">
- <label class="noTopPadding" for="NORDEN">Número de orden:</label>
- </td>
- <td width="30%" colspan="6">
- <select id="NORDEN" name="NORDEN" data-dojo-type="dijit/form/Select" style="width:100%" required="false">
- <option value="" selected></option>
- <option value="0100">0100</option>
- <option value="0098">0098</option>
- <option value="0095">0095</option>
- <option value="0080">0080</option>
- <option value="0075">0075</option>
- <option value="0065">0065</option>
- </select>
- </td>
- <td width="20%" colspan="4" class="etiquetaFormulario">
- <label class="noTopPadding" for="FINI">Fecha Inicial:</label>
- </td>
- <td width="35%" colspan="7">
- <input type="text" name="FINI" id="FINI" data-dojo-type="dijit/form/DateTextBox" required="false"
- style="width:100%;" data-dojo-props="placeHolder:'DD/MM/YYYY', invalidMessage: 'La fecha debe capturarse en formato DD/MM/YYYY donde DD corresponde al día, MM al mes y YYYY al año.'" data-dojo-type="dijit.form.DateTextBox" required="false" onChange="dijit.byId('FFIN').constraints.min = arguments[0];"/>
- </td>
- </tr>
- <tr>
- <td width="15%" colspan="3" class="etiquetaFormulario">
- <label class="noTopPadding" for="FFIN">Fecha Final:</label>
- </td>
- <td width="30%" colspan="6">
- <input type="text" name="FFIN" id="FFIN" data-dojo-type="dijit/form/DateTextBox" required="false"
- style="width:100%;" data-dojo-props="placeHolder:'DD/MM/YYYY', invalidMessage: 'La fecha debe capturarse en formato DD/MM/YYYY donde DD corresponde al día, MM al mes y YYYY al año.'" data-dojo-type="dijit.form.DateTextBox" required="false" onChange="dijit.byId('FFIN').constraints.min = arguments[0];"/>
- </td>
- </tr>
- <tr>
- <td width="100%" colspan="20" align="center">
- <button id="BTNBUSCAR" type="button"></button>
- <button id="BTNLIMPIAR" 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 Mantenimiento" data-dojo-props="selected:true">
- <table width="100%" height="auto" cellpadding="0" cellspacing="0">
- <thead>
- <tr>
- <td width="3%" class="encabezadoTabla"> </td>
- <td width="20%" class="encabezadoTabla"> Centro de Trabajo </td>
- <td width="20%" class="encabezadoTabla"> Máquina </td>
- <td width="18%" class="encabezadoTabla"> # De Orden </td>
- <td width="18%" class="encabezadoTabla"> Fecha de la Orden </td>
- <td width="18%" class="encabezadoTabla">Acciones</td>
- <td width="3%" class="encabezadoTabla"> </td>
- </tr>
- </thead>
- <tbody id="TBREGISTROS">
- </tbody>
- </table>
- </div>
- </div>
- </div>
- </div>
- <form id="frmAbrir" action="bitacorasDeMantenimiento_FR.php" method="post">
- <input type="hidden" value="" id="numOrden" name="numOrden">
- <input type="hidden" value="<?php echo $link; ?>" id="from" name="from">
- </form>
- <form id="frmPDF" action="bitacorasDeMantenimiento_FR.php" method="post" target="_blank">
- <input type="hidden" value="" id="pdf" name="pdf">
- </form>
- </div>
- </div>
- </body>
|