<?php

class Agro_Validate_DataAvisoSinistro extends Zend_Validate_Abstract {
    const INVALID_DATA_AVISO1     = 'dataAvisoInvalid1';
    
    protected $_messageTemplates = array(
        self::INVALID_DATA_AVISO1    => "Data da vistoria não pode ser posterior a data atual.",
	);
	    
    public function isValid($value, $context = null) {
        
        $this->_setValue($value);
		
		$dtVistoria = new Zend_Date($value.' '.$context['dt_vistoria_hora'].':'.$context['dt_vistoria_minutos'], 'dd/MM/yyyy HH:mm');
		
		// Verifica se a data da vistoria informada não é posterior a data atual
		if ($dtVistoria->isLater(Zend_Date::now())) {
			$this->_error(self::INVALID_DATA_VISTORIA1);
			return false;
		}
			
		// Verifica se a data da vistoria não é anterior ao início da safra
		if ($context['id_proposta']) {
			$Model_Safras = new Produto_Model_Safras();
			
			$anoInicioSafra = $Model_Safras->getAnoInicioSafraByIdProposta($context['id_proposta']);
			
			if ($dtVistoria->isEarlier(new Zend_Date('01/07/'.$anoInicioSafra, 'dd/MM/yyyy'))) {
				$this->_error(self::INVALID_DATA_VISTORIA2);
				return false;
			}
		}
 
        return true;        
    }
}
