<?php

class Regulacao_Model_Lp004 extends Agro_Db_Table_Abstract {
	protected $_rowClass = 'Regulacao_Model_Row_Lp004';
	protected $_schema = 'regulacao';
	protected $_name = 'lp004';
	protected $_primary = 'id';
	public $_order = 'id_laudo_preliminar';

    public function save($dados){

        $Model_LaudosPreliminares = new Sinistro2_Model_LaudosPreliminares();
        try {
        
            $idLaudoPreliminar = $Model_LaudosPreliminares->save($dados);
            
            if($idLaudoPreliminar) {
                    $Row = $this->fetchRow("id_laudo_preliminar=$idLaudoPreliminar");
                    
                    if(!$Row) {
                        $Row = $this->createRow();
                    }

                    $Row->id_laudo_preliminar = $idLaudoPreliminar;
                    $Row->ds_aspectos_gerais_cultura = $dados['ds_aspectos_gerais_cultura'];
                    $Row->fl_areas_declaradas_conferem = (array_key_exists('fl_areas_declaradas_conferem', $dados) ? ($dados['fl_areas_declaradas_conferem'] ? 1 : 0) : null);
                    $Row->fl_lavoura_condiz_proposta = (array_key_exists('fl_lavoura_condiz_proposta', $dados) ? ($dados['fl_lavoura_condiz_proposta'] ? 1 : 0) : null);
                    $Row->dt_prevista_inicio_colheita = Agro_Util::formatDate($dados['dt_prevista_inicio_colheita'], Zend_Date::W3C);
                    $Row->fl_incidencia_atingida = (array_key_exists('fl_incidencia_atingida', $dados) ? ($dados['fl_incidencia_atingida'] ? 1 : 0) : null);
    
                    $Row->save();
    
                    return $idLaudoPreliminar;
                    
    
            } else {
                $this->setMessage($Model_LaudosPreliminares->getMessages());
                return false;
            }
        
        } catch (Exception $e) {
            $this->setMessage($e->getMessage().'<pre>'.$e->getTraceAsString().'</pre>');
            return false;
        }
    }

    public function getDataLaudoPreliminar($idLaudoPreliminar){

		$select = "
			select 
                id_usuario_criacao,
                id_usuario_alteracao,
                to_char(dt_criacao, 'dd/mm/yyyy hh24:mi:ss') as dt_criacao,
                to_char(dt_alteracao, 'dd/mm/yyyy hh24:mi:ss') as dt_alteracao,
                fl_ativo,
                fl_del,
                id_laudo_preliminar,
                ds_aspectos_gerais_cultura,
                to_char(dt_vistoria_final, 'dd/mm/yyyy') as dt_vistoria_final,
                fl_areas_declaradas_conferem,
                fl_lavoura_condiz_proposta,
                id,
                to_char(dt_prevista_inicio_colheita, 'dd/mm/yyyy') as dt_prevista_inicio_colheita,
                fl_incidencia_atingida 
			from 
				regulacao.lp004
			where 
				id_laudo_preliminar = $idLaudoPreliminar  			
		";

		return $this->_db->fetchRow($select);
	}

    public function getCamposEspecializacao() {
        $CamposEspecializacao = array();

        $CamposEspecializacao[] = array(
            'nr_coluna'         => 1,
            'ds_nome_campo'     => 'fl_quadra_sinistrada',
            'ds_nome_exibicao'  => 'Quadra sinistrada',
            'ds_tipo'           => 'radio',
            'ar_opcoes'         => array('1'=>'Sim','0'=>'Não')
        );             
        
        $CamposEspecializacao[] = array(
        	'nr_coluna'         => 3,
        	'ds_nome_campo'     => 'vl_danos_nao_cobertos',
        	'ds_nome_exibicao'  => 'Pragas, doenças e outros danos não cobertos (%)',
        	'ds_tipo'           => 'decimal',
        	'ds_class'          => 'decimal'
        );

        return $CamposEspecializacao;
    }
    
    public function delete($idLaudoPreliminar){
        parent::delete($idLaudoPreliminar, "id_laudo_preliminar");
    }	
}