<?php
namespace App\Controller;

use Carbon\Carbon;
use App\Definition\Controller;
use Incoviba\old\Proyecto\Agente;
use Incoviba\old\Proyecto\Proyecto;
use Incoviba\old\Proyecto\ProyectoAgente;

class Operadores
{
  use Controller;

  public static function agregar()
  {
    $proyecto = model(Proyecto::class)->findOne(get('proyecto'));
    $operadores = model(Agente::class)
      ->select('agente.*')
      ->join('agente_tipo', ['agente_tipo.agente', '=', 'agente.id'])
      ->join('tipo_agente', ['tipo_agente.id', '=', 'agente_tipo.tipo'])
      ->where('tipo_agente.descripcion', 'operador')
      ->orderByAsc('agente.abreviacion')
      ->findMany();
    $vigentes = array_map(function($item) {
      return $item->agente()->agente();
    }, $proyecto->operadoresVigentes());
    echo view('proyectos.operadores.add', compact('proyecto', 'operadores', 'vigentes'));
  }
  public static function add()
  {
    $proyecto = model(Proyecto::class)->findOne(get('proyecto'));
    $fecha = Carbon::today(config('app.timezone'));
    foreach (post('operadores') as $op) {
      $operador = model(Agente::class)->findOne($op);
      $at = $operador->tipos(19);
      $data = [
        'proyecto' => $proyecto->id,
        'agente' => $at->id,
        'fecha' => $fecha->format('Y-m-d'),
        'comision' => 2
      ];
      $pa = model(ProyectoAgente::class)->create($data);
      $pa->new();
    }
    header('Location: ' . nUrl('proyectos', 'show', ['proyecto' => $proyecto->id]));
  }
}
