protected function private_core()
 {
     $this->pais = new pais();
     $this->proveedor = new proveedor();
     if (isset($_GET['delete'])) {
         $proveedor = $this->proveedor->get($_GET['delete']);
         if ($proveedor) {
             if (FS_DEMO) {
                 $this->new_error_msg('En el modo demo no se pueden eliminar proveedores.
               Otros usuarios podrían necesitarlos.');
             } else {
                 if ($proveedor->delete()) {
                     $this->new_message('Proveedor eliminado correctamente.');
                 } else {
                     $this->new_error_msg('Ha sido imposible borrar el proveedor.');
                 }
             }
         } else {
             $this->new_message('Proveedor no encontrado.');
         }
     } else {
         if (isset($_POST['cifnif'])) {
             $proveedor = new proveedor();
             $proveedor->codproveedor = $proveedor->get_new_codigo();
             $proveedor->nombre = $_POST['nombre'];
             $proveedor->razonsocial = $_POST['nombre'];
             $proveedor->tipoidfiscal = $_POST['tipoidfiscal'];
             $proveedor->cifnif = $_POST['cifnif'];
             $proveedor->acreedor = isset($_POST['acreedor']);
             if ($proveedor->save()) {
                 $dirproveedor = new direccion_proveedor();
                 $dirproveedor->codproveedor = $proveedor->codproveedor;
                 $dirproveedor->descripcion = "Principal";
                 $dirproveedor->codpais = $_POST['pais'];
                 $dirproveedor->provincia = $_POST['provincia'];
                 $dirproveedor->ciudad = $_POST['ciudad'];
                 $dirproveedor->codpostal = $_POST['codpostal'];
                 $dirproveedor->direccion = $_POST['direccion'];
                 if ($dirproveedor->save()) {
                     /// forzamos crear la subcuenta
                     $proveedor->get_subcuenta($this->empresa->codejercicio);
                     /// redireccionamos a la página del proveedor
                     header('location: ' . $proveedor->url());
                 } else {
                     $this->new_error_msg("¡Imposible guardar la dirección el proveedor!");
                 }
             } else {
                 $this->new_error_msg("¡Imposible guardar el proveedor!");
             }
         }
     }
     $this->mostrar = 'todo';
     if (isset($_GET['mostrar'])) {
         $this->mostrar = $_GET['mostrar'];
     }
     $this->offset = 0;
     if (isset($_GET['offset'])) {
         $this->offset = intval($_GET['offset']);
     }
     if ($this->query != '') {
         $this->resultados = $this->proveedor->search($this->query, $this->offset);
     } else {
         if ($this->mostrar == 'acreedores') {
             $this->resultados = $this->proveedor->all($this->offset, TRUE);
         } else {
             $this->resultados = $this->proveedor->all($this->offset);
         }
     }
 }