Ir para conteúdo
  • Cadastre-se

Antonio Gomes

Membros
  • Total de ítens

    671
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Antonio Gomes postou

  1. Italo, Não querendo ser chato, posso mandar outras funcoes que acusam falta de retorno pelo fato de ela ser toda retornada baseado em case end ? unit ACBrProvedorProdata function TProvedorProdata.GetAssinarXML(Acao: TnfseAcao): Boolean; begin end; unit ACBrProvedorSpeedGov function TProvedorSpeedGov.GetAssinarXML(Acao: TnfseAcao): Boolean; begin ------------------------ unit ACBrProvedorSpeedGov variavel perdida sem uso: function TProvedorSpeedGov.GetConfigURL(ACodCidade: Integer): TConfigURL; var ConfigURL: TConfigURL; URL: String; <<------------------------------------ essa aqui begin ... unit ACBrProvedorLink3 function TProvedorLink3.GetAssinarXML(Acao: TnfseAcao): Boolean; begin unit ACBrNFSeWebServices, esse .Free sozinho sem teste, essa variavel nao poderia entrar sem ponteiro e no decorrer da execução gerar uma violacao de acesso? procedure TWebServicesBase.LoadMsgEntrada; begin FxProvedor := FConfiguracoes.WebServices.xProvedor; FProvedor := FConfiguracoes.WebServices.Provedor; FProvedorClass.Free; nessa mesma implementacao acusa pelo compilador um create abstrato,. ex: [DCC Warning] ACBrNFSeWebServices.pas(594): W1020 Constructing instance of 'TProvedorGinfesV3' containing abstract method 'TProvedorClass.GeraEnvelopeConsultarSequencialRps' ------------ Outra implementacao que vive parando é essa, sem retorno: function TInfEvento.getcOrgao: integer; // (AC,AL,AP,AM,BA,CE,DF,ES,GO,MA,MT,MS,MG,PA,PB,PR,PE,PI,RJ,RN,RS,RO,RR,SC,SP,SE,TO); // (12,27,16,13,29,23,53,32,52,21,51,50,31,15,25,41,26,22,33,24,43,11,14,42,35,28,17); begin // Result := StrToInt(copy(FChave, 1, 2)); if FTpEvento = teEPEC then begin // Alterado por Italo em 28/10/2013 // case Result of case StrToIntDef(copy(FChave, 1, 2), 0) of 0, 11, // Rondônia 12, // Acre 13, // Amazonas 14, // Roraima 15, // Pará 16, // Amapá 17, // Tocantins 21, // Maranhão 22, // Piauí 23, // Ceará 24, // Rio Grande do Norte 25, // Paraibá 27, // Alagoas 28, // Sergipe 29, // Bahia 31, // Minas Gerais 32, // Espirito Santo 33, // Rio de Janeiro 41, // Paraná 42, // Santa Catarina 43, // Rio Grande do Sul 52, // Goiás 53: // Distrito Federal Result := 35; 26, // Pernanbuco 35, // São Paulo 50, // Mato Grosso do Sul 51: // Mato Grosso Result := 43; end; end else begin // Alterado por Italo em 03/10/2013 if FcOrgao <> 0 then Result := FcOrgao else Result := StrToIntDef(copy(FChave, 1, 2), 0); if Result = 0 then raise EventoException.Create('Campo cOrgao não informado.'); // Estados que utilizam a SVAN: ES, MA, PA, PI, RN Devem utilizar 91 // if Result in [32, 21, 15, 22, 24] then // Result := 91; end; end; Se na primeira linha da implementacao setasse o result para zero, o fato de ser case logo abaixo nao geraria o erro na linkedicao.
  2. As implementacoes abaixo, no codigo fonte sempre que atualizo vem vazio e ao aplicar o build all o codigo fonte para de compilar pois tenho um plugin instalado para nao parar continuar ao encontrar funcao sem retorno. O retorno dela seria esse?? Se sim, poderiam arrumar no codigo fonte? obrigado isso está na linha: 174 function TNotasCanceladasCollection.GetItem( Index: Integer): TNotasCanceladasCollectionItem; begin Result := Items[index]; end; isso está na linha: 180 procedure TNotasCanceladasCollection.SetItem(Index: Integer; Value: TNotasCanceladasCollectionItem); begin Items[index]:= Value; end;
  3. Juliomar, e depois de alterado, mando todo pacote para voces? Dai vao mudar linha a linha ?
  4. Elton Barbosa: Seria uma solução plausível! Como posso ajudar nisso ?
  5. ok. Lembrando apenas para os usuarios que tiverem a mesma funcao em seus sistemas, vulgo, clippeiros, que criaram essa função, que se começar dar problema em string.. apos incluir as units do acbr na uses, deve-se colocar o nome da sua unit propria no codigo fonte, ou isolar as chamadas ao acbr dentro de uma unit que nao seja global. Passei por esse problema aqui, em remessa bancária, não é o pacote acbr boleto usado, mas outro, que por sua vez usa as funcoes. Assunto encerrado.
  6. Estive pensando em mudar para a implementacao em portugues: Suponho que PadD = adciona caracteres a direita e PadE = adiiciona caracteres a esqueda, funcoes essas na unit ACBrDFeUtil, porém, ao ler a funcao, acredito que ela esteja invertida também: veja: // Penso em um suposto caracter a direita da string... ex: string entrada: 2: len=6 saída =>: 200000 class function DFeUtil.PadD(const AString: string; const nLen: Integer; const Caracter: Char): String; begin Result := copy(AString,1,nLen); Result := StringOfChar(Caracter, (nLen - Length(Result))) + Result; end; // Penso em um suposto caracter a esquerda da string... ex: string entrada: 1: len = 6 saída =>: 000001 class function DFeUtil.PadE(const AString: string; const nLen: Integer; const Caracter: Char): String; begin Result := copy(AString, 1, nLen); Result := Result + StringOfChar(Caracter, (nLen - Length(Result))); end; Como eu poderia ajudar arrumar isso? Se é que pode ser arrumado.
  7. Sim, inverter o cabeçalho das funcoes: PADL = 'TEXTO' + STRINGOFCHAR PADR = STRINGOFCHAR + 'TEXTO'; note que ao meu entender, o comentario em cima da funcao está correto, está invertido apenas as letras R e L na implementacao
  8. As funcoes abaixo, nao estariam com a assinatura errada ? PADL = Adiciona string no inicio, left -esquerda PADR = adiciona string no final, right - direita {----------------------------------------------------------------------------- Completa <AString> com <Caracter> a direita, até o tamanho <nLen>, Alinhando a <AString> a Esquerda. Se <AString> for maior que <nLen>, ela será truncada ---------------------------------------------------------------------------- } function padL(const AString : AnsiString; const nLen : Integer; const Caracter : AnsiChar) : AnsiString ; var Tam: Integer; begin Tam := Length(AString); if Tam < nLen then Result := AString + StringOfChar(Caracter, (nLen - Tam)) else Result := copy(AString,1,nLen) ; end ; {----------------------------------------------------------------------------- Completa <AString> com <Caracter> a esquerda, até o tamanho <nLen>, Alinhando a <AString> a Direita. Se <AString> for maior que <nLen>, ela será truncada ---------------------------------------------------------------------------- } function padR(const AString : AnsiString; const nLen : Integer; const Caracter : AnsiChar) : AnsiString ; var Tam: Integer; begin Tam := Length(AString); if Tam < nLen then Result := StringOfChar(Caracter, (nLen - Tam)) + AString else Result := copy(AString,1,nLen) ; end ;
  9. A funcao abaixo, logo no uso da variavel result no case, no delphi 2007, com o plugin da DDevExtension, acusa que a função nao tem retorno. Realmente, existe um teste da variavel result no case, mas comentaram o codigo onde a mesma estava sendo inicializada. A verificar: function TInfEvento.getcOrgao: integer; // (AC,AL,AP,AM,BA,CE,DF,ES,GO,MA,MT,MS,MG,PA,PB,PR,PE,PI,RJ,RN,RS,RO,RR,SC,SP,SE,TO); // (12,27,16,13,29,23,53,32,52,21,51,50,31,15,25,41,26,22,33,24,43,11,14,42,35,28,17); begin // Result := StrToInt(copy(FChave, 1, 2)); if FTpEvento = teEPEC then begin case Result of 11, // Rondônia 12, // Acre 13, // Amazonas 14, // Roraima 15, // Pará 16, // Amapá 17, // Tocantins 21, // Maranhão 22, // Piauí 23, // Ceará 24, // Rio Grande do Norte 25, // Paraibá 27, // Alagoas 28, // Sergipe 29, // Bahia 31, // Minas Gerais 32, // Espirito Santo 33, // Rio de Janeiro 41, // Paraná 42, // Santa Catarina 43, // Rio Grande do Sul 52, // Goiás 53: // Distrito Federal Result := 35; 26, // Pernanbuco 35, // São Paulo 50, // Mato Grosso do Sul 51: // Mato Grosso Result := 43; end; end else begin // Alterado por Italo em 03/10/2013 if FcOrgao <> 0 then Result := FcOrgao else Result := StrToIntDef(copy(FChave, 1, 2), 0); if Result = 0 then raise EventoException.Create('Campo cOrgao não informado.'); // Estados que utilizam a SVAN: ES, MA, PA, PI, RN Devem utilizar 91 // if Result in [32, 21, 15, 22, 24] then // Result := 91; end; end;
  10. Ao fazer a consulta de nfse por rps: unit ACBrNFSeWebServices function TNFSeConsultarNfseRPS.Executar: Boolean; na linha 2730... NFSeRetorno.Leitor.Arquivo := FRetWS; NFSeRetorno.LerXml; // Incluido por Ricardo Miranda em 14/03/2013 FRetWS := NotaUtil.RetirarPrefixos(FRetWS); <<<<<<<<<<< Quando faz isso......... o codigo de baixo nao funciona, pois tem o prefixo ns3 // Alterado por Rodrigo Cantelli if FProvedor = proBetha then FRetCompNfse := SeparaDados(FRetWS, Prefixo3 + 'ComplNfse') else FRetCompNfse := SeparaDados(FRetWS, Prefixo3 + 'CompNfse'); <<<<<<<<<<<<< Aqui não funciona Solução, comentei a linha que retira o prefixo.
  11. Amigos, Gostaria de saber se é possível o webservice da ginfes na funcao ConsultaNFSeporRps não ser com raise se não conseguir consultar. A excessao levantada, não leva em conta o retorno da mensagem ser diferente de E89, apenas L000, e quando empilha as mensagens para retornar, apenas é concatenado a variavel Result := (FMsg = ''); o conteudo retornado em FMsg := FMsg + NFSeRetorno.ListaNfse.MsgRetorno.Items.Mensagem + IfThen(FMsg = '', '', ' / '); ignorando o codigo da mensagem. como solucao, irei usar a funcao de consulta dentro de try except na forma: function TFTransmissaoNFS.ConsultarNfsePorRps(RPS, SerieRPS, TipoRPS, PrestadorCNPJ, PrestadorIM: string): Boolean; begin try // Essa consulta retorna um raise se nao existe a nota pelo rps Result := dmComercial.ACBrNFSe1.ConsultarNfsePorRps(RPS, SerieRPS, TipoRPS, PrestadorCNPJ, PrestadorIM); except on E: Exception do begin //Aviso(dmComercial.ACBrNFSe1.WebServices.ConsNfseRps.Msg); if Pos('NAO EXISTE NA BASE DE DADOS UMA NFS-E EMITIDA PARA O NUMERO DA RPS INFORMADA', AnsiUpperCase(E.Message)) > 0 then // Se nao existe Result := True; end; end; end; Se alguem estiver usando Ginfes e fizer uso dessa funcao para verificar se o rps foi transmitido e usa de outra forma, por favor responda.
  12. também estou com esse problema. Perdi a chance de transmitir o DPEC e a consulta nao retorna o protocolo, dai transmiti tudo para SEF e as NFe estão todas autorizadas e pelo codigo fonte da impressao do danfe, quando é dpec nao verifica se a nota ja possui o protocolo de emissao, simplesmente levanta o raise de falta de "Protocolo de Registro no DPEC não informado". Pensei mexer no codigo fonte da impressao do Danfe.
  13. os casos em que há destaque do icms ST será destacado na nota, e no caso do danfe paisagem pode aparecer para impressao: CST 010, 030 e 070. Essas CSTs, usam os campos do grupo prod-> VBCST e VST. Vale ressaltar: Eu as tinha aqui porque alterei no meu pc, porém sincronizei do SVN tudo. Se você puder fazer o commit, faço as alterações e envio pra voce. O CDS de eventos, está sem os campos também. sobre esse problema: Isso foi feito apenas para facilitar o desenvolvimento na IDE do FAST. Daria para declarar os campos por fora no TfrxDataset, na propriedade: FieldAliases, assim como está no frxIdentificacao, dê uma olhada. Abraço.
  14. Só nao gostei de ter tirado da unit as tags do produto VBCST VST Pois quando é usado a CST com tributacao de icms e cobranca por ST, o danfe paisagem que pode ter as colunas, não acha os campos. Outra coisa, não faz leitura das tags de subst. tributária de acordo com a CST.
  15. Fiz uma correção na impressão do danfe.fr3, fastreport, na qual quando tinha mais de 2 paginas a impressão do produto parava no final do papel e deixava um espaço em branco no final do mesmo (espaço reservado para informação complementar) Dei uma modificada também na impressão das duplicadas, pois na versão anterior ocupava espaco demais se tiver mais de 12 parcelas, com isso os produtos tinham um espaço ainda menor. Alterei também o modo de impressão da informação complementar, passei a impressão para modo manual após finalizar a impressão do produto, pois a banda anterior era a razão de ficar o espaço em branco. DANFE_QUEBRA_PRODUTO.rar
  16. Boa tarde: Ao receber o xml de NFS-e, o campo compentencia vem representado como ano+mes, pode ser alterado no codigo fonte ? //Retorna: 200109 (Ano+Mes) vCompetencia := Leitor.rCampo(tcStr, Prefixo + 'Competencia'); if vCompetencia <> '' then NFSe.InfNfse.Competencia := copy(vCompetencia, 5, 2) + '/' + copy(vCompetencia, 1, 4) else NFSe.InfNfse.Competencia := '';
  17. solucao porca que achei, ao inves de destruir, comentar ou setar para nil o componente "RIO" (THttprio).
  18. Bom dia a todos, Alguem tem passado por isso ao terminar de pedir a consulta do webservice da Ginfes NFSe, ao destruir o componente THTTPRio ? Rio.Free; << nessa linha
  19. Como posso enviar um codigo fonte que precisei arrumar?
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.