コード例 #1
0
 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];
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 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];
 }
コード例 #4
0
 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;
 }
コード例 #5
0
 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;
 }
コード例 #6
0
 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;
 }