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. Ok, Funcionou certinho ! Obrigado.
  16. 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
  17. Segue arquivo com alteração para FieldByName('CEP').AsString := IfThen(CEP = 0,'',FormatarCEP(IntToStr(CEP))); ACBrCTeDACTEFR.pas
  18. 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
  19. @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.
  20. Bom dia @hleorj Ok,Obrigado !
  21. 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;
  22. 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
  23. Boa Tarde, Com a sua unit funcionou perfeitamente, Muito Obrigado pela ajuda e atenção. Abraço!
  24. 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
  25. 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...
The popup will be closed in 10 segundos...