protected function process() { $this->ppage = $this->page->get('general_paquetes'); $this->paquete = new paquete(); if (isset($_GET['delete'])) { $this->paquete->referencia = $_GET['delete']; if ($this->paquete->delete()) { header("location: " . $this->ppage->url()); } else { $this->new_error_msg("¡Imposible eliminar el paquete!"); } } else { if (isset($_POST['referenciapaq'])) { $this->paquete = $this->paquete->get($_POST['referenciapaq']); if ($this->paquete) { $this->paquete->set_grupos($_POST['grupos']); /// eliminamos todos los subpquetes foreach ($this->paquete->subpaquetes as $s) { $s->delete(); } $this->paquete->subpaquetes = array(); /// añadimos los artículos marcados foreach ($this->paquete->get_grupos() as $g) { if (isset($_POST['grupo_' . $g])) { foreach ($_POST['grupo_' . $g] as $ref) { $subp = new subpaquete(); $subp->referenciapaq = $this->paquete->referencia; $subp->grupo = $g; $subp->referencia = $ref; if ($subp->save()) { $subp->existe = TRUE; $this->paquete->subpaquetes[] = $subp; } else { $this->new_error_msg("¡Imposible guardar el subpaquete del grupo " . $subp->grupo . " con referencia " . $subp->referencia . "!"); } } } } } else { $this->paquete = new paquete(); $this->paquete->set_articulo($_POST['referenciapaq']); $this->paquete->set_grupos($_POST['grupos']); if (!$this->paquete->save()) { $this->new_error_msg("¡Imposible guardar los datos del paquete!"); } } } else { if (isset($_GET['ref'])) { $this->paquete = $this->paquete->get($_GET['ref']); } else { $this->paquete = FALSE; } } } if ($this->paquete) { $this->buttons[] = new fs_button('b_articulo', 'Ver artículo', $this->paquete->articulo->url()); $this->buttons[] = new fs_button_img('b_eliminar_paquete', 'Eliminar', 'trash.png', $this->url() . "&delete=" . $this->paquete->referencia, TRUE); } else { $this->new_error_msg("Paquete no encontrado."); } }
public function get_subpaquetes() { $subpaq = new subpaquete(); return $subpaq->all_from_paquete($this->referencia); }