<?php
class clienteC_model extends CI_Model { 
   public function __construct() {
      parent::__construct();
   }
   public function guardar($parametro){//guarda los datos de un nuevo cliente en la bd

     $campos=array(
         'IdClientes' => $parametro['IdClientes'],
         'NombreCliente' => $parametro['NombreCliente'],
         'FechaNacimientoCliente' => $parametro['FechaNacimientoCliente'],
         'TelefonoCliente' => $parametro['TelefonoCliente'],
         'CelularCliente' => $parametro['CelularCliente'],
         'CorreoCliente' => $parametro['CorreoCliente'],
         'DireccionCliente' => $parametro['DireccionCliente'],
         'EdadCliente' => $parametro['EdadCliente'],
         'SexoCliente' => $parametro['SexoCliente'],
         'EstadoCivil' => $parametro['EstadoCivil'],
         'Ocupacion' => $parametro['Ocupacion'],
         'MedioInformacion' => $parametro['MedioInformacion'],
         'RecomendadoPor' => $parametro['RecomendadoPor'],
         'Autoriza' => $parametro['Autoriza'],
         'Franquicias_IdFranquicias' => $parametro['Franquicias_IdFranquicias'],
         'usuarios_idUsuario' => $parametro['usuarios_idUsuario'],
      );
      $this->db->insert('clientes',$campos);
      $id=  $this->db->insert_id();
      //Valida que se haya hecho la consulta
        $res=$this->db->affected_rows();
          if($res==1){
            //Muestra una alerta de que los datos se guardarón correctamente
            echo "<script>alert('Datos guardados correctamente');
  window.location.href='/SM/clientes/cosmetologo/clienteC';
  </script>";
            // echo "<script>alert('Datos guardados correctamente');</script>";
            // redirect('clientes/cosmetologo/clienteC', 'refresh');
          }else{
            //Muestra una alerta de que los datos no se guardarón correctamente
            echo "<script>alert('Los datos no pudieron ser guardados correctamente');
  window.location.href='/SM/clientes/cosmetologo/clienteC';
  </script>";

          }
  
   }
   

  // public function eliminar ($id){//elimina un cliente por medio de la variable $id que es pasada por el controlador
      
  //     $this->db->where('IdClientes', $id);
  //     $this->db->delete('clientes');
  //     $res=$this->db->affected_rows();
  //     //Valida que se haya hecho la consulta
  //     if($res==-1){
  //       //Muestra una alerta de que los datos no se eliminarón correctamente
  //      echo "<script>alert('Error, no se pudierón eliminar los datos debido a que se estan usuando en otras tablas');</script>";
  //           redirect('clientes/cosmetologo/clienteC', 'refresh');
  //     }else{
  //       //Muestra una alerta de que los datos se eliminarón correctamente
  //       echo "<script>alert('Los datos se han eliminado correctamente');</script>";
  //       redirect('clientes/cosmetologo/clienteC', 'refresh');
  //     }
  //  }

public function BuscarClientesFranquicias($id){
  $data['Franquicias']=$this->BuscarFranquicia();

  if($data['Franquicias'] != ''){

      foreach ($data['Franquicias'] as $i => $Franquicias)
      $this->db->select('*');
      $this->db->from('clientes');
      $this->db->where('clientes.Franquicias_IdFranquicias', $i);
      $this->db->where('clientes.IdClientes', $id);
      $query=$this->db->get();

      if($query->num_rows()>0){
         return "TRUE";

      }else{
         return "FALSE";
      }
    }else{
    return "0";
  }
  }

  
   public function obtenerenlace ($id){//permite acceder al id del cliente que se desea editar por medio de la variable $id que es pasada 
      $this->db->where('IdClientes', $id);
      $query=$this->db->get('clientes');
      if($query->num_rows()>0){
         return $query;

      }else{
         return FALSE;
      }
   }


