GustavoKato
Membros-
Total de ítens
152 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que GustavoKato postou
-
Antes utilizava o Quick Report, e o pdf do DACTE ficava em torno de 90k, no Fast 178k e no Fortes 50k Pra enviar os documentos via e-mail faz toda a diferença (em grande quantidade)
-
na verdade é com cunho construtivo, sem confusão.
-
bug resultado do commit 9086, ocasionou baixa de vários títulos sem identificação em um cliente
-
Retorno - Leitura do campo SeuNumero Caixa 240 SIGCB
GustavoKato replied to GustavoKato's tópico in ACBrBoleto
Segue Unit ACBrBancoCaixa.pas -
Retorno - Leitura do campo SeuNumero Caixa 240 SIGCB
um tópico no fórum postou GustavoKato ACBrBoleto
Bom dia, identifiquei um problema na leitura do layout da Caixa SIGCB 240. A leitura do campo "SeuNumero" está pegando a mesma informação do campo "NumeroDocumento" if Copy(Linha,14,1)= 'T' then begin SeuNumero := Trim(copy(Linha,59,11)); NumeroDocumento := copy(Linha,59,11); segundo o manual: Número Documento (Seu Nº) | Número do Documento de Cobrança | 59 | 69 | 11 Uso da Empresa | Identificação do Título na Empresa | 106 | 130 | 25 Trecho alterado: if Copy(Linha,14,1)= 'T' then begin SeuNumero := Trim(copy(Linha,106,25)); NumeroDocumento := copy(Linha,59,11); -
Bom dia Italo, Fiz a simulação aqui e finalmente entendi. Achei que os retornos eram gravados no índice respectivo ao envio dos CT-es. Fica abaixo a forma em que utilizei para "sincronizar". for i := 0 to (Lote.WebServices.Retorno.CteRetorno.ProtCTe.Count - 1) do begin for j := 0 to (Lote.Conhecimentos.Count - 1) do begin if Copy(Lote.Conhecimentos.Items[j].CTe.inFCTe.ID,4,44) = Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].chCTe then break; end; //resto da rotina end; grato pela ajuda e atenção de todos. Ótima semana
-
boa tarde, Luis. vc consulta a chave no SEFAZ? Se sim cuidado com o tal do "Consumo indevido"
-
A rotina a baixo sempre funcionou e gravo utilizando a chave, houve alteração na rotina do ACBr recentemente? for i := 0 to (Lote.WebServices.Retorno.CteRetorno.ProtCTe.Count - 1) do begin sDataHora := DateTimeToStr(Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].dhRecbto); sProtocolo := Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].nProt; sStat := IntToStr(Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].cStat); sMotivo := Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].xMotivo; sConhecimento := Copy(Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].chCTe, 26, 3) + '.' + Copy(Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].chCTe, 29, 3) + '.' + Copy(Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].chCTe, 32, 3); MemoStatus.Add(' ' + sConhecimento + ' ' + sProtocolo + ' ' + sDataHora + ' ' + sStat + ' - ' + sMotivo); if ((Lote.WebServices.Retorno.CTeRetorno.ProtCTe.Items[i].cStat = 100) or //Só grava na tabela CONHECIMENTOS se Autorizada ou Denegada (Lote.WebServices.Retorno.CTeRetorno.ProtCTe.Items[i].cStat = 110)) then begin try //Conhecimento qUpdConhecimento.SQL.Clear; qUpdConhecimento.SQL.Add('UPDATE CONHECIMENTOS SET'); qUpdConhecimento.SQL.Add(' CTE_EMISSAO = :xEmissao,'); qUpdConhecimento.SQL.Add(' CTE_ENVIADO = :xEnviado,'); qUpdConhecimento.SQL.Add(' CTE_PROTOCOLADO = :xProtocolado,'); qUpdConhecimento.SQL.Add(' CTE_PROTOCOLO = :xProtocolo,'); qUpdConhecimento.SQL.Add(' CTE_IMPRESSO = :xImpresso,'); qUpdConhecimento.SQL.Add(' CTE_XML = '+ QuotedStr(Lote.Conhecimentos.Items[i].XML)); // qUpdConhecimento.SQL.Add(' CTE_XML = :xXML,'); qUpdConhecimento.SQL.Add(' , CTE_STATUS_CODIGO = :xStatus,'); qUpdConhecimento.SQL.Add(' CTE_STATUS_DESCRICAO = :xDescricao'); qUpdConhecimento.SQL.Add(' WHERE CTE_CHAVE = ' + QuotedStr(Copy(Lote.Conhecimentos.Items[i].CTe.inFCTe.ID,4,44))); qUpdConhecimento.ParamByName('xEmissao' ).AsDateTime := Lote.Conhecimentos.Items[i].CTe.Ide.dhEmi; qUpdConhecimento.ParamByName('xEnviado' ).AsString := 'S'; qUpdConhecimento.ParamByName('xProtocolado').AsString := 'S'; qUpdConhecimento.ParamByName('xProtocolo' ).AsString := sProtocolo; qUpdConhecimento.ParamByName('xImpresso' ).AsString := 'N'; qUpdConhecimento.ParamByName('xStatus' ).AsSmallInt := Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].cStat; qUpdConhecimento.ParamByName('xDescricao' ).AsString := Copy(Lote.WebServices.Retorno.CteRetorno.ProtCTe.Items[i].xMotivo, 1, 130); // qUpdConhecimento.ParamByName('xXML' ).AsWideString := Lote.Conhecimentos.Items[i].XML; qUpdConhecimento.ExecSQL;
-
Bom dia, pessoal. Está ocorrendo um problema quando há envio de um lote e entre eles há uma rejeição, por exemplo: CT-es 1,2 e 3 ocorre a rejeição no 2, ele grava no 1 (I.E inválida por exemplo). 1 - Autorizado porém recebe Rejeição (I.E inválida) referente ao 2 2 - Recebe status 100 porém houve rejeição (I.E inválida). 3 - Autorizado Em resumo, parece que há um problema no índice ao processar o retorno fazendo com que meu sistema receba status 100 sendo que não foi autorizado e outro que foi autorizado receber uma rejeição.
-
Bom dia Aqui também voltou. Obrigado
-
Bom dia, estou com problemas no cancelamento também, desde ontem recebo o seguinte erro: Rejeição: Erro não catalogado (código de status não localizado: 999 (Erro ao ler informações do banco de dados)) mais alguém com este caso?
-
boa tarde, será que não é a codificação (ANSI, unicode, UTF-8, etc) do txt que está salvando?
-
experimentem utilizar o servidor de dns do google (8.8.8.8)
-
aqui tbm está assim, acontece um dia melhora em outro, volta a acontecer... vou ver se consigo debugar
-
aqui está horrível, retornando o erro O identificador não está no estado correto para a operação solicitada - URL:https://nfe.fazenda....etRecepcao.asmx- SOAPAction:http://www.portalfiscal.inf.br/cte/wsdl/CteRetRecepcao/cteRetRecepcao as vezes autoriza porém não recebe retorno, alguma sugestão Italo?
-
WebServices - Consulta de Cadastro de Contribuintes
GustavoKato replied to prismars's tópico in ACBrCTe
edit: post em topico errado -
WebServices - Consulta de Cadastro de Contribuintes
GustavoKato replied to prismars's tópico in ACBrCTe
SEFAZ está péssima hoje -
boa tarde, tive este problema também... o problema ocorre pq está como padrão no create CodigoMora := '12', atribuindo posteriormente 'A' ou 'B' resolve, porém deu esse probleminha mesmo.
-
boa tarde, algum retorno sobre esta implementação?
-
Nosso Numero Sicredi (Alteração Dos Fontes)
GustavoKato replied to paiaka2012's tópico in ACBrBoleto
bom dia, essa parte do fórum realmente esta meio abandonada acho q vai demorar para alguém realizar esta alteração, como solução temporaria colocaria uma divisão. Por exemplo if NossoNumero > 100000 then b := 1 + NossoNumero div 100000 ps: não sei os valores corretos, só dei exemplo de uma solução -
Critérios Para Identificar Boletos Em Arquivo Retorno (Múltiplos Bancos E Carteiras)
GustavoKato replied to um tópico no fórum in ACBrBoleto
não, apenas com registro...- 6 replies
-
- retorno
- identificar
- (e 4 mais)
-
Critérios Para Identificar Boletos Em Arquivo Retorno (Múltiplos Bancos E Carteiras)
GustavoKato replied to um tópico no fórum in ACBrBoleto
bom dia, Roberto. Sim, sempre vem no retorno o mesmo valor que vc informou na remessa. O campo "SeuNumero" vc pode colocar algum número de controle do seu sistema. Exemplo: Empresa+Fatura Eu utilizo separando por barras assim não preciso ficar controlando por número de caracteres. Só se atente que alguns bancos (SICREDI) o campo é meio pequeno.- 6 replies
-
- retorno
- identificar
- (e 4 mais)
-
Boa tarde, está correto sim...
-
Erro Linha Digitavel Boleto Banco Do Brasil
GustavoKato replied to Cristiano Pimenta's tópico in ACBrBoleto
faça o debug na montagem do número e verá qual informação está faltando passar. -
Alterado ACBrBoleto: Classe TACBrTitulo, adicionei as propriedades fAgencia : String; fContaCorrente : String; fContaCorrenteDigito : String; e a procedure LerRetorno400 do banco Bradesco para alimentar estas propriedades Segue anexo Units para análise. No aguardo. Alter ACBrBoleto contas.zip