<?php

class Produto_Model_ProdutosValidacoes extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'produtos_validacoes';
	protected $_primary = array('id_produto', 'id_validacao');
	
	public function defaultSave(array $values) {
		$Row = $this->createRow();
		
		$Row->id_validacao = $values['id_validacao'];
		$Row->id_produto = $values['id_produto'];
		
		return $Row->save();
	}
	
	/**
	 * Relaciona os produtos as validacoes
	 *
	 * @param array $values
	 * @return boolean
	 */
	public function save(array $values) {
		// Busca as Validacoes do produto
		$TipoValidacao = new Produto_Model_Tipovalidacao();
		$Validacoes = $TipoValidacao->getTiposValidacao($values['id']);
		
		try {
			if ($values['id']) {
				$this->limpaProduto($values['id']);
				
				foreach($Validacoes as $Validacao) {
					if (is_array($values[$Validacao['ds_chave']])) {
						foreach($values[$Validacao['ds_chave']] as $id_validacao) {
							if($id_validacao) {
								$Row = $this->createRow();
								
								$Row->id_validacao = $id_validacao;
								$Row->id_produto = $values['id'];
								
								$Row->save();
							}
						}
					}
					
				}
			}
			
			return true;
		} catch (Exception $e) {
			return false;
		}
		
	}
	
	public function salvaValidacao($id_produto, $id_validacao) {
		$Row = $this->createRow();
		
		$Row->id_validacao = $id_validacao;
		$Row->id_produto = $id_produto;
		
		$Row->save();
	}
	
	public function limpaProduto($id_produto) {
		return $this->_db->query("delete from produto.produtos_validacoes where id_produto = $id_produto");
	}
}