<?php

class Sinistro2_Model_TransmissaoAvisosEssor extends Agro_Db_Table_Abstract {
	protected $_schema = 'sinistro';
	protected $_name = 'avisos';
	protected $_view = 'v_avisos_transmissao_essor';
	protected $_primary = 'id';
	//public $_order = array('id_proposta','id');

	public function save($dados) {
	}

	public function getData($where=false) {
		$select = $this->select();
		
		$select->setIntegrityCheck(false);
		$select->from("{$this->_schema}.{$this->_view}");		

		if ($this->_order) {
			$select->order($this->_order);
		}

		if (is_array($where)) {
			foreach ($where as $clause) {
				if (is_array($clause)) {
					$field = $clause['field'];
					$operator = $clause['operator'];
					$value = $clause['value'];

					if (is_numeric($value)) {
						$select->where("$field $operator ?", $value);
					} else {
						$select->where("normalize($field) $operator normalize(?)", $value);
					}
				} else {
					$select->where($clause, '');
				}
			}
		} elseif ($where != '') {
			$select->where($where);
		}

		return $select;
	}
	
	public function getAvisoTransmissao($id_aviso) {
		$Select = $this->select()->setIntegrityCheck(false);
		$Select->from(array('va'=>'sinistro.v_aviso_novo_transmissao_essor'));
		$Select->where('va.id = ?', $id_aviso);
	
		return $this->fetchRow($Select);
	}
	
	public function getAvisosPendenteTransmissao($id_proposta) {
		$Select = $this->select()->setIntegrityCheck(false);
		$Select->from(array('a' => 'sinistro.avisos'), 'id as id_aviso');
		$Select->where('a.id_proposta = ?', $id_proposta);
		$Select->where('a.fl_transmissao_seguradora = false');
	
		return $this->fetchAll($Select);
	}
		
