function db_anulaPlanilha($planilha, $motivo, $ip)
{
    $clissplananula = new cl_issplananula();
    $clissplan = new cl_issplan();
    $clarrecad = new cl_arrecad();
    $clcancdebitos = new cl_cancdebitos();
    $data = date("Y-m-d");
    $hora = date("H:i");
    $usuario = db_getsession("id");
    if ($usuario == "") {
        $usuario = 1;
    }
    $sql = "select * from issplan where q20_planilha = {$planilha}";
    $result = pg_query($sql);
    $linhas = pg_num_rows($result);
    if ($linhas > 0) {
        $q20_numpre = pg_result($result, 0, "q20_numpre");
    }
    $sqlerro = false;
    db_inicio_transacao();
    //gravar na issplananula: os dados da anulação
    $clissplananula->q76_planilha = $planilha;
    $clissplananula->q76_data = $data;
    $clissplananula->q76_hora = $hora;
    $clissplananula->q76_motivo = "Planilha anulada DBPref. " . $motivo;
    $clissplananula->q76_ip = $ip;
    $clissplananula->q76_id_usuario = $usuario;
    $clissplananula->incluir(null);
    if ($clissplananula->erro_status == 0) {
        $sqlerro = true;
        //die($clissplananula->erro_sql);
        $erro_msg = $clissplananula->erro_msg;
    }
    //alterar a situação da issplan para anulada
    $clissplan->q20_planilha = $planilha;
    $clissplan->q20_situacao = 5;
    $clissplan->alterar($planilha);
    if ($clissplan->erro_status == 0) {
        $sqlerro = true;
        $erro_msg = $clissplan->erro_msg;
    }
    if ($q20_numpre > 0) {
        //gravar na cancdebitos, cancdebitosreg, cancdebitosproc, cancdebitosprocreg
        $sqltipo = "select w10_tipo from db_confplan ";
        $resulttipo = pg_query($sqltipo);
        $linhastipo = pg_num_rows($resulttipo);
        if ($linhastipo > 0) {
            //db_fieldsmemory($resulttipo,0);
            $w10_tipo = pg_result($resulttipo, 0, "w10_tipo");
        } else {
            $sqlerro = true;
            $erro_msg = "Deve-se configurar a planilha (db_confplan)";
        }
        $clcancdebitos->k20_descr = "anulação de planilha no dbpref.";
        $clcancdebitos->k20_hora = $hora;
        $clcancdebitos->k20_data = $data;
        $clcancdebitos->k20_usuario = $usuario;
        $clcancdebitos->k20_instit = db_getsession("DB_instit");
        $clcancdebitos->numpre = $q20_numpre;
        $clcancdebitos->numpar = 1;
        $clcancdebitos->k21_obs = "Planilha anulada DBPref. " . $motivo;
        $clcancdebitos->usuario = $usuario;
        $clcancdebitos->tipo = $w10_tipo;
        $clcancdebitos->planilha = $planilha;
        $clcancdebitos->incluir_cancelamento(true);
        if ($clcancdebitos->erro_status == "0") {
            $sqlerro = true;
            $erro_msg = $clcancdebitos->erro_msg;
        }
        //grava na cancdebitosissplan
        //deletar da arrecad e gravar na arrecant
        $clarrecad->excluir_arrecad_inc_arrecant($q20_numpre, 1, true);
        if ($clarrecad->erro_status == 0) {
            $sqlerro = true;
            $erro_msg = $clarrecad->erro_msg;
        }
    }
    db_fim_transacao($sqlerro);
    return $sqlerro;
}
                                <td align="left" colspan="4">
                                    <input name="grava" class="botao" type="button" value="Lança Registro" style="visibility: visible" onclick="js_vericampos()">&nbsp;&nbsp; <input name="limpa" class="botao" type="button" value="Limpa Campos" onclick=" if (confirm('Confirma a limpeza dos campos?')){js_limpa()}"> &nbsp;&nbsp;<input name="proximo" class="botao" type="button" value="Próxima Etapa" onclick="js_proximo();" style="visibility: hidden">
                                </td>
                            </tr>
                        </table>
                        <?php 
// ######### botão proximo ###############
if (isset($passaproximo) && $passaproximo == "sim") {
    // verifica se a matrícula já está cadastrada, caso já possuir dados cadastrados faz a alteração dos registros
    $cl_issplan->sql_record($cl_issplan->sql_query_file(null, "q20_planilha", null, "q20_planilha = {$planilha}"));
    if ($cl_issplan->numrows > 0) {
        // seta os campos que serão alterados
        $cl_issplan->q20_nomecontri = $nomecontri;
        $cl_issplan->q20_fonecontri = $fonecontri;
        $cl_issplan->q20_planilha = $planilha;
        $cl_issplan->alterar($planilha);
    }
    //die("select * from issplan where q20_ano = $ano and q20_mes=$mes and q20_numcgm= $z01_numcgm order by q20_mes");
    $result3 = db_query("select * from issplan where q20_ano = {$ano} and q20_mes={$mes} and q20_numcgm= {$z01_numcgm} order by q20_mes");
    if (pg_numrows($result3) != 0) {
        db_fieldsmemory($result3, 0);
        // tem planilha
        //die($q20_nomecontri);
        redireciona("planilha.php?nomecontri=" . $q20_nomecontri . "&fonecontri=" . $q20_fonecontri . "&inscricaow=" . $inscricaow . "&mesx=" . $mesx . "&mes=" . $mes . "&ano=" . $ano . "&numcgm=" . $z01_numcgm . "&nomes=" . $z01_nome . "&mostra=5");
    }
}
// ############################# incluir no banco ##########################
$dtatual = date("Y-m-d");
$hora = date("H:i");
//echo "data = $dtatual hora = $hora";
if (isset($gravadados) && $gravadados == "inclui" and !isset($excluir)) {