<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Solicitud;
use App\Models\Recibo;
use Carbon\Carbon;


class reciboController extends Controller
{
    function guardar($solicitud)
    {
        $recibo = new Recibo();

        $precio = $solicitud->precio;
        $descuento = $solicitud->descuento;

        $max = Recibo::max('consecutivo');
        $recibo->id_solicitud = $solicitud->id;
        $recibo->consecutivo=($max !== null) ? $max +1 :1001 ;
        $recibo->nombres_completo = $solicitud->nombres_completo ;
        $recibo->curso =$solicitud->curso ;
        $recibo->precio = $precio ;
        $recibo->descuento = $descuento ;
        $recibo->vr_descuento= $precio * $descuento;
        $recibo->total = $solicitud->total ;
        
        try {
            $recibo->save();
            $recibo->load('Oferta');
            
             $recibo->year = Carbon::parse($recibo->created_at)->year;
             $recibo->month = Carbon::parse($recibo->created_at)->month;
             $recibo->day = Carbon::parse($recibo->created_at)->day;
             
        } catch (\Throwable $th) {
            dd($th);
            return null;
        }
 
        return $recibo;
    }



    
    function obtnrFecha(){
        $array = [];
        
        $periodo = '202410';
        $fechaActual = Carbon::now( );
        $fechaAnio = $fechaActual->year;
        $fechaMes = $fechaActual->month;
        $fechaDia = $fechaActual->day;
        $fechaMaxima = '20240421';
        
        $fechaActual = $fechaActual->format('d-m-Y');
        
        //pruebas
        // $fechaAnio = '2023';
        // $fechaMes = '12';
        // $fechaDia = '21';
        // $fechaActual = '16-11-2023';

        $array["periodo"] = $periodo;
        $array["fechaActual"] = $fechaActual;
        $array["anio"] = $fechaAnio;
        $array["mes"] = $fechaMes;
        $array["dia"] = $fechaDia;
        $array["fechaMax"] = $fechaMaxima;

        return $array;
    }

   
    

    function buscarValdr($data){
        $numDoc = $data['documento'];
        $evnt = $data['evento'];

        $contRecb = Recibo::where('DOCUMENTO', $numDoc)
            ->where('NOMBRE_EVENTO', $evnt)
            ->where('ESTADO', 'ACTIVO')
            ->count('CONSECUTIVO');
        
        if ($contRecb == 0) {
            $exist = false;
        } else {
            $exist = true;
        }
        
        return $exist;
    }

    function actualizarEstdRecb($doc, $evnt){
        $request = Recibo::where('DOCUMENTO', $doc)
            ->where('NOMBRE_EVENTO', $evnt)
            ->where('ESTADO', 'ACTIVO')
            ->update([
                'ESTADO' => 'INVALIDO'
            ]);
    }

    function mostrarCodigo(){
        
        $codeBuilder = new Barcode\Builder();
        
        //Seccion codigo de barra
        $codeBuilder->setBarcodeType('gs1-128');
        $codeBuilder->setWidth(600);
        $codeBuilder->setHeight(120);
        
        $codeBuilder->output('123');
        
    }

    

}
