/home/dvjjulio/test.istyle.mx/app/Http/Controllers/ComisionPagoController.php
<?php

namespace App\Http\Controllers;

use App\ComisionPago;
use App\Http\Controllers\ComisionesController;
use Auth;
use Illuminate\Http\Request;
use Uuid;

class ComisionPagoController extends Controller
{
    //
    public function guardar($client_id, $venta_id, $cantidad, $comision_id)
    {
        // Busca si existe la categoría previamente en la BD
        $id = '0';
        $comisionPago = ComisionPago::where('cliente_id', '=', $client_id)
            ->where('venta_id', '=', $venta_id)
            ->where('comision_id', $comision_id)
            ->where('status_id', 1)
            ->first();
        if (isset($comisionPago)) {
            $id = $comisionPago->id;
        }

        if ($id == "0") {
            $comisionPago = new ComisionPago();
            $comisionPago->id = Uuid::generate();
            $mesage = "El pago ha sido creado exitosamente";
        } else {
            $comisionPago = ComisionPago::find($id);
            $mesage = "El pago ha sido actualizada correctamente";
        }

        $comisionPago->cliente_id = $client_id;
        $comisionPago->comision_id = $comision_id;
        $comisionPago->venta_id = $venta_id;
        $comisionPago->cantidad = $cantidad;
        $comisionPago->created_by = Auth::user()->id;
        $comisionPago->status_id = 1;
        if ($comisionPago->save()) { // Guardar en base de datos
            //response()->json(['status'=>trues,'message'=>$mesage,'data'=>$comisionPago]);
            return true;
        } else {
            //response()->json(['status'=>false,'message'=>'Error al insertar los datos']);
            return false;
        }
    }

    public function deleteComisionPagada(Request $request)
    {
        try {
            $comisionPago = ComisionPago::Find($request->input('id'));
            if ($comisionPago) {
                $comisionPago->status_id = 0;
                $comisionPago->created_by = Auth::user()->id;
                if ($comisionPago->save()) {
                    return response()->json(['status' => true, 'message' => 'Registro eliminado correctamente']);
                } else {
                    return response()->json(['status' => false, 'message' => 'Error al eliminar registro']);
                }
            } else {
                return response()->json(['status' => false, 'message' => 'Something went wrong']);
            }
        } catch (Exception $ex) {
            return response()->json(['status' => false, 'message' => 'Something went wrong']);
        }
    }

    public function deleteComisionFromVenta($venta_id)
    {
        $comisionPagos = ComisionPago::where('venta_id', $venta_id)->get();
        $comisiones = new ComisionesController();
        foreach ($comisionPagos as $comisionPago) {
            if ($comisiones->updateComisionGasto($comisionPago->comision_id, $comisionPago->cantidad)) {
                $comisionPago->status_id = 0;
                if (!$comisionPago->save()) {
                    return false;
                }

            } else {
                return false;
            }
        }
        return true;
    }
}