Esempio n. 1
0
 public function gerarAction()
 {
     $request = $this->getRequest();
     $lote = $request->getParam('lote');
     $lote_obj = new Application_Model_DbTable_Lote();
     $lote_tab = $lote_obj->find($lote)->current();
     $contrato = $lote_tab['contrato'];
     //DADOS DO BENEFICIARIO
     $beneficiario = new Application_Model_DbTable_Beneficiario();
     $select = $beneficiario->select();
     $select->where('lote = ? ', $lote);
     $tab_beneficiario = $beneficiario->fetchall($select);
     //encoding='ISO-8859-1'
     $dadosXml = "<?xml version='1.0' standalone='yes'?>\n";
     $dadosXml .= "<MovimentacaoCadastralAtualizacaoCompleta xmlns='MovimentacaoCadastralAtualizacaoCompleta.xsd'>\n";
     //ABRE NÓ PAI PRINCIPAL
     $unicontrato = new Application_Model_DbTable_Unicontrato();
     foreach ($tab_beneficiario as $key => $row) {
         $dadosXml .= "<AtualizacaoCompleta>\n";
         #CRIA O LOTE
         //GERANDO XML  PARTIR DOS DADOS ACIMA
         $objcontrato = $unicontrato->find($row['Contrato'])->current();
         //TEM QUE PEGAR O CONTRATO
         $dadosXml .= "<Contrato>" . $objcontrato['Codigo'] . "</Contrato>\n";
         #CODIGO DO BENEFICIARIO
         $dadosXml .= "<RDP>" . $row['RDP'] . "</RDP>\n ";
         #RDP
         $dadosXml .= "<Familia>" . $row['Familia'] . "</Familia>\n ";
         #CODIGO DA FAMILIA
         if ($row['Matricula'] != null) {
             $dadosXml .= "<Matricula>" . $row['Matricula'] . "</Matricula>\n ";
             #CODIGO DA FAMILIA
         }
         //$dadosXml.="<IncluidoComoRN>".$this->true_ou_false($row['IncluidoComoRN'])."</IncluidoComoRN>\n"; #INCLUINDO COM RN
         $dadosXml .= "<IncluidoComoRN>false</IncluidoComoRN>\n";
         #INCLUINDO COM RN
         $dadosXml .= "<GrauDependencia>" . $this->graudependencia($row['RDP']) . "</GrauDependencia>\n";
         #GrauDependencia
         $dadosXml .= "<InicioVigencia>" . $this->dataXml($row['InicioVigencia']) . "</InicioVigencia>\n ";
         #Inicio de vigencia
         $dadosXml .= "<FimVigencia>" . $this->dataXml($row['FimVigencia']) . "</FimVigencia>\n ";
         #Fim de vigencia
         $dadosXml .= "<CodigoExterno>" . $this->codcarteira($objcontrato['Codigo'], $row['Familia'], $row['RDP']) . "</CodigoExterno>\n";
         #NAO SABEMOS COMO PEGAR ESSE CODIGO
         $dadosXml .= "<Pessoa>\n";
         #INICIA PESSOA
         $dadosXml .= "<Nome>" . $row['Nome'] . "</Nome>\n";
         $dadosXml .= "<DataNascimento>" . $this->dataXml($row['DataNascimento']) . "</DataNascimento>\n";
         $dadosXml .= "<Cnp>" . $this->soNumero($row['Cnp']) . "</Cnp>\n";
         $dadosXml .= "<Tipo>2</Tipo>\n";
         $dadosXml .= "<Sexo>" . strtolower($row['Sexo']) . "</Sexo>\n";
         $dadosXml .= "<EstadoCivil>" . $row['EstadoCivil'] . "</EstadoCivil>\n";
         if ($row['Naturalidade'] != null and $row['Naturalidade'] != 0) {
             $dadosXml .= "<Naturalidade>" . $row['Naturalidade'] . "</Naturalidade>\n";
         }
         if ($row['NomePai'] != null or $row['NomePai'] != '') {
             $dadosXml .= "<NomePai>" . $row['NomePai'] . "</NomePai>\n";
         } else {
             $dadosXml .= "<NomePai>NAO INFORMADO</NomePai>\n";
         }
         $dadosXml .= "<NomeMae>" . $row['NomeMae'] . "</NomeMae>\n";
         if ($row['NomeConjuge'] != null and $row['NomeConjuge'] != '') {
             $dadosXml .= "<NomeConjuge>" . $row['NomeConjuge'] . "</NomeConjuge>\n";
         }
         $dadosXml .= "<Invalidez>false</Invalidez>\n";
         //Emails
         $beneficiarioEmail = new Application_Model_DbTable_Email();
         $select = $beneficiarioEmail->select()->where('lote = ? ', $lote)->where('idBeneficiario = ?', $row['idBeneficiario']);
         $tab_beneficiarioEmail = $beneficiarioEmail->fetchall($select);
         //VERIFICAR STATUS
         foreach ($tab_beneficiarioEmail as $k => $r) {
             if ($r['status'] == 1) {
                 if ($r['Email'] != '') {
                     $dadosXml .= "<Emails>\n";
                     $dadosXml .= "<Email>" . $r['Email'] . "</Email>\n";
                     $dadosXml .= "<Seq>" . $r['Seq'] . "</Seq>\n";
                     $dadosXml .= "<InicioVigencia>" . $this->dataXml($r['InicioVigencia']) . "</InicioVigencia>\n";
                     $dadosXml .= "<FimVigencia>" . $this->dataXml($r['FimVigencia']) . "</FimVigencia>\n";
                     $dadosXml .= "</Emails>\n";
                 }
             }
         }
         //Registros
         $beneficiarioRegistro = new Application_Model_DbTable_Registro();
         $select = $beneficiarioRegistro->select()->where('lote = ? ', $lote)->where('idBeneficiario = ?', $row['idBeneficiario']);
         $tab_beneficiarioRegistro = $beneficiarioRegistro->fetchall($select);
         if (count($tab_beneficiarioRegistro) == 1) {
             $rg = $tab_beneficiarioRegistro[0]['RG'];
             $pis = $tab_beneficiarioRegistro[0]['PIS'];
             if ($rg != '') {
                 $dadosXml .= "<Registro>\n";
                 $dadosXml .= "<Tipo>1</Tipo>\n";
                 $dadosXml .= "<Numero>" . $rg . "</Numero>\n";
                 //OrgaoExp
                 //UFExp
                 //DataExp
                 $dadosXml .= "</Registro>\n";
             }
             if ($pis != '') {
                 $dadosXml .= "<Registro>\n";
                 $dadosXml .= "<Tipo>9</Tipo>\n";
                 $dadosXml .= "<Numero>" . $pis . "</Numero>\n";
                 $dadosXml .= "</Registro>\n";
             }
         }
         //outro select aqui para pegar endereco desse BENEficiario
         $beneficiarioEnd = new Application_Model_DbTable_Endereco();
         $select = $beneficiarioEnd->select()->where('lote = ? ', $lote)->where('idBeneficiario = ?', $row['idBeneficiario']);
         $tab_beneficiarioEnd = $beneficiarioEnd->fetchall($select);
         //$dadosXml.="<enderecocount>".$tab_beneficiarioEnd->count()."</enderecocount>";
         //  FIM DA CONSULTA QUE PEGA ENDERECO
         //
         foreach ($tab_beneficiarioEnd as $k => $r) {
             //VERIFICAR STATUS
             //  if ($r['status'] == 1) {
             $dadosXml .= "<Endereco>\n";
             #INICIA ENDEREÇO DA PESSOA
             $dadosXml .= "<Seq>" . $r['Seq'] . "</Seq>\n";
             if ($r['NumLogradouro'] != '') {
                 $dadosXml .= "<NumLogradouro>" . $r['NumLogradouro'] . "</NumLogradouro>\n";
             }
             $dadosXml .= "<NomeLogradouro>" . $r['Logradouro'] . "</NomeLogradouro>\n";
             $dadosXml .= "<ComplLogradouro>" . $r['ComplLogradouro'] . "</ComplLogradouro>\n";
             $dadosXml .= "<Bairro>" . $r['Bairro'] . "</Bairro>\n";
             $dadosXml .= "<Cidade>" . $r['Cidade'] . "</Cidade>\n";
             $dadosXml .= "<Cep>" . $this->soNumero($r['CEP']) . "</Cep>\n";
             if ($r['PontoReferencia'] != null or $r['PontoReferencia'] != '') {
                 $dadosXml .= "<PontoReferencia>" . $r['PontoReferencia'] . "</PontoReferencia>\n";
             }
             if ($r['CaixaPostal'] != '' or $r['CaixaPostal'] != null) {
                 $dadosXml .= "<CaixaPostal>" . $r['CaixaPostal'] . "</CaixaPostal>\n";
             }
             $dadosXml .= "<Tipo>" . ($r['Tipo'] == "" ? "1" : $r['Tipo']) . "</Tipo>\n";
             $dadosXml .= "<ParaCorrespondencia>true</ParaCorrespondencia>\n";
             $dadosXml .= "<ParaCobranca>true</ParaCobranca>\n";
             $dadosXml .= "<ParaFaturamento>true</ParaFaturamento>\n";
             $dadosXml .= "<ParaPublicacao>true</ParaPublicacao>\n";
             $dadosXml .= "<InicioVigencia>" . $this->dataXml($r['InicioVigencia']) . "</InicioVigencia>\n";
             $dadosXml .= "<FimVigencia>" . $this->dataXml($r['FimVigencia']) . "</FimVigencia>\n";
             //if ( $r['AutoId'] != '' )
             //$dadosXml.="<CardioAutoId>".$r['AutoId']."</CardioAutoId>\n";
             //$dadosXml.="<CardioAutoId>".$r['CardioAutoId']."</CardioAutoId>\n";
             $dadosXml .= "</Endereco>\n";
             #FECHA ENDEREÇO DA PESSOA
             // }
         }
         $beneficiarioTel = new Application_Model_DbTable_Telefone();
         $select = $beneficiarioTel->select()->where('lote = ? ', $lote)->where('idBeneficiario = ?', $row['idBeneficiario']);
         $tab_beneficiarioTel = $beneficiarioTel->fetchall($select);
         //VERIFICAR STATUS
         foreach ($tab_beneficiarioTel as $k => $r) {
             if ($r['Numero'] != '') {
                 $dadosXml .= "<Telefone>\n";
                 $dadosXml .= "<Seq>" . ($r['Seq'] == '' ? '1' : $r['Seq']) . "</Seq>\n";
                 $dadosXml .= "<Tipo>" . $r['Tipo'] . "</Tipo>\n";
                 $dadosXml .= "<DDD>" . $r['DDD'] . "</DDD>\n";
                 $dadosXml .= "<Numero>" . $this->soNumero($r['Numero']) . "</Numero>\n";
                 $dadosXml .= "<InicioVigencia>" . $this->dataXml($r['InicioVigencia']) . "</InicioVigencia>\n";
                 $dadosXml .= "<FimVigencia>" . $this->dataXml($r['FimVigencia']) . "</FimVigencia>\n";
                 if ($r['AutoId'] != '') {
                     //$dadosXml.="<CardioAutoId>".$r['AutoId']."</CardioAutoId>\n";
                     $dadosXml .= "<SeqEnd>" . ($r['SeqEnd'] == '' ? '1' : $r['SeqEnd']) . "</SeqEnd>\n";
                 }
                 $dadosXml .= "</Telefone>\n";
             }
         }
         $dadosXml .= "</Pessoa>\n ";
         #FECHA PESSOA
         $beneficiarioModulo = new Application_Model_DbTable_Modulo();
         $select = $beneficiarioModulo->select()->where('lote = ? ', $lote)->where('idBeneficiario = ?', $row['idBeneficiario']);
         $tab_beneficiarioModulo = $beneficiarioModulo->fetchall($select);
         foreach ($tab_beneficiarioModulo as $k => $r) {
             //PERGUNTA SE STATUS É 1, SE SIM INFORMA MODULO
             if ($r['status'] == 1) {
                 if ($r['FimVigencia'] != '' or $r['FimVigencia'] != null) {
                     //ENTÃO FECHA OS ACESSÓRIOS
                     $unibeneficiario = new Application_Model_DbTable_Unibeneficiario();
                     $select = $unibeneficiario->select();
                     $select->setIntegrityCheck(false);
                     $select->from(array('b' => 'Beneficiario'), array('*'))->joinLeft(array('m' => 'ModuloBeneficiario'), 'b.AutoId = m.Beneficiario', array('m.InicioVigencia'))->joinLeft(array('o' => 'ModuloOperadora'), 'm.Modulo = o.AutoId', array('o.Codigo'))->where('b.AutoId = ? and m.fimvigencia is null and o.tipo=9', $row['AutoId']);
                     $modulos = $unibeneficiario->fetchAll($select);
                     foreach ($modulos as $iModulo => $rModulo) {
                         $dadosXml .= "<Modulos>\n";
                         #ABRE MODULO
                         $dadosXml .= "<Codigo>" . $rModulo['Codigo'] . "</Codigo>\n";
                         $dadosXml .= "<DataBaseCob>" . $this->dataPhp($rModulo['InicioVigencia']) . "</DataBaseCob>\n";
                         $dadosXml .= "<InicioVigencia>" . $this->dataPhp($rModulo['InicioVigencia']) . "</InicioVigencia>\n";
                         $dadosXml .= "<QteMensRetr>0</QteMensRetr>\n";
                         $dadosXml .= "<FimVigencia>" . $this->dataPhp($r['FimVigencia']) . "</FimVigencia>\n";
                         $dadosXml .= "</Modulos>\n";
                         #FECHA MODULO
                     }
                 }
                 $dadosXml .= "<Modulos>\n";
                 #ABRE MODULO
                 $dadosXml .= "<Codigo>" . $r['Codigo'] . "</Codigo>\n";
                 $dadosXml .= "<DataBaseCob>" . $this->dataXml($r['InicioVigencia']) . "</DataBaseCob>\n";
                 $dadosXml .= "<InicioVigencia>" . $this->dataXml($r['InicioVigencia']) . "</InicioVigencia>\n";
                 $dadosXml .= "<QteMensRetr>0</QteMensRetr>\n";
                 if ($r['FimVigencia'] != '') {
                     $dadosXml .= "<FimVigencia>" . $this->dataXml($r['FimVigencia']) . "</FimVigencia>\n";
                 }
                 $dadosXml .= "</Modulos>\n";
                 #FECHA MODULO
             }
         }
         // SE FOR DEPENDENTE, PASSAR O TITULAR
         if ($row['RDP'] > 0) {
             $dadosXml .= "<Titular>\n";
             $dadosXml .= "<Codigo>" . $this->codcarteira($objcontrato['Codigo'], $row['Familia'], 0) . "</Codigo>\n";
             $dadosXml .= "</Titular>\n";
         }
         //LOTACAO
         $lotacao = new Application_Model_DbTable_Lotacao();
         $select = $lotacao->select()->where('lote = ? ', $lote)->where('idBeneficiario = ?', $row['idBeneficiario']);
         $tab_lotacao = $lotacao->fetchall($select);
         $tabtemp = new Application_Model_DbTable_Unibeneficiario();
         foreach ($tab_lotacao as $local => $valores) {
             //VERIFICAR STATUS
             if ($valores['status'] == 1) {
                 // Troca o código autoid, pelo campo código
                 /*
                  $select = $tabtemp->select();
                  $select ->setIntegrityCheck(false);
                  $select	->from(array('b' => 'lotacaocontrato'),array('Codigo'))
                  ->where('contrato = ?', $contrato )
                  ->where('AutoId = ?', $valores['Codigo'] );
                  $res_temp = $tabtemp->fetchAll($select);
                  if ( count($res_temp) == 1 ){
                 */
                 if ($valores['Codigo'] != null || $valores['Codigo'] != '') {
                     $dadosXml .= "<Lotacao>\n";
                     #ABRE LOTACAO
                     $dadosXml .= "<Codigo>" . $valores['Codigo'] . "</Codigo>\n";
                     $dadosXml .= "<InicioVigencia>" . $this->dataXml($valores['InicioVigencia']) . "</InicioVigencia>\n";
                     if ($valores['FimVigencia'] != '' || $valores['FimVigencia'] != null) {
                         $dadosXml .= "<FimVigencia>" . $this->dataXml($valores['FimVigencia']) . "</FimVigencia>\n";
                     }
                     $dadosXml .= "</Lotacao>\n";
                     #FECHA LOTACAO
                 }
             }
             //}
         }
         //LOCAL DE ATENDIMENTO DO BENEFICIARIO
         $LocalAtendimento = new Application_Model_DbTable_LocalAtendimento();
         $select = $LocalAtendimento->select()->where('lote = ? ', $lote)->where('idBeneficiario = ?', $row['idBeneficiario']);
         $tab_localAtendimento = $LocalAtendimento->fetchall($select);
         //VERIFICAR STATUS
         foreach ($tab_localAtendimento as $local => $valores) {
             if ($valores['status'] == 1) {
                 if ($valores['Codigo'] != '') {
                     $unipessoa = new application_model_DbTable_Unipessoa();
                     $select = $unipessoa->select();
                     $select->setIntegrityCheck(false);
                     $select->from(array('pes' => 'Pessoa'), array())->join(array('pse' => 'PrestadorServico'), 'pes.autoid = pse.pessoa', array())->join(array('nre' => 'negociacaorepasse'), 'nre.lcat = pse.autoid', array('tipo'))->where('nre.contrato = ?', $row['Contrato'])->where('pse.codigo = ?', $valores['Codigo']);
                     $resultado = $unipessoa->fetchAll($select)->current();
                     $dadosXml .= "<LocalAtendimento>\n";
                     #ABRE LOCAL ATENDIMENTO
                     $dadosXml .= "<LcAt>" . $valores['Codigo'] . "</LcAt>\n";
                     $dadosXml .= "<Tipo>" . $resultado['tipo'] . "</Tipo>\n";
                     $dadosXml .= "<InicioVigencia>" . $this->dataXml($valores['InicioVigencia']) . "</InicioVigencia>\n";
                     if ($valores['FimVigencia'] != '') {
                         $dadosXml .= "<FimVigencia>" . $this->dataXml($valores['FimVigencia']) . "</FimVigencia>\n";
                     }
                     $dadosXml .= "</LocalAtendimento>\n";
                     #FECHA LOCAL ATENDIMENTO
                 }
             }
         }
         $dadosXml .= "</AtualizacaoCompleta> \n";
         #FECHA O AtualizacaoCompleta
     }
     //FECHA LAÇO DO FOREACH
     $dadosXml .= "</MovimentacaoCadastralAtualizacaoCompleta>";
     // FECHA NÓ PAI PRINCIPAL
     //GRAVA
     file_put_contents(APPLICATION_PATH . '/xml/uniweb_' . $lote . ".xml", $dadosXml);
     $this->view->nomeXml = APPLICATION_PATH . '/xml/uniweb_' . $lote . ".xml";
     $this->view->lote = $lote;
     // ALTERA STATUS DO LOTE PARA 0
     $tab_lote = new Application_Model_DbTable_Lote();
     $atualizaLote = array("status" => 0);
     $where = "AutoId = " . $lote;
     $tab_lote->update($atualizaLote, $where);
     // ALTERA STATUS DO BENEFICIARIO PARA 0
     $atualizaBeneficiario = array("status" => 0);
     $where = "lote = " . $lote;
     $beneficiario->update($atualizaBeneficiario, $where);
 }
 public function deletarAction()
 {
     $benef = new Application_Model_DbTable_Beneficiario();
     $telefone = new Application_Model_DbTable_Telefone();
     $endereco = new Application_Model_DbTable_Endereco();
     $email = new Application_Model_DbTable_Email();
     $modulo = new Application_Model_DbTable_Modulo();
     $local = new Application_Model_DbTable_LocalAtendimento();
     $lotacao = new Application_Model_DbTable_Lotacao();
     $registro = new Application_Model_DbTable_Registro();
     $request = $this->getRequest();
     $idBeneficiario = $request->getParam('id');
     $where = "idBeneficiario = " . $idBeneficiario;
     $telefone->delete($where);
     $endereco->delete($where);
     $email->delete($where);
     $modulo->delete($where);
     $local->delete($where);
     $lotacao->delete($where);
     $registro->delete($where);
     $benef->delete($where);
     $this->_redirect('/beneficiario/enviaralteracoes');
 }