Example #1
0
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();
                }
            }
        }
    }
}