<?php

    $strModulo = 'detalles';

    $CT_recibido = $_GET['ct'];
    $maq_recibido = $_GET['maq'];

    $url = 'https://www.solerpalau.mx/plantasyp/datosPlanta.php?ct='.$CT_recibido.'&maq='.$maq_recibido;
    $opciones = array('http' =>
        array(
            'method' => 'GET',
            'max_redirects' => '0',
            'ignore_errors' => '1'
        )
    );

    /*Ordenes de trabajo*/
    $strDatos = "";
    $linkStr = __FILE__;
    $linkArr = explode("/", $linkStr);
    $link = end($linkArr) . "?ct=" . $CT_recibido . "&maq=" . $maq_recibido;
    if($maq_recibido == "315_0"){
        $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_recibido == "613_0"){
        $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_recibido == "023_0"){
        $strDatos .= "[ \n";
        $strDatos .= "{ id: 'BI006', CentroDeTrabajo: 'Centro de Trabajo #023', Maquina: 'Punzonadora', NumOrden: '0065', FechaOrden: '17/08/2021' }, \n";
        $strDatos .= "]; \n";
    }else{
        $strDatos .= "[]; \n";
    }
    /*Fin ordenes de trabajo*/


    $contexto = stream_context_create($opciones);
    $flujo = fopen($url, 'r', false, $contexto);
    $arrResultadoPeticion = json_decode(stream_get_contents($flujo), true);

    $nombreMaquina = '';
    $carpetaImagenesMaquinaria = '';
    $carpetaPdfs = '';
    $infoGral = '';
    foreach ($arrResultadoPeticion['datosRespuesta'] as $idCentroT => $arrData){
        foreach ($arrData['maquinas'] as $clave => $valor){
            $nombreMaquina = $arrData['maquinas'][$clave]['nombre'];
            $carpetaImagenesMaquinaria = $arrData['maquinas'][$clave]['carpetaImagenesMaquinaria'];
            $infoGral = $arrData['maquinas'][$clave]['descripcion'];
            $carpetaPdfs = $arrData['maquinas'][$clave]['carpetaPdfs'];
        }
    }

    // Creamos los elementos para el "carousel" de imágenes
    $div_carousel_indicators = '';
    $imagenes_carousel = '';
    $contador_carousel = 0;
    if(!empty($carpetaImagenesMaquinaria)){
        $rutaBusqueda = 'css/layout/site/imgPlanta/maquinas/'.$carpetaImagenesMaquinaria;
        if(file_exists($rutaBusqueda)){
            if($directorio = opendir($rutaBusqueda)){
                while ($archivo = readdir($directorio)){
                    if (!is_dir($archivo)){
                        if (($archivo != ".") && ($archivo != "..")) {
                            $arrArchivo = explode('_', $archivo);
                            if(strpos($arrArchivo[1], 'principal') === false){
                                $rutaImg = $rutaBusqueda.'/'.$archivo;
                                $clase1 = '';
                                if($contador_carousel == 0){
                                    $clase1 = 'active';
                                }
                                $div_carousel_indicators .= '<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="'.$contador_carousel.'" class="'.$clase1.' btn-carrusel" aria-current="true" aria-label="Slide '.($contador_carousel+1).'"></button>';
                                $imagenes_carousel .= '<div class="carousel-item '.$clase1.'">';
                                $imagenes_carousel .= '<img src="'.$rutaImg.'" class="d-block w-100" alt="...">';
                                $imagenes_carousel .= '</div>';
                                $contador_carousel++;
                            }
                        }
                    }
                }
            }
        }
    }

    // Elementos para los Datos Generales
    $strTbodyEspecificaciones = '';
    $arrEspecificaciones = array();
    $arrTextoCol2 = array();
    // Rechazadora
    $arrTextoCol2['315'] = 'Rechazadora TLA 550';
    $arrEspecificaciones['315'][0]['col1'] = 'Espesor AL';
    $arrEspecificaciones['315'][1]['col1'] = 'Espesor FE';
    $arrEspecificaciones['315'][2]['col1'] = 'Espesor INOX';
    $arrEspecificaciones['315'][3]['col1'] = 'Altura puntas';
    $arrEspecificaciones['315'][4]['col1'] = 'Distancia entre puntas';
    $arrEspecificaciones['315'][5]['col1'] = 'Velocidad';
    $arrEspecificaciones['315'][6]['col1'] = 'Empuje';
    $arrEspecificaciones['315'][7]['col1'] = 'Potencia';
    $arrEspecificaciones['315'][8]['col1'] = 'Peso';
    $arrEspecificaciones['315'][0]['col2'] = '5 mm';
    $arrEspecificaciones['315'][1]['col2'] = '3.5 mm';
    $arrEspecificaciones['315'][2]['col2'] = '2.2 mm';
    $arrEspecificaciones['315'][3]['col2'] = '550 mm';
    $arrEspecificaciones['315'][4]['col2'] = '1150 mm';
    $arrEspecificaciones['315'][5]['col2'] = '0 1600 m/min';
    $arrEspecificaciones['315'][6]['col2'] = '1200 kg';
    $arrEspecificaciones['315'][7]['col2'] = '16 KW';
    $arrEspecificaciones['315'][8]['col2'] = '3200 kg';
    // Maquina Láser
    $arrTextoCol2['316'] = 'Maquina Láser Amada LC 2415';
    $arrEspecificaciones['316'][0]['col1'] = 'Área de trabajo';
    $arrEspecificaciones['316'][1]['col1'] = 'Carrera (eje X / Y / Z)';
    $arrEspecificaciones['316'][2]['col1'] = 'Precisión de posicionamiento';
    $arrEspecificaciones['316'][3]['col1'] = 'Precisión de reposicionamiento';
    $arrEspecificaciones['316'][4]['col1'] = 'Velocidad máxima de movimiento';
    $arrEspecificaciones['316'][5]['col1'] = 'Aceleración máxima';
    $arrEspecificaciones['316'][6]['col1'] = 'Poder de láser';
    $arrEspecificaciones['316'][7]['col1'] = 'Peso máximo de carga';
    $arrEspecificaciones['316'][8]['col1'] = 'Dimensiones generales';
    $arrEspecificaciones['316'][0]['col2'] = '300mm * 1500mm';
    $arrEspecificaciones['316'][1]['col2'] = '1525mm / 3025mm / 150mm';
    $arrEspecificaciones['316'][2]['col2'] = '± 0,03 mm / m';
    $arrEspecificaciones['316'][3]['col2'] = '± 0,03 mm';
    $arrEspecificaciones['316'][4]['col2'] = '140 m / min';
    $arrEspecificaciones['316'][5]['col2'] = '1.5G';
    $arrEspecificaciones['316'][6]['col2'] = '1.5KW ~ 4KW';
    $arrEspecificaciones['316'][7]['col2'] = '700KG';
    $arrEspecificaciones['316'][8]['col2'] = '4900 × 2250 × 1700 mm';
    // Balanceadora
    $arrTextoCol2['559'] = 'Balanceadora Hofmann CVW - B';
    $arrEspecificaciones['559'][0]['col1'] = 'Peso máximo (kg)';
    $arrEspecificaciones['559'][1]['col1'] = 'Comp. Cama (mm)';
    $arrEspecificaciones['559'][2]['col1'] = 'Rotor';
    $arrEspecificaciones['559'][3]['col1'] = 'Hoja de balance (RPM)';
    $arrEspecificaciones['559'][4]['col1'] = 'Desencadenar (CV)';
    $arrEspecificaciones['559'][5]['col1'] = 'Cardán (CV)';
    $arrEspecificaciones['559'][6]['col1'] = 'Planos de compensación';
    $arrEspecificaciones['559'][7]['col1'] = 'Accionado';
    $arrEspecificaciones['559'][8]['col1'] = 'Medición computarizada';
    $arrEspecificaciones['559'][0]['col2'] = '15,500';
    $arrEspecificaciones['559'][1]['col2'] = '3000';
    $arrEspecificaciones['559'][2]['col2'] = '2400';
    $arrEspecificaciones['559'][3]['col2'] = '300 - 1500';
    $arrEspecificaciones['559'][4]['col2'] = '30,0';
    $arrEspecificaciones['559'][5]['col2'] = '50';
    $arrEspecificaciones['559'][6]['col2'] = '2,3';
    $arrEspecificaciones['559'][7]['col2'] = 'Correa, Cardán o ambos';
    $arrEspecificaciones['559'][8]['col2'] = 'Balsis 3.0';
    // Dobladora Amada
    $arrTextoCol2['606'] = 'Dobladora Amada HG-1303';
    $arrEspecificaciones['606'][0]['col1'] = 'Peso máximo';
    $arrEspecificaciones['606'][1]['col1'] = 'Peso de la maquina';
    $arrEspecificaciones['606'][2]['col1'] = 'Entre columnas';
    $arrEspecificaciones['606'][3]['col1'] = 'Longitud OA (en Total))';
    $arrEspecificaciones['606'][4]['col1'] = 'Control';
    $arrEspecificaciones['606'][5]['col1'] = 'Repetibilidad';
    $arrEspecificaciones['606'][6]['col1'] = 'Accionamiento';
    $arrEspecificaciones['606'][7]['col1'] = 'Longitud máxima de flexión';
    $arrEspecificaciones['606'][8]['col1'] = 'Distancia entre marcos laterales';
    $arrEspecificaciones['606'][9]['col1'] = 'Longitud Total';
    $arrEspecificaciones['606'][10]['col1'] = 'Altura total';
    $arrEspecificaciones['606'][0]['col2'] = '55 toneladas';
    $arrEspecificaciones['606'][1]['col2'] = '7,940 Lbs.';
    $arrEspecificaciones['606'][2]['col2'] = '2.7 m';
    $arrEspecificaciones['606'][3]['col2'] = '3.1 m';
    $arrEspecificaciones['606'][4]['col2'] = 'CNC (AMNC3i)';
    $arrEspecificaciones['606'][5]['col2'] = '0.00004" (±0.001016 mm)';
    $arrEspecificaciones['606'][6]['col2'] = 'Híbrido';
    $arrEspecificaciones['606'][7]['col2'] = '82.1';
    $arrEspecificaciones['606'][8]['col2'] = '59.93';
    $arrEspecificaciones['606'][9]['col2'] = '89.00”';
    $arrEspecificaciones['606'][10]['col2'] = '76.00”';
    // Paneladora Salvagnini
    $arrTextoCol2['613'] = 'Paneladora Salvagnini P22116';
    $arrEspecificaciones['613'][0]['col1'] = 'Longitud máxima formato en entrada (mm)';
    $arrEspecificaciones['613'][1]['col1'] = 'Anchura máxima formato en entrada (mm)';
    $arrEspecificaciones['613'][2]['col1'] = 'Diagonal máxima de giro (mm)';
    $arrEspecificaciones['613'][3]['col1'] = 'Fuerza máxima de plegado (cuchillas) (kN)';
    $arrEspecificaciones['613'][4]['col1'] = 'Fuerza máxima de fijación (kN)';
    $arrEspecificaciones['613'][5]['col1'] = 'Longitud máxima de plegado (mm)';
    $arrEspecificaciones['613'][6]['col1'] = 'Altura máxima de plegado (mm)';
    $arrEspecificaciones['613'][7]['col1'] = 'Espesor mínimo (mm)';
    $arrEspecificaciones['613'][8]['col1'] = 'Espesor máximo y ángulo de plegado acero, UTS 410 N/mm2 (mm)';
    $arrEspecificaciones['613'][9]['col1'] = 'Espesor máximo y ángulo de plegado acero inoxidable, UTS 660 N/mm2 (mm)';
    $arrEspecificaciones['613'][10]['col1'] = 'Espesor máximo y ángulo de plegado aluminio, UTS 265 N/mm2 (mm)';
    $arrEspecificaciones['613'][11]['col1'] = 'Consumo medio (kW)';
    $arrEspecificaciones['613'][12]['col1'] = 'Nivel de ruido (Directiva de Máquinas 2006/42/CE) (dB)';
    $arrEspecificaciones['613'][0]['col2'] = '2495';
    $arrEspecificaciones['613'][1]['col2'] = '1600';
    $arrEspecificaciones['613'][2]['col2'] = '2500';
    $arrEspecificaciones['613'][3]['col2'] = '330';
    $arrEspecificaciones['613'][4]['col2'] = '530';
    $arrEspecificaciones['613'][5]['col2'] = '2180';
    $arrEspecificaciones['613'][6]['col2'] = '165';
    $arrEspecificaciones['613'][7]['col2'] = '0.4';
    $arrEspecificaciones['613'][8]['col2'] = '3.2 (±90°)<br>2.5 (±120°)<br>2.1 (±135°)';
    $arrEspecificaciones['613'][9]['col2'] = '2.5 (±90°)<br>2.1 (±120°)<br>1.6 (±130°)';
    $arrEspecificaciones['613'][10]['col2'] = '4.0 (±120°)<br>3.5 (±130°)';
    $arrEspecificaciones['613'][11]['col2'] = '3.0';
    $arrEspecificaciones['613'][12]['col2'] = '68';
    // Punzadora
    $arrTextoCol2['023'] = 'Punzadora AE 610';
    $arrEspecificaciones['023'][0]['col1'] = 'Capacidad de prensa (KN)';
    $arrEspecificaciones['023'][1]['col1'] = 'Precisión de posicionamiento (mm)';
    $arrEspecificaciones['023'][2]['col1'] = 'Número de estaciones';
    $arrEspecificaciones['023'][3]['col1'] = 'Bastidor de la máquina';
    $arrEspecificaciones['023'][4]['col1'] = 'Distancia de recorrido del eje (mm)';
    $arrEspecificaciones['023'][5]['col1'] = 'Longitud';
    $arrEspecificaciones['023'][6]['col1'] = 'Anchura';
    $arrEspecificaciones['023'][7]['col1'] = 'Altura';
    $arrEspecificaciones['023'][8]['col1'] = 'Peso';
    $arrEspecificaciones['023'][0]['col2'] = '200';
    $arrEspecificaciones['023'][1]['col2'] = '± 0.1';
    $arrEspecificaciones['023'][2]['col2'] = '45';
    $arrEspecificaciones['023'][3]['col2'] = 'Marco de puente';
    $arrEspecificaciones['023'][4]['col2'] = '2500x 1525';
    $arrEspecificaciones['023'][5]['col2'] = '4998';
    $arrEspecificaciones['023'][6]['col2'] = '5120';
    $arrEspecificaciones['023'][7]['col2'] = '2265';
    $arrEspecificaciones['023'][8]['col2'] = '13800';

    $arrColores = array();
    $arrColores['315']['estadoGral'] = 'color-perso';
    $arrColores['315']['ciclo'] = 'color-perso';
    $arrColores['315']['edoRefa'] = 'color-perso';

    $arrColores['316']['estadoGral'] = 'color-perso';
    $arrColores['316']['ciclo'] = 'color-perso';
    $arrColores['316']['edoRefa'] = 'color-perso';

    $arrColores['559']['estadoGral'] = 'color-perso';
    $arrColores['559']['ciclo'] = 'color-perso';
    $arrColores['559']['edoRefa'] = 'color-perso';

    $arrColores['606']['estadoGral'] = 'color-perso';
    $arrColores['606']['ciclo'] = 'color-perso';
    $arrColores['606']['edoRefa'] = 'color-perso';

    $arrColores['613']['estadoGral'] = 'color-perso';
    $arrColores['613']['ciclo'] = 'color-perso';
    $arrColores['613']['edoRefa'] = 'color-perso';

    $arrColores['023']['estadoGral'] = 'color-perso';
    $arrColores['023']['ciclo'] = 'bg-danger';
    $arrColores['023']['edoRefa'] = 'bg-warning';

    /* Atrasado - rojo && Sin Inventarios -> Amarillo */
    // Operativa
    // Al corriente
    // Disponibles

    $arrTextos = array();
    $arrTextos['color-perso'] = 'estadoGral';
    $arrTextos['bg-danger'] = 'Atrasado';
    $arrTextos['bg-warning'] = 'Sin Inventarios';


    //if($arrColores[$CT_recibido]['estadoGral'] == 'color-perso'){
        $texto1 = 'Operativa';
    //}

    if($arrColores[$CT_recibido]['ciclo'] == 'color-perso'){
        $texto2 = 'Al Corriente';
    }elseif ($arrColores[$CT_recibido]['ciclo'] == 'bg-danger'){
        $texto2 = 'Atrasado';
    }

    if($arrColores[$CT_recibido]['edoRefa'] == 'color-perso'){
        $texto3 = 'Disponible';
    }elseif ($arrColores[$CT_recibido]['edoRefa'] == 'bg-warning'){
        $texto3 = 'Sin Inventario';
    }


    $numRow = 1;
    foreach ($arrEspecificaciones[$CT_recibido] as $clave => $arrDetalles){
        $c1 = $arrDetalles['col1'];
        $c2 = $arrDetalles['col2'];
        $strTbodyEspecificaciones .= '<tr>';
        $strTbodyEspecificaciones .= '<th scope="row">'.$numRow.'</th>';
        $strTbodyEspecificaciones .= '<td>'.$c1.'</td>';
        $strTbodyEspecificaciones .= '<td>'.$c2.'</td>';
        $strTbodyEspecificaciones .= '</tr>';
        $numRow++;
    }

    // Creamos los elementos para Documentos Electrónicos
    $tbodyPdfs = '';
    $contadorArchivos = 1;
    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">&nbsp;</td>';
                            $tbodyPdfs .= '<td class="celdaTabla">'.$contadorArchivos.'</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">&nbsp;</td>';
                            $tbodyPdfs .= '</tr>';
                            $contadorArchivos++;
                        }
                    }
                }
            }
        }
    }

