public function get_tarifas($todas = FALSE) { $tarifa = new tarifa(); $tarifas = $tarifa->all(); $tarifa_articulo = new tarifa_articulo(); $tas = $tarifa_articulo->all_from_articulo($this->referencia); if ($todas) { foreach ($tarifas as $t) { $encontrada = FALSE; foreach ($tas as $ta) { if ($ta->codtarifa == $t->codtarifa) { $encontrada = TRUE; break; } } if (!$encontrada) { /// añadimos las tarifas que no tiene asignadas $tas[] = new tarifa_articulo(array('id' => NULL, 'codtarifa' => $t->codtarifa, 'referencia' => $this->referencia, 'descuento' => 0 - $t->incporcentual)); } } } /// rellenamos las tarifas foreach ($tas as $ta) { foreach ($tarifas as $t) { if ($t->codtarifa == $ta->codtarifa) { $ta->nombre = $t->nombre; $ta->pvp = $this->pvp; $ta->iva = $this->get_iva(); break; } } } return $tas; }
protected function private_core() { $this->share_extension(); $this->impuesto = new impuesto(); $this->articulo = FALSE; if (isset($_POST['pvpiva'])) { $articulo = new articulo(); $this->articulo = $articulo->get($_POST['referencia']); if ($this->articulo) { $continuar = TRUE; $this->articulo->set_impuesto($_POST['codimpuesto']); $this->articulo->set_pvp_iva($_POST['pvpiva']); if (isset($_POST['preciocoste'])) { $this->articulo->costemedio = $this->articulo->preciocoste = floatval($_POST['preciocoste']); } if (!$this->articulo->save()) { $this->new_error_msg("¡Imposible modificar el artículo!"); $continuar = FALSE; } $tarifa_articulo = new tarifa_articulo(); for ($i = 0; $i < 100; $i++) { if (isset($_POST['codtarifa_' . $i])) { if ($_POST['pvpi_' . $i] != '') { $ta = $tarifa_articulo->get_by($this->articulo->referencia, $_POST['codtarifa_' . $i]); if (!$ta) { $ta = new tarifa_articulo(); $ta->codtarifa = $_POST['codtarifa_' . $i]; $ta->referencia = $this->articulo->referencia; } $ta->calculado = FALSE; $ta->pvp = $this->pvpiva2pvp(floatval($_POST['pvpi_' . $i])); if (!$ta->save()) { $this->new_error_msg("¡Imposible modificar la tarifa!"); $continuar = FALSE; } } else { if ($_POST['pvp_' . $i] != '') { $ta = $tarifa_articulo->get_by($this->articulo->referencia, $_POST['codtarifa_' . $i]); if (!$ta) { $ta = new tarifa_articulo(); $ta->codtarifa = $_POST['codtarifa_' . $i]; $ta->referencia = $this->articulo->referencia; } $ta->calculado = FALSE; $ta->pvp = floatval($_POST['pvp_' . $i]); if (!$ta->save()) { $this->new_error_msg("¡Imposible modificar la tarifa!"); $continuar = FALSE; } } } } else { break; } } if ($continuar) { $this->new_message("Precios modificadas correctamente."); } } } else { if (isset($_GET['ref'])) { $art = new articulo(); $this->articulo = $art->get($_GET['ref']); } } if ($this->articulo) { if (isset($_GET['recalcular'])) { /// eliminamos los precios fijos almacenados $tarifa_articulo = new tarifa_articulo(); foreach ($tarifa_articulo->all_from_articulo($this->articulo->referencia) as $ta) { $ta->delete(); } } } else { $this->new_error_msg('Artículo no encontrado.'); } }