Ir para conteúdo
  • Cadastre-se

Jemison Vidal

Membros
  • Total de ítens

    36
  • Registro em

  • Última visita

Tudo que Jemison Vidal postou

  1. Olá, Exatamente, estou utilizando "ACBrInstall_Trunk2.exe", também tentei buildar apenas o pacote em questão e me retornou o erro mencionado a cima, Também tentei apagar utilizando "apagarAcbr.bat", no C:\ e no D:\, e utilizar o ACBrInstall_Trunk2 novamente, porém sem sucesso.
  2. Bom dia, Estou atualizando os fontes, porém ao compilar o pacote ACBr_SPED estou enfrentando dificuldades em uma diretiva de compilação, Alguém poderia me ajudar por gentileza ? segue erro: [dcc32 Fatal Error] ACBr_SPED.dpk(4): E2280 Unterminated conditional directive Dados Adicionais: - Win 7 - 64 Bits - Delphi XE8
  3. Bom dia, as alterações foram refeitas com o arquivos atualizados, e com apenas um alteração nos nomes das propriedades de rejeições. Poderiam analisar e se possível disponibilizar no SVN ? Obrigado! ACBrBancoSantander.pas ACBrBoleto.pas
  4. Bom dia ! Conforme a necessidade de alguns Clientes em saber o código de rejeições, tarifas, custas, liquidações e baixas(Ocorrências), realizei a implementação nos dois arquivos "ACBrBoleto.pas" e "ACBrBancoSantander". Abaixo parte do layout do arquivo de retorno 240 do Santander, justificando minha alteração, peço que analisem e se possível a inclusão no SVN. Obrigado ! ACBrBancoSantander.pas ACBrBoleto.pas
  5. Duvida esclarecida... Obrigado ítalo!
  6. Bom dia Ítalo, Seguindo as orientações passadas a emissão funcionou perfeitamente, porém a ultima questão levantada seria que ocorra algum erro dentro do Lote. Tenho um Lote com 50 NFS-e, porém 1 delas estava com erro de validação preciso informar o usuário qual RPS gerou o erro, como foi dito por você : Estou realizando esse teste e verificando o código e na unit: ACBrNFSeNotasFiscais, na procedure: ValidarLotese , se a nota não for Valida o numero retornado é do lote e não do rps, Será q estou esquecendo alguma configuração : Agradeço Pela Atenção e ajuda. abaixo procedure que realiza este processo: procedure TNotasFiscais.ValidarLote(const XMLLote, NomeArqSchema: String); var Erro, AXML: String; NotaEhValida: Boolean; begin AXML := XMLLote; with TACBrNFSe(FACBrNFSe) do begin NotaEhValida := SSL.Validar(AXML, NomeArqSchema, Erro); if not NotaEhValida then begin FErroValidacao := ACBrStr('Falha na validação dos dados do lote: ') + NumeroLote + sLineBreak + FAlertas ; FErroValidacaoCompleto := FErroValidacao + sLineBreak + Erro; raise EACBrNFSeException.CreateDef( IfThen(Configuracoes.Geral.ExibirErroSchema, ErroValidacaoCompleto, ErroValidacao)); end; end; end;
  7. Bom dia, Desculpe a demora comigo também funcionou!
  8. Vou iniciar os testes na parte da tarde posto o resultado, Obrigado Novamente !
  9. Bom dia, Estou com o mesmo problema de retorno do servidor, porém de momento estou utilizando um Timer para realizar o Envio de 50 NFS-e por vez e depois realizado a consulta em lote e vou atualizando na minha aplicação. Poderia me informar @Cleber como deixou duas configurações do componente ? pois aumentei mas mesmas mais sem sucesso, não queria fazer uso do Timer Obrigado desde já.
  10. Boa Tarde Italo, Muito Obrigado pelos esclarecimentos, consegui realizar a implementação na aplicação porém em alguns casos que realizo o envio de 20 rps no mesmo lote e recebo o retorno: O tempo limite da operação foi atingido - URL:https://homologacao.ginfes.com.br/ServiceGinfesImpl - SOAPAction: Estou pesquisando o porque esta retornando essa mensagem se souber de algo referente agradeço muito.
  11. Jemison Vidal

    Dúvida NFS-e Lote

    Bom dia ! Estou implementado a emissão de NFS-e em lote e estou com algumas dúvidas, se alguém conseguir me esclarecer essas dúvidas; - O Lote de NFS-e irá possuir o mesmo Número de RPS, exemplo: Tenho 10 Notas, as 10 precisam estar com o mesmo numero de rps(1 por exemplo), ou o RPS seria 1,2,3,....10 e um outro campo informando o numero do lote; - Estou enviando um lote de 50 NFS-e, porém no meio dessas notas uma possua algum tipo de erro ou falha, o retorno do que esta errado será com o numero do RPS ? ou no lote ? Agradeço desde já ! Abraço.
  12. Boa Tarde, Apenas para Finalizar o Tópico. Verificando as diferenças entre o Demo_ACBrMDFe, foi identificado que o mesmo está setando a propriedade SSLLib com libCapicom, e minha aplicação estava pegando conforme as diretivas do ACBr no create do componente o modo libCapicomDelphiSoap; O modo libCapicomDelphiSoap, deve possuir algo que interfira nesta consulta, estou alterado para libCapicom apenas para realizar está consulta e retornando para libCapicomDelphiSoap; Solução: ACBrMDFe1.Configuracoes.Geral.SSLLib := libCapicom Obrigado pela ajuda, Abraço !
  13. Bom dia, Ao pré-visualizar ou imprimir um cte cancelado, a Marca d´agua não estava saindo na impressão, o problema só estava visível para ambiente de produção; Abaixo Código como era: procedure Overlay1OnBeforePrint(Sender: TfrxComponent); begin Overlay1.Visible := <Identificacao."TpAmb"> = '2'; if Overlay1.Visible then begin Overlay1.Height := Engine.PageHeight; memWatermark.Width := Overlay1.Width; memWatermark.Height := Engine.PageHeight; memWatermark.Font.Size := 40; end; end; Como Ficou: procedure Overlay1OnBeforePrint(Sender: TfrxComponent); begin if (<Parametros."Mensagem0"> <> '') then begin Overlay1.Visible := True; Overlay1.Height := Engine.PageHeight; memWatermark.Width := Overlay1.Width; memWatermark.Height := Engine.PageHeight; memWatermark.Font.Size := 40; end; end; Se possível, disponibilizar no SVN, Obrigado! DACTE.fr3
  14. Boa tarde, seguindo as mesmas alterações realizada para os documentos de CT-e e NF-e, a edição da estrutura e informações da NFS-e precisa ser bloqueada; Como era: PreviewOptions.Buttons := [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick]; Como Ficou: PreviewOptions.Buttons := [pbPrint, pbZoom, pbFind, pbNavigator, pbExportQuick]; Segue em anexo arquivo com a alteração, se possível poderia disponibilizar ao SVN ? Obrigado! ACBrNFSeDANFSeFR.pas
  15. Correção: FieldByName('CEP').AsString := IfThen(CEP = 0,'',FormatarCEP(Poem_Zeros(CEP, 8))); Segue arquivo em anexo, Muito Obrigado pela ajuda. Abraço. ACBrCTeDACTEFR.pas
  16. Segue arquivo com alteração para FieldByName('CEP').AsString := IfThen(CEP = 0,'',FormatarCEP(IntToStr(CEP))); ACBrCTeDACTEFR.pas
  17. Desculpa, deveria ter mandado no mesmo Post, só mais uma alteração. Ao Realizar a impressão do CT-e, está sendo impresso o CEP do Recebedor e Expedidor mesmo se os mesmo não foram informados, no código está sendo colocado zeros(00000-000); Segue .pas em anexo; Como era: FieldByName('CEP').AsString := FormatarCEP(Poem_Zeros(CEP, 8)); Como Ficou: FieldByName('CEP').AsString := FormatarCEP(IntToStr(CEP)); Sendo assim, não será impresso zeros quando recebedor/expedidor não forem informados; ACBrCTeDACTEFR.pas
  18. @hleorj, uma alteração proposta não foi aplicada ao SVN, acabei esquecendo de descrever ela, porém foi enviada junto no .pas, a implementação se trata do bloqueio dos botões na visualização no fast report, o usuário consegue editar a estrutura e os dados impressos no relatório, por gentileza poderia rever essa sugestão novamente ? abaixo código como era; with frxReport do begin ScriptLanguage := 'PascalScript'; StoreInDFM := False; OnBeforePrint := frxReportBeforePrint; OnReportPrint := 'frxReportOnReportPrint'; end; Como ficou: with frxReport do begin ScriptLanguage := 'PascalScript'; StoreInDFM := False; OnBeforePrint := frxReportBeforePrint; OnReportPrint := 'frxReportOnReportPrint'; PreviewOptions.Buttons :=[pbPrint, pbZoom, pbFind, pbNavigator, pbExportQuick]; end; Obrigado desde já abraço.
  19. Boa Tarde @Daniel Simoes, Desculpa, mais o problema não foi resolvido, foi testado apenas com a unit errada. a uma maneira que encontrei seria retirar a necessidade de conversão para UTF8, Porém não reconheço a real necessidade do IFDEF FPC, saberia me dizer para que serve esse IFDEF ?, Obrigado e desculpa novamente; Abaixo código para evitar a conversão para UTF8; Antes: procedure TDFeWebService.DefinirEnvelopeSoap; var Texto: String; begin { Sobrescrever apenas se necessário } {$IFDEF FPC} Texto := '<' + ENCODING_UTF8 + '>'; // Envelope já está sendo montado em UTF8 {$ELSE} Texto := ''; // Isso forçará a conversão para UTF8, antes do envio {$ENDIF} Texto := Texto + '<' + FPSoapVersion + ':Envelope ' + FPSoapEnvelopeAtributtes + '>'; if NaoEstaVazio(FPHeaderElement) then begin Texto := Texto + '<' + FPSoapVersion + ':Header>'; Texto := Texto + '<' + FPHeaderElement + ' xmlns="' + Servico + '">'; Texto := Texto + GerarCabecalhoSoap; Texto := Texto + '</' + FPHeaderElement + '>'; Texto := Texto + '</' + FPSoapVersion + ':Header>'; end; Texto := Texto + '<' + FPSoapVersion + ':Body>'; Texto := Texto + '<' + FPBodyElement + ' xmlns="' + Servico + '">'; Texto := Texto + DadosMsg; Texto := Texto + '</' + FPBodyElement + '>'; Texto := Texto + '</' + FPSoapVersion + ':Body>'; Texto := Texto + '</' + FPSoapVersion + ':Envelope>'; FPEnvelopeSoap := Texto; end; Possível solução: procedure TDFeWebService.DefinirEnvelopeSoap; var Texto: String; begin { Sobrescrever apenas se necessário } Texto := '<' + ENCODING_UTF8 + '>'; Texto := Texto + '<' + FPSoapVersion + ':Envelope ' + FPSoapEnvelopeAtributtes + '>'; if NaoEstaVazio(FPHeaderElement) then begin Texto := Texto + '<' + FPSoapVersion + ':Header>'; Texto := Texto + '<' + FPHeaderElement + ' xmlns="' + Servico + '">'; Texto := Texto + GerarCabecalhoSoap; Texto := Texto + '</' + FPHeaderElement + '>'; Texto := Texto + '</' + FPSoapVersion + ':Header>'; end; Texto := Texto + '<' + FPSoapVersion + ':Body>'; Texto := Texto + '<' + FPBodyElement + ' xmlns="' + Servico + '">'; Texto := Texto + DadosMsg; Texto := Texto + '</' + FPBodyElement + '>'; Texto := Texto + '</' + FPSoapVersion + ':Body>'; Texto := Texto + '</' + FPSoapVersion + ':Envelope>'; FPEnvelopeSoap := Texto; end;
  20. Bom dia @hleorj, Obrigado pela dica.. Vamos la. Segue em anexos e alterações baixo como era e como ficou. -Adicionado Carrega Modal Aquaviário e MultModal( Antes não existia); Agora: procedure TACBrCTeDACTEFR.CarregaMultiModal; begin if FCTe.ide.modal <> mdMultimodal then Exit; with cdsMultiModal, CTE.infCTeNorm do begin Append; FieldByName('COTM').AsString := multimodal.COTM; FieldByName('indNegociavel').AsString := indNegociavelToStr(multimodal.indNegociavel); Post; end; end; procedure TACBrCTeDACTEFR.CarregaModalAquaviario; var i: Integer; xBalsa: String; begin if FCTe.ide.modal <> mdAquaviario then Exit; with cdsModalAquaviario, CTe.infCTeNorm.aquav do begin // CreateDataSet; Append; FieldByName('vPrest').AsFloat := vPrest; FieldByName('vAFRMM').AsFloat := vAFRMM; FieldByName('nBooking').AsString := nBooking; FieldByName('nCtrl').AsString := nCtrl; FieldByName('xNavio').AsString := xNavio; FieldByName('nViag').AsString := nViag; case direc of drNorte: FieldByName('direc').AsString := 'NORTE'; drLeste: FieldByName('direc').AsString := 'LESTE'; drSul: FieldByName('direc').AsString := 'SUL'; drOeste: FieldByName('direc').AsString := 'OESTE'; end; FieldByName('prtEmb').AsString := prtEmb; FieldByName('prtTrans').AsString := prtTrans; FieldByName('prtDest').AsString := prtDest; case tpNav of tnInterior: FieldByName('tpNav').AsString := 'INTERIOR'; tnCabotagem: FieldByName('tpNav').AsString := 'CABOTAGEM'; end; FieldByName('irin').AsString := irin; FieldByName('xNavio').AsString := FieldByName('xNavio').AsString; for i := 0 to balsa.Count-1 do xBalsa := xBalsa + balsa.Items[i].xBalsa +','; FieldByName('xBalsa').AsString := Copy(xBalsa,1,Length(xBalsa)-1); Post; end; end; -Adicionado TClientDataSet e TfrxDBDataset para Aquaviário e MultModal( Antes não existia); Antes: // CDS cdsIdentificacao : TClientDataSet; cdsEmitente : TClientDataSet; cdsDestinatario : TClientDataSet; cdsDadosNotasFiscais : TClientDataSet; cdsParametros : TClientDataSet; cdsInformacoesAdicionais: TClientDataSet; cdsVolumes : TClientDataSet; cdsTomador : TClientDataSet; cdsExpedidor : TClientDataSet; cdsRecebedor : TClientDataSet; cdsRemetente : TClientDataSet; cdsCalculoImposto : TClientDataSet; cdsComponentesPrestacao : TClientDataSet; cdsSeguro : TClientDataSet; cdsModalRodoviario : TClientDataSet; cdsModalAereo : TClientDataSet; cdsRodoVeiculos : TClientDataSet; cdsRodoValePedagio : TClientDataSet; cdsRodoMotorista : TClientDataSet; cdsDocAnterior : TClientDataSet; cdsAnuladoComple : TClientDataSet; cdsEventos : TClientDataSet; // frxDB frxIdentificacao : TfrxDBDataset; frxEmitente : TfrxDBDataset; frxDestinatario : TfrxDBDataset; frxDadosNotasFiscais : TfrxDBDataset; frxParametros : TfrxDBDataset; frxVolumes : TfrxDBDataset; frxInformacoesAdicionais: TfrxDBDataset; frxTomador : TfrxDBDataset; frxExpedidor : TfrxDBDataset; frxRecebedor : TfrxDBDataset; frxRemetente : TfrxDBDataset; frxCalculoImposto : TfrxDBDataset; frxComponentesPrestacao : TfrxDBDataset; frxSeguro : TfrxDBDataset; frxModalRodoviario : TfrxDBDataset; frxModalAereo : TfrxDBDataset; frxRodoVeiculos : TfrxDBDataset; frxRodoValePedagio : TfrxDBDataset; frxRodoMotorista : TfrxDBDataset; frxDocAnterior : TfrxDBDataset; frxAnuladoComple : TfrxDBDataset; frxEventos : TfrxDBDataset; frxBarCodeObject: TfrxBarCodeObject; Agora: // CDS cdsIdentificacao : TClientDataSet; cdsEmitente : TClientDataSet; cdsDestinatario : TClientDataSet; cdsDadosNotasFiscais : TClientDataSet; cdsParametros : TClientDataSet; cdsInformacoesAdicionais: TClientDataSet; cdsVolumes : TClientDataSet; cdsTomador : TClientDataSet; cdsExpedidor : TClientDataSet; cdsRecebedor : TClientDataSet; cdsRemetente : TClientDataSet; cdsCalculoImposto : TClientDataSet; cdsComponentesPrestacao : TClientDataSet; cdsSeguro : TClientDataSet; cdsModalRodoviario : TClientDataSet; cdsModalAereo : TClientDataSet; cdsMultiModal : TClientDataSet; cdsModalAquaviario : TClientDataSet; cdsRodoVeiculos : TClientDataSet; cdsRodoValePedagio : TClientDataSet; cdsRodoMotorista : TClientDataSet; cdsDocAnterior : TClientDataSet; cdsAnuladoComple : TClientDataSet; cdsEventos : TClientDataSet; // frxDB frxIdentificacao : TfrxDBDataset; frxEmitente : TfrxDBDataset; frxDestinatario : TfrxDBDataset; frxDadosNotasFiscais : TfrxDBDataset; frxParametros : TfrxDBDataset; frxVolumes : TfrxDBDataset; frxInformacoesAdicionais: TfrxDBDataset; frxTomador : TfrxDBDataset; frxExpedidor : TfrxDBDataset; frxRecebedor : TfrxDBDataset; frxRemetente : TfrxDBDataset; frxCalculoImposto : TfrxDBDataset; frxComponentesPrestacao : TfrxDBDataset; frxSeguro : TfrxDBDataset; frxModalRodoviario : TfrxDBDataset; frxModalAereo : TfrxDBDataset; frxMultiModal : TfrxDBDataset; frxModalAquaviario : TfrxDBDataset; frxRodoVeiculos : TfrxDBDataset; frxRodoValePedagio : TfrxDBDataset; frxRodoMotorista : TfrxDBDataset; frxDocAnterior : TfrxDBDataset; frxAnuladoComple : TfrxDBDataset; frxEventos : TfrxDBDataset; frxBarCodeObject: TfrxBarCodeObject; Criação dos Campos no aquaviário: cdsModalAquaviario := TClientDataSet.Create(nil); with cdsModalAquaviario, FieldDefs do begin Close; Clear; Add('vPrest', ftFloat); Add('vAFRMM', ftFloat); Add('nBooking', ftString, 10); Add('nCtrl', ftString, 10); Add('xNavio', ftString, 60); Add('nViag', ftInteger); Add('direc', ftString, 8); Add('prtEmb', ftString, 60); Add('prtTrans', ftString, 60); Add('prtDest', ftString, 60); Add('tpNav', ftString, 10); Add('irin', ftString, 10); Add('xBalsa', ftString, 190); CreateDataSet; end; Criação dos Campos MultiModal: cdsMultiModal := TClientDataSet.Create(nil); with cdsMultiModal, FieldDefs do begin Close; Clear; Add('COTM', ftString, 20); Add('indNegociavel', ftString, 1); CreateDataSet; end; -Criando frxDbDataset para o Modal Aquaviario(Antes não existia) Agora: frxModalAquaviario := TfrxDBDataset.Create(nil); with frxModalAquaviario do begin UserName := 'ModalAquaviario'; OpenDataSource := False; DataSet := cdsModalAquaviario; end; -Cirando frcDbDataSet para o Modal MultiModal(Antes não existia) Agora: frxMultiModal := TfrxDBDataset.Create(nil); with frxMultiModal do begin UserName := 'MultiModal'; OpenDataSource := False; DataSet := cdsMultiModal; end; -Adicionado no método Destroy Agora: cdsModalAquaviario.Free; cdsMultiModal.Free; frxModalAquaviario.Free; frxMultiModal.Free; -Adicionado a procedure limpa dados *OBS: Removido CdsEventos.EmptyDataSet, pois na na impressão do evento, o xml do evento é carregando antes do xml do cte, e ao executar o limpa dados ele estava limpando os dados do evento e realizando a impressão em branco, lembrando que ao carregar os dados do evento ja é executado o emptyDataSet, sendo necessário apenas remover do limpaDados; Antes: procedure TACBrCTeDACTEFR.LimpaDados; begin cdsIdentificacao.EmptyDataSet; cdsEmitente.EmptyDataSet; cdsDestinatario.EmptyDataSet; cdsDadosNotasFiscais.EmptyDataSet; cdsParametros.EmptyDataSet; cdsInformacoesAdicionais.EmptyDataSet; cdsVolumes.EmptyDataSet; cdsTomador.EmptyDataSet; cdsExpedidor.EmptyDataSet; cdsRecebedor.EmptyDataSet; cdsRemetente.EmptyDataSet; cdsCalculoImposto.EmptyDataSet; cdsComponentesPrestacao.EmptyDataSet; cdsSeguro.EmptyDataSet; cdsModalRodoviario.EmptyDataSet; cdsRodoVeiculos.EmptyDataSet; cdsRodoValePedagio.EmptyDataSet; cdsRodoMotorista.EmptyDataSet; cdsModalAereo.EmptyDataSet; cdsDocAnterior.EmptyDataSet; cdsAnuladoComple.EmptyDataSet; cdsEventos.EmptyDataSet; end; Agora: procedure TACBrCTeDACTEFR.LimpaDados; begin cdsIdentificacao.EmptyDataSet; cdsEmitente.EmptyDataSet; cdsDestinatario.EmptyDataSet; cdsDadosNotasFiscais.EmptyDataSet; cdsParametros.EmptyDataSet; cdsInformacoesAdicionais.EmptyDataSet; cdsVolumes.EmptyDataSet; cdsTomador.EmptyDataSet; cdsExpedidor.EmptyDataSet; cdsRecebedor.EmptyDataSet; cdsRemetente.EmptyDataSet; cdsCalculoImposto.EmptyDataSet; cdsComponentesPrestacao.EmptyDataSet; cdsSeguro.EmptyDataSet; cdsModalRodoviario.EmptyDataSet; cdsRodoVeiculos.EmptyDataSet; cdsRodoValePedagio.EmptyDataSet; cdsRodoMotorista.EmptyDataSet; cdsModalAereo.EmptyDataSet; cdsMultiModal.EmptyDataSet; cdsModalAquaviario.EmptyDataSet; cdsDocAnterior.EmptyDataSet; cdsAnuladoComple.EmptyDataSet; end; -Adicionado FrxModalAéreo e multiModal ao relatório Antes: procedure TACBrCTeDACTEFR.SetDataSetsToFrxReport; begin frxReport.DataSets.Clear; with frxReport.EnabledDataSets do begin Clear; Add(frxIdentificacao); Add(frxEmitente); Add(frxDestinatario); Add(frxDadosNotasFiscais); Add(frxParametros); Add(frxVolumes); Add(frxInformacoesAdicionais); Add(frxTomador); Add(frxExpedidor); Add(frxRecebedor); Add(frxRemetente); Add(frxCalculoImposto); Add(frxComponentesPrestacao); Add(frxSeguro); Add(frxModalRodoviario); Add(frxModalAereo); Add(frxRodoVeiculos); Add(frxRodoValePedagio); Add(frxRodoMotorista); Add(frxDocAnterior); Add(frxAnuladoComple); Add(frxEventos); end; end; Agora: procedure TACBrCTeDACTEFR.SetDataSetsToFrxReport; begin with frxReport.EnabledDataSets do begin Clear; Add(frxIdentificacao); Add(frxEmitente); Add(frxDestinatario); Add(frxDadosNotasFiscais); Add(frxParametros); Add(frxVolumes); Add(frxInformacoesAdicionais); Add(frxTomador); Add(frxExpedidor); Add(frxRecebedor); Add(frxRemetente); Add(frxCalculoImposto); Add(frxComponentesPrestacao); Add(frxSeguro); Add(frxModalRodoviario); Add(frxModalAquaviario); Add(frxModalAereo); Add(frxMultiModal); Add(frxRodoVeiculos); Add(frxRodoValePedagio); Add(frxRodoMotorista); Add(frxDocAnterior); Add(frxAnuladoComple); Add(frxEventos); end; end; -Adicionado CarregaMultiModal e CarregaAquaviário no procedure Carrega Dados Antes: procedure TACBrCTeDACTEFR.CarregaDados; begin LimpaDados; CarregaIdentificacao; CarregaTomador; CarregaEmitente; CarregaRemetente; CarregaDestinatario; CarregaExpedidor; CarregaRecebedor; CarregaDadosNotasFiscais; CarregaParametros; CarregaCalculoImposto; CarregaVolumes; CarregaComponentesPrestacao; CarregaInformacoesAdicionais; CarregaSeguro; CarregaModalRodoviario; CarregaModalAereo; CarregaDocumentoAnterior; CarregaCTeAnuladoComplementado; end; Agora: procedure TACBrCTeDACTEFR.CarregaDados; begin LimpaDados; CarregaIdentificacao; CarregaTomador; CarregaEmitente; CarregaRemetente; CarregaDestinatario; CarregaExpedidor; CarregaRecebedor; CarregaDadosNotasFiscais; CarregaParametros; CarregaCalculoImposto; CarregaVolumes; CarregaComponentesPrestacao; CarregaInformacoesAdicionais; CarregaSeguro; CarregaModalRodoviario; CarregaModalAereo; CarregaMultiModal; CarregaModalAquaviario; CarregaDocumentoAnterior; CarregaCTeAnuladoComplementado; end; -Alterado CarregaDadosAéreo Antes: procedure TACBrCTeDACTEFR.CarregaModalAereo; begin if FCTe.ide.modal <> mdAereo then Exit; with cdsModalAereo, CTE.infCTeNorm do begin Append; FieldByName('nMinu').AsInteger := aereo.nMinu; FieldByName('nOCA').AsString := aereo.nOCA; FieldByName('dPrevAereo').AsDateTime := aereo.dPrevAereo; FieldByName('xLAgEmi').AsString := aereo.xLAgEmi; FieldByName('IdT').AsString := aereo.IdT; FieldByName('CL').AsString := aereo.tarifa.CL; FieldByName('cTar').AsString := aereo.tarifa.cTar; FieldByName('vTar').AsCurrency := aereo.tarifa.vTar; FieldByName('xDime').AsString := aereo.natCarga.xDime; FieldByName('cInfManu').AsInteger := aereo.natCarga.cinfManu; FieldByName('cIMP').AsString := aereo.natCarga.cIMP; Post; end; end; Agora: procedure TACBrCTeDACTEFR.CarregaModalAereo; begin if FCTe.ide.modal <> mdAereo then Exit; with cdsModalAereo, CTE.infCTeNorm do begin Append; FieldByName('nMinu').AsInteger := aereo.nMinu; FieldByName('nOCA').AsString := aereo.nOCA; FieldByName('dPrevAereo').AsDateTime := aereo.dPrevAereo; FieldByName('xLAgEmi').AsString := aereo.xLAgEmi; FieldByName('IdT').AsString := aereo.IdT; FieldByName('CL').AsString := aereo.tarifa.CL; FieldByName('cTar').AsString := aereo.tarifa.cTar; FieldByName('vTar').AsCurrency := aereo.tarifa.vTar; FieldByName('xDime').AsString := aereo.natCarga.xDime; FieldByName('cInfManu').AsInteger := aereo.natCarga.cinfManu; FieldByName('cIMP').AsString := aereo.natCarga.cIMP; FieldByName('xOrig').AsString := CTe.compl.fluxo.xOrig; FieldByName('xDest').AsString := CTe.compl.fluxo.xDest; FieldByName('xRota').AsString := CTe.compl.fluxo.xRota; Post; end; end; -Adicionar três campos(xOrig,xDest,xRota) para Modal Aéreo: Antes: cdsModalAereo := TClientDataSet.Create(nil); with cdsModalAereo, FieldDefs do begin Close; Clear; Add('nMinu', ftInteger); Add('nOCA', ftString, 11); Add('dPrevAereo', ftDateTime); Add('xLAgEmi', ftString, 20); Add('IdT', ftString, 14); Add('CL', ftString, 1); Add('cTar', ftString, 4); Add('vTar', ftCurrency); Add('xDime', ftString, 14); Add('cInfManu', ftInteger); Add('cIMP', ftString, 3); CreateDataSet; end; Agora: cdsModalAereo := TClientDataSet.Create(nil); with cdsModalAereo, FieldDefs do begin Close; Clear; Add('nMinu', ftInteger); Add('nOCA', ftString, 11); Add('dPrevAereo', ftDateTime); Add('xLAgEmi', ftString, 20); Add('IdT', ftString, 14); Add('CL', ftString, 1); Add('cTar', ftString, 4); Add('vTar', ftCurrency); Add('xDime', ftString, 14); Add('cInfManu', ftInteger); Add('cIMP', ftString, 3); Add('xOrig',ftString,15); Add('xDest',ftString,15); Add('xRota',ftString,15); CreateDataSet; end; - Adicionado Campo "vValePed"; Antes: cdsRodoValePedagio := TClientDataSet.Create(nil); with cdsRodoValePedagio, FieldDefs do begin Close; Clear; Add('CNPJPg', ftString, 18); Add('CNPJForn', ftString, 18); Add('nCompra', ftString, 14); CreateDataSet; end; Agora: cdsRodoValePedagio := TClientDataSet.Create(nil); with cdsRodoValePedagio, FieldDefs do begin Close; Clear; Add('CNPJPg', ftString, 18); Add('CNPJForn', ftString, 18); Add('nCompra', ftString, 14); Add('vValePed', ftFloat); CreateDataSet; end; -Alterado preenchido do RNTRC DO veiculo, para que seja impresso mesmo que o veiculo seja próprio; Antes: with cdsRodoVeiculos do begin {$IFDEF PL_200} for i := 0 to CTE.infCTeNorm.rodo.veic.Count - 1 do begin with CTE.infCTeNorm.rodo.veic.Items[i] do begin {$ELSE} for i := 0 to CTE.rodo.veic.Count - 1 do begin with CTE.rodo.veic.Items[i] do begin {$ENDIF} Append; case tpVeic of tvTracao: FieldByName('tpVeic').AsString := 'Tração'; tvReboque: FieldByName('tpVeic').AsString := 'Reboque'; end; FieldByName('placa').AsString := placa; FieldByName('UF').AsString := UF; FieldByName('RNTRC').AsString := Prop.RNTRC; Post; end; end; end; Agora: with cdsRodoVeiculos do begin {$IFDEF PL_200} for i := 0 to CTE.infCTeNorm.rodo.veic.Count - 1 do begin with CTE.infCTeNorm.rodo.veic.Items[i] do begin {$ELSE} for i := 0 to CTE.rodo.veic.Count - 1 do begin with CTE.rodo.veic.Items[i] do begin {$ENDIF} Append; case tpVeic of tvTracao: FieldByName('tpVeic').AsString := 'Tração'; tvReboque: FieldByName('tpVeic').AsString := 'Reboque'; end; FieldByName('placa').AsString := placa; FieldByName('UF').AsString := UF; if tpProp = tpProprio then FieldByName('RNTRC').AsString := CTe.infCTeNorm.rodo.RNTRC else FieldByName('RNTRC').AsString := Prop.RNTRC; Post; end; end; end; -Corrigido impressão do Resumo Antes: vResumo := ''; // if DACTEClassOwner.ExibirResumoCanhoto then // begin // if NotaUtil.EstaVazio(DANFEClassOwner.ExibirResumoCanhoto_Texto) then // vResumo := 'Emissão: ' + NotaUtil.FormatDate(DateToStr(FNFe.Ide.DEmi)) + ' Dest/Reme: ' + FNFe.Dest.XNome + ' Valor Total: ' + NotaUtil.FormatFloat(FNFe.Total.ICMSTot.VNF) // else // vResumo := DANFEClassOwner.ExibirResumoCanhoto_Texto; // end; FieldByName('ResumoCanhoto').AsString := vResumo; Agora: vResumo := 'EMIT: '+ FCTe.Emit.xNome + ' - ' + 'EMISSÃO: ' + FormatDateTime('DD/MM/YYYY',FCTe.Ide.dhEmi) + ' - '+ 'TOMADOR: '; if FCTe.Ide.Toma4.xNome = '' then begin case FCTe.Ide.Toma03.Toma of tmRemetente: vResumo := vResumo + FCTe.Rem.xNome; tmExpedidor: vResumo := vResumo + FCTe.Exped.xNome; tmRecebedor: vResumo := vResumo + FCTe.Receb.xNome; tmDestinatario: vResumo := vResumo + FCTe.Dest.xNome; end end else vResumo := vResumo + FCTe.Ide.Toma4.xNome; vResumo := vResumo + ' - VALOR A RECEBER: R$ ' + FormatFloat('###,###,###,##0.00',FCTe.vPrest.vRec); end; FieldByName('ResumoCanhoto').AsString := vResumo; -Implementando impressão do canhoto no cabeçalho/Rodapé(Igual antes no Quick,antes no fast não existia) Agora: if DACTEClassOwner.PosCanhoto = prCabecalho then FieldByName('PrintCanhoto').AsString := '0' else FieldByName('PrintCanhoto').AsString := '1'; -Correção da impressão Modal, estava fixo Rodoviario Antes: FieldByName('modal').AsString := IfThen(modal = mdRodoviario, '0', '0'); Agora: FieldByName('modal').AsString := TpModalToStr(CTe.ide.modal); -Implementado protocolo do cte, na impressão do evento (igual no quick) antes: FieldByName('xJust').AsString := InfEvento.detEvento.xJust; agora: FieldByName('xJust').AsString := 'Protocolo do CTe Cancelado:' + InfEvento.detEvento.nProt +sLineBreak+InfEvento.detEvento.xJust; ACBrCTeDACTEFR.pas DACTE.fr3
  21. Boa Tarde, Com a sua unit funcionou perfeitamente, Muito Obrigado pela ajuda e atenção. Abraço!
  22. Certo, o problema segundo a minha análise está ocorrendo durante a conversão para UTF-8, devido a acentuação, retirando a necessidade de conversão a consulta é realizada com sucesso, não sei dizer se o problema está relacionado com o compilador(Delphi XE6), apenas esse processo está com problema. segue sugestão e arquivo para analise; Código Atual: procedure TDFeWebService.DefinirEnvelopeSoap; var Texto: String; begin { Sobrescrever apenas se necessário } {$IFDEF FPC} Texto := '<' + ENCODING_UTF8 + '>'; // Envelope já está sendo montado em UTF8 {$ELSE} Texto := ''; // Isso forçará a conversão para UTF8, antes do envio {$ENDIF} Texto := Texto + '<' + FPSoapVersion + ':Envelope ' + FPSoapEnvelopeAtributtes + '>'; if NaoEstaVazio(FPHeaderElement) then begin Texto := Texto + '<' + FPSoapVersion + ':Header>'; Texto := Texto + '<' + FPHeaderElement + ' xmlns="' + Servico + '">'; Texto := Texto + GerarCabecalhoSoap; Texto := Texto + '</' + FPHeaderElement + '>'; Texto := Texto + '</' + FPSoapVersion + ':Header>'; end; Texto := Texto + '<' + FPSoapVersion + ':Body>'; Texto := Texto + '<' + FPBodyElement + ' xmlns="' + Servico + '">'; Texto := Texto + DadosMsg; Texto := Texto + '</' + FPBodyElement + '>'; Texto := Texto + '</' + FPSoapVersion + ':Body>'; Texto := Texto + '</' + FPSoapVersion + ':Envelope>'; FPEnvelopeSoap := Texto; end; Código com Alteração: procedure TDFeWebService.DefinirEnvelopeSoap; var Texto: String; begin { Sobrescrever apenas se necessário } Texto := '<?xml version="1.0" encoding="UTF-8"?>'; Texto := Texto + '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' + ' xmlns:xsd="http://www.w3.org/2001/XMLSchema"' + ' xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">'; Texto := Texto + '<soap12:Header>'; Texto := Texto + '<mdfeCabecMsg xmlns="' + Servico + '">'; Texto := Texto + GerarUFSoap; Texto := Texto + GerarVersaoDadosSoap; Texto := Texto + '</mdfeCabecMsg>'; Texto := Texto + '</soap12:Header>'; Texto := Texto + '<soap12:Body>'; Texto := Texto + '<mdfeDadosMsg xmlns="' + Servico + '">'; Texto := Texto + DadosMsg; Texto := Texto + '</mdfeDadosMsg>'; Texto := Texto + '</soap12:Body>'; Texto := Texto + '</soap12:Envelope>'; FPEnvelopeSoap := Texto; end; ACBrDFeWebService.pas
  23. Olá Sr. Daniel Bom dia, Os Fontes estão atualizados e não foram modificados, realizei a exclusão dos arquivos e baixei novamente sem sucesso. Efetuamos uma alteração no SetCodePage, colocando o parâmetro Convert para True, dessa maneira o processo foi efetuado com sucesso. Dentro desse ambiente oque podemos fazer para resolver, sendo que essa function está no ACBrUtil ? lembrando que estou utilizando o Delphi XE6; function ACBrStrToUTF8( AString : String ) : AnsiString; {$IFNDEF FPC} {$IFDEF UNICODE} var RBS: RawByteString; {$ENDIF} {$ENDIF} begin {$IFNDEF FPC} {$IFDEF UNICODE} RBS := UTF8Encode(AString); SetCodePage(RBS, 0, False); Result := AnsiString(RBS); {$ELSE} Result := UTF8Encode(AString); {$ENDIF} {$ELSE} Result := AString; {$ENDIF} end; Realizando outro teste utilizei a mesma forma que estava sendo preenchida no trunk1 e funcionou corretamente, lembrando que no trunk1 a conversão não é necessária porque os valores estão sendo passados corretamente para o envelopSoap, segue abaixo código utilizado no trunk1. procedure TWebServicesBase.DefinirEnvelopeSoap; var Texto: AnsiString; begin { Sobrescrever apenas se necessário } Texto := '<?xml version="1.0" encoding="UTF-8"?>'; Texto := Texto + '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' + ' xmlns:xsd="http://www.w3.org/2001/XMLSchema"' + ' xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">'; Texto := Texto + '<soap12:Header>'; Texto := Texto + '<mdfeCabecMsg xmlns="' + Servico + '">'; Texto := Texto + GerarUFSoap; Texto := Texto + GerarVersaoDadosSoap; Texto := Texto + '</mdfeCabecMsg>'; Texto := Texto + '</soap12:Header>'; Texto := Texto + '<soap12:Body>'; Texto := Texto + '<mdfeDadosMsg xmlns="' + Servico + '">'; Texto := Texto + DadosMsg; Texto := Texto + '</mdfeDadosMsg>'; Texto := Texto + '</soap12:Body>'; Texto := Texto + '</soap12:Envelope>'; FEnvelopeSoap := Texto; end; Se alguém teve ou estiver com o mesmo problema e possui alguma solução. Desde Já Agradeço, Abrado.
×
×
  • 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.

The popup will be closed in 10 segundos...