<?php

class Produto_Model_Comercializacoes extends Agro_Db_Table_Abstract {
	protected $_schema = 'comercializacao';
	protected $_name = 'comercializacoes';
	protected $_primary = 'id';

	public function copiar($idProdutoOld, $idProdutoNew) {
		$Rs = $this->fetchAll("id_produto = $idProdutoOld");
		$ano = date('Y');

		if ($Rs->count()) {
			foreach ($Rs as $Old) {
				if ($Old) {
					$Old->ds_nome_comercializacao = str_replace($ano, $ano+1, $Old->ds_nome_comercializacao);
					$Old->ds_nome_comercializacao = str_replace($ano-1, $ano, $Old->ds_nome_comercializacao);

					$New = $this->createRow();
				    $New->dt_comercializacao_inicio = Agro_Util::somarData($Old->dt_comercializacao_inicio, 1);
				    $New->dt_comercializacao_fim 	= Agro_Util::somarData($Old->dt_comercializacao_fim, 1);
				    $New->dt_cobertura_inicio 		= Agro_Util::somarData($Old->dt_cobertura_inicio, 1);
				    $New->dt_cobertura_fim 			= Agro_Util::somarData($Old->dt_cobertura_fim, 1);
				    $New->ds_nome_comercializacao 	= $Old->ds_nome_comercializacao;
				    $New->tp_comercializacao 		= $Old->tp_comercializacao;
				    $New->id_produto 				= $idProdutoNew;

				    if ($New->save()) {
						if ($Old->tp_comercializacao == 'E') $this->_copiarEstado($Old, $New);
						if ($Old->tp_comercializacao == 'M') $this->_copiarMunicipio($Old, $New);
						//if ($Old->tp_comercializacao == 'U') $this->_copiarUsuarios($Old, $New);
				    }
				}
			}
		}

		return true;
	}

	private function _copiarEstado($Old, $New) {
		$Estados = $this->getDefaultAdapter()->fetchAll("SELECT * FROM comercializacao.comercializacoes_estados WHERE id_comercializacao = {$Old->id}");

		if (count($Estados)) {
			foreach ($Estados as $Estado) {
				$this->getDefaultAdapter()->insert('comercializacao.comercializacoes_estados', array(
					'id_estado' => $Estado['id_estado'],
					'id_comercializacao' => $New->id,
					'id_usuario_criacao' => Zend_Auth::getInstance()->getIdentity()->id
				));
			}
		}
	}

	private function _copiarMunicipio($Old, $New) {
		$Municipios = $this->getDefaultAdapter()->fetchAll("SELECT * FROM comercializacao.comercializacoes_municipios WHERE id_comercializacao = {$Old->id}");

		if (count($Municipios)) {
			foreach ($Municipios as $Municipio) {
				$this->getDefaultAdapter()->insert('comercializacao.comercializacoes_municipios', array(
					'id_municipio' => $Municipio['id_municipio'],
					'id_comercializacao' => $New->id,
					'id_usuario_criacao' => Zend_Auth::getInstance()->getIdentity()->id
				));
			}
		}
	}

	private function _copiarUsuarios($Old, $New) {
		$Usuarios = $this->getDefaultAdapter()->fetchAll("SELECT * FROM comercializacao.comercializacoes_usuarios WHERE id_comercializacao = {$Old->id}");

		if (count($Usuarios)) {
			foreach ($Usuarios as $Usuario) {
				$this->getDefaultAdapter()->insert('comercializacao.comercializacoes_usuarios', array(
					'id_usuario' => $Usuario['id_usuario'],
					'id_comercializacao' => $New->id,
					'id_usuario_criacao' => Zend_Auth::getInstance()->getIdentity()->id
				));
			}
		}
	}
}