<?php

class Media {

  public $imageInfo;
  public $fileName;
  public $fileType;
  public $fileTempPath;

  //Set destination for upload
  /* === changed by Yoel, at 2019.03.11 === */
  //public $userPath = SITE_ROOT . DS . '..' . DS . 'uploads/users';
  public $userPath;
  //public $productPath = SITE_ROOT . DS . '..' . DS . 'uploads/products';
  public $productPath;

  public $errors = array();
  /* 
  // English.-
  public $upload_errors = array(
    0 => 'There was no error, the file was uploaded with success',
    1 => 'The file exceeds the upload_max_filesize directive in php.ini',
    2 => 'The file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
    3 => 'The file was only partially uploaded',
    4 => 'No file was uploaded',
    5 => 'The path to contain the file is undefined',
    6 => 'Missing a temporary folder',
    7 => 'Failed when writing file to disk.',
    8 => 'A PHP extension stopped the file upload.'
  );
  */
  # Spanish.-
  public $upload_errors = array(
    0 => 'No hubo error, el archivo se subió con éxito',
    1 => 'El tamaño de archivo excede la directiva upload_max_filesize en php.ini',
    2 => 'El tamaño de archivo excede la directiva MAX_FILE_SIZE directive especificada en el formulario HTML',
    3 => 'El archivo fue subido parcialmente',
    4 => 'Ningun archivo fue subido',
    5 => 'No se ha definido la ruta para guardar el archivo',
    6 => 'Se perdió una carpeta temporal',
    7 => 'Falló la escritura del archivo en disco',
    8 => 'Una extensión PHP detuvo la carga del archivo'
  );
  public $upload_extensions = array(
   'gif',
   'jpg',
   'jpeg',
   'png',
   'pdf',
  );

  public $upload_extensionspdf = array(
   'pdf',
   'msg',
   'jpg',
   'jpeg',
   'png',
  );
  public $upload_extensionsxlsx = array(
   'xlsx',
  );
  
  /* === added by Yoel.- 2019.03.11 === 
   * Constructor
   */
  public function __construct() {
    $this->set_paths( );
  }
 
  /* === added by Yoel.- 2019.03.11 === */
  public function set_paths() {
    //$this->userPath = SITE_ROOT . DS . 'uploads/users';
    //$this->productPath = SITE_ROOT . DS . '..' . DS . 'uploads/products';

    /* Yoel changed the value for the constant SITE_ROOT */
    $this->userPath = SITE_ROOT . DS . 'uploads/users'; 
    $this->filesPathcot1 = SITE_ROOT . DS . 'COT1';  
    $this->filesPathcot2 = SITE_ROOT . DS . 'COT2'; 
    $this->filesPathcot3 = SITE_ROOT . DS . 'COT3'; 
    $this->filesPathcorreo = SITE_ROOT . DS . 'CORREO';  
    $this->filesPathcompara = SITE_ROOT . DS . 'COMPARATIVO';
    $this->filesPathsap = SITE_ROOT . DS . 'ARCSAP';   
  }
  
  public function file_ext($filename) {
     $ext = strtolower(substr( $filename, strrpos( $filename, '.' ) + 1 ) );
     if(in_array($ext, $this->upload_extensions)) {
       return true;
     }
   }

   public function file_extpdf($filename) {
     $ext = strtolower(substr( $filename, strrpos( $filename, '.' ) + 1 ) );
     if(in_array($ext, $this->upload_extensionspdf)) {
       return true;
     }
   } 
   public function file_extexcel($filename) {
     $ext = strtolower(substr( $filename, strrpos( $filename, '.' ) + 1 ) );
     if(in_array($ext, $this->upload_extensionsxlsx)) {
       return true;
     }
   } 

  public function upload($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_ext($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      
      $this->imageInfo = getimagesize($file['tmp_name']);
      $this->fileName  = $_FILES["file_upload"]["name"];
      $this->fileType  = $this->imageInfo['mime'];
      $this->fileTempPath = $_FILES["file_upload"]["tmp_name"];
      return true;
    }
  }

