Você está na página 1de 2

function post_salvar($parametros) {

//registro da Restrição
$registro = $parametros;
$parametros = [];
$dao = new \eventos\RestricoesDAO();

if($registro['id']){
$fundamentosAssociados = $registro['fundamentosAssociados'];

$idsFundsAss = [];
foreach($fundamentosAssociados as $fundAss) {
array_push($idsFundsAss, $fundAss['id']);
}

$idsFundsBDAtivos = [];
$idsFundsBDInativos = [];
$idsFundsBD = [];

$fundamentosBD = $dao->buscarFundamentosPorId($registro['id']);
foreach ($fundamentosBD as $fundBD) {
if($fundBD['flg_ativo'] == 'S') {
array_push($idsFundsBDAtivos, $fundBD['id_fundamento_legal']);
} else {
array_push($idsFundsBDInativos, $fundBD['id_fundamento_legal']);
}
array_push($idsFundsBD, $fundBD['id_fundamento_legal']);
}

$idsFundsRemovidos = array_diff($idsFundsBDAtivos, $idsFundsAss);


$idsFundsNovos = array_diff($idsFundsBD, $idsFundAss);
$idsParaAlterar = array_intersect($idsFundsBDInativos, $idsFundAss);

if($idsFundsRemovidos && $idsFundsNovos) {


//se não tiver alterações ele barra a edição.
return false;
} else {
$registro['fundamentosAssociados'] = 0;
if(isset($idsFundsRemovidos)) {
$parametros = [];
$parametros['id_restricao'] = $registro['id'];
$parametros['idsFundamentos'] = $idsFundsRemovidos;
$dao->excluirFundamentosPorRestricao($parametros);
}

if(isset($idsParaAlterar)) {
$parametros = [];
$parametros['id_restricao'] = $registro['id'];
$parametros['idsFundamentos'] = $idsParaAlterar;
$dao->alteraFundamentosPorRestricao($parametros);
}

if(isset($idsFundsNovos)) {
$registro['fundamentosAssociados'] = $idsFundsNovos;
}

$dao->salvar($registro);
return true;
}
} else {
$dao->salvar($registro);
return true;
}
}

Você também pode gostar