<?php

namespace App\Http\Controllers;

use App\DetalleVentas;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class DetalleVentasController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        if(Auth::user()->user_tipe == 'Admin' || Auth::user()->user_tipe == 'Bodeguista')
        {
            $datos = DB::table('detalle_ventas')->join('materiales', 'materiales.id_material', '=', 'detalle_ventas.id_material')
            ->join('ventas', 'ventas.id_venta', '=', 'detalle_ventas.id_venta')
            ->select(['detalle_ventas.id_detalle',
            'materiales.id_material', 'materiales.codigo', 'materiales.nombre', 'materiales.precio',
            'ventas.id_personal', 'ventas.fecha_venta',
            'detalle_ventas.cantidadV', 'precio_venta'
            ])->paginate(20);

            return view('DetalleVentas.index', compact('datos'));
        }
        else
        {
            abort(403, 'Acceso Prohibido');
        }
    }

    public function search(Request $request)
    {
        if(Auth::user()->user_tipe == 'Admin' || Auth::user()->user_tipe == 'Bodeguista')
        {
            $search = trim($request->get('search'));
        
            $datos = DB::table('detalle_ventas')->join('materiales', 'materiales.id_material', '=', 'detalle_ventas.id_material')
            ->join('ventas', 'ventas.id_venta', '=', 'detalle_ventas.id_venta')
            ->select(['detalle_ventas.id_detalle',
            'materiales.id_material', 'materiales.codigo', 'materiales.nombre', 'materiales.precio',
            'ventas.id_personal', 'ventas.fecha_venta',
            'detalle_ventas.cantidadV', 'precio_venta'
            ])
            ->where('ventas.id_personal', 'LIKE', '%'.$search.'%')
            ->orWhere('materiales.codigo', 'LIKE', '%'.$search.'%')
            ->orderBy('id_detalle', 'asc')->paginate();

            $output = '';

            if(count($datos)>0)
            {
                $contador = 1;
                foreach($datos as $dato)
                {
                    $output .= '<tr style="text-align: center">
                                    <td>'.$contador.'</td>
                                    <td>'.$dato->codigo.'</td>
                                    <td>'.$dato->nombre.'</td>
                                    <td>'.$dato->precio.'</td>
                                    <td>'.$dato->id_personal.'</td>
                                    <td>'.Carbon::parse($dato->fecha_venta)->format('d-m-Y').'</td>
                                    <td>'.$dato->cantidadV.'</td>
                                    <td>'.$dato->precio_venta.'</td>
                                </tr>';
                    $contador = $contador + 1; 
                }
                return response($output);
            }
            else
            {
                $output .= '<tr><td colspan="8" style="text-align: center">¡Ups..! No Se Encontraron Resultados</td></tr>';
                return response($output);
            }
        }
        else
        {
            abort(403, 'Acceso Prohibido');
        }
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    public function mostrarDetalles($id_venta)
    {
        $datos = DB::table('detalle_ventas')
        ->join('materiales', 'materiales.id_material', '=', 'detalle_ventas.id_material')
        ->join('ventas', 'ventas.id_venta', '=', 'detalle_ventas.id_venta')
        ->select(['materiales.nombre', 'materiales.codigo',
        'ventas.id_venta', 'ventas.nombre_ven',
        'detalle_ventas.cantidadV', 'detalle_ventas.precio_venta'])->where('detalle_ventas.id_venta', '=', $id_venta)->get();

        return view('DetalleVentas.show', compact('datos'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\DetalleVentas  $detalleVentas
     * @return \Illuminate\Http\Response
     */
    public function show(DetalleVentas $detalleVentas)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\DetalleVentas  $detalleVentas
     * @return \Illuminate\Http\Response
     */
    public function edit(DetalleVentas $detalleVentas)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\DetalleVentas  $detalleVentas
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, DetalleVentas $detalleVentas)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\DetalleVentas  $detalleVentas
     * @return \Illuminate\Http\Response
     */
    public function destroy(DetalleVentas $detalleVentas)
    {
        //
    }
}
