case 'buscar-programa-vinculado':
                try {
                    $out = DaoDadosSiop::getProgramaVinculado($_POST['vinculo']);
                } catch (Exception $e) {
                    $out = array('success' => 'false', 'error' => $e->getMessage());
                }
                break;
            case 'detalhar-meta':
                try {
                    $out = DaoDadosSiop::getObjetivoMetaVinculado($_POST['vinculo']);
                } catch (Exception $e) {
                    $out = array('success' => 'false', 'error' => $e->getMessage());
                }
                break;
            case 'detalhar-acao':
                try {
                    $out = DaoDadosSiop::getAcaoVinculado($_POST['vinculo']);
                } catch (Exception $e) {
                    $out = array('success' => 'false', 'error' => $e->getMessage());
                }
                break;
            default:
                $out = array('success' => 'false', 'error' => 'Opcao Invalida!');
                break;
        }
        print json_encode($out);
    } catch (Exception $e) {
        $erro = new Output(array('success' => 'false', 'error' => $e->getMessage()));
        print json_encode($erro->toArray());
    }
}
                    }
                    $tr = $tr == '<tr class="odd">' ? '<tr class="even">' : '<tr class="odd">';
                    $strCorpoTabela .= $tr . '<td class="tdParagrafo">';
                    $strCorpoTabela .= $arrDados[$i]['COD_OBJETIVO'] . ' - ' . $arrDados[$i]['DSC_OBJETIVO'];
                    $strCorpoTabela .= '</td><td class="tdTexto">';
                    $idObj = $arrDados[$i]['COD_OBJETIVO'];
                }
                if ($unidade == Controlador::getInstance()->usuario->ID_UNIDADE && $aba != 'obj_vinc') {
                    $strCorpoTabela .= '<input type="checkbox" idMeta="' . $arrDados[$i]['ID_META'] . '" class="chkMeta" />&nbsp;&nbsp;&nbsp;';
                }
                $strCorpoTabela .= $arrDados[$i]['COD_META'] . ' - ' . $arrDados[$i]['DSC_META'] . '<br/>';
            }
        }
    } elseif ($aba == 'acoes') {
        $idHtml = 'tblAcoes';
        $arrDados = DaoDadosSiop::getAcoes($programa, $unidade, $ano);
        $strCabTabela = '<tr>
							<th class="' . $strClasseTh . '" rowspan="2" width="40%">A&ccedil;&atilde;o / Localizador / PO</th>
							<th class="' . $strClasseTh . '" colspan="4">Valores</th>
						</tr>
						<tr>
							<th class="' . $strClasseTh . '">Dota&ccedil;&atilde;o Atual (R$)</th>
							<th class="' . $strClasseTh . '">Empenhado (R$)</th>
							<th class="' . $strClasseTh . '">Liquidado (R$)</th>
							<th class="' . $strClasseTh . '">&nbsp;% Liq. / Emp.</th>
						</tr>';
        $numTam = count($arrDados);
        $strCorpoTabela = '';
        $tr = '<tr class="even">';
        if ($arrDados && $numTam > 0) {
            for ($i = 0; $i < $numTam; $i++) {
                    $strCorpoTabela .= '<input type="checkbox" idMeta="' . $arrDados[$i]['ID_META'] . '" ';
                    if (is_null($arrDados[$i]['VINCULO'])) {
                        $strCorpoTabela .= 'class="chkMeta" />';
                    } else {
                        $strCorpoTabela .= 'checked="checked" disabled="disabled"
											title="Para desmarcar, exclua a meta na tela de respostas do prazo." />';
                    }
                    $strCorpoTabela .= '&nbsp;&nbsp;&nbsp;';
                }
                $strCorpoTabela .= $arrDados[$i]['COD_META'] . ' - ' . $arrDados[$i]['DSC_META'] . '<br/>';
            }
        }
    } elseif ($aba == 'acoes') {
        //AÇÕES
        $idHtml = 'tblAcoes';
        $arrDados = DaoDadosSiop::getAcoes($programa, $orgSiop, $ano, $prazo);
        $strCabTabela = '<tr>
							<th class="' . $strClasseTh . '" rowspan="2" width="40%">A&ccedil;&atilde;o</th>
							<th class="' . $strClasseTh . '" colspan="4">Valores</th>
						</tr>
						<tr>
							<th class="' . $strClasseTh . '">Dota&ccedil;&atilde;o Atual (R$)</th>
							<th class="' . $strClasseTh . '">Empenhado (R$)</th>
							<th class="' . $strClasseTh . '">Liquidado (R$)</th>
							<th class="' . $strClasseTh . '">&nbsp;% Liq. / Emp.</th>
						</tr>';
        $numTam = count($arrDados);
        $strCorpoTabela = '';
        $tr = '<tr class="even">';
        if ($arrDados && $numTam > 0) {
            for ($i = 0; $i < $numTam; $i++) {
        $numTam = count($arrDados);
        $strCorpoTabela = '<tr id="trTexto"><td colspan="5">Não existem programas orçamentários para este programa e exercício.</td></tr>';
        $trClass = 'even';
        if ($arrDados && $numTam > 0) {
            $strCorpoTabela = '';
            for ($i = 0; $i < $numTam; $i++) {
                $trClass = $trClass == 'odd' ? 'even' : 'odd';
                //AÇÕES
                $strCorpoTabela .= '<tr class="' . $trClass . '"><td class="tdTexto">' . 'Ação: ' . $arrDados[$i]['COD_ACAO'] . ' - ' . $arrDados[$i]['TIT_ACAO'] . '</td>' . '<td class="tdNumero">' . number_format($arrDados[$i]['VAL_DOTACAO_ATUAL'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrDados[$i]['VAL_EMPENHADO'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrDados[$i]['VAL_LIQUIDADO'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrDados[$i]['PER_LIQ_EMP'], 3, ',', '.') . '%</td>' . '</tr>';
                //LOCALIZADORES
                $arrLocal = DaoDadosSiop::getLocalizadoresByAcao($arrDados[$i]['ID_ACAO'], $ano);
                if ($arrLocal !== false) {
                    for ($j = 0; $j < count($arrLocal); $j++) {
                        $strCorpoTabela .= '<tr class="' . $trClass . '"><td class="tdTexto" style="padding-left: 30px;">' . 'Localizador: ' . $arrLocal[$j]['COD_LOCALIZADOR'] . ' - ' . $arrLocal[$j]['DES_LOCALIZADOR'] . '</td>' . '<td class="tdNumero">' . number_format($arrLocal[$j]['VAL_DOTACAO_ATUAL'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrLocal[$j]['VAL_EMPENHADO'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrLocal[$j]['VAL_LIQUIDADO'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrLocal[$j]['PER_LIQ_EMP'], 3, ',', '.') . '%</td>' . '</tr>';
                        //PLANOS ORÇAMENTÁRIOS
                        $arrPlOrc = DaoDadosSiop::getPlanosOrcamByAcaoLocalizador($arrDados[$i]['ID_ACAO'], $arrLocal[$j]['COD_LOCALIZADOR'], $ano, $prazo);
                        if ($arrPlOrc !== false) {
                            for ($k = 0; $k < count($arrPlOrc); $k++) {
                                $idPO = $arrDados[$i]['ID_ACAO'] . '|' . $arrLocal[$j]['ID_LOCALIZADOR'] . '|' . $arrPlOrc[$k]['ID_PLANO_ORCAM'];
                                $strCorpoTabela .= '<tr class="' . $trClass . '"><td class="tdTexto" style="padding-left: 50px;">';
                                if ($unidade == Controlador::getInstance()->usuario->ID_UNIDADE) {
                                    $strCorpoTabela .= '<input type="checkbox" idPO="' . $idPO . '" ';
                                    if (is_null($arrPlOrc[$i]['VINCULO'])) {
                                        $strCorpoTabela .= 'class="chkPO" />';
                                    } else {
                                        $strCorpoTabela .= 'checked="checked" disabled="disabled"
											title="Para desmarcar, exclua a ação na tela de respostas do prazo." />';
                                    }
                                    $strCorpoTabela .= '&nbsp;';
                                }
                                $strCorpoTabela .= 'PO: ' . $arrPlOrc[$k]['COD_PLANO_ORCAM'] . ' - ' . $arrPlOrc[$k]['TIT_PLANO_ORCAM'] . '</td>' . '<td class="tdNumero">' . number_format($arrPlOrc[$k]['VAL_DOTACAO_ATUAL'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrPlOrc[$k]['VAL_EMPENHADO'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrPlOrc[$k]['VAL_LIQUIDADO'], 2, ',', '.') . '</td>' . '<td class="tdNumero">' . number_format($arrPlOrc[$k]['PER_LIQ_EMP'], 3, ',', '.') . '%</td>' . '</tr>';
<?php

include __BASE_PATH__ . '/extensoes/pr_snas/1.2/classes/DaoDadosSiop.php';
if ($_POST) {
    try {
        $out = array();
        switch ($_POST['acao']) {
            case 'listar-programas':
                try {
                    $out = DaoDadosSiop::getProgramas($_POST['unidade'], $_POST['ano']);
                } catch (Exception $e) {
                    $out = array('success' => 'false', 'error' => $e->getMessage());
                }
                break;
            case 'buscar-programa-vinculado':
                try {
                    $out = DaoDadosSiop::getProgramaVinculado($_POST['vinculo']);
                } catch (Exception $e) {
                    $out = array('success' => 'false', 'error' => $e->getMessage());
                }
                break;
            default:
                $out = array('success' => 'false', 'error' => 'Opcao Invalida!');
                break;
        }
        print json_encode($out);
    } catch (Exception $e) {
        $erro = new Output(array('success' => 'false', 'error' => $e->getMessage()));
        print json_encode($erro->toArray());
    }
}