GustavoKato
Membros-
Total de ítens
152 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
GustavoKato's Achievements
-
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?