This commit is contained in:
85
api/app/Services/Parametrizacao/TabelaObmService.php
Normal file
85
api/app/Services/Parametrizacao/TabelaObmService.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Parametrizacao;
|
||||
|
||||
use App\Enums\Log\Operacao;
|
||||
use App\Models\Integracao\Bnafar\Medicamento;
|
||||
use App\Models\Log\CadastroMaterialIntegracaoBnafarMedicamento;
|
||||
use App\Services\Service;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class TabelaObmService extends Service
|
||||
{
|
||||
public static function show($id)
|
||||
{
|
||||
$materiais = DB::table('cadastro_material')
|
||||
->select([
|
||||
'cadastro_material.id',
|
||||
'cadastro_material.descricao',
|
||||
])
|
||||
->join('cadastro_material_integracao_bnafar_medicamento', 'cadastro_material_integracao_bnafar_medicamento.material_id', 'cadastro_material.id')
|
||||
->where('cadastro_material_integracao_bnafar_medicamento.medicamento_id', $id)
|
||||
->get();
|
||||
|
||||
$log = DB::table('cadastro_material')
|
||||
->select([
|
||||
DB::raw("DATE_FORMAT(log_cadastro_material_integracao_bnafar_medicamento.created_at, '%d/%m/%Y %h:%i') AS data_hora"),
|
||||
'log_operacao.nome AS operacao_nome',
|
||||
'cadastro_material.descricao AS material_descricao',
|
||||
'cadastro_cidadao.nome AS usuario_nome',
|
||||
])
|
||||
->join('log_cadastro_material_integracao_bnafar_medicamento', 'log_cadastro_material_integracao_bnafar_medicamento.material_id', 'cadastro_material.id')
|
||||
->join('log_operacao', 'log_operacao.id', 'log_cadastro_material_integracao_bnafar_medicamento.operacao_id')
|
||||
->join('cadastro_lotacao', 'cadastro_lotacao.id', 'log_cadastro_material_integracao_bnafar_medicamento.created_lotacao_id')
|
||||
->join('cadastro_usuario', 'cadastro_usuario.id', 'cadastro_lotacao.usuario_id')
|
||||
->join('cadastro_cidadao', 'cadastro_cidadao.id', 'cadastro_usuario.cidadao_id')
|
||||
->where('log_cadastro_material_integracao_bnafar_medicamento.medicamento_id', $id)
|
||||
->get();
|
||||
|
||||
return [
|
||||
'materiais' => $materiais,
|
||||
'log' => $log,
|
||||
];
|
||||
}
|
||||
|
||||
public static function store($request)
|
||||
{
|
||||
$medicamento = Medicamento::find($request->medicamento_id);
|
||||
|
||||
$sync = $medicamento->materiais()->sync($request->materiais);
|
||||
|
||||
foreach ($sync['attached'] as $value) {
|
||||
CadastroMaterialIntegracaoBnafarMedicamento::create([
|
||||
'operacao_id' => Operacao::INCLUSAO,
|
||||
'medicamento_id' => $medicamento->id,
|
||||
'material_id' => $value,
|
||||
]);
|
||||
}
|
||||
|
||||
foreach ($sync['detached'] as $value) {
|
||||
CadastroMaterialIntegracaoBnafarMedicamento::create([
|
||||
'operacao_id' => Operacao::EXCLUSAO,
|
||||
'medicamento_id' => $medicamento->id,
|
||||
'material_id' => $value,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public static function datatable()
|
||||
{
|
||||
return DB::table('integracao_bnafar_medicamento')
|
||||
->select([
|
||||
'integracao_bnafar_medicamento.id AS medicamento_id',
|
||||
'integracao_bnafar_medicamento.codigo AS medicamento_codigo',
|
||||
'integracao_bnafar_medicamento.descricao AS medicamento_descricao',
|
||||
DB::raw("GROUP_CONCAT(DISTINCT cadastro_material.descricao SEPARATOR ', ') AS material_descricao"),
|
||||
])
|
||||
->leftJoin('cadastro_material_integracao_bnafar_medicamento', 'cadastro_material_integracao_bnafar_medicamento.medicamento_id', 'integracao_bnafar_medicamento.id')
|
||||
->leftJoin('cadastro_material', 'cadastro_material.id', 'cadastro_material_integracao_bnafar_medicamento.material_id')
|
||||
->groupBy([
|
||||
'integracao_bnafar_medicamento.id',
|
||||
'integracao_bnafar_medicamento.codigo',
|
||||
'integracao_bnafar_medicamento.descricao',
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user