   public function editarenlace ($IdClientes, $data)//permite guardar en la bd la información que se modificó del cliente
   {$NombreCliente=$data['NombreCliente'];
   $RutaFirmaDigital=$data['RutaFirmaDigital'];

date_default_timezone_set('America/Mexico_City');
$time = time();  
$fechaActual = date("d-m-Y H:i:s", $time);

   ///////////////////////////
          $this->db->select('*');
          $this->db->from('clientes');
          $this->db->where('IdClientes',$IdClientes);
          $query = $this->db->get();

           $modificarClientes ="";

      foreach ($query->result() as $value)
            $ExistenciaFirma = $value->RutaFirmaDigital;
            $UltimaFirma = $value->RutaUltimaFirmaModificada;
            $historicoF = $value->HistoricoFirmas;

            if($ExistenciaFirma == null){
              if ($RutaFirmaDigital == null || $RutaFirmaDigital == '') {
                  $RutaFirmaDigital = null;
              }else{
                $path = "files/firmas/";
                if (!is_dir($path)) {
                    mkdir($path, 0777, true);
                    chmod($path, 0777);
                }
                $filteredData=substr($RutaFirmaDigital, strpos($RutaFirmaDigital, ",")+1);
                // Need to decode before saving since the data we received is already base64 encoded
                $decodedData=base64_decode($filteredData);
                //$NombreClienteF = $this->ExpedienteF_model->cliente($idExp);
                // store in server
                $fic_name = $NombreCliente.'_'.$IdClientes.'_'.date("YmdHis").'.png';            
                $fp = fopen($path.$fic_name, 'wb');
                $ok = fwrite( $fp, $decodedData);
                fclose( $fp );

                $RutaFirmaDigital= $path.$fic_name;
              } 
              $modificarClientes = array(
                'NombreCliente' => $data['NombreCliente'],
                'FechaNacimientoCliente' => $data['FechaNacimientoCliente'],
                'TelefonoCliente' => $data['TelefonoCliente'],
                'CelularCliente' => $data['CelularCliente'],
                'CorreoCliente' => $data['CorreoCliente'],
                'DireccionCliente' => $data['DireccionCliente'],
                'EdadCliente' => $data['EdadCliente'],
                'SexoCliente' => $data['SexoCliente'],
                'EstadoCivil' => $data['EstadoCivil'],
                'Ocupacion' => $data['Ocupacion'],
                'MedioInformacion' => $data['MedioInformacion'],
                'RecomendadoPor' => $data['RecomendadoPor'],
                'Franquicias_IdFranquicias' => $data['Franquicias_IdFranquicias'],
                'Autoriza' => $data['Autoriza'],
                
                'RutaFirmaDigital' => $RutaFirmaDigital, 
                'RutaUltimaFirmaModificada' => null, 
                'HistoricoFirmas' => $fechaActual.' -> '.'Creación de firma principal',
                'UsuarioModificacion' => $data['UsuarioModificacion'],
              );
              $this->db->where('IdClientes', $IdClientes);
              $this->db->update('clientes', $modificarClientes);
              $res=$this->db->affected_rows();
          }else{
            $newFirma = "";
            $historicoFirmasCliente = "";
            if($ExistenciaFirma == $RutaFirmaDigital){
                $newFirma = null;
                $historicoFirmasCliente = $historicoF;
            }else{
              if($UltimaFirma != ''){
                if($UltimaFirma == $RutaFirmaDigital){
                  $newFirma = $UltimaFirma;
                  $historicoFirmasCliente = $historicoF;
                }else{
                  if ($RutaFirmaDigital == null || $RutaFirmaDigital == '') {
                      $RutaFirmaDigital = null;
                    }else{
                      $path = "files/firmas/";
                      if (!is_dir($path)) {
                          mkdir($path, 0777, true);
                          chmod($path, 0777);
                      }
                      $filteredData=substr($RutaFirmaDigital, strpos($RutaFirmaDigital, ",")+1);
                      // Need to decode before saving since the data we received is already base64 encoded
                      $decodedData=base64_decode($filteredData);
                      //$NombreClienteF = $this->ExpedienteF_model->cliente($idExp);
                      // store in server
                      $fic_name = $NombreCliente.'_'.$IdClientes.'_'.date("YmdHis").'.png';            
                      $fp = fopen($path.$fic_name, 'wb');
                      $ok = fwrite( $fp, $decodedData);
                      fclose( $fp );

                      $RutaFirmaDigital= $path.$fic_name;
                    } 

                    $newFirma = $RutaFirmaDigital;
                    $historicoFirmasCliente = $historicoF."///".$fechaActual.' -> '.'Modificación firma principal';
                }

              }else{
                 if ($RutaFirmaDigital == null || $RutaFirmaDigital == '') {
                      $RutaFirmaDigital = null;
                  }else{
                    $path = "files/firmas/";
                    if (!is_dir($path)) {
                        mkdir($path, 0777, true);
                        chmod($path, 0777);
                    }
                    $filteredData=substr($RutaFirmaDigital, strpos($RutaFirmaDigital, ",")+1);
                    // Need to decode before saving since the data we received is already base64 encoded
                    $decodedData=base64_decode($filteredData);
                    //$NombreClienteF = $this->ExpedienteF_model->cliente($idExp);
                    // store in server
                    $fic_name = $NombreCliente.'_'.$IdClientes.'_'.date("YmdHis").'.png';            
                    $fp = fopen($path.$fic_name, 'wb');
                    $ok = fwrite( $fp, $decodedData);
                    fclose( $fp );

                    $RutaFirmaDigital= $path.$fic_name;
                  } 
                  $newFirma = $RutaFirmaDigital;
                  $historicoFirmasCliente = $historicoF."///".$fechaActual.' -> '.'Modificación firma principal';
              }
             
            }

            $modificarClientes = array(
                'NombreCliente' => $data['NombreCliente'],
                'FechaNacimientoCliente' => $data['FechaNacimientoCliente'],
                'TelefonoCliente' => $data['TelefonoCliente'],
                'CelularCliente' => $data['CelularCliente'],
                'CorreoCliente' => $data['CorreoCliente'],
                'DireccionCliente' => $data['DireccionCliente'],
                'EdadCliente' => $data['EdadCliente'],
                'SexoCliente' => $data['SexoCliente'],
                'EstadoCivil' => $data['EstadoCivil'],
                'Ocupacion' => $data['Ocupacion'],
                'MedioInformacion' => $data['MedioInformacion'],
                'RecomendadoPor' => $data['RecomendadoPor'],
                'Franquicias_IdFranquicias' => $data['Franquicias_IdFranquicias'],
                'Autoriza' => $data['Autoriza'],

                'RutaUltimaFirmaModificada' => $newFirma, 
                'HistoricoFirmas' => $historicoFirmasCliente,
                'UsuarioModificacion' => $data['UsuarioModificacion'],
              );
            $this->db->where('IdClientes', $IdClientes);
            $this->db->update('clientes', $modificarClientes);
            $res=$this->db->affected_rows();
          }
      //Valida que se haya hecho la consulta
      if($res>0){
        //Muestra una alerta de que los datos se guardarón correctamente
        $actualizaNombre = $this->editarNombre($IdClientes,$NombreCliente);
        echo "1";
      }
      // else if($res==-1){
      //   //Muestra una alerta cuando no se realizo
      //   echo "-1";
      // }
      else{
        echo "0";

      }
   }
   function editarNombre($IdClientes,$NombreCliente)
   {
     $this->db->set('ClienteVenta', $NombreCliente);  //value that used to update column 
    $this->db->where('IdCliente', $IdClientes); //which row want to upgrade  
    $this->db->update('ventas');  //table name
    $res=$this->db->affected_rows();
       //Verifica que la consulta se realizo 
      if($res==0){
        return 0;
            // redirect('clientes/cosmetologo/clienteC', 'refresh'); 
        }else {
          return 1;
            // redirect('clientes/cosmetologo/clienteC', 'refresh');
          
        }
      }

public function BuscarUsuarioC($i){
     $this->db->select('*');
     $this->db->from('usuarios');
     $this->db->where('Franquicias_IdFranquicias',$i);
     $this->db->where('Estatus', 'Activo');

     $query=$this->db->get();
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->NombreUsuario, ENT_QUOTES)] = htmlspecialchars($row->NombreUsuario, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
         }  

  public function BuscarFranq(){// Realiza una consulta a la bd para buscar las franquicias que existen y poder mandar el resultado
     $query = $this->db-> query('SELECT IdFranquicias,NombreFranquicia FROM franquicias'); 
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->IdFranquicias, ENT_QUOTES)] = htmlspecialchars($row->NombreFranquicia, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
         }


   public function BuscarFranquicia(){// Realiza una consulta a la bd para buscar las franquicias que existen y poder mandar el resultado
     $this->db->select('*');
     $this->db->from('usuarios');
     $this->db->join('franquicias','Franquicias_IdFranquicias=IdFranquicias','inner');
     $this->db->where('IdUsuarios',$this->session->userdata('IdUsuarios'));
     $query=$this->db->get();
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->IdFranquicias, ENT_QUOTES)] = htmlspecialchars($row->NombreFranquicia, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
         }

    public function BuscarCliente(){// Realiza una consulta a la bd para buscar los clientes que existen y poder mandar el resultado
    $data['Franquicias']=$this->clienteC_model->BuscarFranquicia();
    foreach ($data['Franquicias'] as $i => $Franquicias) 
    $this->db->SELECT('*');
    $this->db->FROM('clientes');
    $this->db->join('franquicias','Franquicias_IdFranquicias = IdFranquicias','inner');
    $this->db->where('Franquicias_IdFranquicias',$i);
    $query=$this->db->get();
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->IdClientes, ENT_QUOTES)] = htmlspecialchars($row->NombreCliente, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
         }

    function BuscarClienteExcepto($id){// Realiza una consulta a la bd para buscar los clientes que existen y poder mandar el resultado
    $data['Franquicias']=$this->clienteC_model->BuscarFranquicia();
    foreach ($data['Franquicias'] as $i => $Franquicias) 
    $this->db->SELECT('*');
    $this->db->FROM('clientes');
    $this->db->join('franquicias','Franquicias_IdFranquicias = IdFranquicias','inner');
    $this->db->where('Franquicias_IdFranquicias',$i);
    $this->db->where('IdClientes != ',$id);
    $query=$this->db->get();
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->IdClientes, ENT_QUOTES)] = htmlspecialchars($row->NombreCliente, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
    }

    public function obtenerNombre ($IdClientes){
    $this->db->select('*');
    $this->db->where('IdClientes', $IdClientes);
    $query=$this->db->get('clientes');
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->IdClientes, ENT_QUOTES)] = htmlspecialchars($row->NombreCliente, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
         }
    public function BuscarZona(){
     $this->db->select('*');
     $this->db->from('usuarios');
     $this->db->join('franquicias','Franquicias_IdFranquicias=IdFranquicias','inner');
     $this->db->join('zona','Zona_IdZona=IdZona','inner');
     $this->db->where('IdUsuarios',$this->session->userdata('IdUsuarios'));
     $query=$this->db->get();
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->IdZona, ENT_QUOTES)] = htmlspecialchars($row->NombreZona, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
         }
         
       public function BuscarModelo(){
     $this->db->select('*');
     $this->db->from('usuarios');
     $this->db->join('franquicias','Franquicias_IdFranquicias=IdFranquicias','inner');
     $this->db->join('modelo','Modelo_IdModelo=IdModelo','inner');
     $this->db->where('IdUsuarios',$this->session->userdata('IdUsuarios'));
     $query=$this->db->get();
       if ($query->num_rows() > 0) { 
        foreach($query->result() as $row) 
         $arrDatos[htmlspecialchars($row->IdModelo, ENT_QUOTES)] = htmlspecialchars($row->IdModelo, ENT_QUOTES); 
            $query->free_result(); 
            return $arrDatos; }
         }

      public function BuscarServiciosFranquicia(){
    $this->db->select('*');
    $this->db->join('serviciosgenerales','ServiciosGenerales_IdServiciosGenerales = IdServiciosGenerales','inner');
     return $this->db->get('serviciosfranquicias')->result();
    }
    public function BuscarServiciosGenerales(){
    // $data['Zona']=$this->clienteC_model->BuscarZona();
    // foreach ($data['Zona'] as $a => $Zona) 
    $data['Modelo']=$this->clienteC_model->BuscarModelo();
    foreach ($data['Modelo'] as $j => $Modelo)

    $this->db->select('*');
   // $this->db->where('Zona_IdZona',$a);
    //$this->db->where('Modelo_IdModelo',$j);
    $this->db->WHERE("(TipoServicio_IdTipoServicio = '2' OR TipoServicio_IdTipoServicio = '3')");
    return $this->db->get('serviciosgenerales')->result();
    }
    public function Buscarpromociones(){
    // $data['Zona']=$this->clienteC_model->BuscarZona();
    // foreach ($data['Zona'] as $a => $Zona) 
    $data['Modelo']=$this->clienteC_model->BuscarModelo();
    foreach ($data['Modelo'] as $j => $Modelo)
    $this->db->select('*');
    // $this->db->where('Zona_IdZona',$a);
     $this->db->where('ClasePromocion','Servicio');
    return $this->db->get('promociones')->result();
    }
    public function todosClientes()
    {
       $data['Franquicias']=$this->clienteC_model->BuscarFranquicia();
       foreach ($data['Franquicias'] as $i => $Franquicias)
      $this->db->select("*");
      $this->db->where('franquicias_IdFranquicias',$i);
      // $this->db->where('FechaCreacion >=', $inicio.' 00:00:00');
      // $this->db->where('FechaCreacion <=', $fin.' 23:59:59');
      $this->db->from('clientes');
      $query=$this->db->get();
      $cliente=[];
      if ($query->num_rows() > 0) {         
       foreach($query->result() as $fila)
       {
        $cliente[] = array(
                            $fila->IdClientes, 
                            $fila->NombreCliente, 
                            $fila->CelularCliente, 
                            $fila->CorreoCliente, 
                            $fila->Autoriza,
                            $fila->FechaCreacion,  
                            '<a href="'.base_url().'clientes/cosmetologo/clienteC/editar/'.$fila->IdClientes.'" class="label label-primary"><span class="glyphicon glyphicon-pencil"></a></span>', 
                          );
                         
       }         
      } 
      echo json_encode($cliente);     
  
    }
    function BuscarExpediente($id)
    {// Realiza una consulta a la bd para buscar los clientes que existen y poder mandar el resultado
       $this->db->SELECT('*');
       $this->db->FROM('expediente');
       $this->db->where('clientes_IdClientes',$id);
       $query=$this->db->get();
          if ($query->num_rows() > 0) 
          { 
             return "1";
          }
 
    }
    public function BuscarDatosFranquicia(){
      $this->db->select('*');
      $this->db->from('franquicias');
      $this->db->join('usuarios','Franquicias_IdFranquicias=IdFranquicias','inner');
      $this->db->where('IdUsuarios',$this->session->userdata('IdUsuarios'));
          $query=$this->db->get();
         $res = $query->row();
          return $res;   
     }  