	public function montaXMLTransmissao($id_aviso, $cobertura) {

		$where[] = array('field' => 'sinistro.v_avisos_transmissao_essor.id', 'operator' => '=','value' => $id_aviso);
		$where[] = array('field' => 'sinistro.v_avisos_transmissao_essor.cobertura', 'operator' => '=','value' => $cobertura);
		
		$rsAviso = $this->fetchRow($this->getData($where));

		if(!$rsAviso){
			return false;
		}

		$ModelPropostas = new Seguro_Model_Propostas();
        $Proposta = $ModelPropostas->getUltimaPropostaByPropostaMaeDataVigencia(
          $rsAviso['id_proposta_mae'], Agro_Util::formataData($rsAviso['dt_sinistro'])
        );

		$Proponente    = $Proposta->proponente();
		$Propriedade   = $Proposta->propriedade();
		$Corretor      = $Proposta->corretor(true);

		$ds_reclamante       = str_replace("&", "e", $Corretor['ds_nome_corretor']);
		$cpf_cnpj_reclamante = str_replace('.', '', str_replace('/', '', str_replace('-', '', $Corretor['cpf_cnpj'])));
		if($Corretor['tp_pessoa'] == 'J'){
			$tp_reclamante = 2;
		} else {
			$tp_reclamante = 1;
		}
	
		$ds_pessoa_sinistrada = str_replace("&", "e", $Proponente['ds_nome_proponente']);
		$cpf_cnpj_sinistrada  = str_replace('.', '', str_replace('/', '', str_replace('-', '', $Proponente['cpf_cnpj'])));
		if($Proponente['tp_pessoa'] == 'F') {
			$tp_pessoa_sinistrada = 1;
		} else {
			$tp_pessoa_sinistrada = 2;
		}
	
		$arCultura['6']  =5;  //Alho
		$arCultura['28'] =11; //Cebola
		$arCultura['80'] =16; //Uva de Mesa
		$arCultura['81'] =5;  //Uva de Vinho
		$arCultura['43'] =14; //Kiwi
		$arCultura['67'] =6;  //Pimentão
		$arCultura['75'] =21; //Tomate
		$arCultura['7']  =36; //Ameixa
		$arCultura['26'] =18; //Caqui
		$arCultura['40'] =75; //Goiaba
		$arCultura['53'] =5;  //Maça
		$arCultura['54'] =11; //Melancia
		$arCultura['62'] =36; //Nectarina
		$arCultura['68'] =13; //Pêra
		$arCultura['69'] =15; //Pêssego
		$arCultura['74'] =36; //Tangerina
		$arCultura['5']  =5;  //Algodão
		$arCultura['11'] =12; //Arroz Irrigado
		$arCultura['15'] =60; //Aveia Branca
		$arCultura['25'] =12; //Canola
		$arCultura['29'] =21; //Cevada
		$arCultura['36'] =22; //Feijão
		$arCultura['56'] =11; //Milho
		$arCultura['58'] =15; //Milho S2
		$arCultura['72'] =22; //Soja
		$arCultura['77'] =25; //Trigo
	
		unset($vlIntensidade);
		$vlIntensidade = $arCultura[$rsAviso->id_cultura];
	
		if(!$vlIntensidade){
			$vlIntensidade = 15;
		}

		switch ($rsAviso->chave_cobertura){
			case 'COB_GRANIZO':              $idCoberturaSeguradora = 240; break;
			case 'COB_PRODUCAO_MINIMA_MACA': $idCoberturaSeguradora = 245; break;
			case 'COB_QUEDA_PARREIRAL':
			case 'COB_GEADA':
				$idCoberturaSeguradora = Produto_Model_ProdutosCoberturas::getCoberturaI4ProByAviso($rsAviso['id']); break;
			case 'COB_MULTIRISCO':           $idCoberturaSeguradora = 244; break;
			case 'COB_MULTIRISCO_II':        $idCoberturaSeguradora = 340; break;
			case 'BAIXA_INDICE':             $idCoberturaSeguradora = 648; break;
		}

        $somaPrejuizo = 0;
	
		$xml ="
				<i4proerp>
				<AvisaSinistroRural>
				    <InsereSinistro>
					    <NrProcesso>".$rsAviso->id_processo."</NrProcesso>
					    <NrAvisoParceiro>".$id_aviso."</NrAvisoParceiro>
	 		            <Apolice>".$rsAviso->nr_apolice."</Apolice>
				        <Reclamante>".$ds_reclamante."</Reclamante>
				        <TipoPessoaReclamante>".$tp_reclamante."</TipoPessoaReclamante>
				        <CNPJ_CPF_Reclamante>".$cpf_cnpj_reclamante."</CNPJ_CPF_Reclamante>
				        <Perito>Perito Teste</Perito>
				        <TipoPessoaPerito>1</TipoPessoaPerito>
				        <CNPJ_CPF_Perito>97462373068</CNPJ_CPF_Perito>
				        <DtNascimentoPerito>1980-01-01</DtNascimentoPerito>
				        <SexoPerito>1</SexoPerito>
				        <EstadoCivilPerito>1</EstadoCivilPerito>
				        <Endosso>".$Proposta->ds_identificador_seguradora."</Endosso>
						<Itens>
						<NrItem>1</NrItem>";
		foreach($Proposta->unidades(false) as $item) {
			if($item[IS_LMGA_PARCIAL] > 0){
				$xml .="
		    							<Item>
		    				                <SubItem>".$item[IS_ITEM]."</SubItem>
		    				                <PercentualDano>".$vlIntensidade."</PercentualDano>
		    				            </Item>";
			}
			$somaPrejuizo += ($item[IS_LMGA_PARCIAL] * $vlIntensidade)/100;
		}
	
		if(!$Proponente['dt_nascimento']){
			$Proponente['dt_nascimento'] = '1970-01-01';
		}

		$xml .="
						</Itens>
				        <Cobertura>". Produto_Model_ProdutosCoberturas::deParaI4Pro($rsAviso['id_proposta_mae'], $idCoberturaSeguradora) ."</Cobertura>
				        <Causa>". Produto_Model_CoberturasEventos::getEventoI4ProByAviso($rsAviso['id']) ."</Causa>
				        <ValorEstimado>".$somaPrejuizo."</ValorEstimado>
				        <DataComunicacao>".Agro_Util::formataData($rsAviso->dt_criacao)."</DataComunicacao>
				        <DataOcorrencia>".Agro_Util::formataData($rsAviso->dt_sinistro)."</DataOcorrencia>
				        <PessoaSinistrado>".$ds_pessoa_sinistrada."</PessoaSinistrado>
				        <TipoPessoaSinistrado>".$tp_pessoa_sinistrada."</TipoPessoaSinistrado>
				        <CNPJ_CPF_Sinistrado>".$cpf_cnpj_sinistrada."</CNPJ_CPF_Sinistrado>
				        <DataNascimentoSinistrado>".Agro_Util::formataData($Proponente['dt_nascimento'])."</DataNascimentoSinistrado>
				        <LocalOcorrencia>Local 1</LocalOcorrencia>
						<UfOcorrencia>".$Propriedade['ds_sigla']."</UfOcorrencia>
				        <CidadeOcorrencia>".$Propriedade['ds_nome_municipio']."</CidadeOcorrencia>
				        <LiberaConsistencias>1</LiberaConsistencias>
				        <Resseguro>0</Resseguro>
				        <Juridico>0</Juridico>
				        <EstadoFenologico>1</EstadoFenologico>
				    </InsereSinistro>
				</AvisaSinistroRural>
				</i4proerp>";

		$arReturn = array();
		$arReturn['xml']        = $xml;
		$arReturn['vl_reserva'] = $somaPrejuizo;
	
		return $arReturn;
	}	
}
