<?php

class mysqlcalendario {
  private $usuario;
  private $servidor;
  private $password;
  private $base_datos;
  private $conexion;
  private $result;
  var $flag = false;
  static $_instance;
  function __construct(){
    require_once ("configdatos.php");
    $this->usuario= USER;
    $this->password= PASS;
    $this->servidor= HOST;
    $this->base_datos= DB;
    $this->conectar();
  }

public function getCalendarioPostventa($id_proyecto,$num_dias){
     mysql_query("SET lc_time_names = 'es_CL'");
      $calendario =$this->read("SELECT c.ID_CALENDARIO, 
                                      DATE_FORMAT(c.FEC_INICIO,'%W %d de %M de %Y %H:%i:%s') AS fec_inicio ,
                                       DATE_FORMAT(c.FEC_FIN,'%d/%m/%Y %H:%i:%s') AS fec_fin, 
                                       c.ID_PROYECTO, estado,
                                       p.ABREVIATURA, 
                                       p.PROYECTO,
                                       DATE_FORMAT(c.FEC_INICIO,'%d/%m/%Y') AS FECHAPOSTVENTA,
                                       DATE_FORMAT(c.FEC_INICIO,'%d/%m/%Y-%H:%i:%s') AS HORAINICIOCONFECHA
                                  FROM tblcalendarios c
                                  INNER JOIN tblproyectos p ON p.ID_PROYECTO = c.ID_PROYECTO
                                  WHERE c.FEC_INICIO >= ADDDATE( CURDATE( ) , $num_dias ) AND c.ESTADO ='0' AND c.ID_PROYECTO = '$id_proyecto' AND c.ID_TIPOCALENDARIO ='1' 
                                  ORDER BY c.FEC_INICIO ASC");
     return $calendario;
  }

public function getConfiguracioncalendarioBYnombre($nombre,$id_proyecto){
       $calendario =$this->read("SELECT ID_CONFIGURACION, DIA, NUMERO FROM tblconfigurarcalendariopostventas 
                             WHERE DIA = '$nombre' AND ID_PROYECTO = '$id_proyecto'");
     return $calendario;
  
}

public function getConfiguracioncalendarioPROYECTO($id_proyecto){
     $calendario =$this->read("SELECT ID_CONFIGURACION, DIA,NUMERO FROM tblconfigurarcalendariopostventas WHERE ID_PROYECTO = '$id_proyecto'");
     return $calendario;
}



public function getConfiguracioncalendario(){
     $calendario =$this->read("SELECT ID_CONFIGURACION, DIA,NUMERO FROM tblconfigurarcalendariopostventas");
     return $calendario;
  }


  public function getCalendarioMostrar($id_persona){
     $calendario =$this->read("SELECT 
                                  c.ID_CALENDARIO, 
                                  c.FEC_INICIO ,
                                  c.FEC_FIN,
                                  c.ID_PROYECTO, 
                                  c.ESTADO,
                                  t.ID_TICKET,
                                  po.ID_PROYECTO,
                                  po.PROYECTO,
                                  me.ABREVIATURA AS Edificio,
                                  p.NUMERO,
                                  po.ABREVIATURA,
                                  tt.ID_TIPOTICKET,
                                  c.ID_TIPOCALENDARIO,
                                  pe.ID_PERSONA,
                                  pe.INICIALES,
                                  t.ID_ESTADOTICKET,
                                  mo.ID_MOTIVO
                                  FROM tblcalendarios c
                                  INNER JOIN tblproyectos po ON po.ID_PROYECTO = c.ID_PROYECTO
                                  INNER JOIN  tblusuariosxproyectos up ON up.ID_PROYECTO = po.ID_PROYECTO
                                  INNER JOIN tblpersonas pe ON pe.ID_PERSONA = c.ID_PERSONA_RESP
                                  LEFT JOIN tblticketcalendarios tc ON tc.ID_CALENDARIO = c.ID_CALENDARIO
                                  LEFT JOIN tbltickets t ON t.ID_TICKET = tc.ID_TICKET
                                  LEFT JOIN tblpropiedades p ON p.ID_PROPIEDAD = t.ID_PROPIEDAD
                                  LEFT JOIN tblmodelopropiedades m ON p.ID_MODELO = m.ID_MODELO
                                  LEFT JOIN tbltipopropiedades tp ON tp.ID_TIPOPROPIEDAD = m.ID_TIPOPROPIEDAD
                                  LEFT JOIN tblconfiguracionetapas ce ON ce.ID_DISENOETAPA = p.ID_DISENOETAPA
                                  LEFT JOIN tblmodelounidadconstrucciones  me ON me.ID_MODELOUNIDADCONSTRUCCION = ce.ID_MODELOUNIDADCONSTRUCCION
                                  LEFT JOIN tbletapas e ON e.ID_ETAPA = ce.ID_ETAPA
                                  LEFT JOIN tbltipotickets tt ON tt.ID_TIPOTICKET = t.ID_TIPOTICKET
                                  LEFT JOIN tblticketcancelados td ON td.ID_TICKET = t.ID_TICKET
                                  LEFT JOIN tblmotivos mo ON mo.ID_MOTIVO = td.ID_MOTIVO
                                  WHERE  up.ID_PERSONA = '$id_persona'
                                  ORDER BY c.FEC_INICIO ASC");
     return $calendario;
  }





  public function getCalendarioMostrarParametro($parametro,$id_persona){
      $calendario =$this->read("SELECT 
                                  c.ID_CALENDARIO, 
                                  c.FEC_INICIO ,
                                  c.FEC_FIN,
                                  c.ID_PROYECTO, 
                                  c.ESTADO,
                                  t.ID_TICKET,
                                  po.ID_PROYECTO,
                                  po.PROYECTO,
                                  me.ABREVIATURA AS Edificio,
                                  p.NUMERO,
                                  po.ABREVIATURA,
                                  tt.ID_TIPOTICKET,
                                  c.ID_TIPOCALENDARIO,
                                  pe.ID_PERSONA,
                                  pe.INICIALES,
                                  t.ID_ESTADOTICKET,
                                  mo.ID_MOTIVO
                                  FROM tblcalendarios c
                                  INNER JOIN tblproyectos po ON po.ID_PROYECTO = c.ID_PROYECTO
                                  INNER JOIN  tblusuariosxproyectos up ON up.ID_PROYECTO = po.ID_PROYECTO
                                  INNER JOIN tblpersonas pe ON pe.ID_PERSONA = c.ID_PERSONA_RESP
                                  LEFT JOIN tblticketcalendarios tc ON tc.ID_CALENDARIO = c.ID_CALENDARIO
                                  LEFT JOIN tbltickets t ON t.ID_TICKET = tc.ID_TICKET
                                  LEFT JOIN tblpropiedades p ON p.ID_PROPIEDAD = t.ID_PROPIEDAD
                                  LEFT JOIN tblmodelopropiedades m ON p.ID_MODELO = m.ID_MODELO
                                  LEFT JOIN tbltipopropiedades tp ON tp.ID_TIPOPROPIEDAD = m.ID_TIPOPROPIEDAD
                                  LEFT JOIN tblconfiguracionetapas ce ON ce.ID_DISENOETAPA = p.ID_DISENOETAPA
                                  LEFT JOIN tblmodelounidadconstrucciones  me ON me.ID_MODELOUNIDADCONSTRUCCION = ce.ID_MODELOUNIDADCONSTRUCCION
                                  LEFT JOIN tbletapas e ON e.ID_ETAPA = ce.ID_ETAPA
                                  LEFT JOIN tbltipotickets tt ON tt.ID_TIPOTICKET = t.ID_TIPOTICKET
                                  LEFT JOIN tblticketcancelados td ON td.ID_TICKET = t.ID_TICKET
                                  LEFT JOIN tblmotivos mo ON mo.ID_MOTIVO = td.ID_MOTIVO
                                  $parametro   up.ID_PERSONA = '$id_persona'
                                  ORDER BY c.FEC_INICIO ASC");
     return $calendario;

  }



public function gettipocalendario(){
        $tipocalendario =$this->read("SELECT ID_TIPOCALENDARIO, TIPOCALENDARIO FROM tbltipocalendarios");
     return $tipocalendario;
}


public function gethoracalendarioBYID($id_calendario){
       mysql_query("SET lc_time_names = 'es_CL'");
      $tipocalendario =$this->read("SELECT  c.ID_CALENDARIO, 
                                            c.ID_PROYECTO,  
                                            c.ID_TIPOCALENDARIO, 
                                            c.ID_PERSONA_REGISTRAR,  
                                            c.ID_PERSONA_RESP,
                                            DATE_FORMAT(c.FEC_INICIO,'%d/%m/%Y %H:%i:%s') AS fec_inicio , 
                                            c.FEC_FIN, 
                                            c.ESTADO 
                                            FROM  tblcalendarios c
                                            WHERE c.ID_CALENDARIO = '$id_calendario'");
     return $tipocalendario;

}



public function nuevoEvento($id_proyecto,$tipocalendario,$responsable,$registra,$fec_inicio,$fec_fin){
  $queryhora = "INSERT INTO tblcalendarios( ID_PROYECTO,ID_TIPOCALENDARIO, ID_PERSONA_REGISTRAR,ID_PERSONA_RESP, FEC_INICIO, FEC_FIN,ESTADO) 
                VALUES ('$id_proyecto','$tipocalendario','$registra','$responsable','$fec_inicio','$fec_fin','0')";
    if(mysql_query($queryhora)){
          return "1";
      }else{
        return mysql_error();
       }
}



public function nuevoEvento2Visitas($id_ticket,$id_proyecto,$tipocalendario,$id_persona_responsable,$usuario_registra,$fec_inicio,$fec_fin){
  

  $queryhora = "INSERT INTO tblcalendarios(ID_PROYECTO,ID_TIPOCALENDARIO, ID_PERSONA_REGISTRAR,ID_PERSONA_RESP, FEC_INICIO, FEC_FIN,ESTADO) 
                VALUES ('$id_proyecto','$tipocalendario','$usuario_registra','$id_persona_responsable','$fec_inicio','$fec_fin','1')";
    if(mysql_query($queryhora)){
	      $id_calendario = mysql_insert_id();
           $queryticketcalendario = "INSERT INTO tblticketcalendarios(ID_TICKET,ID_CALENDARIO,OBSERVACION) 
                                        VALUES ('$id_ticket','$id_calendario','')";
           if(mysql_query($queryticketcalendario)){
           		  $movi= 2;//MOVIMIENTO 3 , PERETENE A CAMBIAR HORARIO
                  $guardarMOV = $this->Movivimiento($id_ticket,$movi,$usuario_registra,$fec_inicio);
                   if($guardarMOV == "1"){
                     return $id_calendario;
                   }else{
                    return mysql_error();
                   }

           }else{
            return mysql_error();
           }


      }else{
        return mysql_error();
       }
}

public function reagendarVisita($id_ticket,$id_calendario,$id_proyecto,$id_persona_responsable,$usuario_registra,$fec_inicio,$fec_fin){
  
  $tipocalendario = 1;
  $eliminarEventoTicket = $this->eliminarEventoTicket($id_calendario,$id_ticket);
  $eliminarEvento = $this->eliminarEvento($id_calendario);

  $queryhora = "INSERT INTO tblcalendarios(ID_PROYECTO,ID_TIPOCALENDARIO, ID_PERSONA_REGISTRAR,ID_PERSONA_RESP, FEC_INICIO, FEC_FIN,ESTADO) 
  VALUES ('$id_proyecto','$tipocalendario','$usuario_registra','$id_persona_responsable','$fec_inicio','$fec_fin','1')";

    if(mysql_query($queryhora)){
    $id_calendario = mysql_insert_id();
    $queryticketcalendario = "INSERT INTO tblticketcalendarios(ID_TICKET,ID_CALENDARIO,OBSERVACION) 
                              VALUES ('$id_ticket','$id_calendario','$observacion')";
                              
    if(mysql_query($queryticketcalendario)){
      $movi= 2;
        $guardarMOV = $this->Movivimiento($id_ticket,$movi,$usuario_registra,$fec_inicio);
        if($guardarMOV == "1"){
          return $id_calendario;
        }else{
          return mysql_error();
        }

    }else{
    return mysql_error();
    }


    }else{
    return mysql_error();
    }
}




  private function Movivimiento($id_ticket,$mov,$id_registra,$observacion){
    $fecharegistro =date("Y-m-d H:i:s");
    $querymovimiento = "INSERT INTO tblticketmovimientos(ID_MOVIMIENTO, ID_TICKET,ID_PERSONA_REG, OBSERVACION,FEC_REGISTRO)
                         VALUES ('$mov','$id_ticket','$id_registra','$observacion','$fecharegistro')";

     if(mysql_query($querymovimiento)){
          return "1";
      }else{
        return mysql_error();
       }

  }


 

public function eventomasivo($proyecto,$id_tipocalendario,$id_persona_registra,$id_persona_responsable,$listafechasconhoras){
    for ($i=0;$i<count($listafechasconhoras); $i++){
            $fec_inicio = $listafechasconhoras[$i]['fec_inicio'];
            $fec_fin = $listafechasconhoras[$i]['fec_fin'];
             $queryhora = "INSERT INTO tblcalendarios( ID_PROYECTO,ID_TIPOCALENDARIO, ID_PERSONA_REGISTRAR,ID_PERSONA_RESP, FEC_INICIO, FEC_FIN,ESTADO) 
            VALUES ('$proyecto','$id_tipocalendario','$id_persona_registra','$id_persona_responsable','$fec_inicio','$fec_fin','0')";

                 if(mysql_query($queryhora)){  
                }else{
                    return mysql_error();
                }

    }
}



public function getMaximo(){
      $calendario =$this->read("SELECT ID_MAXIMOPOSTVENTA, MAXIMO ,DIA FROM tblmaximopostventas");
     return $calendario;
  }

public function updatemaximo($id_maximo,$numero){
     $updatemaximo = "UPDATE tblmaximopostventas SET MAXIMO='$numero' WHERE ID_MAXIMOPOSTVENTA = '$id_maximo'";
     if(mysql_query($updatemaximo)){
        return "1";
     }else{
      return mysql_error();
     }
}

public function setdia($id_maximo,$numero){
     $updatemaximo = "UPDATE tblmaximopostventas SET DIA='$numero' WHERE ID_MAXIMOPOSTVENTA = '$id_maximo'";
     if(mysql_query($updatemaximo)){
        return "1";
     }else{
      return mysql_error();
     }
}




public function eliminarEventoTicket($id_calendario,$id_ticket){
  $queryeliminar= "DELETE FROM  tblticketcalendarios 
                     WHERE  ID_CALENDARIO ='$id_calendario' AND ID_TICKET = '$id_ticket'";
    if(mysql_query($queryeliminar)){
       return "1";
   }else{
     return mysql_error();
    }
}


//ELIMINAR LA HORA DE LA PRIMERA VISITA ; YA QUE DESORDENA EL HISTORIAL ; IGUAL QUEDA REGISTRO DEL MOVIMIENTO
 public function eliminarEvento($id_calendario){
     $queryeliminar= "DELETE FROM  tblcalendarios 
                        WHERE  ID_CALENDARIO ='$id_calendario'";
       if(mysql_query($queryeliminar)){
          return "1";
      }else{
        return mysql_error();
       }
 }




public function setCalendarioConfiguracion($id_proyecto,$listadias){
  $querydelete = "DELETE FROM `tblconfigurarcalendariopostventas` WHERE ID_PROYECTO = '$id_proyecto'";  
  if(mysql_query($querydelete)){
          for ($i=0;$i<count($listadias); $i++){
              $dia = $listadias[$i]['DIA'];
              $numero = $listadias[$i]['NUMERO'];
              $queryconfig  = "INSERT INTO tblconfigurarcalendariopostventas(ID_PROYECTO,DIA,NUMERO) VALUES ('$id_proyecto','$dia','$numero')";
                   if(mysql_query($queryconfig)){  
                  }else{
                      return mysql_error();
                  }
          }

  }else{
    return mysql_error();
  }

}







//UPDATE CONFIGURACION DE DIAS CALENDARIO POSTVENTA
public function Updatedias($id_configuracion,$numero){
     $updatedias = "UPDATE tblconfigurarcalendariopostventas SET NUMERO='$numero'
                       WHERE ID_CONFIGURACION = '$id_configuracion'";
     if(mysql_query($updatedias)){
        return "1";
     }else{
      return mysql_error();
     }
}

 private function read($sql){
  $resultado = mysql_query($sql); 
   if(mysql_num_rows($resultado)> 0){
     while($fila = mysql_fetch_array($resultado)){
         $arreglo[] =$fila;
       }
         return $arreglo;
   }else{
     return "0";
   }
  }

  private function conectar(){

  $this->conexion = mysql_connect($this->servidor,$this->usuario,$this->password);
  mysql_select_db($this->base_datos,$this->conexion);
  @mysql_query("SET NAMES 'utf8'");
 }


}
?>