<?php
/**
 * Model
 * 
 * Laudo final Tipo LF019 / Safra15 - Item Segurado (Chochamento)
 * 
 * @author Samir Ortiz
 * @date 26/09/2012
 *
 */
class Safra15_Model_Lf019ItensSeguradosCHAmostras extends Agro_Db_Table_Abstract {
	protected $_schema 	= 'safra15';
	protected $_name 	= 'lf019_itens_segurados_ch_amostras';
	protected $_primary = 'id';
	public 	  $_order 	= 'id_laudo_final';
		
	public function save($dados){

		$dados = $this->calculaChochamento($dados);		
		
		$Model_Lf019ItensSegurados = new Safra15_Model_Lf019ItensSegurados();
		$dados['id_laudo_final_item_segurado'] = $Model_Lf019ItensSegurados->save($dados);
		
		unset($dados['vl_percent_total_perda_final_chocho']);

		if($dados['id_laudo_final_item_segurado']) {
			try {
    		    $this->delete($dados['id_laudo_final_item_segurado'], 'id_laudo_final_item_segurado');

    	        $dadosInsert = array();
                $dadosInsert['id_laudo_final_item_segurado'] = $dados['id_laudo_final_item_segurado'];    		            
                $dadosInsert = array_merge($dadosInsert, $dados['registros']);

                $this->insert($dadosInsert);

    			return $dados['id_laudo_final_item_segurado'];
    			
    		} catch (Exception $e) {
    			die($e);
    			$this->setMessage($e->getMessage());
    		    return false;
    		}
	    } else {
	        return false;
	    }
	}

	public function calculaChochamento($dados){

		if(!array_key_exists('vl_talhao_1_amostra_1' , $dados)){
    		$this->setMessage('Preencha ao menos um talhão e uma amostra.');
    	    return false;
		}

		for ($i = 1; $i < 11; $i++) {
			for ($z = 1; $z < 11; $z++) {
				if(array_key_exists('vl_talhao_'.$i.'_amostra_'.$z , $dados) && $dados['vl_talhao_'.$i.'_amostra_'.$z] != null){
					$dados['registros']['vl_talhao_'.$i.'_chocho'] += $dados['vl_talhao_'.$i.'_amostra_'.$z];
					$dados['registros']['nr_amostras_'.$i] = $z;
					$dados['registros']['nr_talhoes'] = $i;
					$dados['registros']['vl_talhao_'.$i.'_amostra_'.$z] = $dados['vl_talhao_'.$i.'_amostra_'.$z];
				}else{
					unset($dados['vl_talhao_'.$i.'_amostra_'.$z]);
				}		
			}
			
			if(array_key_exists('vl_talhao_'.$i.'_chocho' , $dados['registros']) && $dados['registros']['vl_talhao_'.$i.'_chocho'] != null){
				$dados['registros']['vl_talhao_'.$i.'_chocho'] = ($dados['registros']['vl_talhao_'.$i.'_chocho']/$dados['registros']['nr_amostras_'.$i]);
			}

			
			
			if($dados['registros']['vl_talhao_'.$i.'_chocho']){
				if($dados['registros']['vl_talhao_'.$i.'_chocho'] < 25){
					$dados['registros']['vl_talhao_'.$i.'_perda'] = 0;
				}elseif($dados['registros']['vl_talhao_'.$i.'_chocho'] < 50){
					$dados['registros']['vl_talhao_'.$i.'_perda'] = 25;
				}elseif($dados['registros']['vl_talhao_'.$i.'_chocho'] < 75){
					$dados['registros']['vl_talhao_'.$i.'_perda'] = 40;
				}elseif($dados['registros']['vl_talhao_'.$i.'_chocho'] >= 75){
					$dados['registros']['vl_talhao_'.$i.'_perda'] = 60;
				}

				//gambi do arredondamento (considera sem arredondamento, porém mostra ele)
				if(array_key_exists('vl_talhao_'.$i.'_chocho' , $dados['registros']) && $dados['registros']['vl_talhao_'.$i.'_chocho'] != null){
					$dados['registros']['vl_talhao_'.$i.'_chocho'] = round($dados['registros']['vl_talhao_'.$i.'_chocho']);
				}				
				
				$dados['vl_percent_total_perda_final_chocho'] += $dados['registros']['vl_talhao_'.$i.'_perda'];

			}

			unset($dados['registros']['nr_amostras_'.$i]);
			
		}

		$dados['vl_percent_total_perda_final_chocho'] = round($dados['vl_percent_total_perda_final_chocho']/$dados['registros']['nr_talhoes']);
		$dados['vl_percent_colhido_chocho'] = $dados['vl_percent_colhido_chocho'];
		
		unset($dados['registros']['nr_talhoes']);
		
		return $dados;
	}
	
	public function getAmostras($idLaudoFinalItemSegurado) {

		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('lf'=>$this->_schema . '.' . $this->_name), '*');
		$select->where('id_laudo_final_item_segurado = ?', $idLaudoFinalItemSegurado);

		$Amostras = $this->fetchAll($select)->toArray();
		
		$ModelLFIS19Amostra = new Safra15_Model_Lf019ItensSeguradosAmostras();
		$AmostraChocho = $ModelLFIS19Amostra->get($idLaudoFinalItemSegurado);
		
		return $Amostras;
	}
}