$textoCol2 = $arrTextoCol2[$CT_recibido];
$titulo = $nombreMaquina . ' (Centro de Trabajo '.$CT_recibido.')';

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 media="screen" rel="stylesheet" type="text/css" href="css/chunk-vendors.3b8eb8e0.css" /> <!--CSS de los rectangulos-->

    <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.14.1/dijit/themes/claro/claro.css">
    <link rel="stylesheet" href="css/carrusel.css">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.14.1/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad:true"></script>

    <!--<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js'></script>-->

    <style type="text/css">
        /* Estilos para el DataGrid */
        @import "//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojox/grid/resources/claroGrid.css";
        @import "//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css";
        @import "//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css";
        @import "//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/document.css";
        @import "//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojox/grid/enhanced/resources/claro/EnhancedGrid.css";
        @import "//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css";
        #Grid_MantoPreventivo, #Grid_Refacciones {
            height: 400px;
        }

        .btn-carrusel:focus{outline:none !important;}

        .card {
            position:relative;
            display:flex;
            flex-direction:column;
            min-width:0;
            word-wrap:break-word;
            background-color:#fff;
            background-clip:border-box;
            border:1px solid rgba(0,0,0,.125);
            border-radius:.25rem
        }
        .color-perso{
            background-color: #1e9e20 !important;
        }

        .color-dataGral{
            background-color: rgba(250,245,250,0.5);
        }

        .padre{
            width: 100%;
            display: flex;
            justify-content: center;
        }

        .carousel-perso{
            margin: 0 100px 0 100px !important;
        }

        .dijitIttecPdf {
            background-image: url("css/layout/site/lsPDF.gif");
            background-position: 1px;
            background-repeat: no-repeat;
            width: 14px;
            height: 14px;
        }

    </style>

    <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 CT_recibido = "<?php echo($CT_recibido); ?>";
                const maq_recibido = "<?php echo($maq_recibido); ?>";

                /*Datos ordenes de trabajo*/
                const datos = <?php echo $strDatos; ?>

                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);
                        }

                    }else{
                        var trRegistro = domConstruct.create('tr', { class: '', innerHTML: '<td width="100%" colspan="20" class="celdaTabla" style="text-align:center;font-weight:bold;padding:8px;">Usted no cuenta con los permisos necesarios.</td>' }, 'TBREGISTROS');
                    }

                }
                /**************************/

                // 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');


                /****************************************************************** Botones ******************************************************************/


                /****************************************************************** Acciones ******************************************************************/
                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();
                                    }
                                }
                            }
                        }
                    );

                };

                cargarGrid = function (idGrid, ct, maq){
                    dgEjecuta.set("title", "Consultando...");
                    dgEjecuta.show();

                    var accion = "";
                    var resdatosRecibidos = "datosRespuesta";
                    var posicionDom = "";

                    if(idGrid == "id_Grid_MantoPreventivo"){
                        accion = "buscarMantoPreventivo";
                        posicionDom = "Grid_MantoPreventivo";
                    }else if(idGrid == "id_Grid_Refacciones"){
                        accion = "buscarRefacciones";
                        posicionDom = "Grid_Refacciones";
                    }

                    request.post("datosPlanta.php", {
                        data: {
                            accion: accion,
                            idModulo: idModulo,
                            ct: ct,
                            maq: maq
                        }
                    }).then(
                        function (response) {
                            var objResponse = JSON.parse(response);
                            if (objResponse['estatus'] == "ERROR") {
                                dgEjecuta.hide();
                                dgResultadoError.setContent(objResponse['errorDescripcion']);
                                dgResultadoError.show();
                            } else {
                                let datosRecibidos = objResponse[resdatosRecibidos];

                                // Configuramos el data store
                                var data = {
                                    identifier: "id",
                                    items: []
                                };

                                // Creamos la lista de objetos
                                var data_list = JSON.parse(datosRecibidos);

                                for(var i = 0, l = data_list.length; i < data_list.length; i++){
                                    data.items.push(lang.mixin({ id: i+1 }, data_list[i%l]));
                                }
                                var store = new ItemFileWriteStore({data: data});

                                // Destruimos el dataGrid si ya existe
                                if (dijit.byId(idGrid)){
                                    dijit.byId(idGrid).destroy();
                                }

                                if(idGrid == "id_Grid_MantoPreventivo"){
                                    var estructuralayout = [[
                                        /*{'name': 'Line Number', 'field': 'id', 'width': '80px', 'datatype':'number'},*/
                                        {'name': 'Parte', 'field': 'parte', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Actividad', 'field': 'actividad', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Duración', 'field': 'duracion', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Prioridad', 'field': 'prioridad', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Tipo', 'field': 'tipo', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Clasificación 1', 'field': 'clasificacion', 'width': '250px', 'datatype':'string'}
                                    ]];
                                }else if(idGrid == "id_Grid_Refacciones"){
                                    var estructuralayout = [[
                                        {'name': 'Máquina', 'field': 'maquina', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Refacción', 'field': 'refaccion', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Desgaste', 'field': 'desgaste', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Duración', 'field': 'duracion', 'width': '250px', 'datatype':'string'},
                                        {'name': 'Próximo Pedido', 'field': 'proximoPedido', 'width': '250px', 'datatype':'string'}
                                    ]];
                                }

                                var grid = new EnhancedGrid({
                                    id: idGrid,
                                    store: store,
                                    structure: estructuralayout,
                                    autoHeight: false,
                                    autoWidth: false,
                                    rowSelector: '20px',
                                    noDataMessage: 'No se encontraron datos',
                                    canSort: function () {
                                        return true;
                                    }, // Filtra
                                    plugins: {
                                        nestedSorting: true,
                                        /*filter: {
                                            // Show the closeFilterbarButton at the filter bar
                                            closeFilterbarButton: false,
                                            // Set the maximum rule count to 5
                                            ruleCount: 5,
                                            // Set the name of the items
                                            itemsName: "registros"
                                        }*/
                                    }
                                });


                                // Cargamos el dataGrid en el div
                                grid.placeAt(posicionDom);
                                // Inicializamos el dataGrid
                                grid.startup();

                                dgEjecuta.hide();
                            }
                        }
                    );

                };


                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-170)+"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-170)+"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);

                    on(dijit.byId("ContentPane_MantoPreventivo"),"show", function(){
                        cargarGrid("id_Grid_MantoPreventivo", CT_recibido, maq_recibido);
                    });
                    on(dijit.byId("ContentPane_Refacciones"),"show", function(){
                        cargarGrid("id_Grid_Refacciones", CT_recibido, maq_recibido);
                    });

                    // 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);
                        }
                    });
                    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(); }

        // 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>

