public function getOrdenesCompra($ef_id) { $ordenes_compra = OrdenCompra::getOrdenesCompraParaAprobacionOrdenCompra($ef_id); foreach ($ordenes_compra as &$orden_compra) { $orden_compra->cotizaciones = Cotizacion::with(['ordencompra', 'contacto.proveedor', 'lineas.linea_ordencompra.producto', 'lineas.linea_ordencompra.linea_requisicion'])->whereIdOrdencompra($orden_compra->id)->get(); // Traer precio promedio / ultimo precio foreach ($orden_compra->cotizaciones as &$cotizacion) { foreach ($cotizacion->lineas as &$linea) { $linea->precio_promedio = Producto::getPrecioPromedio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); $linea->ultimo_precio = Producto::getUltimoPrecio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); } } } return $ordenes_compra; }
public function getHistoricoPrecioProducto() { $input = Request::createFromGlobals(); $graphArray = []; $graphArray['chart']['type'] = 'spline'; $graphArray['title']['text'] = 'Historial de precios'; $graphArray['xAxis']['type'] = 'datetime'; $graphArray['xAxis']['dateTimeLabelFormats']['month'] = '%e. %b'; $graphArray['xAxis']['dateTimeLabelFormats']['year'] = '%b'; $graphArray['xAxis']['title']['text'] = 'Fecha'; $graphArray['yAxis']['title']['text'] = 'Precio'; $graphArray['yAxis']['min'] = 0; $graphArray['yAxis']['plotLines'] = [['value' => Producto::getPrecioPromedio($input->producto, $input->proveedor), 'dashStyle' => 'shortdash', 'color' => 'red', 'width' => 2, 'label' => ['text' => 'Precio promedio']]]; // Build data for series $serie = []; $graphData = []; $precios = ProductoPrecio::where('id_proveedor', $input->proveedor)->where('id_producto', $input->producto)->orderBy('fecha')->get(); foreach ($precios as $precio) { $graphData[] = [strtotime($precio->fecha) * 1000, $precio->precio]; } $serie = ['name' => 'Precio', 'data' => $graphData]; $graphArray['series'][] = $serie; return $graphArray; }
public function getDatosAdicionalesOC($ordenes_compra) { foreach ($ordenes_compra as $orden_compra) { // Sacar los mejores proveedores por cada línea foreach ($orden_compra->lineas as $linea) { $linea->mejor_proveedor_precio = $linea->producto->getMejorProveedorPrecio(); $linea->mejor_proveedor_tiempo = $linea->producto->getMejorProveedorTiempo(); $linea->ultimo_precio = null; $linea->precio_promedio = null; if (count($linea->mejor_proveedor_precio) > 0) { $linea->ultimo_precio = Producto::getUltimoPrecio($linea->producto->id, $linea->mejor_proveedor_precio->id); $linea->precio_promedio = Producto::getPrecioPromedio($linea->producto->id, $linea->mejor_proveedor_precio->id); } $linea->tiempo_entrega = null; if (count($linea->mejor_proveedor_tiempo) > 0) { $linea->tiempo_entrega = Producto::getTiempoPromedio($linea->producto->id, $linea->mejor_proveedor_tiempo->id); } } $cotizaciones = Cotizacion::with(['lineas.linea_ordencompra.producto', 'contacto.proveedor'])->where('id_ordencompra', $orden_compra->id)->get(); // Traer precio promedio / ultimo precio /* foreach ($cotizaciones as &$cotizacion) { foreach ($cotizacion->lineas as &$linea) { $linea->precio_promedio = Producto::getPrecioPromedio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); $linea->ultimo_precio = Producto::getUltimoPrecio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); } } */ $orden_compra->cotizaciones = $cotizaciones; } return $ordenes_compra; }
public function getCotizaciones($ef_id) { $returnArray = []; $ordenes_compra = $this->getOrdenesCompra($ef_id); foreach ($ordenes_compra as $orden_compra) { $cotizaciones = Cotizacion::with(['lineas.linea_ordencompra.producto', 'contacto.proveedor'])->where('id_ordencompra', $orden_compra->id)->get(); // Traer precio promedio / ultimo precio foreach ($cotizaciones as &$cotizacion) { foreach ($cotizacion->lineas as &$linea) { $linea->precio_promedio = Producto::getPrecioPromedio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); $linea->ultimo_precio = Producto::getUltimoPrecio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); } } $returnArray[] = ['orden_compra' => $orden_compra->id, 'cotizaciones' => $cotizaciones, 'motivo' => $orden_compra->observacion_seleccionador_cotizacion]; } return $returnArray; }
public function getCotizaciones($ef_id) { $ordenes_compra = OrdenCompra::getOrdenesCompraParaAprobacionCotizacion($ef_id); foreach ($ordenes_compra as &$orden_compra) { $orden_compra->cotizaciones = Cotizacion::with(['ordencompra', 'contacto.proveedor', 'lineas.linea_ordencompra.producto', 'lineas.linea_ordencompra.linea_requisicion.requisicion.ef_request'])->whereIdOrdencompra($orden_compra->id)->get(); // Traer precio promedio / ultimo precio foreach ($orden_compra->cotizaciones as &$cotizacion) { foreach ($cotizacion->lineas as &$linea) { $linea->precio_promedio = Producto::getPrecioPromedio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); $linea->ultimo_precio = Producto::getUltimoPrecio($linea->linea_ordencompra->producto->id, $cotizacion->contacto->proveedor->id); } } if (!($aprobada = RequestMetadataCore::get($orden_compra->lineas[0]->linea_requisicion->requisicion->ef_request->request_id, 'ADQ-COT-APROBADA'))) { RequestMetadataCore::set($orden_compra->lineas[0]->linea_requisicion->requisicion->ef_request->request_id, 'ADQ-COT-APROBADA', 'Si'); } $orden_compra->aprobada = $aprobada; } return $ordenes_compra; }