Beispiel #1
0
 /**
  * Devuelve un array con los artículos que forman
  * parte del escandallo del articulo actual
  * 
  * array('IDArticulo'=>,'Codigo'=>,'Descripcion'=>,'Unidades'=>,'UMV'=>)
  * 
  * @return array \Articulos
  */
 public function getEscandallo()
 {
     $escan = new ArticulosEscandallos();
     $filtro = "IDArticuloOrigen='{$this->IDArticulo}' and IDArticuloDestino<>'0'";
     $rows = $escan->cargaCondicion("IDArticuloDestino,Unidades", $filtro, "Id ASC");
     unset($escan);
     $array = array();
     foreach ($rows as $row) {
         $articulo = new Articulos($row['IDArticuloDestino']);
         $array[] = array('IDArticulo' => $articulo->getIDArticulo(), 'Codigo' => $articulo->getCodigo(), 'Descripcion' => $articulo->getDescripcion(), 'Unidades' => $row['Unidades'], 'UMV' => $articulo->getUMV()->getUnidadMedida());
         unset($articulo);
     }
     return $array;
 }
 /**
  * Recalcula los precios de costo y de venta de los articulos
  * obtenidos en la elaboración, prorrateando el costo total de
  * la elaboración entre las UMAs obtenidas de cada producto
  *
  * Este proceso se hace con las líneas de tipo 1 que estén recepcionadas (Estado=3)
  * y en base a la política de recálculo de precios definida con el parámetro ACTU_PRECIOS
  */
 public function CotizarAction()
 {
     if ($this->values['permisos']['permisosModulo']['UP']) {
         $idManufac = $this->request['ManufacCab']['IDManufac'];
         $datos = new ManufacCab($idManufac);
         if ($datos->getKilosDestino() != 0) {
             $totalCoste = $datos->getTotalCoste();
             $totalUMAObtenidos = $datos->getKilosDestino();
             $costePorUMA = $totalCoste / $datos->getKilosDestino();
             //Recorrer las lineas de elaboracion tipo 1
             $lineas = new ManufacLineas();
             $rows = $lineas->cargaCondicion("*", "IDManufac='{$idManufac}' and Tipo='1' and IDEstado='3'");
             unset($lineas);
             foreach ($rows as $row) {
                 $articulo = new Articulos($row['IDArticulo']);
                 if ($articulo->actualizaPrecios($row['Unidades'], $costePorUMA)) {
                     $this->values['alertas'][] = "Se actualizó: " . $articulo->getCodigo() . " " . $articulo->getDescripcion();
                 } else {
                     $this->values['alertas'][] = "NO Se actualizó: " . $articulo->getCodigo() . " " . $articulo->getDescripcion();
                 }
             }
             unset($articulo);
         }
         $this->values['datos'] = $datos;
         $this->values['errores'] = $datos->getErrores();
         unset($datos);
         return array('template' => $this->entity . '/edit.html.twig', 'values' => $this->values);
     } else {
         return array('template' => '_global/forbiden.html.twig');
     }
 }