Пример #1
0
 public function erase()
 {
     $idArticulo = $this->Id;
     $ok = parent::erase();
     if ($ok) {
         // Borrar las tarifas
         $tarifas = new Tarifas();
         $tarifas->queryDelete("IdArticulo='{$idArticulo}'");
         unset($tarifas);
     }
     return $ok;
 }
Пример #2
0
 /**
  * Si hay stock no se puede cambiar el estado de inventario ni las unidades de medida
  * Si las unidades de media son iguales, los factores de conversión los pongo a 1
  * Calculo el precio de venta sobre EL PRECIO MEDIO DE COSTO
  * Si columna 'etiqueta' está vacía, le pongo valor de la descripción del artículo
  */
 protected function validaLogico()
 {
     parent::validaLogico();
     // Si hay stock no se puede cambiar:
     // - ni el estado de inventario
     // - ni las unidades de medida
     // - ni si es compuesto o no
     $exi = new Existencias();
     if ($exi->hayRegistroExistencias($this->IDArticulo)) {
         // Hay registro de existencias
         $articulo = new Articulos($this->IDArticulo);
         $this->setInventario($articulo->getInventario()->getIDTipo());
         $this->setUMA($articulo->getUMA()->getId());
         $this->setUMC($articulo->getUMC()->getId());
         $this->setUMV($articulo->getUMV()->getId());
         $this->setAllowsChildren($articulo->getAllowsChildren()->getIDTipo());
         unset($articulo);
         $this->_alertas[] = "Hay Stock, no puede cambiar ni el estado de Inventario ni las Unidades de Medida, ni si es compuesto";
     } else {
         // Si no es inventariable, pongo los valores relativos
         // al inventario a 0.
         if ($this->Inventario == 0) {
             $this->Trazabilidad = 0;
             $this->BloqueoStock = 0;
             $this->StockMinimo = 0;
             $this->StockMaximo = 0;
             $this->Caducidad = 0;
         }
         // Si las unidades de media son iguales, los factores de conversión los pongo a 1
         if ($this->UMC == $this->UMB) {
             $this->CUMC = 1;
         }
         if ($this->UMA == $this->UMB) {
             $this->CUMA = 1;
         }
         if ($this->UMV == $this->UMB) {
             $this->CUMV = 1;
         }
     }
     // Calculo el precio de venta sobre EL PRECIO MEDIO DE COSTO
     if ($this->Pmc == 0) {
         $this->Pmc = $this->Pvd;
     }
     if ($this->Pmc != 0) {
         $this->Pvp = $this->Pmc * (1 + $this->Margen / 100);
     }
     // Pongo valores por defecto
     if (trim($this->CodigoEAN == '')) {
         $this->CodigoEAN = $this->Codigo;
     }
     if (trim($this->Subtitulo == '')) {
         $this->Subtitulo = $this->Descripcion;
     }
     if (trim($this->Resumen == '')) {
         $this->Resumen = $this->Descripcion;
     }
     if (trim($this->Etiqueta == '')) {
         $this->Etiqueta = substr($this->Descripcion, 0, 29);
     }
     // Valido que no se dupliquen los estados
     $valida = array();
     for ($i = 1; $i <= 5; $i++) {
         $idEstado = $this->{"IDEstado{$i}"};
         if (isset($valida[$idEstado])) {
             $this->{"IDEstado{$i}"} = 0;
         } else {
             $valida[$idEstado] = '1';
         }
     }
     // Si no está vigente, entonces tampoco se publica
     if (!$this->Vigente) {
         $this->Publish = 0;
     }
     unset($exi);
 }