48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?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]));
|
|
}
|
|
}
|