</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"><?php echo($titulo); ?></div>
            <div id="wrapper_table_body_mod_app">

                <div class="row" style="margin-bottom: 10px">
                    <div class="col-12 col-sm-4 col-md-4 col-lg-4">
                        <div class="card card-inverse <?php echo($arrColores[$CT_recibido]['estadoGral']); ?>">
                            <div class="box color-perso text-center"><h1 class="font-light text-white"><?php echo($texto1); ?></h1><h6
                                        class="text-white">Estado General</h6></div>
                        </div>
                    </div>

                    <div class="col-12 col-sm-4 col-md-4 col-lg-4">
                        <div class="card card-inverse <?php echo($arrColores[$CT_recibido]['ciclo']); ?>">
                            <div class="box text-center"><h1 class="font-light text-white"><?php echo($texto2); ?></h1><h6
                                        class="text-white">Ciclo de Mantenimiento</h6></div>
                        </div>
                    </div>
                    <div class="col-12 col-sm-4 col-md-4 col-lg-4">
                        <div class="card card-inverse <?php echo($arrColores[$CT_recibido]['edoRefa']); ?>">
                            <div class="box text-center"><h1 class="font-light text-white"><?php echo($texto3); ?></h1><h6
                                        class="text-white">Estado de Refacciones</h6></div>
                        </div>
                    </div>
                </div>

                <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="Datos Generales" data-dojo-props="selected:true, iconClass:'dijitIconFile'">
                        <div style="width: 40%; float:left">
                            <div class="padre">
                                <div class="" style="max-width: 66.66%; text-align: center" >
                                    <div class="card card-inverse color-dataGral" style="padding: 20px">
                                        <div class="box text-center" >
                                            <h6 class="text-black"><?php echo($infoGral);?></h6></div>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <div style="width: 60%; float:right">
                            <table class="table table-striped">
                                <thead>
                                    <tr>
                                        <th scope="col" style="border-top: none"><b>#</b></th>
                                        <th scope="col" style="border-top: none"><b>Especificaciones Técnicas</b></th>
                                        <th scope="col" style="border-top: none"><b><?php echo($textoCol2); ?><b></th>
                                    </tr>
                                </thead>
                                <tbody>
                                <?php echo($strTbodyEspecificaciones); ?>
                                </tbody>
                            </table>
                        </div>
                    </div>

                    <div data-dojo-type="dijit/layout/ContentPane" title="Fotografías" data-dojo-props="iconClass:'dijitEditorIcon dijitEditorIconInsertImage'">
                        <!--Colocar slider-->
                        <?php if(!empty($div_carousel_indicators)){ ?>
                        <div id="carouselExampleCaptions" class="carousel slide carousel-perso" data-bs-ride="carousel">
                            <div class="carousel-indicators">
                                <?php echo($div_carousel_indicators); ?>
                            </div>
                            <div class="carousel-inner">
                                <?php echo($imagenes_carousel); ?>
                            </div>
                            <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
                                <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                                <span class="visually-hidden">Previous</span>
                            </button>
                            <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
                                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                                <span class="visually-hidden">Next</span>
                            </button>
                        </div>
                        <?php } ?>
                    </div>

                    <div id="ContentPane_MantoPreventivo" data-dojo-type="dijit/layout/ContentPane" title="Ciclo de Mantenimiento Preventivo" data-dojo-props="iconClass:'dijitIconUndo'">
                        <div style="margin-top: 15px">
                            <div id="Grid_MantoPreventivo"></div>
                        </div>
                    </div>

                    <div id="ContentPane_OrdenesManto" data-dojo-type="dijit/layout/ContentPane" title="Órdenes de Mantenimiento" data-dojo-props="iconClass:'dijitEditorIcon dijitEditorIconPaste'">
                        <table width="100%" height="auto" cellpadding="0" cellspacing="0">
                            <thead>
                            <tr>
                                <td width="3%" class="encabezadoTabla"> &nbsp; </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"> &nbsp; </td>
                            </tr>
                            </thead>

                            <tbody id="TBREGISTROS">
                            </tbody>
                        </table>
                    </div>

                    <div id="ContentPane_Refacciones" data-dojo-type="dijit/layout/ContentPane" title="Refacciones" data-dojo-props="iconClass:'dijitIconSample'">
                        <div style="margin-top: 15px">
                            <div id="Grid_Refacciones"></div>
                        </div>
                    </div>
                    <div data-dojo-type="dijit/layout/ContentPane" title="Documentos Electrónicos" data-dojo-props="iconClass:'dijitIconDocuments'">
                        <table width="100%" height="auto" cellpadding="0" cellspacing="0">

                            <thead>
                            <tr>
                                <td width="3%" class="encabezadoTabla"> &nbsp; </td>
                                <td width="20%" class="encabezadoTabla"> # </td>
                                <td width="50%" class="encabezadoTabla"> Nombre Archivo </td>
                                <td width="24%" class="encabezadoTabla"> Acciones </td>
                                <td width="3%" class="encabezadoTabla"> &nbsp; </td>
                            </tr>
                            </thead>

                            <tbody id="TBPDFS">
                                <?php echo($tbodyPdfs); ?>
                            </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>

<script type="application/javascript">

</script>

</body>