//////////////////////////////////////////////////////////////////////////busqueda certificados del cliente /////////////////////////////////////////////////////////////////////////////////
  function serviciosGeneralesCertificados($IdCliente){
    $this->db->select('*');
    $this->db->from('ventas_has_serviciosfranquicias');
    $this->db->join('ventas','ventas_has_serviciosfranquicias.ventas_IdVentas = ventas.IdVentas','inner');
    $this->db->join('serviciosgenerales','ventas_has_serviciosfranquicias.serviciosfranquicias_IdServiciosFranquicias = serviciosgenerales.Codigo_Servicios','inner');
    $this->db->where('ventas.IdCliente', $IdCliente);
    $this->db->where('ventas_has_serviciosfranquicias.FolioC != ""');
    $this->db->where('ventas_has_serviciosfranquicias.NombreCertificadoS != ""');

    $query = $this->db->get();
    return $query;
    
 }
 function serviciosFranquiciasCertificados($IdCliente){
     $this->db->select('*');
     $this->db->from('ventas_has_serviciosfranquicias');
     $this->db->join('ventas','ventas_has_serviciosfranquicias.ventas_IdVentas = ventas.IdVentas','inner');
     $this->db->join('serviciosfranquicias','ventas_has_serviciosfranquicias.serviciosfranquicias_IdServiciosFranquicias = serviciosfranquicias.IdServiciosFranquicias','inner');
     $this->db->join('serviciosgenerales','serviciosfranquicias.ServiciosGenerales_IdServiciosGenerales =  serviciosgenerales.IdServiciosGenerales','inner');
     $this->db->where('ventas.IdCliente', $IdCliente);
     $this->db->where('ventas_has_serviciosfranquicias.FolioC != ""');
     $this->db->where('ventas_has_serviciosfranquicias.NombreCertificadoS != ""');
 
     $query = $this->db->get();
 
     return $query;
 }
 function promocionesCertificados($IdCliente){
    $this->db->select('*');
    $this->db->from('ventas_has_promociones');
    $this->db->join('ventas','ventas_has_promociones.ventas_IdVentas = ventas.IdVentas','inner');
    $this->db->join('promociones','ventas_has_promociones.promociones_IdPromociones = promociones.IdPromociones','inner');
    $this->db->where('ventas.IdCliente', $IdCliente);
    $this->db->where('ventas_has_promociones.FolioPr != ""');
    $this->db->where('ventas_has_promociones.NombreCertificadoPr != ""');
 
     $queryDos = $this->db->get();
 
     return $queryDos;
 
 }

