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

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Cliente;
use App\PremioCliente;
use App\Premio;
use Uuid;

class PremioClienteController extends Controller
{
    //
  public function index(){
    $premioC = new PremioCliente();

    $premio = Premio::orderBy('orden', 'ASC')->get();

    $premios = $premioC->clientePremios();
    return view('Catalogos.Premio')->with(compact('premios', 'premio'));
  }
  
  public function clientePremio(){
    $clientes = Cliente::where('nivel','>',0)->get();
    $premios = new PremioCliente();
    $year = date('Y');
    $mes = date('m');
    $clientes_verify = [];
    foreach ($clientes as $key => $value) {
      $verifyC = $this->verifyBox($premios->totalCajas($value->id,$year,$mes));
      if(isset($verifyC)){
        $clientes_verify[$key] = ['cliente'=>$value, 'caja' => $verifyC];
      }
    }
    // return $clientes_verify;
    return $this->insertHistoricAwards($clientes_verify, $year, $mes);
  }

  public function verifyBox($cliente){
    if(isset($cliente)){
      if($cliente[0]->total_cajas >= 30){
        return $cliente;
      }
    }
  }

  public function insertHistoricAwards($clientes_verify, $year, $month){
    foreach($clientes_verify as $value) {

      $premios = new PremioCliente();
      $premios->cliente_id = $value['cliente']['id'];
      $premios_type = $premios->verifyAward($premios);
      
      if($premios_type[1] == 'mes_1') {
        $premios->id = Uuid::generate()->string;
      } else {
        $premios = $premios::find($premios_type[0]);
      }

      if($premios_type) {
        $premios_list = new Premio();
        $premioId = $premios_list::where('cajas','=',30)->get();
        $premios->premio_id = $premioId[0]->id;
        foreach($value['caja'] as $caja) {
          
          switch ($premios_type[1]){
            case 'mes_1':
              $premios->mes_1 = $caja->month;
              $premios->cajas_1 = $caja->total_cajas;
            break;
            case 'mes_2':
              $premios->mes_2 = $caja->month;
              $premios->cajas_2 = $caja->total_cajas;
            break;
            case 'mes_3':
              $premios->mes_3 = $caja->month;
              $premios->cajas_3 = $caja->total_cajas;
              $premios->completado = 1;
            break;
            default:
              echo "Complete";
            break;
          }
          $premios->year = $caja->year;
        }
        //echo $premios_type[1]. " ".$premios." ".$year." ".$month;
        if($premios_type[1] != "complete" && $premios->verifyMonthYear($premios, $premios_type[1], $year, $month) < 1 ){
          if($premios->save()) {
            //echo "correcto";
          }
        }else{
          //echo "na";
        }
      }
    }
  }

}