templates/prog_correctivo/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %} - Solicitudes de Mantenimiento{% endblock %}
  3. {% block stylesheets %}
  4.     <link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css') }}">
  5.     <link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css') }}">
  6.     <link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
  7.     <link rel="stylesheet" href="{{ asset('plugins/toastr/toastr.min.css') }}">
  8. {% endblock %}
  9. {% block body %}
  10. <div class="content-wrapper">
  11.     <!-- Content Header (Page header) -->
  12.     <section class="content-header">
  13.         <div class="card">
  14.             <div class="card-header">
  15.                 <h1 class="card-title">Solicitudes de Mantenimiento</h1>
  16.                 <div class="card-tools">
  17.                     <ol class="breadcrumb float-sm-right">
  18.                         <li class="breadcrumb-item"><a href="#">Inicio</a></li>
  19.                         <li class="breadcrumb-item active"><b>Solicitudes de Mantenimiento</b></li>
  20.                     </ol>
  21.                 </div>
  22.             </div>
  23.         </div>
  24.     </section>
  25.     <section class="content">
  26.         <div class="container-fluid">
  27.             <div class="row">
  28.                 <div class="col-12 col-sm-6 col-md-3">
  29.                     <div id="estatusA" class="info-box">
  30.                         <span class="info-box-icon bg-warning elevation-1"><i class="fas fa-info-circle text-white"></i></span>
  31.                         <div class="info-box-content">
  32.                             <span class="info-box-text">Pendientes</span>
  33.                             <span class="info-box-number">0</span>
  34.                         </div>
  35.                     </div>
  36.                 </div>
  37.                 <div class="col-12 col-sm-6 col-md-3">
  38.                     <div id="estatusB" class="info-box mb-3">
  39.                         <span class="info-box-icon bg-danger elevation-1"><i class="fas fa-cog"></i></span>
  40.                         <div class="info-box-content">
  41.                             <span class="info-box-text">En proceso</span>
  42.                             <span class="info-box-number">0</span>
  43.                         </div>
  44.                     </div>
  45.                 </div>
  46.                 <div class="col-12 col-sm-6 col-md-3">
  47.                     <div id="estatusC" class="info-box mb-3">
  48.                         <span class="info-box-icon bg-success elevation-1"><i class="fas fa-thumbs-up"></i></span>
  49.                         <div class="info-box-content">
  50.                             <span class="info-box-text">Atendidas (por evaluar)</span>
  51.                             <span class="info-box-number">0</span>
  52.                         </div>
  53.                     </div>
  54.                 </div>
  55.                 <div class="col-12 col-sm-6 col-md-3">
  56.                     <div id="estatusD" class="info-box mb-3">
  57.                         <span class="info-box-icon bg-info elevation-1"><i class="fas fa-check-circle"></i></span>
  58.                         <div class="info-box-content">
  59.                             <span class="info-box-text">Evaluadas</span>
  60.                             <span class="info-box-number">0</span>
  61.                         </div>
  62.                     </div>
  63.                 </div>
  64.             </div>
  65.         </div>
  66.     </section>
  67.     {# <section class="content">
  68.         <div class="container-fluid">
  69.             <div class="row">
  70.                 {% for i in equipos %}
  71.                 <div class="col">
  72.                     <div class="card">
  73.                         <div class="card-body">
  74.                             <div class="info-box">
  75.                                 <span class="info-box-icon bg-gradient-teal"><i class="fas fa-desktop"></i></span>
  76.                                 <div class="info-box-content">
  77.                                     <span class="info-box-text">Equipo</span>
  78.                                 </div>
  79.                             </div>
  80.                             <p><b>{{ i.marbete }}</b></p>
  81.                             {# <p>{{ i.descripcion }}</p>
  82.                             <p>{{ i.marca }}</p>
  83.                             <p>{{ i.ubicacion }}</p>
  84.                             <p>{{ i.usuario.nombre }} {{ i.usuario.papellido }} {{ i.usuario.sapellido }}</p> }
  85.                         </div>
  86.                         <div class="card-footer">
  87.                             <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipoa', {'id': i.idEqu}) }}')">
  88.                                 <i class="fas fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  89.                             </a>
  90.                             <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'equipo', 'id': i.idEqu}) }}')">
  91.                                 <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  92.                             </a>
  93.                         </div>
  94.                     </div>
  95.                 </div>
  96.                 {% endfor %}
  97.                 {% for i in impresoras %}
  98.                 <div class="col">
  99.                     <div class="card">
  100.                         <div class="card-body" style="font-size: 15px;">
  101.                             <div class="info-box">
  102.                                 <span class="info-box-icon bg-teal"><i class="fas fa-print"></i></span>
  103.                                 <div class="info-box-content">
  104.                                     <span class="info-box-text">Impresora</span>
  105.                                 </div>
  106.                             </div>
  107.                             <p><b>{{ i.marbete }}</b></p>
  108.                             {# <p>{{ i.descripcion }}</p>
  109.                             <p>{{ i.marca }}</p>
  110.                             <p>{{ i.ubicacion }}</p>
  111.                             <p>{{ i.usuario.nombre }} {{ i.usuario.papellido }} {{ i.usuario.sapellido }}</p> }
  112.                         </div>
  113.                         <div class="card-footer">
  114.                             <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipob', {'id': i.idImp}) }}')">
  115.                                 <i class="fas fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  116.                             </a>
  117.                             <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'impresora', 'id': i.idImp}) }}')">
  118.                                 <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  119.                             </a>
  120.                         </div>
  121.                     </div>
  122.                 </div>
  123.                 {% endfor %}
  124.                 {% for i in redes %}
  125.                 <div class="col">
  126.                     <div class="card">
  127.                         <div class="card-body">
  128.                             <div class="info-box">
  129.                                 <span class="info-box-icon bg-teal"><i class="fas fa-database"></i></span>
  130.                                 <div class="info-box-content">
  131.                                     <span class="info-box-text">Red</span>
  132.                                 </div>
  133.                             </div>
  134.                             <p><b>{{ i.marbete }}</b></p>
  135.                             {# <p>{{ i.descripcion }}</p>
  136.                             <p>{{ i.marca }}</p>
  137.                             <p>{{ i.ubicacion }}</p>
  138.                             <p>{{ i.usuario.nombre }} {{ i.usuario.papellido }} {{ i.usuario.sapellido }}</p> }
  139.                         </div>
  140.                         <div class="card-footer">
  141.                             <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipoc', {'id': i.idRed}) }}')">
  142.                                 <i class="fa fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  143.                             </a>
  144.                             <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'red', 'id': i.idRed}) }}')">
  145.                                 <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  146.                             </a>
  147.                         </div>
  148.                     </div>
  149.                 </div>
  150.                 {% endfor %}
  151.                 {% for i in otros %}
  152.                 <div class="col">
  153.                     <div class="card">
  154.                         <div class="card-body">
  155.                             <div class="info-box">
  156.                                 <span class="info-box-icon bg-teal"><i class="fas fa-memory"></i></span>
  157.                                 <div class="info-box-content">
  158.                                     <span class="info-box-text">Otro</span>
  159.                                 </div>
  160.                             </div>
  161.                             <p><b>{{ i.marbete }}</b></p>
  162.                             {# <p>{{ i.descripcion }}</p>
  163.                             <p>{{ i.marca }}</p>
  164.                             <p>{{ i.ubicacion }}</p>
  165.                             <p>{{ i.usuario.nombre }} {{ i.usuario.papellido }} {{ i.usuario.sapellido }}</p> }
  166.                         </div>
  167.                         <div class="card-footer">
  168.                             <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipod', {'id': i.idOtro}) }}')">
  169.                                 <i class="fa fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  170.                             </a>
  171.                             <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'otro', 'id': i.idOtro}) }}')">
  172.                                 <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  173.                             </a>
  174.                         </div>
  175.                     </div>
  176.                 </div>
  177.                 {% endfor %}
  178.             </div>
  179.         </div>
  180.     </section> #}
  181.     <!-- Main content -->
  182.     <section class="content">
  183.         <div class="row justify-content-center">
  184.             <div class="col-12">
  185.                 <!-- Default box -->
  186.                 <div class="card card-outline card-teal p-3 collapsed-card">
  187.                     <div class="card-header row" style="background: #bacbff85;">
  188.                         <h3>Equipos en <small class="text-success">Resguardo</small></h3>
  189.                         <div class="col text-right">
  190.                             <button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse" style="color: #000000; background: #ffffff;">
  191.                                 <i class="fas fa-plus"></i>
  192.                             </button>
  193.                             {# <button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
  194.                                 <i class="fas fa-times"></i>
  195.                             </button>  #}
  196.                         </div>
  197.                     </div>
  198.                     <div class="card-body">
  199.                         <table id="tipo" class="table table-hover table-sm w-100">
  200.                             <thead>
  201.                             <tr>
  202.                                 <th>Tipo de Equipo</th>
  203.                                 <th>Marbete</th>
  204.                                 <th>Ubicación</th>
  205.                                 <th>Descripción</th>
  206.                                 <th colspan="2" style="text-align: center;">Acciones</th>
  207.                             </tr>
  208.                             </thead>
  209.                             <tbody>
  210.                             {% for e in equipos %}
  211.                                 <tr id="equipo-{{ e.idEqu }}">
  212.                                     <th>Equipo</th>
  213.                                     <td>{{ e.marbete }}</td>
  214.                                     <td>{{ e.ubicacion }}</td>
  215.                                     <td> Marca: <b>{{ e.idMarca.marca }}</b><br>Modelo: <b>{{ e.modelo }}</b></td>
  216.                                     <td style="text-align: right;">
  217.                                         <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipoa', {'id': e.idEqu}) }}')">
  218.                                             <i class="fas fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  219.                                         </a>
  220.                                     </td>
  221.                                     <td >
  222.                                         <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'Equipo', 'id': e.idEqu}) }}')">
  223.                                             <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  224.                                         </a>
  225.                                     </td>
  226.                                 </tr>
  227.                             {% endfor %}
  228.                             {% for i in impresoras %}
  229.                                 <tr id="impresora-{{ i.idImp }}">
  230.                                     <th>Impresora</th>
  231.                                     <td>{{ i.marbete }}</td>
  232.                                     <td>{{ i.ubicacion }}</td>
  233.                                     <td> Marca: <b>{{ i.marca }}</b><br>Modelo: <b>{{ i.modelo }}</b></td>
  234.                                     <td style="text-align: right;">
  235.                                         <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipob', {'id': i.idImp}) }}')">
  236.                                             <i class="fas fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  237.                                         </a>
  238.                                     </td>
  239.                                     <td>
  240.                                         <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'Impresora', 'id': i.idImp}) }}')">
  241.                                             <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  242.                                         </a>
  243.                                     </td>
  244.                                 </tr>
  245.                             {% endfor %}
  246.                             {% for r in redes %}
  247.                                 <tr id="red-{{ r.idRed }}">
  248.                                     <th>Red</th>
  249.                                     <td>{{ r.marbete }}</td>
  250.                                     <td>{{ r.ubicacion }}</td>
  251.                                     <td> Marca: <b>{{ r.marca }}</b><br>Modelo: <b>{{ r.modelo }}</b></td>
  252.                                     <td style="text-align: right;">
  253.                                         <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipoc', {'id': r.idRed}) }}')">
  254.                                             <i class="fa fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  255.                                         </a>
  256.                                     </td>
  257.                                     <td >
  258.                                         <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'Red', 'id': r.idRed}) }}')">
  259.                                             <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  260.                                         </a>
  261.                                     </td>
  262.                                 </tr>
  263.                             {% endfor %}
  264.                             {% for o in otros %}
  265.                                 <tr id="otro-{{ o.idOtro }}">
  266.                                     <th>Otro</th>
  267.                                     <td>{{ o.marbete }}</td>
  268.                                     <td>{{ o.ubicacion }}</td>
  269.                                     <td> Marca: <b>{{ o.marca }}</b><br>Modelo: <b>{{ o.modelo }}</b></td>
  270.                                     <td style="text-align: right;">
  271.                                         <a href="#modal-solicitud-programar" class="text-success" data-toggle="modal" onclick="solicitudProgramar('{{ path('prog_correctivo_solicitud_tipod', {'id': o.idOtro}) }}')">
  272.                                             <i class="fa fa-clipboard-check" data-toggle="tooltip" title="Solicitar mantenimiento"></i>
  273.                                         </a>
  274.                                     </td>
  275.                                     <td>
  276.                                         <a href="#modal-vista-tipo" class="text-info" data-toggle="modal" onclick="vistaModalTipo('{{ path('prog_correctivo_vista_tipo', {'tipo': 'Otro', 'id': o.idOtro}) }}')">
  277.                                             <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  278.                                         </a>
  279.                                     </td>
  280.                                 </tr>
  281.                             {% endfor %}
  282.                             </tbody>
  283.                         </table>
  284.                     </div>
  285.                     <!-- /.card-body -->
  286.                     <div class="card-footer">
  287.                     </div>
  288.                     <!-- /.card-footer-->
  289.                 </div>
  290.                 <!-- /.card -->
  291.             </div>
  292.         </div>
  293.     </section>
  294.     <!-- Main content -->
  295.     <section class="content">
  296.         <div class="row justify-content-center">
  297.             <div class="col-12">
  298.                 <!-- Default box -->
  299.                 <div class="card card-outline card-teal p-3 collapsed-card">
  300.                     <div class="card-header row" style="background: #baffbe85;">
  301.                         <h3>Solicitudes de <small class="text-success">Mantenimientos en curso</small></h3>
  302.                         <div class="col text-right">
  303.                             <button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse" style="color: #000000; background: #ffffff;">
  304.                                 <i class="fas fa-plus"></i>
  305.                             </button>
  306.                             {# <button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
  307.                                 <i class="fas fa-times"></i>
  308.                             </button>  #}
  309.                         </div>
  310.                     </div>
  311.                     <div class="card-body">
  312.                         <table id="solicitud_consulta_reporte" class="table table-hover w-100">
  313.                             <thead>
  314.                             <tr>
  315.                                 <th>No. Solicitud</th>
  316.                                 <th>Tipo de Equipo</th>
  317.                                 <th>Marbete</th>
  318.                                 <th>Descripción</th>
  319.                                 <th>Incidente</th>
  320.                                 <th>MC/MP</th>
  321.                                 <th>Estatus</th>
  322.                                 <th>Accion</th>
  323.                             </tr>
  324.                             </thead>
  325.                             <tbody>
  326.                             {% for s in solicitudes %}
  327.                                 <tr id="solicitud-{{ s.id_sol }}">
  328.                                     <th>{{ s.id_sol }}</th>
  329.                                     <th>{{ s.tipo_equipo }}</th>
  330.                                     <th>{{ s.marbete }}</th>
  331.                                     <td> Marca: <b>{{ s.marca }}</b><br>Modelo: <b>{{ s.modelo }}</b></td>
  332.                                     <td>{{ s.falla }}</td>
  333.                                     <td>{{ s.tipo_mantenimiento }}</td>
  334.                                     <td class="estatus">
  335.                                         {% if s.estatus == 1 %}
  336.                                             <div class="badge bg-gradient-warning text-white" style="width: 6rem;">Pendiente</div>
  337.                                         {% elseif s.estatus == 2 %}
  338.                                             <div class="badge bg-gradient-danger" style="width: 6rem;">En proceso</div>
  339.                                         {% elseif s.estatus == 3 %}
  340.                                             <div class="badge bg-gradient-primary" style="width: 6rem;">Atendido</div>
  341.                                         {% elseif s.estatus == 4 %}
  342.                                             <div class="badge bg-gradient-success" style="width: 6rem;">Evaluado</div>
  343.                                         {% endif %}
  344.                                     </td>
  345.                                     <td>
  346.                                         <a href="#modal-vista-solicitud" class="text-info" data-toggle="modal" onclick="vistaModalSolicitud('{{ path('prog_correctivo_vista_solicitud', {'id': s.id_sol}) }}')">
  347.                                             <i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>
  348.                                         </a>
  349.                                         {% if s.estatus == 3 %}
  350.                                             <a href="#modal-solicitud-evaluacion" class="evaluacion" data-toggle="modal" onclick="evaluacion('{{ path('prog_correctivo_evaluacion', {'idSol': s.id_sol}) }}')">
  351.                                                 <i class="fa fa-check-circle text-primary"></i>
  352.                                             </a>
  353.                                         {% endif %}
  354.                                     </td>
  355.                                 </tr>
  356.                             {% endfor %}
  357.                             </tbody>
  358.                         </table>
  359.                     </div>
  360.                     <!-- /.card-body -->
  361.                     <div class="card-footer">
  362.                     </div>
  363.                     <!-- /.card-footer-->
  364.                 </div>
  365.                 <!-- /.card -->
  366.             </div>
  367.         </div>
  368.     </section>
  369.     <!-- Modal de solicitud para programar mantenimiento correctivo -->
  370.     <div class="modal hide" id="modal-solicitud-programar"></div>
  371.     <!-- /.modal de solicitud para programar mantenimiento correctivo -->
  372.     <!-- Modal vista de informacion de equipos -->
  373.     <div class="modal hide" id="modal-vista-tipo"></div>
  374.     <!-- /.modal vista de informacion de equipos -->
  375.     <!-- Modal vista de informacion de solicitud -->
  376.     <div class="modal hide" id="modal-vista-solicitud"></div>
  377.     <!-- /.modal vista de informacion de solicitud -->
  378.     <!-- Modal de evaluación de mantenimiento correctivo -->
  379.     <div class="modal hide" id="modal-solicitud-evaluacion"></div>
  380.     <!-- /.modal de evaluacion de mantenimiento preventivo correctivo -->
  381. </div>
  382. {% endblock %}
  383. {% block javascripts %}
  384.     <script src="{{ asset('plugins/datatables/jquery.dataTables.min.js') }}"></script>
  385.     <script src="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js') }}"></script>
  386.     <script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js') }}"></script>
  387.     <script src="{{ asset('plugins/datatables-responsive/js/responsive.bootstrap4.min.js') }}"></script>
  388.     <script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
  389.     <script src="{{ asset('plugins/datatables-buttons/js/buttons.bootstrap4.min.js') }}"></script>
  390.     <script src="{{ asset('plugins/jszip/jszip.min.js') }}"></script>
  391.     <script src="{{ asset('plugins/pdfmake/pdfmake.min.js') }}"></script>
  392.     <script src="{{ asset('plugins/pdfmake/vfs_fonts.js') }}"></script>
  393.     <script src="{{ asset('plugins/datatables-buttons/js/buttons.html5.min.js') }}"></script>
  394.     <script src="{{ asset('plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
  395.     <script src="{{ asset('plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>
  396.     <script src="{{ asset('plugins/toastr/toastr.min.js') }}"></script>
  397.     <script type="text/javascript">
  398.         $("#solicitud-mtto").addClass("active");
  399.         $(document).ready(function(){
  400.             $('[data-card-widget="collapse"]').on('expanded.lte.cardwidget', function () {
  401.                 $($.fn.dataTable.tables(true)).DataTable()
  402.                     .columns.adjust();
  403.             });
  404.             $('[data-toggle="tooltip"]').tooltip();
  405.             $('#tipo').DataTable({
  406.                 "aaSorting": [],
  407.                 orderCellsTop: true,
  408.                 {# Define un valor predeterminado para LengthChange #}
  409.                 "pageLength": 50,
  410.                 "scrollX": true,
  411.                 {# sDom: 'lrtip', #}
  412.                 "bLengthChange" : true,
  413.                 language: {
  414.                     url: 'https://cdn.datatables.net/plug-ins/1.10.22/i18n/Spanish.json'
  415.                 }
  416.             });
  417.             $('#solicitud_consulta_reporte').DataTable({
  418.                 "aaSorting": [],
  419.                 orderCellsTop: true,
  420.                 {# Define un valor predeterminado para LengthChange #}
  421.                 "pageLength": 50,
  422.                 "scrollX": true,
  423.                 {# sDom: 'lrtip', #}
  424.                 "bLengthChange" : true,
  425.                 language: {
  426.                     url: 'https://cdn.datatables.net/plug-ins/1.10.22/i18n/Spanish.json'
  427.                 }
  428.             });
  429.             vistaDashboard();
  430.             restriccionCrearSolicitud();
  431.         });
  432.         function vistaDashboard()
  433.         {
  434.             $.ajax({
  435.                 type: "POST",
  436.                 url: '{{ path('prog_correctivo_vista') }}',
  437.                 dataType: "json",
  438.                 cache: false,
  439.                 contentType: false,
  440.                 processData: false,
  441.                 success: function (data) {
  442.                     console.log(data);
  443.                     let datos = data;
  444.                     if(datos.data[1]){
  445.                         row = $('#estatusA');
  446.                         row.find('.info-box-number').text(datos.data[1].solicitudCont);
  447.                     }
  448.                     if(datos.data[2]){
  449.                         row = $('#estatusB');
  450.                         row.find('.info-box-number').text(datos.data[2].solicitudCont);
  451.                     }
  452.                     if(datos.data[3]){
  453.                         row = $('#estatusC');
  454.                         row.find('.info-box-number').text(datos.data[3].solicitudCont);
  455.                     }
  456.                     if(datos.data[4]){
  457.                         row = $('#estatusD');
  458.                         row.find('.info-box-number').text(datos.data[4].solicitudCont);
  459.                     }
  460.                 },
  461.                 error: function (data, text, error) {
  462.                     $(document).Toasts('create', {
  463.                         autohide: true,
  464.                         delay: 3000,
  465.                         class: 'bg-danger',
  466.                         title: 'Actualización de Dashboard',
  467.                         subtitle: 'Ocurrio un error',
  468.                         body: data.responseJSON.mensaje
  469.                     });
  470.                 },
  471.                 complete: function () {
  472.                 }
  473.             });
  474.         }
  475.         function restriccionCrearSolicitud()
  476.         {
  477.             {% for s in solicitudes %}
  478.                 {% if s.tipo_equipo == 'Equipo' %}
  479.                     row = $('#equipo-{{ s.id_equipo }}');
  480.                 {% elseif s.tipo_equipo == 'Impresora' %}
  481.                     row = $('#impresora-{{ s.id_equipo }}');
  482.                 {% elseif s.tipo_equipo == 'Red' %}
  483.                     row = $('#red-{{ s.id_equipo }}');
  484.                 {% else %}
  485.                     row = $('#otro-{{ s.id_equipo }}');
  486.                 {% endif %}
  487.                 {% if s.tipo_mantenimiento == "MC" and s.estatus in [1,2,3] %}
  488.                     row.find('.text-success').css('display', 'none');
  489.                 {% endif %}
  490.                 {% if s.tipo_mantenimiento == "ST" and s.estatus in [1,2,3] %}
  491.                     row.find('.text-success').css('display', 'none');
  492.                 {% endif %}
  493.             {% endfor %}
  494.         }
  495.         function vistaModalTipo(url)
  496.         {
  497.             $('#modal-vista-tipo').load(url, function ()
  498.             {
  499.                 // configuración del Modal
  500.                 $("#modal-vista-tipo").on('hide.bs.modal', function () {
  501.                     $(this).html('Cargando');
  502.                 });
  503.                 $(".modal-dialog").draggable;
  504.                 vistaModalTipoAjax(url);
  505.             })
  506.         }
  507.         function vistaModalTipoAjax(url)
  508.         {
  509.             $.ajax({
  510.                 type: "POST",
  511.                 url: url,
  512.                 dataType: "json",
  513.                 cache: false,
  514.                 contentType: false,
  515.                 processData: false,
  516.                 success: function (data){
  517.                 },
  518.                 error: function (data, text, error) {
  519.                 },
  520.                 complete: function () {
  521.                 }
  522.             });
  523.         }
  524.         function vistaModalSolicitud(url)
  525.         {
  526.             $('#modal-vista-solicitud').load(url, function ()
  527.             {
  528.                 // configuración del Modal
  529.                 $("#modal-vista-solicitud").on('hide.bs.modal', function () {
  530.                     $(this).html('Cargando');
  531.                 });
  532.                 $(".modal-dialog").draggable;
  533.                 vistaModalSolicitudAjax(url);
  534.             })
  535.         }
  536.         function vistaModalSolicitudAjax(url)
  537.         {
  538.             $.ajax({
  539.                 type: "POST",
  540.                 url: url,
  541.                 dataType: "json",
  542.                 cache: false,
  543.                 contentType: false,
  544.                 processData: false,
  545.                 success: function (data){
  546.                 },
  547.                 error: function (data, text, error) {
  548.                 },
  549.                 complete: function () {
  550.                 }
  551.             });
  552.         }
  553.         function solicitudProgramar(url)
  554.         {
  555.             $('#modal-solicitud-programar').load(url, function ()
  556.             {
  557.                 // configuración del Modal
  558.                 $("#modal-solicitud-programar").on('hide.bs.modal', function () {
  559.                     $(this).html('Cargando');
  560.                 });
  561.                 $(".modal-dialog").draggable;
  562.                 solicitudProgramarAjax(url)
  563.             })
  564.         }
  565.         function solicitudProgramarAjax(url)
  566.         {
  567.             let send = $("#editar_usuario_guardar");
  568.             $('#editar_usuario_guardar').on('click', function () {
  569.                 let formData = new FormData(document.getElementById("form-programar-solicitud"));
  570.                 $.ajax({
  571.                     type: "POST",
  572.                     url: url,
  573.                     data: formData, // Adjuntar los campos del formulario enviado.
  574.                     dataType: "json",
  575.                     cache: false,
  576.                     contentType: false,
  577.                     processData: false,
  578.                     beforeSend: function () {
  579.                         send.text("Enviando solicitud "); // Para input de tipo button
  580.                         send.append("<i class='fa fa-spinner fa-spin' style='font-size:16px'></i>");
  581.                         send.prop("disabled", true);
  582.                     },
  583.                     success: function (data){
  584.                         console.log(data);
  585.                         let row = '<tr id="solicitud-' + data.solicitud + '">' +
  586.                             '<th>' + data.solicitud + '</th>' +
  587.                             '<th>' + data.tipo_equipo + '</th>' +
  588.                             '<th>' + data.marbete + '</th>' +
  589.                             '<td> Marca: <b>' + data.marca + '</b><br>Modelo: <b>' + data.modelo + '</b></td>' +
  590.                             '<td>' + data.falla + '</td>' +
  591.                             '<td>' + data.tipo_mantenimiento + '</td>' +
  592.                             '<td class="estatus">' +
  593.                                 '<div class="badge bg-gradient-warning text-white" style="width: 6rem;">Pendiente</div>' +
  594.                             '</td>' +
  595.                             '<td>' +
  596.                                 '<a href="#modal-vista-solicitud" class="text-info" data-toggle="modal" onclick="vistaModalSolicitud(\'' + data.ver_solicitud + '\')">' +
  597.                                     '<i class="fa fa-eye" data-toggle="tooltip" title="Ver"></i>' +
  598.                                 '</a>' +
  599.                                 {# '<a href="#modal-solicitud-evaluacion" class="evaluacion" data-toggle="modal" onclick="evaluacion('{{ path('prog_correctivo_evaluacion', {'idSol': s.id_sol}) }}')">' +
  600.                                     '<i class="fa fa-check-circle text-primary"></i>' +
  601.                                 '</a>' + #}
  602.                             '</td>' +
  603.                         '</tr>';
  604.                         $("#solicitud_consulta_reporte").append(row).html();
  605.                         tipo = data.tipo_equipo
  606.                         if (tipo === 'Equipo'){
  607.                             row = $('#equipo-' + data.equipo);
  608.                         }
  609.                         if (tipo === 'Impresora'){
  610.                             row = $('#impresora-' + data.equipo);
  611.                         }
  612.                         if (tipo === 'Red'){
  613.                             row = $('#red-' + data.equipo);
  614.                         }
  615.                         if (tipo === 'Otro'){
  616.                             row = $('#otro-' + data.equipo);
  617.                         }
  618.                         row.find('.text-success').css('display', 'none');
  619.                         closeModal('modal-solicitud-programar');
  620.                         vistaDashboard();
  621.                         $(document).Toasts('create', {
  622.                             autohide: true,
  623.                             delay: 10000,
  624.                             class: 'bg-success',
  625.                             title: 'Solicitud de Mantenimiento',
  626.                             subtitle: 'Éxito',
  627.                             body: data.mensaje
  628.                         });
  629.                     },
  630.                     error: function (data, text, error) {
  631.                         $(document).Toasts('create', {
  632.                             autohide: true,
  633.                             delay: 5000,
  634.                             class: 'bg-danger',
  635.                             title: 'Solicitud de Manteniñmiento',
  636.                             subtitle: 'Ocurrió un error',
  637.                             body: data.responseJSON.mensaje
  638.                         });
  639.                     },
  640.                     complete: function () {
  641.                         setTimeout(function(){
  642.                             send.text("Enviar solicitud"); // Para input de tipo button
  643.                             send.append("<i></i>");
  644.                             send.prop("disabled", false);
  645.                         }, 5000);
  646.                     }
  647.                 });
  648.                 return false; // Evitar ejecutar el submit del formulario.
  649.             });
  650.         }
  651.         function solicitudProgramada(url)
  652.         {
  653.             $('#modal-solicitud-programada').load(url, function ()
  654.             {
  655.                 // configuración del Modal
  656.                 $("#modal-solicitud-programada").on('hide.bs.modal', function () {
  657.                     $(this).html('Cargando');
  658.                 });
  659.                 $(".modal-dialog").draggable;
  660.                 solicitudProgramadaAjax(url)
  661.             })
  662.         }
  663.         function solicitudProgramadaAjax(url)
  664.         {
  665.             let send = $("#btn_evaluacion_solicitud");
  666.             $('#btn_evaluacion_solicitud').on('click', function () {
  667.                 $.ajax({
  668.                     type: "POST",
  669.                     url: url,
  670.                     dataType: "json",
  671.                     cache: false,
  672.                     contentType: false,
  673.                     processData: false,
  674.                     beforeSend: function () {
  675.                         send.text("Actualizando "); // Para input de tipo button
  676.                         send.append("<i class='fa fa-spinner fa-spin' style='font-size:16px'></i>");
  677.                         send.prop("disabled", true);
  678.                     },
  679.                     success: function (data) {
  680.                         $(document).Toasts('create', {
  681.                             autohide: true,
  682.                             delay: 3000,
  683.                             class: 'bg-success',
  684.                             title: 'Evaluación de Mantenimiento Correctivo',
  685.                             subtitle: 'Éxito',
  686.                             body: data.mensaje
  687.                         });
  688.                         closeModal('modal-solicitud-programada');
  689.                     },
  690.                     error: function (data, text, error) {
  691.                         $(document).Toasts('create', {
  692.                             autohide: true,
  693.                             delay: 3000,
  694.                             class: 'bg-warning',
  695.                             title: 'Evaluación de Mantenimiento Correctivo',
  696.                             subtitle: 'Ocurrió un error',
  697.                             body: data.responseJSON.mensaje
  698.                         });
  699.                     },
  700.                     complete: function () {
  701.                     }
  702.                 });
  703.                 return false; // Evitar ejecutar el submit del formulario.
  704.             });
  705.         }
  706.         function evaluacion(url)
  707.         {
  708.             $('#modal-solicitud-evaluacion').load(url, function ()
  709.             {
  710.                 // configuración del Modal
  711.                 $("#modal-solicitud-evaluacion").on('hide.bs.modal', function () {
  712.                     $(this).html('Cargando');
  713.                 });
  714.                 $(".modal-dialog").draggable;
  715.                 evaluacionAjax(url)
  716.             })
  717.         }
  718.         function evaluacionAjax(url)
  719.         {
  720.             let send = $("#evaluacion_correctivo_guardar");
  721.             $('#evaluacion_correctivo_guardar').on('click', function () {
  722.                 let formData = new FormData(document.getElementById("form-evaluacion-solicitud"));
  723.                 $.ajax({
  724.                     type: "POST",
  725.                     url: url,
  726.                     data: formData, // Adjuntar los campos del formulario enviado.
  727.                     dataType: "json",
  728.                     cache: false,
  729.                     contentType: false,
  730.                     processData: false,
  731.                     beforeSend: function () {
  732.                         send.text("Actualizando "); // Para input de tipo button
  733.                         send.append("<i class='fa fa-spinner fa-spin' style='font-size:16px'></i>");
  734.                         send.prop("disabled", true);
  735.                     },
  736.                     success: function (data) {
  737.                         closeModal('modal-solicitud-evaluacion');
  738.                         row = $('#solicitud-' + data.id);
  739.                         row.find('.evaluacion').css('display', 'none');
  740.                         row.find('.estatus').html(data.estatus);
  741.                         row.fadeOut();
  742.                         vistaDashboard();
  743.                         $(document).Toasts('create', {
  744.                             autohide: true,
  745.                             delay: 3000,
  746.                             class: 'bg-success',
  747.                             title: 'Éxito',
  748.                             subtitle: 'Evaluación de solicitud de mantenimiento',
  749.                             body: data.mensaje
  750.                         });
  751.                     },
  752.                     error: function (data, text, error) {
  753.                         let datos = data.responseJSON;
  754.                         $("#modal-solicitud-evaluacion").html(datos.form);
  755.                         evaluacionAjax(url);
  756.                     },
  757.                     complete: function () {
  758.                     }
  759.                 });
  760.                 return false; // Evitar ejecutar el submit del formulario.
  761.             });
  762.         }
  763.     </script>
  764. {% endblock %}