public function array_save($cod, $values)
 {
     $done = TRUE;
     foreach ($values as $key => $value) {
         $aux = new \cliente_propiedad();
         $aux->name = $key;
         $aux->codcliente = $cod;
         $aux->text = $value;
         if (!$aux->save()) {
             $done = FALSE;
             break;
         }
     }
     return $done;
 }
Ejemplo n.º 2
0
 protected function private_core()
 {
     $this->cliente = new cliente();
     $this->grupo = new grupo_clientes();
     $this->pais = new pais();
     $this->serie = new serie();
     $this->tarifa = new tarifa();
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     if (isset($_REQUEST['buscar_provincia'])) {
         $this->buscar_provincia();
     } else {
         if (isset($_REQUEST['buscar_ciudad'])) {
             $this->buscar_ciudad();
         } else {
             if (isset($_GET['delete_grupo'])) {
                 $grupo = $this->grupo->get($_GET['delete_grupo']);
                 if ($grupo) {
                     if ($grupo->delete()) {
                         $this->new_message('Grupo eliminado correctamente.');
                     } else {
                         $this->new_error_msg('Imposible eliminar el grupo.');
                     }
                 } else {
                     $this->new_error_msg('Grupo no encontrado.');
                 }
             } else {
                 if (isset($_POST['codgrupo'])) {
                     $grupo = $this->grupo->get($_POST['codgrupo']);
                     if (!$grupo) {
                         $grupo = new grupo_clientes();
                         $grupo->codgrupo = $_POST['codgrupo'];
                     }
                     $grupo->nombre = $_POST['nombre'];
                     if ($_POST['codtarifa'] == '---') {
                         $grupo->codtarifa = NULL;
                     } else {
                         $grupo->codtarifa = $_POST['codtarifa'];
                     }
                     if ($grupo->save()) {
                         $this->new_message('Grupo guardado correctamente.');
                     } else {
                         $this->new_error_msg('Imposible guardar el grupo.');
                     }
                 } else {
                     if (isset($_GET['delete'])) {
                         $cliente = $this->cliente->get($_GET['delete']);
                         if ($cliente) {
                             if (FS_DEMO) {
                                 $this->new_error_msg('En el modo demo no se pueden eliminar clientes. Otros usuarios podrían necesitarlos.');
                             } else {
                                 if ($cliente->delete()) {
                                     $this->new_message('Cliente eliminado correctamente.');
                                 } else {
                                     $this->new_error_msg('Ha sido imposible eliminar el cliente.');
                                 }
                             }
                         } else {
                             $this->new_error_msg('Cliente no encontrado.');
                         }
                     } else {
                         if (isset($_POST['cifnif'])) {
                             $this->save_codpais($_POST['pais']);
                             $cliente = new cliente();
                             $cliente->codcliente = $cliente->get_new_codigo();
                             if (isset($_POST['cli_codgrupo'])) {
                                 $cliente->codgrupo = $_POST['cli_codgrupo'];
                             }
                             if ($_POST['razonsocial'] != '') {
                                 $cliente->nombre = $cliente->razonsocial = $_POST['razonsocial'];
                             } else {
                                 $cliente->nombre = $cliente->razonsocial = $_POST['nombre'] . ' ' . $_POST['nombre2'] . ' ' . $_POST['apellido'] . ' ' . $_POST['apellido2'];
                             }
                             $cliente->cifnif = $_POST['cifnif'];
                             $cliente->codserie = $this->empresa->codserie;
                             if ($cliente->save()) {
                                 $cliente_prop = new cliente_propiedad();
                                 $cliente_prop->array_save($cliente->codcliente, array('nombre' => $_POST['nombre'], 'nombre2' => $_POST['nombre2'], 'apellido' => $_POST['apellido'], 'apellido2' => $_POST['apellido2']));
                                 $dircliente = new direccion_cliente();
                                 $dircliente->codcliente = $cliente->codcliente;
                                 $dircliente->codpais = $_POST['pais'];
                                 $dircliente->provincia = $_POST['provincia'];
                                 $dircliente->ciudad = $_POST['ciudad'];
                                 $dircliente->codpostal = $_POST['codpostal'];
                                 $dircliente->direccion = $_POST['direccion'];
                                 $dircliente->descripcion = 'Principal';
                                 if ($dircliente->save()) {
                                     header('location: ' . $cliente->url());
                                 } else {
                                     $this->new_error_msg("¡Imposible guardar la dirección del cliente!");
                                 }
                             } else {
                                 $this->new_error_msg("¡Imposible guardar los datos del cliente!");
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->offset = 0;
     if (isset($_GET['offset'])) {
         $this->offset = intval($_GET['offset']);
     }
     if ($this->query != '') {
         $this->resultados = $this->cliente->search($this->query, $this->offset);
     } else {
         $this->resultados = $this->cliente->all($this->offset);
     }
     $this->grupos = $this->grupo->all();
 }