<?
require_once 'AgendamentovistoriaController.php';

class Sinistro2_AgendamentovistoriapreliminarController extends Sinistro2_AgendamentovistoriaController {

    public function excluiragendamentoAction() {
        $this->getHelper('ViewRenderer')->setNoRender();
        $this->getHelper('layout')->disableLayout();
        $result['status'] = false;
        $result['message'] = "";

        $ModelVistoria = new Sistema_Model_VistoriasLaudosPreliminares();
        $status = $ModelVistoria->getLaudosByVistoria($this->getRequest()->getParam('id_vistoria'));

        if (($status) && ( $status->ds_chave != 'PENDENTE_LAUDO_PRELIMINAR')) {
            $result['message'] = "Atenção!\n\nEste agendamento não pode ser Cancelado pois já possui Vistoria realizada.";
            $result['status'] = false;
        } elseif ($status->ds_chave == 'PENDENTE_LAUDO_PRELIMINAR') {
            //ATUALIZAR STATUS VISTORIA
            $ModelLaudoPreliminar = new Sinistro2_Model_LaudosPreliminares();
            if(!$ModelLaudoPreliminar->update(array('id_status' => '206'), 'id = ' . $status->id_laudo)) {
                $result['status'] = false;
                $result['message'] = "Atenção!\n\nErro ao efetuar cancelamento.";
            } //CANCELADO
            else {
                $result['status'] = true;
            }
        } elseif(!$status) {
            $result['status'] = true;
        }

        if ($result['status']) {
            $ModelAgendamento = new Sistema_Model_Agendamentos();
            if(!$ModelAgendamento->update(array('id_status' => '203'), 'id = ' . $this->getRequest()->getParam('id'))) {
                $result['status'] = false;
                $result['message'] = "Atenção!\n\nErro ao efetuar cancelamento.";
            } //CANCELADO
            else {
                $result['status'] = true;
            }
        }

        if ($result['status']) {
            $ModelProcessoObservacoes = new Sinistro2_Model_ProcessosObservacoes();
            $Motivo = $ModelProcessoObservacoes->createRow();
            $Motivo->id_processo = $this->getRequest()->getParam('id_processo');
            $Motivo->ds_observacao = "Agendamento <b>".$this->getRequest()->getParam('id')."</b> CANCELADO. <b>Motivo:</b> ".$this->getRequest()->getParam('motivo_cancelamento');
            if ($Motivo->save()) {
                $result['message'] = "Cancelamento efetuado com sucesso.";
                $result['status'] = true;
            } else {
                $result['status'] = false;
                $result['message'] = "Atenção!\n\nErro ao efetuar cancelamento.";
            }
        }
        $this->getResponse()->setBody(Zend_Json::encode($result));
    }
}
