app/Http/Controllers/PagoController.php
/**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
Store a newly created resource in storage.
Store a newly created resource in storage .
public function store(Request $request)
    {
        try {
          $carritoAnt=Session::has('carrito') ? Session::get('carrito') : null;
          $carrito=new Carrito($carritoAnt);
              $orden=new Orden();
              $orden->codigo_seguimiento=substr(microtime(),11,strlen(microtime())-11);
              $orden->estado_servicio="PENDIENTE";
              $orden->estado_pago="SIN CANCELAR";
              $orden->tipo_orden="EN LINEA";
              $orden->user_id=auth()->user()->id;
              if($orden->save()){
                foreach($carrito->elementos as $producto){
                $prodx=Producto::findOrFail($producto['elemento']->id);
                if($producto['cantidad']>$prodx->stock){
                  $carrito->eliminar($producto['elemento']->id);
                  $request->session()->put('carrito',$carrito);
                  $orden->delete();
                  return redirect()->action('ProductoController@verCarrito')->with('error');
                }else{
                  $prodx->stock=$prodx->stock - $producto['cantidad'];
                  $prodx->update();
                }
                $detalle=new DetalleOrden();
                $detalle->orden_id=$orden->id;
                $detalle->producto_id=$producto['elemento']->id;
                $detalle->cantidad_producto=$producto['cantidad'];
                $detalle->total_parcial=$producto['precio'];
                $detalle->save();
                }
                $pago=new Pago();
                $pago->orden_id=$orden->id;
                $pago->tipo_pago="Tarjeta Crédito";
                $pago->tarjeta_credito=auth()->user()->tarjeta_credito;
                $pago->total_cancelar=$carrito->precioTotal;
                $pago->recibido=$carrito->precioTotal;
                $pago->cambio="0.0";
                if($pago->save()){
                  $orden->estado_pago="CANCELADA";
                  $orden->save();
                }
              }
                $carrito=null;
                $request->session()->put('carrito',$carrito);
          return redirect()->action('TiendaController@index');
        } catch (Exception $e) {
        }
    }
public function store ( Request $ request ) { try { $ carritoAnt = Session :: has ( 'carrito' ) ? Session :: get ( 'carrito' ) : null ; $ carrito = new Carrito ( $ carritoAnt ) ; $ orden = new Orden ( ) ; $ orden -> codigo_seguimiento = substr ( microtime ( ) , 11 , strlen ( microtime ( ) ) - 11 ) ; $ orden -> estado_servicio = " PENDIENTE " ; $ orden -> estado_pago = " SIN CANCELAR " ; $ orden -> tipo_orden = " EN LINEA " ; $ orden -> user_id = auth ( ) -> user ( ) -> id ; if ( $ orden -> save ( ) ) { foreach ( $ carrito -> elementos as $ producto ) { $ prodx = Producto :: findOrFail ( $ producto [ 'elemento' ] -> id ) ; if ( $ producto [ 'cantidad' ] > $ prodx -> stock ) { $ carrito -> eliminar ( $ producto [ 'elemento' ] -> id ) ; $ request -> session ( ) -> put ( 'carrito' , $ carrito ) ; $ orden -> delete ( ) ; return redirect ( ) -> action ( 'ProductoController@verCarrito' ) -> with ( 'error' ) ; } else { $ prodx -> stock = $ prodx -> stock - $ producto [ 'cantidad' ] ; $ prodx -> update ( ) ; } $ detalle = new DetalleOrden ( ) ; $ detalle -> orden_id = $ orden -> id ; $ detalle -> producto_id = $ producto [ 'elemento' ] -> id ; $ detalle -> cantidad_producto = $ producto [ 'cantidad' ] ; $ detalle -> total_parcial = $ producto [ 'precio' ] ; $ detalle -> save ( ) ; } $ pago = new Pago ( ) ; $ pago -> orden_id = $ orden -> id ; $ pago -> tipo_pago = " Tarjeta Crédito" ; $ pago -> tarjeta_credito = auth ( ) -> user ( ) -> tarjeta_credito ; $ pago -> total_cancelar = $ carrito -> precioTotal ; $ pago -> recibido = $ carrito -> precioTotal ; $ pago -> cambio = " 0.0 " ; if ( $ pago -> save ( ) ) { $ orden -> estado_pago = " CANCELADA " ; $ orden -> save ( ) ; } } $ carrito = null ; $ request -> session ( ) -> put ( 'carrito' , $ carrito ) ; return redirect ( ) -> action ( 'TiendaController@index' ) ; } catch ( Exception $ e ) { } }
Store a newly created resource in storage.
Store a newly created resource in storage .
//se llama al carrito //se crea la orden y se asocian los datos y se crea en la base //se registran los detalles de la orden y se guardan en la base //se registra el pago y se cambia el estado de pago de la orden //se elimina el carrito