<?php 
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if (strlen(session_id()) < 1) session_start();

// Verifica que la sesión esté iniciada correctamente
if (!isset($_SESSION["idusuario"])) {
    echo json_encode(["error" => "Sesión no válida o no iniciada."]);
    exit;
}
require_once('../modelos/Averia.php');
include_once 'funciones.php';

$averia=new Averia();

$idaveria=isset($_POST["idaveria"])? limpiarCadena($_POST["idaveria"]):"";
$idpersona=isset($_POST["idpersona"])? limpiarCadena($_POST["idpersona"]):"";
$idusuario=$_SESSION["idusuario"];
$idcaja=$_SESSION["idcaja"];
$idcontrato=isset($_POST["idcontrato"])? limpiarCadena($_POST["idcontrato"]):"";
$fecha_hora=isset($_POST["fecha_hora"])? limpiarCadena($_POST["fecha_hora"]):"";
$direccion=isset($_POST["direccion"])? limpiarCadena($_POST["direccion"]):"";
$referencia=isset($_POST["referencia"])? limpiarCadena($_POST["referencia"]):"";
$distrito=isset($_POST["distrito"])? limpiarCadena($_POST["distrito"]):"";
$celular1=isset($_POST["celular1"])? limpiarCadena($_POST["celular1"]):"";
$celular2=isset($_POST["celular2"])? limpiarCadena($_POST["celular2"]):"";
$detalle=isset($_POST["detalle_problema"])? limpiarCadena($_POST["detalle_problema"]):"";
$observacion=isset($_POST["observacion"])? limpiarCadena($_POST["observacion"]):"";
$idcategoria_ingreso=isset($_POST["idcategoria_ingreso"])? limpiarCadena($_POST["idcategoria_ingreso"]):"";
$idconcepto_ingreso=isset($_POST["idconcepto_ingreso"])? limpiarCadena($_POST["idconcepto_ingreso"]):"";
$prioridad=isset($_POST["prioridad"])? limpiarCadena($_POST["prioridad"]):"";
$idtecnico=isset($_POST["idtecnico"])? limpiarCadena($_POST["idtecnico"]):"";
$estado=isset($_POST["estado"])? limpiarCadena($_POST["estado"]):"";
$title1=isset($_POST["title1"])? limpiarCadena($_POST["title1"]):"";
$color1=isset($_POST["color1"])? limpiarCadena($_POST["color1"]):"";
$start1=isset($_POST["start1"])? limpiarCadena($_POST["start1"]):"";
$end1=isset($_POST["end1"])? limpiarCadena($_POST["end1"]):"";
$idtecnologia=isset($_POST["tecnologia"])? limpiarCadena($_POST["tecnologia"]):"";
$iddireccion=isset($_POST["iddireccion"])? limpiarCadena($_POST["iddireccion"]):"";
$descripcion=isset($_POST["descripcion"])? limpiarCadena($_POST["descripcion"]):"";
$fecha=isset($_POST["fecha"])? limpiarCadena($_POST["fecha"]):"";
$idaveria_chat=isset($_POST["idaveria1"])? limpiarCadena($_POST["idaveria1"]):"";
$radioTipoVenta=isset($_POST["radioTipoVenta"])? limpiarCadena($_POST["radioTipoVenta"]):"";
$costocontado=isset($_POST["costocontado"])? limpiarCadena($_POST["costocontado"]):"";
$adelanto=isset($_POST["adelanto"])? limpiarCadena($_POST["adelanto"]):"";
$totalequipo=isset($_POST["totalequipo"])? limpiarCadena($_POST["totalequipo"]):"";
$adelanto_letra=isset($_POST["cuota1"])? limpiarCadena($_POST["cuota1"]):"";
$cantidad_letra=isset($_POST["cuota2"])? limpiarCadena($_POST["cuota2"]):"";
$monto_letra=isset($_POST["cuota3"])? limpiarCadena($_POST["cuota3"]):"";
$tipo_pago=isset($_POST["tipopago"])? limpiarCadena($_POST["tipopago"]):"";
$idbanco=isset($_POST["idbanco"])? limpiarCadena($_POST["idbanco"]):"";
$nroperacion=isset($_POST["nroperacion"])? limpiarCadena($_POST["nroperacion"]):"";
$recibo=isset($_POST["recibo"])? limpiarCadena($_POST["recibo"]):"";
$descripcion_tecnico=isset($_POST["descripcion_tecnico"])? limpiarCadena($_POST["descripcion_tecnico"]):"";
$nroacta=isset($_POST["nroacta"])? limpiarCadena($_POST["nroacta"]):"";
$servicio=isset($_POST["servicio"])? limpiarCadena($_POST["servicio"]):"";
$tipo_trabajo=isset($_POST["tipo_trabajo"])? limpiarCadena($_POST["tipo_trabajo"]):"";
$total_importe=isset($_POST["total_importe"])? limpiarCadena($_POST["total_importe"]):"";
$categoriaingreso=isset($_POST["categoriaingreso"])? limpiarCadena($_POST["categoriaingreso"]):"";
$tipotrabajo=isset($_POST["tipotrabajo"])? limpiarCadena($_POST["tipotrabajo"]):"";
$inicio = isset($_POST['inicio']) ? $_POST['inicio'] : [];
$fin = isset($_POST['fin']) ? $_POST['fin'] : [];
$imagen_anterior=isset($_POST["imagenactual1"])? limpiarCadena($_POST["imagenactual1"]):"";
$imagen_anterior_medidor=isset($_POST["imagenactual5"])? limpiarCadena($_POST["imagenactual5"]):"";
$imagen=isset($_POST["nombre_imagen"])? limpiarCadena($_POST["nombre_imagen"]):"";
$imagen1=isset($_POST["imagen1"])? limpiarCadena($_POST["imagen1"]):"";
$imagen2=isset($_POST["imagen2"])? limpiarCadena($_POST["imagen2"]):"";
$imagen3=isset($_POST["imagen3"])? limpiarCadena($_POST["imagen3"]):"";
$imagen4=isset($_POST["imagen4"])? limpiarCadena($_POST["imagen4"]):"";
$imagen5=isset($_POST["imagen5"])? limpiarCadena($_POST["imagen5"]):"";
$imagen6=isset($_POST["imagen6"])? limpiarCadena($_POST["imagen6"]):"";
$idaveriac=isset($_POST["idaveriac"])? limpiarCadena($_POST["idaveriac"]):"";
$idaveriacc=isset($_POST["idaveriacc"])? limpiarCadena($_POST["idaveriacc"]):"";
$calificacion=isset($_POST["calificacion"])? limpiarCadena($_POST["calificacion"]):"";
$estado_averia=isset($_POST["estado_averia"])? limpiarCadena($_POST["estado_averia"]):"";
$adicional=isset($_POST["adicional"])? limpiarCadena($_POST["adicional"]):"";
$latitud=isset($_POST["latitud"])? limpiarCadena($_POST["latitud"]):"";
$longitud=isset($_POST["longitud"])? limpiarCadena($_POST["longitud"]):"";
$direccion_capturada=isset($_POST["direccion_capturada"])? limpiarCadena($_POST["direccion_capturada"]):"";
$idcontrato_averia=isset($_POST["idcontrato_averia"])? limpiarCadena($_POST["idcontrato_averia"]):"";
$idincidencia=isset($_POST["idincidencia"])? limpiarCadena($_POST["idincidencia"]):"";


