<?php

class Produto_CondicaopagamentomunicipiosController extends Agro_Controller_Action {

	public function getModel() {
		return new Produto_Model_CondicoesPagamentoMunicipios();
	}

	public function init() {
	    ini_set('memory_limit','1024M');
	    ini_set('max_input_vars','10000');

		$this->view->title = "Condições de Pagamento » Relacionar Municípios";

		$this->view->back = '/produto/produto/form/id/'.$this->getRequest()->getParam('id_produto').'#ui-tabs-5';
	}

	public function indexAction() {
		if ($this->getRequest()->isPost()) {
			$this->save($this->getRequest()->getParams());
		}

		$Estados = new Sistema_Model_Estados();
		$Model = $this->getModel();
		$this->view->municipios = $Estados->getMenuEstadoAbas();

		$Rs = $Model->fetchAll("id_condicao_pagamento = {$this->getRequest()->getParam('id')}")->toArray();
		$this->view->id = $this->getRequest()->getParam('id');
		$this->view->relacionados = array();
		if (is_array($Rs)) {
			foreach ($Rs as $relacionado) {
				$this->view->relacionados[$relacionado['id_municipio']] = $relacionado['id_condicao_pagamento'];
			}
		}
	}

	public function save(array $post) {
		try {
			$Model = $this->getModel();
			$Model->delete($post['id']);

			if (is_array($post['municipios'])) {
				foreach ($post['municipios'] as $municipio) {
					$data = array();
					$data['id_condicao_pagamento'] = $post['id'];
					$data['id_municipio'] = $municipio;

					$Model->save($data);
					$this->view->showMessage(MSG_SUCCESS, 'success');
				}
			}

			return true;
		} catch (Exception $e) {
			$this->view->showMessage(MSG_ERROR, 'error');
			return false;
		}
	}

	public function importamunicipiosAction() {
		$this->isAjax();
		$result = array();
		$Adapter = new Zend_File_Transfer_Adapter_Http();
		$Adapter->setDestination(APPLICATION_PATH.'/upload_files/temp/');
		$file = $Adapter->getFileInfo();

		if(!$Adapter->receive($file['municipios_csv']['name'])) {
			$result['status'] = 'Erro ao importar municípios.';
		} else {
			$extensao = explode('.',$file['municipios_csv']['name']);
			if($extensao['1'] == 'csv'){
				$arquivo = fopen(APPLICATION_PATH.'/upload_files/temp/' . $file['municipios_csv']['name'], 'r');
				while(($dados = fgetcsv($arquivo, 0, ';')) != false){
					if (is_numeric($dados[0])) {
						array_push($result, $dados[0]);
					}
				}
				$post['id'] = $this->getRequest()->getParam('id_condicao_pagamento');
				$post['municipios'] = $result;
				fclose($arquivo);

				if ($this->save($post)) {
					$message['status'] = "Importação efetuada com sucesso!";
				} else {
					$message['status'] = "Ocorreu um erro ao importar o arquivo!";
				}
			} else {
				$message['status'] = "Somente são aceitos arquivos .csv!";
			}
		}

		$this->getResponse()->setBody(Zend_Json::encode($message));
	}

}
