43 lines
1.5 KiB
PHP
43 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Cadastro;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Services\Cadastro\UnificacaoUsuarioPacienteService;
|
|
use App\Utils\MaskUtil;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Carbon\Carbon;
|
|
|
|
class UnificacaoUsuarioPacienteController extends Controller
|
|
{
|
|
protected $modulo = 'cadastro';
|
|
protected $funcionalidade = 'unificacao-usuario-paciente';
|
|
|
|
public function autocomplete()
|
|
{
|
|
return datatables()
|
|
->of(UnificacaoUsuarioPacienteService::autocomplete())
|
|
->filterColumn('cadastro_paciente.prontuario', function ($query, $keyword) {
|
|
$query->whereRaw('LPAD(cadastro_paciente.prontuario,7,0) like ?', ["%{$keyword}%"]);
|
|
})
|
|
->filterColumn('cadastro_cidadao.data_nascimento', function($query, $keyword){
|
|
$keyword = preg_replace('/[^0-9]/', '', $keyword);
|
|
if(strlen($keyword) == 8){
|
|
$data = Carbon::createFromFormat('dmY', $keyword)->format('Y-m-d');
|
|
$query->whereDate('cadastro_cidadao.data_nascimento', $data);
|
|
}
|
|
})
|
|
->editColumn('cpf', fn ($query) => MaskUtil::getCpfMasked($query->cpf))
|
|
->editColumn('cns', fn ($query) => MaskUtil::getCnsMasked($query->cns))
|
|
->toJson();
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$this->auth(__FUNCTION__);
|
|
|
|
return response()->json(UnificacaoUsuarioPacienteService::store($request), Response::HTTP_OK);
|
|
}
|
|
}
|