switch ($_GET["op"])
{
    case 'guardaryeditar':
        if(empty($idaveria))
        {
          $rspta=$averia->insertar($idusuario,$idpersona,$idcontrato,$fecha_hora,$direccion,$referencia,$distrito,$celular1,$celular2,$detalle,$observacion,$idcategoria_ingreso,$idconcepto_ingreso,$prioridad,$idtecnico,$estado,$title1,$color1,$start1,$end1,$iddireccion,$idtecnologia,$idincidencia,$latitud,$longitud);
          echo $rspta ? "Averia Registrado" : "Averia no se pudo registrar";
        }
        else {
             $rspta=$averia->editar_averia($idaveria,$idusuario,$idpersona,$idcontrato,$fecha_hora,$direccion,$referencia,$distrito,$celular1,$celular2,$detalle,$observacion,$idcategoria_ingreso,$idconcepto_ingreso,$prioridad,$idtecnico,$estado,$title1,$color1,$start1,$end1,$iddireccion,$idtecnologia);
            echo $rspta ? "Averia Actualizada" : "Averia no se pudo actualizar";
        }
      break;

      case 'guardaryeditar_visita':
        $rspta=$averia->guardaryeditar_visita($idusuario,$idpersona,$idcontrato,$fecha_hora,$direccion,$referencia,$distrito,$celular1,$celular2,$detalle,$observacion,$idcategoria_ingreso,$idconcepto_ingreso,$prioridad,$idtecnico,$estado,$title1,$color1,$start1,$end1,$iddireccion,$idtecnologia);
        echo $rspta ? "Visita Registrado" : "Visita no se pudo registrar";
        break;

      case 'guardarChat':
        $rspta=$averia->guardar_chat($descripcion,$fecha,$estado,$idusuario,$idaveria_chat);
        echo $rspta ? "Chat Registrado" : "Chat no se pudo registrar";
        break;

      case 'guardarCalificar':
        $rspta=$averia->guardarCalificar($idaveria,$descripcion,$calificacion,$idusuario,$adicional);
        echo $rspta ? "Calificacion Registrado" : "Calificacion  no se pudo registrar";
      break;

      case 'guardaryeditar_fichacontrato':
        $rspta=$averia->guardaryeditar_fichacontrato($idaveria,$idpersona,$idusuario,$radioTipoVenta,$costocontado,$adelanto,$totalequipo,$adelanto_letra,$cantidad_letra,$monto_letra,$tipo_pago,$idbanco,$nroperacion,$recibo,$descripcion_tecnico,$nroacta,$servicio,$tipo_trabajo,$idcaja,$total_importe,$tipotrabajo,$categoriaingreso,$idcontrato,$longitud,$latitud,$iddireccion,$direccion_capturada,$_POST['idarticulo'],$_POST['codigo'],$inicio,$fin,$_POST['cantidad'],$_POST['precio_venta'],$_POST['idmovimiento_materiales'],$_POST['estadomaterial'],$_POST['idalmacen']);
        echo $rspta ? "Ficha Contrato Registrado" : "Ficha Contrato  no se pudo registrar";
      break;

      case 'guardaryeditar_fichavisita':
        $rspta=$averia->guardaryeditar_fichavisita($idaveria,$idpersona,$idusuario,$descripcion_tecnico,$nroacta,$estado_averia);
        echo $rspta ? "Ficha Visita Registrado" : "Ficha Visita  no se pudo registrar";
      break;

      case 'guardaryeditar_ficharecojo':
        if (!file_exists($_FILES['nombre_imagen']['tmp_name']) || !is_uploaded_file($_FILES['nombre_imagen']['tmp_name'])) {
            // Si no se sube una nueva imagen, usa la imagen actual
            $imagen = $_POST["imagenactual1"];
        } else {
            // Validar formato de imagen
            $ext = pathinfo($_FILES["nombre_imagen"]["name"], PATHINFO_EXTENSION);
            $mime_type = mime_content_type($_FILES['nombre_imagen']['tmp_name']);
            $valid_extensions = ["jpg", "jpeg", "png"];
            $valid_mime_types = ["image/jpeg", "image/png"];
    
            if (in_array(strtolower($ext), $valid_extensions) && in_array($mime_type, $valid_mime_types)) {
                $imagen = $_FILES["nombre_imagen"]["name"];
                $rutaDestino = "../files/averia/" . $imagen;
    
                // Verificar si la imagen ya existe en el directorio
                if (!file_exists($rutaDestino)) {
                    // Si la imagen no existe, se sube la nueva
                    $rutaTemporal = $_FILES["nombre_imagen"]["tmp_name"];
    
                    // Procesar la imagen (redimensionar y comprimir)
                    $max_width = 1024;  // Ajustar según necesidad
                    $max_height = 768;
                    $calidad = 80; // Calidad de compresión (JPEG)
                    if (!procesarImagen($rutaTemporal, $rutaDestino, $max_width, $max_height, $calidad, $ext)) {
                        echo json_encode(["status" => "error", "message" => "Error al procesar la imagen."]);
                        exit;
                    }
    
                    // Eliminar la imagen anterior si existe y es diferente a la nueva
                    if (!empty($_POST["imagenactual1"]) && $_POST["imagenactual1"] !== $imagen) {
                        $rutaImagenAnterior = "../files/averia/" . $_POST["imagenactual1"];
                        if (file_exists($rutaImagenAnterior)) {
                            unlink($rutaImagenAnterior);
                        }
                    }
                }
            } else {
                echo json_encode(["status" => "error", "message" => "Error: Formato de imagen no permitido."]);
                exit;
            }
        }
    
        // Llamar a la función con los valores validados
        $rspta = $averia->guardaryeditar_ficharecojo(
            $idaveria, $idpersona, $idusuario, $radioTipoVenta, $costocontado, $adelanto, 
            $totalequipo, $adelanto_letra, $cantidad_letra, $monto_letra, $tipo_pago, 
            $idbanco, $nroperacion, $recibo, $descripcion_tecnico, $nroacta, $servicio, 
            $tipo_trabajo, $idcaja, $total_importe, $tipotrabajo, $categoriaingreso, 
            $idcontrato, $imagen, $imagen_anterior
        );
    
        if ($rspta) {
            echo json_encode(["status" => "success", "message" => "Ficha Recojo Registrada."]);
        } else {
            echo json_encode(["status" => "error", "message" => "Ficha Recojo no se pudo registrar."]);
        }
        break;

      case 'guardaryeditar_fichaveria':

        if (!file_exists($_FILES['nombre_imagen']['tmp_name']) || !is_uploaded_file($_FILES['nombre_imagen']['tmp_name'])) {
          // Si no se sube una nueva imagen, usa la imagen actual
          $imagen = $_POST["imagenactual1"];
        } else {
              // Validar formato de imagen
              $ext = pathinfo($_FILES["nombre_imagen"]["name"], PATHINFO_EXTENSION);
              $mime_type = mime_content_type($_FILES['nombre_imagen']['tmp_name']);
              $valid_extensions = ["jpg", "jpeg", "png"];
              $valid_mime_types = ["image/jpeg", "image/png"];
      
              if (in_array(strtolower($ext), $valid_extensions) && in_array($mime_type, $valid_mime_types)) {
                  $imagen = $_FILES["nombre_imagen"]["name"];
                  $rutaDestino = "../files/averia/" . $imagen;
      
                  // Verificar si la imagen ya existe en el directorio
                  if (!file_exists($rutaDestino)) {
                      // Si la imagen no existe, se sube la nueva
                      $rutaTemporal = $_FILES["nombre_imagen"]["tmp_name"];
      
                      // Procesar la imagen (redimensionar y comprimir)
                      $max_width = 1024;  // Ajustar según necesidad
                      $max_height = 768;
                      $calidad = 80; // Calidad de compresión (JPEG)
                      if (!procesarImagen($rutaTemporal, $rutaDestino, $max_width, $max_height, $calidad, $ext)) {
                          echo json_encode(["status" => "error", "message" => "Error al procesar la imagen."]);
                          exit;
                      }
      
                      // Eliminar la imagen anterior si existe y es diferente a la nueva
                      if (!empty($_POST["imagenactual1"]) && $_POST["imagenactual1"] !== $imagen) {
                          $rutaImagenAnterior = "../files/averia/" . $_POST["imagenactual1"];
                          if (file_exists($rutaImagenAnterior)) {
                              unlink($rutaImagenAnterior);
                          }
                      }
                  }
              } else {
                  echo json_encode(["status" => "error", "message" => "Error: Formato de imagen no permitido."]);
                  exit;
              }
          }
            // === PROCESAR SEGUNDA IMAGEN (nombre_imagen_medidor) ===
            if (!file_exists($_FILES['nombre_imagen_medidor']['tmp_name']) || !is_uploaded_file($_FILES['nombre_imagen_medidor']['tmp_name'])) {
              $imagen_medidor = $_POST["imagenactual5"];
            } else {
              $ext2 = pathinfo($_FILES["nombre_imagen_medidor"]["name"], PATHINFO_EXTENSION);
              $mime_type2 = mime_content_type($_FILES['nombre_imagen_medidor']['tmp_name']);
              $valid_extensions = ["jpg", "jpeg", "png"];
              $valid_mime_types = ["image/jpeg", "image/png"];

              if (in_array(strtolower($ext2), $valid_extensions) && in_array($mime_type2, $valid_mime_types)) {
                  $imagen_medidor = $_FILES["nombre_imagen_medidor"]["name"];
                  $rutaDestino2 = "../files/averia/" . $imagen_medidor;

                  if (!file_exists($rutaDestino2)) {
                      $rutaTemporal2 = $_FILES["nombre_imagen_medidor"]["tmp_name"];

                      if (!procesarImagen($rutaTemporal2, $rutaDestino2, $max_width, $max_height, $calidad, $ext2)) {
                          echo json_encode(["status" => "error", "message" => "Error al procesar la imagen del medidor."]);
                          exit;
                      }

                      if (!empty($_POST["imagenactual5"]) && $_POST["imagenactual5"] !== $imagen_medidor) {
                          $rutaImagenAnterior2 = "../files/averia/" . $_POST["imagenactual5"];
                          if (file_exists($rutaImagenAnterior2)) {
                              unlink($rutaImagenAnterior2);
                          }
                      }
                  }
              } else {
                  echo json_encode(["status" => "error", "message" => "Error: Formato de imagen no permitido (imagen medidor)."]);
                  exit;
              }
            }
    
       // Validar la existencia de los datos en $_POST y asignar valores por defecto si están vacíos
        $idarticulo = $_POST['idarticulo'] ?? [];
        $codigo = $_POST['codigo'] ?? [];
        $inicio = $_POST['inicio'] ?? [];
        $fin = $_POST['fin'] ?? [];
        $cantidad = $_POST['cantidad'] ?? [];
        $precio_venta = $_POST['precio_venta'] ?? [];
        $idmovimiento_materiales = $_POST['idmovimiento_materiales'] ?? [];
        $estadomaterial = $_POST['estadomaterial'] ?? [];
        $idalmacen = $_POST['idalmacen'] ?? [];

        // Llamada a la función con los valores validados
        $rspta = $averia->guardaryeditar_fichaveria(
            $idaveria, $idpersona, $idusuario, $radioTipoVenta, $costocontado, $adelanto, 
            $totalequipo, $adelanto_letra, $cantidad_letra, $monto_letra, $tipo_pago, $idbanco, 
            $nroperacion, $recibo, $descripcion_tecnico, $nroacta, $servicio, $tipo_trabajo, 
            $idcaja, $total_importe, $tipotrabajo, $categoriaingreso, $idcontrato, 
            $imagen, $imagen_medidor, $imagen_anterior, $imagen_anterior_medidor, $latitud,$longitud,$iddireccion,$direccion_capturada, $idarticulo, $codigo, $inicio, $fin, 
            $cantidad, $precio_venta, $idmovimiento_materiales, 
            $estadomaterial, $idalmacen
        );
    
        if ($rspta) {
            echo json_encode(["status" => "success", "message" => "Ficha Avería Registrada."]);
        } else {
            echo json_encode(["status" => "error", "message" => "Ficha Avería no se pudo registrar."]);
        }
        break;

      case 'guardarImagen':
        $imagenes = [];
        $max_width = 800;
        $max_height = 600;
        $calidad = 80;
    
        $formatos_permitidos = ['image/jpeg', 'image/jpg', 'image/png'];
    
        for ($i = 1; $i <= 6; $i++) {
            $inputImagen = "imagen" . $i;
            $inputImagenActual = "imagenactual" . $i;
    
            if (!isset($_FILES[$inputImagen]) || $_FILES[$inputImagen]['error'] !== UPLOAD_ERR_OK) {
                $imagenes[$inputImagen] = $_POST[$inputImagenActual] ?? '';
            } else {
                $infoImagen = getimagesize($_FILES[$inputImagen]['tmp_name']);
    
                if (!$infoImagen || !in_array($infoImagen['mime'], $formatos_permitidos)) {
                    echo json_encode(["status" => "error", "message" => "Formato no permitido para $inputImagen"]);
                    exit;
                }
    
                $ext = image_type_to_extension($infoImagen[2], false);
                $nuevoNombre = round(microtime(true)) . "_$i." . $ext;
                $rutaDestino = "../files/averia/" . $nuevoNombre;
    
                if (procesarImagen($_FILES[$inputImagen]['tmp_name'], $rutaDestino, $max_width, $max_height, $calidad, $ext)) {
                    $imagenes[$inputImagen] = $nuevoNombre;
                } else {
                    echo json_encode(["status" => "error", "message" => "Error procesando la imagen $inputImagen"]);
                    exit;
                }
            }
        }
    
        $imagenes = array_values($imagenes);
        $rspta = $averia->guardarImagen($idaveriac, $imagenes);
    
        if ($rspta) {
            echo json_encode(["status" => "success", "message" => "Imágenes Registradas"]);
        } else {
            echo json_encode(["status" => "error", "message" => "Error al registrar imágenes"]);
        }
        break;

        case 'guardarImagenAveria':
          $imagenes = [];
          $max_width = 800; // Ancho máximo
          $max_height = 600; // Alto máximo
          $calidad = 80; // Calidad de compresión
          $formatos_permitidos = ['image/jpeg', 'image/jpg', 'image/png'];
          
          for ($i = 1; $i <= 2; $i++) {
              $inputImagen = "imagen" . $i;
              $inputImagenActual = "imagenactual" . $i;
      
              if (!isset($_FILES[$inputImagen]) || $_FILES[$inputImagen]['error'] !== UPLOAD_ERR_OK) {
                  $imagenes[$inputImagen] = $_POST[$inputImagenActual] ?? '';
              } else {
                  $infoImagen = getimagesize($_FILES[$inputImagen]['tmp_name']);
      
                  if (!$infoImagen || !in_array($infoImagen['mime'], $formatos_permitidos)) {
                      echo json_encode(["status" => "error", "message" => "Formato no permitido para $inputImagen"]);
                      exit;
                  }
      
                  $ext = image_type_to_extension($infoImagen[2], false);
                  $nuevoNombre = round(microtime(true)) . "_$i." . $ext;
                  $rutaDestino = "../files/averia/" . $nuevoNombre;
      
                  if (procesarImagen($_FILES[$inputImagen]['tmp_name'], $rutaDestino, $max_width, $max_height, $calidad, $ext)) {
                      $imagenes[$inputImagen] = $nuevoNombre;
                  } else {
                      echo json_encode(["status" => "error", "message" => "Error procesando la imagen $inputImagen"]);
                      exit;
                  }
              }
          }
      
          $imagenes = array_values($imagenes);
          $rspta = $averia->guardarImagenAveria($idaveriacc, $imagenes);
      
          if ($rspta) {
              echo json_encode(["status" => "success", "message" => "Imágenes Registradas"]);
          } else {
              echo json_encode(["status" => "error", "message" => "Error al registrar imágenes"]);
          }
          break;
          
           case 'actualizarImagenContrato':
                          $imagenes = [];
                          $max_width = 1024;
                          $max_height = 768;
                          $calidad = 80;

                          $formatos_permitidos = ['jpg', 'jpeg', 'png'];
                          $tipos_mime_permitidos = ['image/jpeg', 'image/png'];

                          // Claves de imágenes a procesar con nombre input => nombre campo POST de imagen actual
                          $nombres_imagenes = [
                              'imagen1'      => 'imagenactual1',
                              'imagen2'          => 'imagenactual2',
                              'imagen3'     => 'imagenactual3',
                              'imagen4' => 'imagenactual4',
                              'imagen5'      => 'imagenactual5',
                              'imagen6'         => 'imagenactual6'
                          ];
                          $i = 1;
                          foreach ($nombres_imagenes as $inputName => $inputActual) {
                              $nombre_archivo = $_FILES[$inputName]['name'] ?? '';
                              $tmp_archivo = $_FILES[$inputName]['tmp_name'] ?? '';
                              $imagen_actual = $_POST[$inputActual] ?? '';

                              $nombre_final = $imagen_actual; // Por defecto usar imagen actual

                              if (!empty($tmp_archivo) && is_uploaded_file($tmp_archivo)) {
                                  $ext = strtolower(pathinfo($nombre_archivo, PATHINFO_EXTENSION));
                                  $mime_type = mime_content_type($tmp_archivo);

                                  if (in_array($ext, $formatos_permitidos) && in_array($mime_type, $tipos_mime_permitidos)) {
                                    
                                      $nombre_archivo = round(microtime(true)) . "_$i." . $ext;
                                      $rutaDestino = "../files/averia/" . $nombre_archivo;

                                      // Procesar imagen (redimensionar/comprimir)
                                      if (!procesarImagen($tmp_archivo, $rutaDestino, $max_width, $max_height, $calidad, $ext)) {
                                          echo json_encode(["status" => "error", "message" => "Error al procesar $inputName."]);
                                          exit;
                                      }

                                      // Eliminar la imagen anterior si es distinta
                                      if (!empty($imagen_actual) && $imagen_actual !== $nombre_archivo) {
                                          $rutaAnterior = "../files/averia/" . $imagen_actual;
                                          if (file_exists($rutaAnterior)) {
                                              unlink($rutaAnterior);
                                          }
                                      }

                                      $nombre_final = $nombre_archivo; // Se reemplaza con nueva imagen
                                  } else {
                                      echo json_encode(["status" => "error", "message" => "Formato no permitido en $inputName."]);
                                      exit;
                                  }
                                  $i++;
                              }

                              // Agregar a la lista de imágenes con anterior y nueva
                              $imagenes[] = [
                                  "anterior" => $imagen_actual,
                                  "nueva"    => $nombre_final
                              ];
                          }

            // Guardar en base de datos, pasas anterior y nueva
            $rspta = $averia->actualizarImagenContrato($idaveria, $imagenes);

            if ($rspta) {
                      echo json_encode(["status" => "success", "message" => "Imágenes Actualizadas"]);
                  } else {
                      echo json_encode(["status" => "error", "message" => "Error al registrar imágenes"]);
                  }
      break;
      
      case 'actualizarImagenAveria':
                          $imagenes = [];
                          $imagenes2 = [];
                          $max_width = 1024;
                          $max_height = 768;
                          $calidad = 80;

                          $formatos_permitidos = ['jpg', 'jpeg', 'png'];
                          $tipos_mime_permitidos = ['image/jpeg', 'image/png'];

                          // Claves de imágenes a procesar con nombre input => nombre campo POST de imagen actual
                          $nombres_imagenes = [
                              'imagen1'      => 'imagenactual1',
                              'imagen2'          => 'imagenactual2',
                              'imagen3'     => 'imagenactual3',
                              'imagen4' => 'imagenactual4',
                              'imagen5'      => 'imagenactual5',
                              'imagen6'         => 'imagenactual6'
                          ];
                          $nombres_imagenes2 = [
                              'imagen7'      => 'imagenactual7',
                              'imagen8'          => 'imagenactual8'
                             
                          ];
                          $i = 1;
                          foreach ($nombres_imagenes as $inputName => $inputActual) {
                              $nombre_archivo = $_FILES[$inputName]['name'] ?? '';
                              $tmp_archivo = $_FILES[$inputName]['tmp_name'] ?? '';
                              $imagen_actual = $_POST[$inputActual] ?? '';

                              $nombre_final = $imagen_actual; // Por defecto usar imagen actual

                              if (!empty($tmp_archivo) && is_uploaded_file($tmp_archivo)) {
                                  $ext = strtolower(pathinfo($nombre_archivo, PATHINFO_EXTENSION));
                                  $mime_type = mime_content_type($tmp_archivo);

                                  if (in_array($ext, $formatos_permitidos) && in_array($mime_type, $tipos_mime_permitidos)) {
                                    
                                      $nombre_archivo = round(microtime(true)) . "_$i." . $ext;
                                      $rutaDestino = "../files/averia/" . $nombre_archivo;

                                      // Procesar imagen (redimensionar/comprimir)
                                      if (!procesarImagen($tmp_archivo, $rutaDestino, $max_width, $max_height, $calidad, $ext)) {
                                          echo json_encode(["status" => "error", "message" => "Error al procesar $inputName."]);
                                          exit;
                                      }

                                      // Eliminar la imagen anterior si es distinta
                                      if (!empty($imagen_actual) && $imagen_actual !== $nombre_archivo) {
                                          $rutaAnterior = "../files/averia/" . $imagen_actual;
                                          if (file_exists($rutaAnterior)) {
                                              unlink($rutaAnterior);
                                          }
                                      }

                                      $nombre_final = $nombre_archivo; // Se reemplaza con nueva imagen
                                  } else {
                                      echo json_encode(["status" => "error", "message" => "Formato no permitido en $inputName."]);
                                      exit;
                                  }
                                  $i++;
                              }

                              // Agregar a la lista de imágenes con anterior y nueva
                              $imagenes[] = [
                                  "anterior" => $imagen_actual,
                                  "nueva"    => $nombre_final
                              ];
                          }
                          foreach ($nombres_imagenes2 as $inputName => $inputActual) {
                              $nombre_archivo = $_FILES[$inputName]['name'] ?? '';
                              $tmp_archivo = $_FILES[$inputName]['tmp_name'] ?? '';
                              $imagen_actual = $_POST[$inputActual] ?? '';

                              $nombre_final = $imagen_actual; // Por defecto usar imagen actual

                              if (!empty($tmp_archivo) && is_uploaded_file($tmp_archivo)) {
                                  $ext = strtolower(pathinfo($nombre_archivo, PATHINFO_EXTENSION));
                                  $mime_type = mime_content_type($tmp_archivo);

                                  if (in_array($ext, $formatos_permitidos) && in_array($mime_type, $tipos_mime_permitidos)) {
                                    
                                      $nombre_archivo = round(microtime(true)) . "_$i." . $ext;
                                      $rutaDestino = "../files/averia/" . $nombre_archivo;

                                      // Procesar imagen (redimensionar/comprimir)
                                      if (!procesarImagen($tmp_archivo, $rutaDestino, $max_width, $max_height, $calidad, $ext)) {
                                          echo json_encode(["status" => "error", "message" => "Error al procesar $inputName."]);
                                          exit;
                                      }

                                      // Eliminar la imagen anterior si es distinta
                                      if (!empty($imagen_actual) && $imagen_actual !== $nombre_archivo) {
                                          $rutaAnterior = "../files/averia/" . $imagen_actual;
                                          if (file_exists($rutaAnterior)) {
                                              unlink($rutaAnterior);
                                          }
                                      }

                                      $nombre_final = $nombre_archivo; // Se reemplaza con nueva imagen
                                  } else {
                                      echo json_encode(["status" => "error", "message" => "Formato no permitido en $inputName."]);
                                      exit;
                                  }
                                  $i++;
                              }

                              // Agregar a la lista de imágenes con anterior y nueva
                              $imagenes2[] = [
                                  "anterior" => $imagen_actual,
                                  "nueva"    => $nombre_final
                              ];
                          }

            // Guardar en base de datos, pasas anterior y nueva
            $rspta = $averia->actualizarImagenAveria($idcontrato_averia, $idaveria, $imagenes, $imagenes2);

            if ($rspta) {
                      echo json_encode(["status" => "success", "message" => "Imágenes Actualizadas"]);
                  } else {
                      echo json_encode(["status" => "error", "message" => "Error al registrar imágenes"]);
                  }
      break;
  
      case 'mostrar':
        $rspta=$averia->mostrar($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'mostrar_contrato':
        $rspta=$averia->mostrar_contrato($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'mostrar_averia':
        $rspta=$averia->mostrar_averia($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'mostrar_recojo':
        $rspta=$averia->mostrar_recojo($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'mostrar_visita':
        $rspta=$averia->mostrar_visita($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'mostrarchat':
        $idaveria = isset($_GET['id']) ? intval($_GET['id']) : 0;
        $rspta=$averia->mostrarchat($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'eliminar':
        $rspta=$averia->eliminar($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'cantidadPuntos':
        $idcuadrilla=$_REQUEST["idcuadrilla"];
        $rspta=$averia->cantidadPuntos($idcuadrilla);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;
      
      case 'mostrar_trabajo_averia':
        $rspta=$averia->mostrar_trabajo_averia($idaveria);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;

      case 'listarcalificacion':
       
        $rspta=$averia->listarcalificacion();
        //Vamos a declarar un array
        $data=Array();
        while($reg=$rspta->fetch_object())
        {

          $data[]=array(
            "0"=>$reg->fecha,
            "1"=>$reg->usuario,
            "2"=>$reg->comentario,
            "3"=>$reg->cliente,
            "4"=>$reg->calificacion
          );
        }
        $results= array(
          "sEcho"=>1, //Informacion para el datatable
          "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
          "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
          "aaData"=>$data);
        echo json_encode($results);
  
      break;

      case 'listaraveria_terminado':
       
        $rspta=$averia->listaraveria_terminado();
        //Vamos a declarar un array
        $data=Array();
        while($reg=$rspta->fetch_object())
        {
          //$url_mapa='http://maps.google.com/maps?q=';
          $url_historial='';
          $url_fichacontrato='ficha_contrato.php?id=';
          $url_fichacontrato_ver='ficha_contratover.php?id=';
          $url_fichaaveria_ver='ficha_averiaver.php?id=';
          $url_ficharecojo_ver='ficha_recojover.php?id=';
          $url_fichavisita_ver='ficha_visitaver.php?id=';

            $historial =  '<a href="'.$url_historial.$reg->idcliente.'"><button class="btn btn-primary btn-xs btn-flat"><i class="fa fa-folder"></i> </button></a>';
            $ubicacion = '<button class="btn btn-success btn-xs btn-flat" 
                onclick="abrirWaze('.$reg->latitude.','.$reg->longitude.')">
                <i class="fa fa-map-marker"></i> 
              </button>';
            //$ubicacion =  '<a target="_blank" href="'.$url_mapa.$reg->latitude.",".$reg->longitude.'" ><button class="btn btn-success btn-xs btn-flat"><i class="fa fa-map-marker"></i> </button></a>';
            if($reg->estado_averia=='1'){
            $est='<button class="btn btn-danger btn-xs btn-flat" onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Pendiente</button>';
            }else if($reg->estado_averia=='2'){
            $est='<button class="btn btn-primary btn-xs btn-flat" onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat" ></i>Proceso</button>';
            }else if($reg->estado_averia=='3'){
              $est='<button class="btn btn-success btn-xs btn-flat" onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Atendido</button>';
            }else if($reg->estado_averia=='7'){
              $est='<button class="btn-danger btn btn-xs btn-flat"   onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Terminado</button>';
            }
            
              if($reg->idcategoria=='3'){
                /// INSTALACIONES
               $tipotrab='<a href="'.$url_fichacontrato_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }else if($reg->idcategoria=='12'){
                ///RECOJO DE EQUIPO
                  $tipotrab='<a href="'.$url_ficharecojo_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }else if($reg->idcategoria=='7'){
                ///RECOJO DE EQUIPO
                  $tipotrab='<a href="'.$url_fichavisita_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }else{
                /// AVERIA
                $tipotrab='<a href="'.$url_fichaaveria_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }


          $data[]=array(
            "0"=>$reg->idaveria,
            "1"=>$tipotrab,
            "2"=>$reg->tecnico,
            "3"=>$reg->tipo_trabajo,
            "4"=>$reg->tecnologia,
            "5"=>$reg->prioridad,
            "6"=>$reg->fecha_programacion,
            "7"=>$reg->usuario,          
            "8"=>$reg->address,
            "9"=>$reg->nro_acta,
            "10"=>$historial,
            "11"=>$ubicacion,
            "12"=>$est
          );
        }
        $results= array(
          "sEcho"=>1, //Informacion para el datatable
          "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
          "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
          "aaData"=>$data);
        echo json_encode($results);
  
      break;
  
      case 'listaraveria':
        $idcategoria_ingreso = isset($_REQUEST["idcategoria_ingreso"]) ? $_REQUEST["idcategoria_ingreso"] : null;
        $idcuadrilla = isset($_REQUEST["idcuadrilla"]) ? $_REQUEST["idcuadrilla"] : null;

        if ($idcategoria_ingreso) {
          $rspta = $averia->listaraveriaPorCategoria($idcategoria_ingreso);
          } elseif ($idcuadrilla) {
              $rspta = $averia->listaraveriaPorCuadrilla($idcuadrilla);
          } else {
              $rspta = $averia->listaraveria();
          }
       
        //Vamos a declarar un array
        $data=Array();
        while($reg=$rspta->fetch_object())
        {
         
         // $url_mapa = 'https://www.google.com/maps/dir/?api=1&destination=';
          $url_historial='';
          $url_fichacontrato='ficha_contrato.php?id=';
          $url_fichacontrato_ver='ficha_contratover.php?id=';
          $url_fichaaveria_ver='ficha_averiaver.php?id=';
          $url_ficharecojo_ver='ficha_recojover.php?id=';
          $url_fichavisita_ver='ficha_visitaver.php?id=';
          $url_contrato='../contrato/create.php?idpersona=';

            $historial =  '<a href="#"><button class="btn btn-primary btn-xs btn-flat"><i class="fa fa-folder"></i> </button></a>';
            $ubicacion = '<button class="btn btn-success btn-xs btn-flat" 
                onclick="abrirWaze('.$reg->latitude.','.$reg->longitude.')">
                <i class="fa fa-map-marker"></i> 
              </button>';
           // $ubicacion =  '<a target="_blank" href="'.$url_mapa.$reg->latitude.",".$reg->longitude.'" ><button class="btn btn-success btn-xs btn-flat"><i class="fa fa-map-marker"></i> </button></a>';
            if($reg->estado_averia=='1'){
            $est='<button class="btn btn-danger btn-xs btn-flat" onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Pendiente</button>';
            }else if($reg->estado_averia=='2'){
            $est='<button class="btn btn-primary btn-xs btn-flat" onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat" ></i>Proceso</button>';
            }else if($reg->estado_averia=='3'){
              $est='<button class="btn btn-success btn-xs btn-flat" onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Atendido</button>';
            }else if($reg->estado_averia=='4'){
              $est='<button class="btn btn btn-xs btn-flat" style="background-color:#3e038c;color: #FFFFFF"  onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Calificar</button>';
            }else if($reg->estado_averia=='5'){
              $est='<a href="'.$url_contrato.$reg->idcliente.'&iddireccion='.$reg->iddireccion.'&idservicio='.$reg->idservicio.'&idtecnologia='.$reg->idtecnologia.'"><button class="btn btn-success btn-xs btn-flat"  onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Factible</button></a>'. 
              '<button class="btn btn btn-xs btn-flat" style="background-color:#3e038c;color: #FFFFFF"  onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>Calificar</button>';
            }else if($reg->estado_averia=='6'){
              $est='<button class="btn btn-warning btn-xs btn-flat"   onclick="mostrarchat('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_chat"></i>No Factible</button>';
            }
            
              if($reg->idcategoria=='3'){
                /// INSTALACIONES
               $tipotrab='<a href="'.$url_fichacontrato_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }else if($reg->idcategoria=='12'){
                ///RECOJO DE EQUIPO
                  $tipotrab='<a href="'.$url_ficharecojo_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }else if($reg->idcategoria=='7'){
                ///FICHA DE VISITA
                  $tipotrab='<a href="'.$url_fichavisita_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }else{
                /// AVERIA
                $tipotrab='<a href="'.$url_fichaaveria_ver.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
              }


              if ($reg->estado_averia != '7') {
                $data[] = array(
                    "0" => $reg->idaveria,
                    "1" => '<button class="btn btn-danger btn-xs btn-flat" onclick="eliminar('.$reg->idaveria.')"><i class="fa fa-close"></i></button>'.
                           ' <a href="create.php?idaveria=' . $reg->idaveria . '" class="btn btn-warning btn-xs btn-flat"><i class="fa fa-edit"></i></button></a>' .
                           ' <button class="btn btn-primary btn-xs btn-flat" onclick="calificar('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_Descripcion"><i class="fa fa-check"></i></button>',
                    "2" => $tipotrab,
                    "3" => $reg->tecnico,
                    "4" => $reg->tipo_trabajo,
                    "5" => $reg->tecnologia,
                    "6" => $reg->prioridad,
                    "7" => $reg->fecha_programacion,
                    "8" => $reg->usuario,
                    "9" => $reg->address,
                    "10" => $historial.'  '.$ubicacion,
                    "11" => $est
                );
            }
        }
        $results= array(
          "sEcho"=>1, //Informacion para el datatable
          "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
          "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
          "aaData"=>$data);
        echo json_encode($results);
  
      break;

      case 'listartecnico':

        $rspta=$averia->listartecnico($idusuario);
        //Vamos a declarar un array
        $data=Array();
        while($reg=$rspta->fetch_object())
        {
          //$url_mapa='http://maps.google.com/maps?q=';
          $url_historial='';
          $url_fichacontrato='ficha_contrato.php?id=';
          $url_ficharecojo='ficha_recojo.php?id=';
          $url_fichaaveria='ficha_averia.php?id=';
          $url_fichavisita='ficha_visita.php?id=';

           $historial =  '<a href="#"><button class="btn btn-primary btn-xs btn-flat"><i class="fa fa-folder"></i> </button></a>';
           //$ubicacion =  '<a target="_blank" href="'.$url_mapa.$reg->latitude.",".$reg->longitude.'" ><button class="btn btn-success btn-xs btn-flat"><i class="fa fa-map-marker"></i> </button></a>';
           $ubicacion = '<button class="btn btn-success btn-xs btn-flat" 
                onclick="abrirWaze('.$reg->latitude.','.$reg->longitude.')">
                <i class="fa fa-map-marker"></i> 
              </button>';
          if($reg->estado_averia=='1'){
            $est='<button class="btn btn-danger btn-xs btn-flat"  ></i>Pendiente</button>';
            }else if($reg->estado_averia=='2'){
            $est='<button class="btn btn-primary btn-xs btn-flat"   ></i>Proceso</button>';
            }else if($reg->estado_averia=='3'){
              $est='<button class="btn btn-success btn-xs btn-flat"  ></i>Atendido</button>';
            }else if($reg->estado_averia=='4'){
              $est='<button class="btn btn btn-xs btn-flat" style="background-color:#3e038c;color: #FFFFFF"   ></i>Calificar</button>';
            }
            $imagen='';
            if (preg_match('/^[1-9][0-9]*$/', $reg->nro_acta)>0)
            {
              
                  if($reg->idcategoria ==3 ){
                    /// INSTALACIONES
                  $tipotrab='<button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF" onclick="alertarCliente(\'' . $reg->cliente . '\')">' . $reg->cliente . '</button>';
                  $imagen='<button class="btn btn-warning btn-xs btn-flat" onclick="imagen('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_imagen_contrato"><i class="fa fa-file-image"></i> Imagen</button>';
                  }else if($reg->idcategoria==7){
                    ///VISITA
                      $tipotrab='<button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF" onclick="alertarCliente(\'' . $reg->cliente . '\')">' . $reg->cliente . '</button>';
                      //$imagen='<button class="btn btn-warning btn-xs btn-flat" onclick="imagen('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_imagen"><i class="fa fa-file-image"></i> Imagen</button>';
                  
                  }else if($reg->idcategoria==12){
                    ////RECOJO DE EQUIPO
                    $tipotrab='<button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF" onclick="alertarCliente(\'' . $reg->cliente . '\')">' . $reg->cliente . '</button>';
                    $imagen='<button class="btn btn-warning btn-xs btn-flat" onclick="imagen('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_imagen"><i class="fa fa-file-image"></i> Imagen</button>';
                  }else{
                    /// AVERIA
                    $tipotrab = '<button class="btn btn-xs btn-flat" style="background-color: ' . $reg->color . '; color: #FFFFFF" onclick="alertarCliente(\'' . $reg->cliente . '\')">' . $reg->cliente . '</button>';
                    $imagen='<button class="btn btn-warning btn-xs btn-flat" onclick="imagen('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_imagen"><i class="fa fa-file-image"></i> Imagen</button>';
                  }
              } else{

                if($reg->idcategoria ==3){
                  /// INSTALACIONES
                 $tipotrab='<a href="'.$url_fichacontrato.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
                 $imagen='';
                }else if($reg->idcategoria ==7){
                  ///VISITA
                    $tipotrab='<a href="'.$url_fichavisita.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
                    $imagen='';
                }else if($reg->idcategoria ==12){
                  ///RECOJO DE EQUIPO
                    $tipotrab='<a href="'.$url_ficharecojo.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
                //    $imagen='<button class="btn btn-warning btn-xs btn-flat" onclick="imagen('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_imagen"><i class="fa fa-file-image"></i> Imagen</button>';
                }else{
                  /// AVERIA
                  $tipotrab='<a href="'.$url_fichaaveria.$reg->idaveria.'"><button class="btn  btn-xs btn-flat" style="background-color: '.$reg->color.';color: #FFFFFF"></i>'.$reg->cliente.' </button></a>';
                // $imagen='<button class="btn btn-warning btn-xs btn-flat" onclick="imagen('.$reg->idaveria.')" data-toggle="modal" data-target="#modal_imagen"><i class="fa fa-file-image"></i> Imagen</button>';
                }
              }
              

          $data[]=array(
            "0"=>$imagen,
            "1"=>$tipotrab,
            "2"=>$reg->usuario,
            "3"=>$reg->tipo_trabajo,
            "4"=>$reg->tecnologia,
            "5"=>$reg->prioridad,
            "6"=>$reg->fecha_programacion,
            "7"=>$reg->address,
            "8"=>$historial,
            "9"=>$ubicacion,
            "10"=>$est
          );
        }
        $results= array(
          "sEcho"=>1, //Informacion para el datatable
          "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
          "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
          "aaData"=>$data);
        echo json_encode($results);
  
      break;

      case 'listardetalle':
        $rspta=$averia->listardetalle();
        //Vamos a declarar un array
        $data=Array();
        while($reg=$rspta->fetch_object())
        {
          $data[]=array(
            "0"=>$reg->usuario,
            "1"=>$reg->detalle_problema,
            "2"=>$reg->tipo_trabajo,          
            "3"=>$reg->direccion,
            "4"=>$reg->start
          );
        }
        $results= array(
          "sEcho"=>1, //Informacion para el datatable
          "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
          "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
          "aaData"=>$data);
        echo json_encode($results);
  
      break;

      case 'listar_material':
        $rspta=$averia->listar_material($idusuario);
        //Vamos a declarar un array
        $data=Array();
        while($reg=$rspta->fetch_object())
        {
          // $totalito=$reg->cantidadsalida - $reg->cantidaddevuelto;
          // $resta=$totalito - $reg->cantidadusado;
          // if($resta>0){
          //   $stocktotal=$resta;
          //   $stoctocito='<button class="btn btn-danger btn-xs btn-flat">'.$resta.'</button>';
          // }else{
          //   $stocktotal=0;
          //   $stoctocito='<button class="btn btn-danger btn-xs btn-flat">0</button>';
          // }
          $stoctocito='<button class="btn btn-danger btn-xs btn-flat">'.$reg->stock_disponible.'</button>';
          $data[]=array(
            "0"=>$reg->codigo,
            "1" => trim(($reg->nombre ?? '') . '/' . ($reg->descripcion ?? '')),
            "2"=>$reg->unidad_medida,
            "3"=>$stoctocito,          
            "4"=>number_format($reg->precio_venta,2),
            "5" => '<button class="btn btn-success btn-xs btn-flat" onclick="agregarDetalle(' . $reg->idarticulo . ', \'' . $reg->codigo . '\', \'' . $reg->nombre . '\' ,\'' . $reg->precio_venta . '\', '.$reg->stock_disponible.' , '. $reg->idmovimiento_materiales.',\'' . $reg->unidad_medida . '\', '.$reg->estadomaterial.', '. $reg->idalmacen .'  , this)" data-id="'.$reg->idarticulo.'"><span class="fa fa-plus"></span></button>'
          );
        }
        $results= array(
          "sEcho"=>1, //Informacion para el datatable
          "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
          "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
          "aaData"=>$data);
          echo json_encode($results, JSON_PRETTY_PRINT);
  
      break;

      case 'selectEstado': 
        $rspta = $averia->selectEstado();
        if ($rspta) {
            while ($reg = $rspta->fetch_object()) {
                echo "<option value='" . htmlspecialchars($reg->idestado, ENT_QUOTES, 'UTF-8') . "'>" . htmlspecialchars($reg->nombre, ENT_QUOTES, 'UTF-8') . "</option>";
            }
        } else {
            echo "<option value=''>No hay documentos disponibles</option>";
        }
        break;

        case 'selectCuadrilla': 
          $rspta = $averia->selectCuadrilla();
          if ($rspta) {
              while ($reg = $rspta->fetch_object()) {
                  echo "<option value='" . htmlspecialchars($reg->idusuario, ENT_QUOTES, 'UTF-8') . "'>" . htmlspecialchars($reg->nombre, ENT_QUOTES, 'UTF-8') . "</option>";
              }
          } else {
              echo "<option value=''>No hay documentos disponibles</option>";
          }
          break;

     

    
}