public function listAction($idArticuloOrigen = '')
 {
     if ($idArticuloOrigen == '') {
         $idArticuloOrigen = $this->request[2];
     }
     $articulo = new ArticulosEscandallos();
     $rows = $articulo->cargaCondicion("*", "IDArticuloOrigen='{$idArticuloOrigen}' and IDArticuloDestino>0", "Id ASC");
     $totales = $articulo->cargaCondicion("*", "IDArticuloOrigen='{$idArticuloOrigen}' and IDArticuloDestino=0");
     unset($articulo);
     $escandallo[] = new ArticulosEscandallos();
     foreach ($rows as $row) {
         $escandallo[] = new ArticulosEscandallos($row['Id']);
     }
     $this->values['articulos'] = $escandallo;
     if ($totales[0]['Id']) {
         $this->values['totales'] = new ArticulosEscandallos($totales[0]['Id']);
     }
     $this->values['IDArticuloOrigen'] = $idArticuloOrigen;
     $this->values['articuloOrigen'] = new Articulos($idArticuloOrigen);
     // Si hay existencias del articulo origen, no permito cambiar su escandallo
     $existencias = new Existencias();
     $this->values['bloqueo'] = $existencias->hayRegistroExistencias($idArticuloOrigen);
     unset($existencias);
     return array('template' => $this->entity . '/index.html.twig', 'values' => $this->values);
 }
Example #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);
 }