public function getDatosProveedor() { $input = Request::createFromGlobals(); $productos = []; $lista_productos = ProductoPrecio::select('id_producto')->with('producto')->whereIdProveedor($input->id)->groupBy('id_producto')->get(); foreach ($lista_productos as $producto) { $productos[] = ['id_producto' => $producto->id_producto, 'codigo_producto' => $producto->producto->codigo, 'nombre_producto' => $producto->producto->nombre, 'id_proveedor' => $input->id, 'nombre_proveedor' => $input->nombre, 'ultimo_precio' => Producto::getUltimoPrecio($producto->id_producto, $input->id), 'precio_promedio' => Producto::getPrecioPromedio($producto->id_producto, $input->id)]; } $ordenes_compra = OrdenCompra::whereIdProveedor($input->id)->with('lineas', 'proveedor')->get(); return ['productos' => $productos, 'ordenes_compra' => $ordenes_compra]; }
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 getDatosProducto() { $input = Request::createFromGlobals(); $proveedores = []; $lista_proveedores = ProductoPrecio::select('id_proveedor')->with('proveedor')->whereIdProducto($input->id)->groupBy('id_proveedor')->get(); foreach ($lista_proveedores as $proveedor) { $proveedores[] = ['id_proveedor' => $proveedor->id_proveedor, 'codigo_proveedor' => $proveedor->proveedor->codigo, 'nombre_proveedor' => $proveedor->proveedor->nombre, 'id_producto' => $input->id, 'nombre_producto' => $input->nombre, 'ultimo_precio' => Producto::getUltimoPrecio($input->id, $proveedor->id_proveedor), 'precio_promedio' => Producto::getPrecioPromedio($input->id, $proveedor->id_proveedor)]; } $requisiciones = RequisicionLinea::with('requisicion')->whereIdProducto($input->id)->get(); $ordenes_compra = OrdenCompra::whereHas('lineas', function ($query) use($input) { $query->whereIdProducto($input->id); })->with(['lineas' => function ($query) use($input) { $query->whereIdProducto($input->id); }])->with('proveedor')->get(); return ['proveedores' => $proveedores, 'requisiciones' => $requisiciones, 'ordenes_compra' => $ordenes_compra]; }
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; }