/**
  * Prepara os dados da guia a ser gerada
  *
  * @param  Administrativo_Model_UsuarioContribuinte $oContribuinte
  * @param  int                                      $iAnoCompetencia
  * @param  int                                      $iMesCompetencia
  * @param  array                                    $aNotas
  * @param  int                                      $iIdGuia
  * @return object                                   $oGuiaGerar
  */
 public static function montaDadosGuia(Administrativo_Model_UsuarioContribuinte $oContribuinte, $iAnoCompetencia, $iMesCompetencia, $aNotas, $sDataPagamento, $iIdGuia)
 {
     $sData = DBSeller_Helper_Date_Date::invertDate($sDataPagamento);
     $oData = new DateTime($sData);
     $oGuiaGerar = new StdClass();
     $oGuiaGerar->inscricao_municipal = $oContribuinte->getIm();
     $oGuiaGerar->cpf_cnpj = $oContribuinte->getCnpjCpf();
     $oGuiaGerar->numcgm = $oContribuinte->getCgm();
     $oGuiaGerar->mes_competencia = $iMesCompetencia;
     $oGuiaGerar->ano_competencia = $iAnoCompetencia;
     $oGuiaGerar->codigo_guia = $iIdGuia;
     $aListaNotas = array();
     foreach ($aNotas as $oDocumentoNota) {
         $oNota = new stdClass();
         $oNota->numero_nota_fiscal = $oDocumentoNota->getNotaNumero();
         $oNota->codigo_documento = $oDocumentoNota->getId();
         $oNota->data_nota_fiscal = $oDocumentoNota->getNotaData()->format('Y-m-d');
         $oNota->serie_nota_fiscal = $oDocumentoNota->getNotaSerie();
         $oNota->valor_base_calculo = $oDocumentoNota->getServicoBaseCalculo();
         $oNota->valor_deducao = $oDocumentoNota->getServicoValorDeducao();
         $oNota->valor_imposto_retido = $oDocumentoNota->getServicoValorImposto();
         $oNota->valor_servico_prestado = $oDocumentoNota->getServicoValorPagar();
         $oNota->aliquota = $oDocumentoNota->getServicoAliquota();
         $oNota->data_pagamento = $oData->format('Y-m-d');
         $oNota->retido = $oDocumentoNota->getServicoImpostoRetido();
         $oNota->situacao = $oDocumentoNota->getSituacaoDocumento() == 'N' ? '0' : '1';
         $oNota->status = 1;
         $oNota->servico_prestado = urlencode($oDocumentoNota->getDescricaoServico());
         // Serviços prestados
         if ($oDocumentoNota->getOperacao() == self::SERVICO_PRESTADO) {
             $oNota->cnpj_prestador = $oDocumentoNota->getPrestadorCpfCnpj();
             $oNota->inscricao_prestador = $oDocumentoNota->getPrestadorInscricaoMunicipal();
             $oNota->nome = urlencode($oDocumentoNota->getPrestadorRazaoSocial());
             $oNota->operacao = 2;
         } else {
             $oNota->cnpj_prestador = $oDocumentoNota->getTomadorCpfCnpj();
             $oNota->inscricao_prestador = $oDocumentoNota->getTomadorInscricaoMunicipal();
             $oNota->nome = $oDocumentoNota->getTomadorRazaoSocial();
             $oNota->operacao = 1;
         }
         // Limita para o tamanho do campo no ecidade
         if (strlen($oNota->nome) > 60) {
             $oNota->nome = substr($oNota->nome, 57) . '...';
         }
         // Adiciona a nota na lista
         $aListaNotas[] = $oNota;
     }
     $oGuiaGerar->notas = $aListaNotas;
     return $oGuiaGerar;
 }