public function comprasPdf(Request $request) { $id = $request->id; $clienteId = $request->cliente_id; $productos = array(); $compra = Compra::find($id); foreach ($compra->productos as $producto) { $id = $producto->pivot->producto_id; $cantidad = $producto->pivot->cantidad; $subtotal = $producto->pivot->subtotal; $proAux = Producto::find($id); $nombre = $proAux->nombre; $precio = $proAux->precio; $productoObj = array(['id' => $id, 'nombre' => $nombre, 'cantidad' => $cantidad, 'precio' => $precio, 'subtotal' => $subtotal]); array_push($productos, $productoObj); } foreach ($productos as $producto) { echo $producto['0']['id'] . "<br>"; } $view = \View::make('admi.compraPdf')->with(['compra' => $compra, 'productos' => $productos])->render(); //$view = \View::make('admi.compraPdf', compact($compra , $productos))->render(); $pdf = \App::make('dompdf.wrapper'); $pdf->loadHTML($view)->setPaper('a4')->setOrientation('landscape'); return $pdf->stream('invoice'); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $datos = $request->all(); $req = ['date' => $datos['date'], 'numfactura' => $datos['numfactura'], 'id_proveedor' => $datos['id_proveedor'], 'total' => $datos['total']]; $rules = ['date' => 'required', 'numfactura' => 'required', 'id_proveedor' => ['required', 'not_in:0'], 'total' => 'required']; $v = \Validator::make($req, $rules); if ($v->fails()) { return redirect()->back()->withErrors($v); } $compra = \App\Compra::find($id); $compra->numfactura = $datos['numfactura']; $compra->id_proveedor = $datos['id_proveedor']; $compra->date = $datos['date']; $compra->subtotal = $datos['subtotal']; $compra->impuesto = $datos['impuesto']; $compra->descuento = $datos['descuento']; $compra->total = $datos['total']; $compra->id_tipo_pago = $datos['id_tipo_pago']; $compra->save(); $det_compras = \App\DetalleCompra::where('id_compra', $id)->get(); $oldCantCompra = $det_compras->count(); $newCantCompra = count($datos['cantidad']); foreach ($det_compras as $key => $detalle) { //si no encuentra datos en el siguiente campo entonces elimina sino continua actualizando if (empty($datos['id_producto'][$key])) { $borrar_detalle = \App\DetalleCompra::find($detalle->id); $borrar_detalle->inactivo = 1; $borrar_detalle->save(); } else { $detalle->id_producto = $datos['id_producto'][$key]; $detalle->cantidad = $datos['cantidad'][$key]; $detalle->precio = $datos['precio'][$key]; $detalle->subtotal_prod = $datos['subtotal_prod'][$key]; $detalle->save(); } } //Si el array $datos['cantidad'] es mayor a la cantidad de datos que tiene el detalle compra //entonces se añade una nueva compra if ($newCantCompra > $oldCantCompra) { for ($i = $newCantCompra - 1; $i < $newCantCompra; $i++) { $detalle = new \App\DetalleCompra(); $detalle->id_compra = $id; $detalle->id_producto = $datos['id_producto'][$i]; $detalle->cantidad = $datos['cantidad'][$i]; $detalle->precio = $datos['precio'][$i]; $detalle->subtotal_prod = $datos['subtotal_prod'][$i]; $detalle->save(); } } $request->session()->flash('msj_success', 'Se ha editado la compra: ' . $datos['numfactura']); return redirect()->route('compra.index'); }
/** * Show the form for editing the specified resource. * * @param int $id * @return Response */ public function edit($id) { $compra = Compra::find($id); return view('compras.edit', ['compra' => $compra]); }