  public function uploadpdf($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extpdf($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["file"]["name"];
      $this->fileTempPath = $_FILES["file"]["tmp_name"];
      return true;
    }
  }
  public function uploadpdfcot2($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extpdf($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["file1"]["name"];
      $this->fileTempPath = $_FILES["file1"]["tmp_name"];
      return true;
    }
  }
  public function uploadpdfcot3($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extpdf($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["file2"]["name"];
      $this->fileTempPath = $_FILES["file2"]["tmp_name"];
      return true;
    }
  }
  public function uploadcorreo($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extpdf($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["file3"]["name"];
      $this->fileTempPath = $_FILES["file3"]["tmp_name"];
      return true;
    }
  }
  public function uploadxlsx($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extexcel($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["file4"]["name"];
      $this->fileTempPath = $_FILES["file4"]["tmp_name"];
      return true;
    }
  }
  public function uploadcorreo1($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extpdf($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["file5"]["name"];
      $this->fileTempPath = $_FILES["file5"]["tmp_name"];
      return true;
    }
  }
  public function uploadcorreo2($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extpdf($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["file6"]["name"];
      $this->fileTempPath = $_FILES["file6"]["tmp_name"];
      return true;
    }
  }


  public function uploadsap($file)
  {
    if( !$file || empty($file) || !is_array($file) ) {
      $this->errors[] = "Ningún archivo subido.";
      return false;
     }
    elseif( $file['error'] != 0 ) {
      $this->errors[] = $this->upload_errors[$file['error']];
      return false;
    }
    elseif( !$this->file_extpdf($file['name']) ) {
      $this->errors[] = 'Formato de archivo incorrecto ';
      return false;
    }
    else {
      $this->fileName  = $_FILES["arc"]["name"];
      $this->fileTempPath = $_FILES["arc"]["tmp_name"];
      return true;
    }
  }
  /*--------------------------------------------------------------
   * Generic function to process 
   *--------------------------------------------------------------*/
  public function process() {
    if( !empty($this->errors) ) {
      return false;
    }
    elseif( empty($this->fileName) || empty($this->fileTempPath) || empty($this->productPath) ) {
      $this->errors[] = "La ubicación del archivo no esta disponible.";
      return false;
    }
    elseif( !is_writable($this->productPath) ){
      $this->errors[] = "Debe tener permisos de escritura";
      return false;
    }
    elseif(file_exists($this->productPath."/".$this->fileName)) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    else {
      return true;
    }
  }
  /*--------------------------------------------------------------
   * Function to process media file
   *--------------------------------------------------------------*/
  public function process_media() 
  {
    if( !empty($this->errors) ) {
      return false;
    }
    if( empty($this->fileName) || empty($this->fileTempPath) || empty($this->productPath) ) {
      $this->errors[] = "La ubicación del archivo no se encuenta disponible.";
      return false;
    }
    if( !is_writable($this->productPath) ) {
      $this->errors[] = "Debe tener permisos de escritura. ";
      return false;
    }
    if( file_exists($this->productPath.DS.$this->fileName) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if( move_uploaded_file($this->fileTempPath,$this->productPath.'/'.$this->fileName) ) {
      if( $this->insert_media() ) {
        unset($this->fileTempPath);
        return true;
      }
    } 
    else {
      $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
      return false;
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to process user image
  /*--------------------------------------------------------------*/
  public function process_user($id) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->userPath)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_image_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->userPath.'/'.$_FILES["file_upload"]["name"]) ) {
      if($this->update_userImg($id)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to process pdf files COTIZACION 1
  /*--------------------------------------------------------------*/
  public function process_pdf($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcot1)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathcot1.'/'.$tc.'-'.$_FILES["file"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_pdf_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathcot1.'/'.$tc.'-'.$_FILES["file"]["name"]) ) {
      if($this->update_cot1($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to process pdf files COTIZACION 2
  /*--------------------------------------------------------------*/
  public function process_pdfcot2($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcot2)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathcot2.'/'.$tc.'-'.$_FILES["file1"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_pdfcot2_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathcot2.'/'.$tc.'-'.$_FILES["file1"]["name"]) ) {
      if($this->update_cot2($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
    /*--------------------------------------------------------------*/
  /* Function to process pdf files COT 3
  /*--------------------------------------------------------------*/
  public function process_pdfcot3($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcot3)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathcot3.'/'.$tc.'-'.$_FILES["file2"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_pdfcot3_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathcot3.'/'.$tc.'-'.$_FILES["file2"]["name"]) ) {
      if($this->update_cot3($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
     /*--------------------------------------------------------------*/
  /* Function to process pdf files Correo
  /*--------------------------------------------------------------*/
  public function process_correo($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcorreo)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathcorreo.'/'.$tc.'-'.$_FILES["file3"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_correo_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathcorreo.'/'.$tc.'-'.$_FILES["file3"]["name"]) ) {
      if($this->update_correo($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to process pdf files Correo 1
  /*--------------------------------------------------------------*/
  public function process_correo1($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcorreo)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathcorreo.'/'.$tc.'-'.$_FILES["file5"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_correo1_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathcorreo.'/'.$tc.'-'.$_FILES["file5"]["name"]) ) {
      if($this->update_correo1($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to process pdf files Correo 2
  /*--------------------------------------------------------------*/
  public function process_correo2($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcorreo)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathcorreo.'/'.$tc.'-'.$_FILES["file6"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_correo2_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathcorreo.'/'.$tc.'-'.$_FILES["file6"]["name"]) ) {
      if($this->update_correo2($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to process pdf files orden SAP
  /*--------------------------------------------------------------*/
  public function process_sap($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcorreo)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathsap.'/'.$tc.'-'.$_FILES["arc"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_sap_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathsap.'/'.$tc.'-'.$_FILES["arc"]["name"]) ) {
      if($this->update_sap($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to process pdf files COMPARATIVO
  /*--------------------------------------------------------------*/
  public function process_compara($id,$usuario,$tc) 
  {
    if(!empty($this->errors)){
        return false;
      }
    if(empty($this->fileName) || empty($this->fileTempPath)){
        $this->errors[] = "La ubicación del archivo no estaba disponible.";
        return false;
      }
    if(!is_writable($this->filesPathcompara)){
        $this->errors[] ="Debe tener permisos de escritura.";
        return false;
      }
    if( file_exists($this->filesPathcompara.'/'.$tc.'-'.$_FILES["file4"]["name"]) ) {
      $this->errors[] = "El archivo {$this->fileName} ya existe.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de usuario ausente.";
      return false;
    }
    $ext = explode(".",$this->fileName);
    $new_name = randString(8).$id.'.' . end($ext);

   

    $this->fileName = $new_name;
    if($this->user_compara_destroy($id)) {
    if( move_uploaded_file($this->fileTempPath,$this->filesPathcompara.'/'.$tc.'-'.$_FILES["file4"]["name"]) ) {
      if($this->update_compara($id,$usuario,$tc)) {
       unset($this->fileTempPath);
       return true;
      }
       } else {
         $this->errors[] = "Error en la carga del archivo, posiblemente debido a permisos incorrectos en la carpeta de carga.";
         return false;
       }
    }
  }
  /*--------------------------------------------------------------*/
  /* Function to update user image
  /*--------------------------------------------------------------*/
  private function update_userImg($id){
    global $db;
    $sql = "UPDATE users SET";
    $sql .=" image='{$db->escape($_FILES["file_upload"]["name"])}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }/*--------------------------------------------------------------*/
  /* Function to update documento cot1
  /*--------------------------------------------------------------*/
  private function update_cot1($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" cot1='{$db->escape('COT1'.'/'.$tc.'-'.$_FILES["file"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }/*--------------------------------------------------------------*/
  /* Function to update documento cot2
  /*--------------------------------------------------------------*/
  private function update_cot2($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" cot2='{$db->escape('COT2'.'/'.$tc.'-'.$_FILES["file1"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }/*--------------------------------------------------------------*/
  /* Function to update documento cot3
  /*--------------------------------------------------------------*/
  private function update_cot3($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" cot3='{$db->escape('COT3'.'/'.$tc.'-'.$_FILES["file2"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }
   /*--------------------------------------------------------------*/
  /* Function to update documento correo
  /*--------------------------------------------------------------*/
  private function update_correo($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" correo='{$db->escape('CORREO'.'/'.$tc.'-'.$_FILES["file3"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }
   /*--------------------------------------------------------------*/
  /* Function to update documento correo 1
  /*--------------------------------------------------------------*/
  private function update_correo1($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" correo1='{$db->escape('CORREO'.'/'.$tc.'-'.$_FILES["file5"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }
   /*--------------------------------------------------------------*/
  /* Function to update documento correo 2
  /*--------------------------------------------------------------*/
  private function update_correo2($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" correo2='{$db->escape('CORREO'.'/'.$tc.'-'.$_FILES["file6"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }
   /*--------------------------------------------------------------*/
  /* Function to update documento comparativo
  /*--------------------------------------------------------------*/
  private function update_compara($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" compara='{$db->escape('COMPARATIVO'.'/'.$tc.'-'.$_FILES["file4"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }
   /*--------------------------------------------------------------*/
  /* Function to update documento orden SAP
  /*--------------------------------------------------------------*/
  private function update_sap($id,$usuario,$tc){
    global $db;
    $sql = "UPDATE cotizacion SET";
    $sql .=" arc_orden='{$db->escape('ARCSAP'.'/'.$tc.'-'.$_FILES["arc"]["name"])}',usuario_update='{$db->escape($usuario)}'";
    $sql .=" WHERE id='{$db->escape($id)}'";
    $result = $db->query($sql);
    return ($result && $db->affected_rows() === 1 ? true : false);
   }
  /*--------------------------------------------------------------*/
  /* Function to delete the old image from the server
  /*--------------------------------------------------------------*/
  public function user_image_destroy($id) 
  {
    $image = find_by_id('users',$id);
    if($image['image'] === 'no_image.jpg')
    {
     return true;
    } else {
     unlink($this->userPath.'/'.$image['image']);
     return true;
    }
   }
   /*--------------------------------------------------------------*/
  /* Function to delete the old pdf cot1 from the server
  /*--------------------------------------------------------------*/
  public function user_pdf_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['cot1'] === '')
    {
     return true;
    } else {
     unlink($image['cot1']);
     return true;
    }
   }
  /*--------------------------------------------------------------*/
  /* Function to delete the old pdf cot2 from the server
  /*--------------------------------------------------------------*/
  public function user_pdfcot2_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['cot2'] === '')
    {
     return true;
    } else {
     unlink($image['cot2']);
     return true;
    }
   }
  /*--------------------------------------------------------------*/
  /* Function to delete the old pdf cot3 from the server
  /*--------------------------------------------------------------*/
  public function user_pdfcot3_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['cot3'] === '')
    {
     return true;
    } else {
     unlink($image['cot3']);
     return true;
    }
   }
  /*--------------------------------------------------------------*/
  /* Function to delete the old msg and pdf correo from the server
  /*--------------------------------------------------------------*/
  public function user_correo_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['correo'] === '')
    {
     return true;
    } else {
     unlink($image['correo']);
     return true;
    }
   }
    /*--------------------------------------------------------------*/
  /* Function to delete the old msg and pdf correo from the server
  /*--------------------------------------------------------------*/
  public function user_correo1_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['correo1'] === '')
    {
     return true;
    } else {
     unlink($image['correo1']);
     return true;
    }
   }
     /*--------------------------------------------------------------*/
  /* Function to delete the old msg and pdf correo from the server
  /*--------------------------------------------------------------*/
  public function user_correo2_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['correo2'] === '')
    {
     return true;
    } else {
     unlink($image['correo2']);
     return true;
    }
   }
   /*--------------------------------------------------------------*/
  /* Function to delete the old pdf comparativo from the server
  /*--------------------------------------------------------------*/
  public function user_compara_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['compara'] === '')
    {
     return true;
    } else {
     unlink($image['compara']);
     return true;
    }
   }
   /*--------------------------------------------------------------*/
  /* Function to delete the old pdf orden sap from the server
  /*--------------------------------------------------------------*/
  public function user_sap_destroy($id) 
  {
    $image = find_by_id('cotizacion',$id);
    if($image['arc_orden'] === '')
    {
     return true;
    } else {
     unlink($image['arc_orden']);
     return true;
    }
   }
  /*--------------------------------------------------------------*/
  /* Function to insert media image
  /*--------------------------------------------------------------*/
  private function insert_media()
  {
    global $db;
    $sql  = "INSERT INTO media ( file_name,file_type )";
    $sql .=" VALUES ";
    $sql .="(
      '{$db->escape($this->fileName)}',
      '{$db->escape($this->fileType)}'
    )";
    return ($db->query($sql) ? true : false);
  }
  /*--------------------------------------------------------------*/
  /* Function to delete media by id
  /*--------------------------------------------------------------*/
  public function media_destroy($id,$file_name){
    $this->url = $file_name;
    if(empty($this->url)) {
      $this->errors[] = "Falta el archivo de documento.";
      return false;
    }
    if(!$id){
      $this->errors[] = "ID de documento ausente.";
      return false;
    }
    if(delete_by_id('files',$id)){
      unlink($this->url);
      return true;
    } else {
      $this->error[] = "Se ha producido un error en la eliminación del documento.";
      return false;
    }
  }

}

?>