/** * 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'); } }