/** * Display the specified resource. * GET /caja/{id} * * @param int $id * @return Response */ public function postCobrar() { $pedido = Pedido::find(Input::get('pedido_id')); $pagarpro = $pedido->productos()->where('detallepedidoproductos.estado', '=', 1)->sum('detallepedidoproductos.precio'); $pagaralquiler = $pedido->alquiler()->where('detallepedidohabitacion.estado', '=', 1)->sum('detallepedidohabitacion.precio'); $porpagar = $pagarpro + $pagaralquiler; $persona_id = Input::get('persona_id'); $credito = Input::get('credito'); $creditos = $pedido->creditos()->get(); $importecreditos = 0; $persona = Persona::find(Input::get('persona_id')); foreach ($creditos as $item) { $importecreditos = $importecreditos + $item->importe; } if ($importecreditos == $porpagar) { $porpagar = 0; } if ($porpagar == 0) { return Redirect::back(); } if (Input::get('tipocomprobante_id') == 3) { if (Input::get('persona_id') == '') { if (strlen(Input::get('dniruc')) < 11) { return Redirect::back(); } if (Input::get('nombre') != '') { $persona = Persona::create(['ruc' => Input::get('dniruc'), 'razonsocial' => Input::get('nombre')]); $persona_id = $persona->id; } else { return Redirect::back(); } } } if ($credito == 1) { $empresa = ''; $ruc = ''; if (count($persona) > 0) { $empresa = $persona->razonsocial; $ruc = $persona->ruc; } $cliente = $pedido->persona()->first(); $detcredito = Credito::create(['pedido_id' => $pedido->id, 'estado' => $credito, 'nombre' => $cliente->nombre, 'dni' => $cliente->dni, 'empresa' => $empresa, 'ruc' => $ruc, 'detallecaja_id' => $this->detallecaja->id, 'importe' => $porpagar]); return Redirect::back(); } $importe = Input::get('importe'); $subtotal = $importe / 1.18; $documentoventa = Documentoventa::create(['estado' => 1, 'igv' => $importe - $subtotal, 'importe' => $importe, 'subtotal' => $subtotal, 'caja_id' => $this->detallecaja->caja_id, 'detallecaja_id' => $this->detallecaja->id, 'pedido_id' => Input::get('pedido_id'), 'persona_id' => $persona_id, 'tipocomprobante_id' => Input::get('tipocomprobante_id'), 'numero' => Input::get('serie'), 'serie' => Input::get('numero')]); $productos = $pedido->productos; $alquiler = $pedido->alquiler; foreach ($productos as $producto) { if ($producto->pivot->estado == 1) { $producto->pivot->estado = 0; $documentoventa->productos()->attach($producto->id, ['precio' => $producto->pivot->precio, 'preciounitario' => $producto->pivot->preciounitario, 'cantidad' => $producto->pivot->cantidad, 'descripcion' => $producto->nombre]); $producto->pivot->save(); } } foreach ($alquiler as $detalle) { if ($detalle->pivot->estado == 1) { $detalle->pivot->estado = 0; $documentoventa->alquiler()->attach($detalle->id, ['precio' => $detalle->pivot->precio, 'preciounitario' => $detalle->pivot->precio / $detalle->pivot->cantidad, 'cantidad' => $detalle->pivot->cantidad, 'descripcion' => $detalle->descripcion]); $detalle->pivot->save(); } } return Redirect::back(); }