<?php
require_once('includes/definition.php');

class banks_model{
    private $db;
    private $query;
    private $validatename;
    private $validatename1;
    private $validatename2;

    public function __construct(){
        $this->db=Conectar::conexion();
        $this->query=array();
        $this->validatename=array();
        $this->validatename1=array();
        $this->validatename2=array();
    }

/**
* Consulta de bancos.
*
* Consulta de bancos registrados en caso de recibir parametro not null la consulta se hace por id*
*
* @return Array de bancos registrados
* @param Int $datos id del usuario
*/
public function query_banks($datos){
    if (is_null($datos)) {   
        $consulta=$this->db->query("SELECT b.id_bank as id,b.name_bank as name,(SELECT COUNT(id_bank) FROM bank_accounts WHERE id_bank=b.id_bank) as cantidad,s.status_name as status,s.status_color as color FROM banks as b INNER JOIN status as s ON (b.id_status=s.id_status) ");
    }else{
        $consulta=$this->db->query("SELECT b.id_bank as id,b.name_bank as name,b.id_status as status FROM banks as b WHERE b.id_bank='$datos'");
    }
    while($filas=$consulta->fetch_assoc()){
        $this->query[]=$filas;
    }
    return $this->query;
}


/**
* Chequear si nombre de banco existe.
*
*Funcion para consultar nombre de banco registrado y asi evitar duplicidad ya que es un campo unico Si recibe parametro id not null es para indicar que ignore ese id en la consulta*
*
* @return Boolean false si existe true lo contrario 
*/
public function check_name ($datos,$id){
    $datos=trim($datos);
    if (is_null($id)) {
        $consulta=$this->db->query("SELECT 1 FROM banks WHERE name_bank='$datos'");
    }else{
        $consulta=$this->db->query("SELECT 1 FROM banks WHERE name_bank='$datos' AND id_bank !='$id' ");
    }
    $consulta2=$consulta->num_rows;
    if ($consulta2 > 0) {
        return false;
    }
    return true;
}
/**
* Registrar banco.
*
*Funcion para registrar banco*
*
* @return Boolean  
*/
public function register_bank($name,$status,$user){
    $date=date('Y-m-d H:i:s');
    $insert=$this->db->query("INSERT INTO banks(name_bank, id_status,id_user,create_date) VALUES ('$name','$status','$user','$date')");

    return $insert;
}
/**
* Editar banco.
*
*Funcion para editar banco*
*
* @return Boolean  
*/
public function edit_bank($name,$status,$user,$id){
    $date=date('Y-m-d H:i:s');
    $update=$this->db->query("UPDATE banks SET name_bank='$name',id_status='$status',id_user='$user',create_date='$date' WHERE id_bank='$id'");
    return $update;
}
/**
* Chequear si bank.
*
*Funcion para validar si bank existe*
*
* @return Boolean  
* @param Int $id id de bank
*/
public function check_bank($id){
    $consulta=$this->db->query("SELECT 1 FROM banks WHERE id_bank='$id'");
    $consulta1=$consulta->num_rows;
    if ($consulta1 == 0) {
        return false;
    }
    return true;
}
/**
* Chequear si banco  tiene usuarios asignados.
*
*Funcion para validar si banco tiene usuarios asigandos en el sistema de ser asi no se podra eliminar*
*
* @return Boolean  
* @param Int $id id de banco
*/
public function check_account($id){
    $consulta=$this->db->query("SELECT 1 FROM bank_accounts WHERE id_bank='$id'");
    $consulta1=$consulta->num_rows;
    if ($consulta1 > 0) {
        return false;
    }
    return true;
}
/**
* Eliminar banco.
*
*Funcion para eliminar banco*
*
* @return Boolean  
* @param Int $id id de banco
*/
public function delete_bank($id){
    $delete=$this->db->query("DELETE FROM banks WHERE id_bank='$id'");
    return $delete;
}

}
?>