function manipulaRegistrosLocais($arrLocal, $registros, $_lid, $pid) { $retorno = array(); $cria = false; $zera = false; $_id = $_lid . '_id'; if (count($arrLocal) > 0) { if ($registros == null || count($registros) == 0) { $cria = true; $zera = false; } else { // se houverem estados selecionados compara com o número de registros // se forem diferentes já valida a exclusão e criação de novos registros if (count($registros) != count($arrLocal)) { $cria = true; $zera = true; } else { // se os estados forem iguais faz uma verificação para identificar se // há algum registro diferente $conta = 0; foreach ($registros as $LOCAL) { $aE = $arrLocal[$conta]; if ($aE[0] != $LOCAL->{$_id} || $aE[1] != $LOCAL->select) { // se achar achar diferença para o loop e valida a // exclusão e criação de novos registros $cria = true; $zera = true; break; } } } } } else { $cria = false; $zera = true; } if ($zera) { if ($_lid == 'estados') { est_atendido::table()->delete(array('parceiros_id' => $pid)); } else { if ($_lid == 'estadosregioes') { reg_atendida::table()->delete(array('parceiros_id' => $pid)); } else { cdd_atendida::table()->delete(array('parceiros_id' => $pid)); } } } if ($cria) { $arr = array(); foreach ($arrLocal as $L) { $arr['parceiros_id'] = $pid; $arr[$_id] = $L[0]; $arr['select'] = $L[1]; if ($_lid == 'estados') { $locaisAtn = new est_atendido($arr); $locaisAtn->save(); } else { if ($_lid == 'estadosregioes') { $locaisAtn = new reg_atendida($arr); $locaisAtn->save(); } else { $locaisAtn = new cdd_atendida($arr); $locaisAtn->save(); } } } } }