public function BuscarNombreCliente($nombre){
      $data['Franquicias']=$this->BuscarFranquicia();
      foreach ($data['Franquicias'] as $i => $Franquicias) 
         $this->db->select('*');
         $this->db->where('Franquicias_IdFranquicias',$i);
         $this->db->where('NombreCliente',$nombre);
         $query = $this->db->get('clientes');
         if ($query->num_rows() > 0) { 
            echo 2;
         }else{
            echo 1;
         }
     }

public function BuscarIDCliente($ID){
      $data['Franquicias']=$this->BuscarFranquicia();
      foreach ($data['Franquicias'] as $i => $Franquicias) 
         $this->db->select('*');
         $this->db->from('clientes');
         $this->db->where('Franquicias_IdFranquicias',$i);
         $this->db->where('IdClientes',$ID);
         $query = $this->db->get();
         if ($query->num_rows() > 0) { 
            foreach ($query->result() as $value)
            return $value->NombreCliente;
         }else{
            return "0";
         }
     }

public function guardarCliente($campos){
      $this->db->insert('clientes',$campos);
      $id=  $this->db->insert_id();
      $res=$this->db->affected_rows();
      if($res==1)
      {
        $this->db->select('*');
        $this->db->from('clientes');
        $this->db->where('IdClientes',$id);
        $query=$this->db->get();
        foreach ($query->result() as $value)
          // $nombre = $value->NombreCliente;
        
         echo $id."///".$value->NombreCliente;
      }
}

function asignarCertificado($tipoVenta, $idDetalleVenta, $status, $IDclienteSeleccionado){
  $data=array(
    'StatusCertificado' => $status,
    'VerificacionCertificado' => $IDclienteSeleccionado,
  );
  if($tipoVenta == 'servicio'){

    $this->db->where('IdVentasServicios', $idDetalleVenta); 
    $this->db->update('ventas_has_serviciosfranquicias',$data); 
    $res=$this->db->affected_rows();
       //Verifica que la consulta se realizo 
      if($res==0){
        echo "0";
        }else {
          echo "1";         
        }

  }

}

}
