protected function process()
 {
     $this->custom_search = TRUE;
     $this->buttons[] = new fs_button_img('b_nuevo_proveedor', 'Nuevo', 'add.png', '#nuevo');
     $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'])) {
             $this->save_codpais($_POST['pais']);
             $proveedor = new proveedor();
             $proveedor->codproveedor = $proveedor->get_new_codigo();
             $proveedor->nombre = $_POST['nombre'];
             $proveedor->nombrecomercial = $_POST['nombre'];
             $proveedor->cifnif = $_POST['cifnif'];
             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()) {
                     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!");
             }
         }
     }
     if (isset($_GET['offset'])) {
         $this->offset = intval($_GET['offset']);
     } else {
         $this->offset = 0;
     }
     if ($this->query != '') {
         $this->resultados = $this->proveedor->search($this->query, $this->offset);
     } else {
         $this->resultados = $this->proveedor->all($this->offset);
     }
 }
 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'])) {
             $this->save_codpais($_POST['pais']);
             $proveedor = FALSE;
             if ($_POST['cifnif'] != '') {
                 $proveedor = $this->proveedor->get_by_cifnif($_POST['cifnif']);
                 if ($proveedor) {
                     $this->new_advice('Ya existe un proveedor con el ' . FS_CIFNIF . ' ' . $_POST['cifnif']);
                     $this->query = $_POST['cifnif'];
                 }
             }
             if (!$proveedor) {
                 $proveedor = new proveedor();
                 $proveedor->codproveedor = $proveedor->get_new_codigo();
                 $proveedor->nombre = $_POST['nombre'];
                 $proveedor->alias = $_POST['nombre'];
                 $proveedor->razonsocial = $_POST['nombre'];
                 $proveedor->cifnif = $_POST['cifnif'];
                 $proveedor->codserie = $this->empresa->codserie;
                 $proveedor->acreedor = isset($_POST['acreedor']);
                 $proveedor->cai = isset($_POST['cai']);
                 $proveedor->caivence = isset($_POST['caivence']);
                 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()) {
                         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);
         }
     }
 }
 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);
         }
     }
 }