/* 
* Copyright 2016 Agencia Estatal de Administración Tibutaria
*
* Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto
* sean aprobadas por la Comisión Europea– versiones
* posteriores de la EUPL (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en:
*  
* https://joinup.ec.europa.eu/software/page/eupl
*  
* Salvo cuando lo exija la legislación aplicable o se acuerde
* por escrito, el programa distribuido con arreglo a la
* Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
* DE NINGÚN TIPO, ni expresasni implícitas.
*
* Véase la Licencia en el idioma concreto que rige los permisos y 
* limitaciones que establece la Licencia.
*/ 

package servidor.datos.base;

import java.sql.*;
import servidor.Configuracion;
import servidor.utiles.*;

public class RegistroOperadores implements MemRegistro {

    private int Id = 0;
    private String Codigo = " ";
    private String Nombre = " ";
    private String Capacidad = " ";
    private boolean Activo = false;
    private String Favoritas = " ";
    private String Suplencias = " ";
    private String FavEstadisticas = " ";
    private String Centro = " ";

    @Override
    public void cargar(ResultSet rs) {
        try {
            setId(rs.getInt(1));
            setCodigo(rs.getString(2));
            setNombre(rs.getString(3));
            setCapacidadSinTipo(rs.getString(4));
            setActivo(rs.getBoolean(5));
            setFavoritas(rs.getString(6));
            setSuplencias(rs.getString(7));
            setFavEstadisticas(rs.getString(8));
            setCentro(rs.getString(9));
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    @Override
    public String registro() {
        return registroSBuff().toString();
    }

    @Override
    public StringBuilder registroSBuff() {
        StringBuilder buf = new StringBuilder(200);
        buf.append(Id).append('|');
        buf.append(Codigo).append('|');
        buf.append(Nombre).append('|');
        buf.append(Capacidad).append('|');
        buf.append(Global.btos(Activo)).append('|');
        buf.append(Favoritas).append('|');
        buf.append(Suplencias).append('|');
        buf.append(FavEstadisticas).append('|');
        buf.append(Centro);
        return buf;
    }

    @Override
    public String toString() {
        return "";
    }

    public int getId() {
        return Id;
    }

    public void setId(int Id) {
        this.Id = Id;
    }

    public String getCodigo() {
        return Codigo;
    }

    public void setCodigo(String Codigo) {
        if (Codigo == null || Codigo.equals("")) {
            this.Codigo = " ";
        }
        this.Codigo = Codigo;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String Nombre) {
        if (Nombre == null || Nombre.equals("")) {
            this.Nombre = " ";
        } else {
            if (Nombre.length() > 35) {
                Nombre = Nombre.substring(0, 35);
            }
            this.Nombre = Nombre;
        }
    }

    public String getCapacidad() {
        return Capacidad;
    }

    public String getFavoritas() {
        return Favoritas;
    }

    public String getSuplencias() {
        return Suplencias;
    }

    public void setCapacidadSinTipo(String capacidad) {
        if (capacidad == null || capacidad.equals("")) {
            this.Capacidad = " ";
        } else {
            this.Capacidad = capacidad;
        }
    }

    public void setFavoritas(String favoritas) {
        if (favoritas == null || favoritas.equals("")) {
            this.Favoritas = " ";
        } else {
            this.Favoritas = favoritas;
        }
    }

    public void setSuplencias(String suplencias) {
        if (suplencias == null || suplencias.equals("")) {
            this.Suplencias = " ";
        } else {
            this.Suplencias = suplencias;
        }
    }

    public void setFavEstadisticas(String favoritas) {
        if (favoritas == null || favoritas.equals("")) {
            this.FavEstadisticas = " ";
        } else {
            this.FavEstadisticas = favoritas;
        }
    }

    public String getFavEstadisticas() {
        return FavEstadisticas;
    }

    public void setCapacidad(String capacidad) {
        if (capacidad == null || capacidad.equals("")) {
            this.Capacidad = " ";
        } else {
            String sCapacidad = "";
            String sFavorita = "";
            String[] colas = Global.split(capacidad, '-');
            for (String cola : colas) {
                int largo = cola.length();
                String clave = cola.substring(0, largo - 4);
                if (cola.charAt(largo - 4) == '1') {
                    sCapacidad += clave + "-";
                }
                if (cola.charAt(largo - 1) == '1') {
                    sFavorita += clave + "-";
                }
            }
            if (sCapacidad.length() == 0) {
                sCapacidad = " ";
            } else {
                sCapacidad = sCapacidad.substring(0, sCapacidad.length() - 1);
            }
            this.Capacidad = sCapacidad;
            if (sFavorita.length() == 0) {
                sFavorita = " ";
            } else {
                sFavorita = sFavorita.substring(0, sFavorita.length() - 1);
            }
            this.Favoritas = sFavorita;
        }
    }

    public boolean isActivo() {
        return Activo;
    }

    public void setActivo(boolean Activo) {
        this.Activo = Activo;
    }

    public String getCentro() {
        return Centro;
    }

    public void setCentro(String centro) {
        if (centro == null || centro.equals("") || centro.equals(" ")) {
            centro = Configuracion.getConfiguracion().codigoCentro;
        }
        this.Centro = centro;
    }
}
