<?
	class Endosso_AssinaturaController extends Zend_Controller_Action {

		public function init() {
			$this->getHelper('layout')->disableLayout();
		}

		public function formAction() {
			$this->getHelper('layout')->disableLayout();
			$this->view->id_proposta = $this->getRequest()->getParam('id_proposta');
			$this->view->id = $this->getRequest()->getParam('id') ?? null;
			$this->view->id_tipo_solicitacao = $this->getRequest()->getParam('id_tipo_solicitacao');
			$Model = new Endosso_Model_Solicitacao();

			if (!empty($this->getRequest()->getParam('id'))) {
			    $this->view->id_status = $Model->getAdapter()->fetchOne('SELECT id_status FROM seguro.propostas_endosso_solicitacao WHERE id = '.$this->getRequest()->getParam('id'));
            }
		}

		public function uploadAction() {
			$this->getHelper('ViewRenderer')->setNoRender();
			$this->getHelper('layout')->disableLayout();
			$return = array();

			if ($this->getRequest()->getParam('id')) {
				$Model = new Endosso_Model_Solicitacao();
				$output = $Model->anexar($this->getRequest()->getParams());
				$result = 1;
			} else {
				$result = 2;
			}

			$id = !Agro_Util::filterVariable($this->getRequest()->getParam('id'))
				? 0
				: (int) $this->getRequest()->getParam('id');
			
			if($output == 't') {
				$this->getResponse()->setBody("<script>window.top.window.stopUpload($result);window.top.window.$.listAssinatura({$id});</script>");
			} else {
				$this->getResponse()->setBody("<script>alert('Insira um arquivo dos tipos PDF, PNG, JPG, JPEG ou JFIF.');window.top.window.stopUpload($result);window.top.window.$.listAssinatura({$id});</script>");
			}
		}

		public  function deletecomplementarAction() {
			$this->getHelper('ViewRenderer')->setNoRender();

			$Model = new Endosso_Model_SolicitacaoArquivos();
			$output = $Model->deleteComplementar($this->getRequest()->getParams());
			if ($output['status'] == true) {
				$SolicitacaoCroqui = new Endosso_Model_SolicitacaoCroqui();
				$PropostaCroqui = new Seguro_Model_PropostasCroquis();
				$solicitacao = $SolicitacaoCroqui->fetchRow('id_solicitacao = ' . $this->getRequest()->getParam('id_solicitacao'));
				if ($solicitacao->id) {
					$SolicitacaoCroqui->delete($solicitacao->id);				
					$PropostaCroqui->delete($solicitacao->id_croqui);
				}
			}

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

		public function uploadcomplementarAction() {
			$this->getHelper('ViewRenderer')->setNoRender();
			$this->getHelper('layout')->disableLayout();

			$adapter = Agro_Db_Table_Abstract::getDefaultAdapter();

			$id = !Agro_Util::filterVariable($this->getRequest()->getParam('id'))
				? 0
				: (int) $this->getRequest()->getParam('id');

			try {
			    $adapter->beginTransaction();

			    $modelSolicitacao = new Endosso_Model_Solicitacao();

			    if (empty($this->getRequest()->getParam('id'))) {
                    $idSolicitacao = $modelSolicitacao->save($this->getRequest()->getParams());
                    $this->getRequest()->setParam('id', $idSolicitacao);
                }

                $modelSolicitacao->anexarComplementar($this->getRequest()->getParams());

                $adapter->commit();

                $this->getResponse()->setBody(
                  "<script>
                     window.top.window.stopUpload(1);
                     window.top.window.$.listComplementar({$this->getRequest()->getParam('id')});
                   </script>");
            } catch (Exception $erro) {
                $adapter->rollback();

                $mensagem = $erro->getCode() === 1 ? $erro->getMessage() : 'Erro ao enviar o arquivo.';

                $this->getResponse()->setBody(
                  "<script>
                     alert('{$mensagem}');
                     window.top.window.stopUpload(2);
                     window.top.window.$.listComplementar({$this->getRequest()->getParam('id')});
                   </script>");
            }
		}

		public function listAction() {
			if (is_numeric($this->getRequest()->getParam('id'))) {
				$Model = new Endosso_Model_SolicitacaoArquivos();
				//$Status = new Endosso_Model_SolicitacaoStatus();
				$Solicitacoes = new Endosso_Model_Solicitacao();

			    $this->view->id_status = $Solicitacoes->getAdapter()->fetchOne('SELECT id_status FROM seguro.propostas_endosso_solicitacao WHERE id = '.$this->getRequest()->getParam('id'));

				$this->id_solicitacao = $this->getRequest()->getParams('id');

				if ($this->getRequest()->getParam('fl_assinatura') == 'true') {
					$this->view->assinaturas = $Model->fetchAll("fl_ativo = 't' AND id_solicitacao = ".$this->getRequest()->getParam('id')." and fl_assinatura = true ", 'dt_criacao');
				} else {
					$this->view->complementar = $Model->fetchAll("fl_ativo = 't' AND id_solicitacao = ".$this->getRequest()->getParam('id')." and fl_assinatura = false ", 'dt_criacao');
				}
			}
		}

	}
