/**
  * Metodo Responsável por atualizar a lista de contribuintes
  *
  * @param array $contribuintes_novos
  */
 public function atualizaListaContribuintes($contribuintes_novos)
 {
     $contribuintes_velhos = Administrativo_Model_UsuarioContribuinte::getByAttribute('usuario', $this->getId());
     $novos_im = array();
     $velhos_im = array();
     // monta array de inscricoes novas. recebidas pelo webservice
     foreach ($contribuintes_novos as $c) {
         $novos_im[$c->attr('inscricao')] = $c;
     }
     if (!empty($contribuintes_velhos)) {
         // monta array de inscricoes velhas. recebidas do banco de dados
         if (is_array($contribuintes_velhos)) {
             foreach ($contribuintes_velhos as $c) {
                 $velhos_im[$c->getIm()] = $c;
             }
         } else {
             $velhos_im[$contribuintes_velhos->getIm()] = $contribuintes_velhos;
         }
     }
     // diferença entre as novas e velhas são as inscricoes que precisam ser adicionadas
     $adicionar = array_diff_key($novos_im, $velhos_im);
     // diferença entre as velhas e as novas sao as incricões que precisam ser removidas
     $remover = array_diff_key($velhos_im, $novos_im);
     // Reabilita vinculos existentes
     foreach ($novos_im as $oNovoContribuinte) {
         if (isset($velhos_im[$oNovoContribuinte->attr('inscricao')])) {
             $oUsuarioContribuinteExistente = $velhos_im[$oNovoContribuinte->attr('inscricao')];
             $oUsuarioContribuinteExistente->setHabilitado(TRUE);
             $oUsuarioContribuinteExistente->persist();
         }
     }
     // Cria novos vinculos
     foreach ($adicionar as $oNovoContribuinte) {
         $oUsuarioContribuinte = new Administrativo_Model_UsuarioContribuinte();
         $oUsuarioContribuinte->setUsuario($this->entity);
         $oUsuarioContribuinte->setIm($oNovoContribuinte->attr('inscricao'));
         $oUsuarioContribuinte->setCnpjCpf($oNovoContribuinte->attr('cnpj'));
         $oUsuarioContribuinte->setHabilitado(true);
         $this->addUsuarioContribuinte($oUsuarioContribuinte);
         $oUsuarioContribuinte->persist();
     }
     // Desabilita o usuario contribuinte
     foreach ($remover as $oUsuarioRemover) {
         $oUsuarioRemover->setHabilitado(FALSE);
         $oUsuarioRemover->persist();
     }
 }