public function set_impuesto($cod) { $impuesto = new impuesto(); $imp0 = $impuesto->get($cod); if ($imp0) { $this->codimpuesto = $imp0->codimpuesto; $this->iva = $imp0->iva; } else { $this->codimpuesto = NULL; $this->iva = 0; } }
/** * Devuelve el % de IVA del artículo. * Si $reload es TRUE, vuelve a consultarlo en lugar de usar los datos cargados. * @param type $reload * @return type */ public function get_iva($reload = TRUE) { if ($reload) { $this->iva = NULL; } if (is_null($this->iva)) { $this->iva = 0; if (!is_null($this->codimpuesto)) { $encontrado = FALSE; foreach (self::$impuestos as $i) { if ($i->codimpuesto == $this->codimpuesto) { $this->iva = $i->iva; $encontrado = TRUE; break; } } if (!$encontrado) { $imp = new impuesto(); $imp0 = $imp->get($this->codimpuesto); if ($imp0) { $this->iva = $imp0->iva; self::$impuestos[] = $imp0; } } } } return $this->iva; }
/** * Cambia el impuesto asociado al artículo. * @param type $codimpuesto */ public function set_impuesto($codimpuesto) { if ($codimpuesto != $this->codimpuesto) { $this->codimpuesto = $codimpuesto; $encontrado = FALSE; foreach (self::$impuestos as $i) { if ($i->codimpuesto == $this->codimpuesto) { $this->iva = floatval($i->iva); $encontrado = TRUE; break; } } if (!$encontrado) { $imp = new impuesto(); $imp0 = $imp->get($this->codimpuesto); if ($imp0) { $this->iva = floatval($imp0->iva); self::$impuestos[] = $imp0; } else { $this->iva = 0; } } } }
public function move_codimpuesto($cod0, $cod1, $mantener = FALSE) { if ($mantener) { $this->clean_cache(); $impuesto = new impuesto(); $impuesto0 = $impuesto->get($cod0); $impuesto1 = $impuesto->get($cod1); $multiplo = (100 + $impuesto0->iva) / (100 + $impuesto1->iva); return $this->db->exec("UPDATE " . $this->table_name . " SET codimpuesto = " . $this->var2str($cod1) . ", pvp = (pvp*" . $multiplo . ") WHERE codimpuesto = " . $this->var2str($cod0) . ";"); } else { return $this->db->exec("UPDATE " . $this->table_name . " SET codimpuesto = " . $this->var2str($cod1) . " WHERE codimpuesto = " . $this->var2str($cod0) . ";"); } }