Ir para conteúdo
  • Cadastre-se

Leandro Miler Santana

Membros
  • Total de ítens

    279
  • Registro em

  • Última visita

Tudo que Leandro Miler Santana postou

  1. Pessoal bom dia. Hoje todos os clientes estão com problema na emissão dos CTEs. Está dando a mensagem uso Indevido. Provavelmente problema no Sefaz apesar de não estarem avisando. Todos usam Sefaz São Paulo. Alguém está passando por isso também ?
  2. Se ajudar segue exemplo de código: procedure TfrmCTE_Importacao.btXMLClick(Sender: TObject); var sfilter, sFileName, mCONHEC,mCOD_CTRC : String; ArquivoXML : TStringList; TipoDFE : Integer; begin OpenDialog1.Title := 'Selecione o CTe'; OpenDialog1.DefaultExt := '*-cte.xml'; OpenDialog1.Filter := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*'; OpenDialog1.InitialDir := ACBrCTE1.Configuracoes.Arquivos.PathSalvar; if OpenDialog1.Execute then begin sFileName := OpenDialog1.FileName; ArquivoXML := TStringList.Create; ArquivoXML.LoadFromFile(sFileName); TipoDFE := 0; if pos('<infNFe', ArquivoXML.Text) > 0 then TipoDFE := 1; if pos('<infCte', ArquivoXML.Text) > 0 then TipoDFE := 2; if pos('InfNfse', ArquivoXML.Text) > 0 then TipoDFE := 3; if pos('infMDFe', ArquivoXML.Text) > 0 then TipoDFE := 4; if pos('procEventoNFe', ArquivoXML.Text) > 0 then TipoDFE := 5; if pos('procEventoCTe', ArquivoXML.Text) > 0 then TipoDFE := 6; if pos('procEventoMDFe', ArquivoXML.Text) > 0 then TipoDFE := 7; ArquivoXML.Free; mCONHEC := LeftStr(RightStr(sFileName,25),7); mCOD_CTRC := mCONHEC+IntToStr(spFCODIGO.Value); sFilter:='COD_CTRC = '+ QuotedStr(mCOD_CTRC)+''; dm1.Nota.Query(sFilter); dm1.Nota.First; if (TipoDFE<>2) then begin messagedlg('Este XML não é de CTe, favor baixar direto do site do SEFAZ !',mterror,[mbok],0); exit; end; if dm1.Nota.Eof then begin importaCteDoXML( sFileName); messagedlg('CTE '+mCONHEC+' foi importado com sucesso !!!',mtInformation,[mbok],0); end else messagedlg('Este CTE já existe no sistema !',mtError,[mbok],0); end; end; procedure TfrmCTE_Importacao.importaCteDoXML(sFile: String); var sRandom, sNatureza,sChaveCTE, mConhec : String; mIBGE_ENT,mCENTREGA,mENT_UF, mIBGE_COL,mCCOLETA,mCOL_UF: String; mCESPECIE, mCNATU, mCNATUC, mCUBAGEM: String; mTARIFA, mCVALOR, mFRTPESO, mXFRETE, mPEDAGIO, mCOUTROS, mCTOTAL, mCBASECALC,mCALIQUOTA, mCICMS : double; mCDATA :TDate; iSerie,iConhec : Integer; mCCLIENTE1, mCCLIENTE2, mCCLIENTE3, mCCLIENTE4 : String; mAPAGAR4, mPAGO4, mAPAGAR3, mPAGO3, mCALCULADO, mCOBS, mCOBS3:String; mFCODIGO, mCOD_CTRC, mTOMADOR : String; iVarreComps, iQtdComps, mQTD : Integer; xQTD_Converte, mCPESO, mTSECCAT, mTDESPACHO, mFRTVALOR : Double; mRecibo, sChaveNFE, mNomeArq, mChaveCTE, mProtoc : String; begin ACBrCTe1.Conhecimentos.Clear; if not FileExists(sFile) then exit; ACBrCTe1.Conhecimentos.LoadFromFile(sFile); // showmessage(IntToStr(ACBrCTe1.Conhecimentos.Items[0].cStat)); if ACBrCTe1.Conhecimentos.Count>0 then begin sNatureza := ACBrCTe1.Conhecimentos.Items[0].CTE.ide.natOp; sRandom := IntToStr(ACBrCTe1.Conhecimentos.Items[0].CTE.ide.cCT); mCDATA := ACBrCTe1.Conhecimentos.Items[0].CTE.ide.dhEmi; mConhec := IntToStr(ACBrCTe1.Conhecimentos.Items[0].CTE.ide.nCT); mCONHEC := tbStrZero(StrToInt(Mconhec),7); mCNATU := IntToStr(ACBrCTe1.Conhecimentos.Items[0].CTE.ide.CFOP); mIBGE_COL := IntToStr(ACBrCTe1.Conhecimentos.Items[0].CTE.ide.cMunIni); mCCOLETA := ACBrCTe1.Conhecimentos.Items[0].CTE.ide.xMunIni; mCOL_UF := ACBrCTe1.Conhecimentos.Items[0].CTE.ide.UFIni; mIBGE_ENT := IntToStr(ACBrCTe1.Conhecimentos.Items[0].CTE.ide.cMunFim); mCENTREGA := ACBrCTe1.Conhecimentos.Items[0].CTE.ide.xMunFim; mENT_UF := ACBrCTe1.Conhecimentos.Items[0].CTE.ide.UFFim; mCCLIENTE1 := ACBrCTe1.Conhecimentos.Items[0].CTE.rem.CNPJCPF; mCCLIENTE2 := ACBrCTe1.Conhecimentos.Items[0].CTE.dest.CNPJCPF; mCCLIENTE3 := ACBrCTe1.Conhecimentos.Items[0].CTE.exped.CNPJCPF; mCCLIENTE4 := ACBrCTe1.Conhecimentos.Items[0].CTE.receb.CNPJCPF; if ACBrCTe1.Conhecimentos.Items[0].CTE.ide.toma03.Toma = tmRemetente then mTOMADOR := mCCLIENTE1; if ACBrCTe1.Conhecimentos.Items[0].CTE.ide.toma03.Toma = tmDestinatario then mTOMADOR := mCCLIENTE2; if ACBrCTe1.Conhecimentos.Items[0].CTE.ide.toma03.Toma = tmExpedidor then mTOMADOR := mCCLIENTE3; if ACBrCTe1.Conhecimentos.Items[0].CTE.ide.toma03.Toma = tmRecebedor then mTOMADOR := mCCLIENTE4; if copy(Mccliente1,1,1)<>'' then mCCLIENTE1:=FUNCOES1.FormataCNPJ(mCCLIENTE1); if copy(Mccliente2,1,1)<>'' then mCCLIENTE2:=FUNCOES1.FormataCNPJ(mCCLIENTE2); if copy(Mccliente3,1,1)<>'' then mCCLIENTE3:=FUNCOES1.FormataCNPJ(mCCLIENTE3); if copy(Mccliente4,1,1)<>'' then mCCLIENTE4:=FUNCOES1.FormataCNPJ(mCCLIENTE4); if copy(mTOMADOR,1,1)<>'' then mTOMADOR:=FUNCOES1.FormataCNPJ(mTOMADOR); if mCCLIENTE1=mTOMADOR then mPAGO3 := 'X'; if mCCLIENTE2=mTOMADOR then mAPAGAR3 := 'X'; if mCCLIENTE3=mTOMADOR then mPAGO4:= 'X'; if mCCLIENTE4=mTOMADOR then mAPAGAR4:= 'X'; mCALCULADO := ACBrCTe1.Conhecimentos.Items[0].CTE.ide.xMunFim; iQtdComps := ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.infQ.Count; iVarreComps:=0; while iVarreComps<iQtdComps do begin IF ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.infQ[iVarreComps].tpMed <> 'Kg' then xQTD_Converte := ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.infQ[iVarreComps].qCarga; IF ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.infQ[iVarreComps].tpMed = 'Kg' then mCPESO := ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.infQ[iVarreComps].qCarga; inc(iVarreComps); end; mQTD := Round(xQTD_Converte); mCVALOR := ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.vCarga; mCNATUC := ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.proPred; mCESPECIE := ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infCarga.xOutCat; mCTOTAL := ACBrCTe1.Conhecimentos.Items[0].CTE.vPrest.vTPrest; mProtoc := ACBrCTe1.Conhecimentos.Items[0].CTE.procCTe.nProt; mNomeArq := ACBrCTe1.Conhecimentos.Items[0].NomeArq; mChaveCTE := ACBrCTe1.Conhecimentos.Items[0].CTE.procCTe.chCTe; mRECIBO := ACBrCTe1.Conhecimentos.Items[0].CTE.procCTe.XML_prot; // será que é o recibo? // mChaveCTE := RightStr(LeftSTR(mNomeArq,52),44); // componentes do frete iQtdComps := ACBrCTe1.Conhecimentos.Items[0].CTE.vPrest.Comp.Count; iVarreComps:=0; while iVarreComps<iQtdComps do begin with ACBrCTe1.Conhecimentos.Items[0].CTE.vPrest do begin if Comp.Items[iVarreComps].xNome='Frete Valor' then mFRTValor := Comp.Items[iVarreComps].vComp; if Comp.Items[iVarreComps].xNome='Frete Peso' then mFRTPeso := Comp.Items[iVarreComps].vComp; if Comp.Items[iVarreComps].xNome='Coleta' then mTARIFA := Comp.Items[iVarreComps].vComp; if Comp.Items[iVarreComps].xNome='Sec-Cat' then mTSECCAT := Comp.Items[iVarreComps].vComp; if Comp.Items[iVarreComps].xNome='Pedagio' then mPEDAGIO := Comp.Items[iVarreComps].vComp; if Comp.Items[iVarreComps].xNome='Despacho' then mTDESPACHO := Comp.Items[iVarreComps].vComp; if Comp.Items[iVarreComps].xNome='Outros Valores' then mCOUTROS := Comp.Items[iVarreComps].vComp; // incrementa inc(iVarreComps); end; end; // nota2 // with infCTeNorm.infDoc.InfNFe.Add do iQtdComps := ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infDoc.infNFe.Count; iVarreComps:=0; while iVarreComps<iQtdComps do begin with ACBrCTe1.Conhecimentos.Items[0].CTE.infCTeNorm.infDoc do begin sChaveNFE := infNFe.Items[iVarreComps].chave; // vai lancando no nota2 dm1.Nota2.Append; dm1.Nota2.FieldByName('CONHEC').AsString := mConhec; dm1.Nota2.FieldByName('FCODIGO').AsString:= IntToStr(spFCODIGO.Value); // verificar dm1.Nota2.FieldByName('COD_CTRC').AsString := mCONHEC+'51'; // verificar dm1.Nota2.FieldByName('NFE').AsString := sChaveNFE; dm1.Nota2.FieldByName('NOTA2').AsString := copy(sChaveNfe,26,9); dm1.Nota2.FieldByName('SERIE').AsString := copy(sChaveNfe,23,3); dm1.Nota2.FieldByName('DATA2').AsDateTime := mCDATA; dm1.Nota2.Commit; // incrementa inc(iVarreComps); end; end; dm1.Nota.Append; with dm1 do begin Nota.FieldByName('CONHEC').AsString := mCONHEC; Nota.FieldByName('FCODIGO').AsString := IntToStr(spFCODIGO.Value); // verificar Nota.FieldByName('COD_CTRC').AsString := mConhec+IntToStr(spFCODIGO.Value); Nota.FieldByName('CDATA').AsDateTime := mCDATA; Nota.FieldByName('CNATU').AsString := mCNATU; Nota.FieldByName('CCLIENTE1').AsString := mCCLIENTE1; Nota.FieldByName('CCLIENTE2').AsString := mCCLIENTE2; Nota.FieldByName('CCLIENTE3').AsString := mCCLIENTE3; Nota.FieldByName('CCLIENTE4').AsString := mCCLIENTE4; Nota.FieldByName('PAGO3').AsString := mPAGO3; Nota.FieldByName('APAGAR3').AsString := mAPAGAR3; Nota.FieldByName('PAGO4').AsString := mPAGO4; Nota.FieldByName('APAGAR4').AsString := mAPAGAR4; Nota.FieldByName('CALCULADO').AsString := mCALCULADO; Nota.FieldByName('CCOLETA').AsString := mCCOLETA; Nota.FieldByName('COL_UF').AsString := mCOL_UF; Nota.FieldByName('IBGE_COL').AsString := mIBGE_COL; Nota.FieldByName('CENTREGA').AsString := mCENTREGA; Nota.FieldByName('ENT_UF').AsString := mENT_UF; Nota.FieldByName('IBGE_ENT').AsString := mIBGE_ENT; // Nota.FieldByName('TSECCAT').AsFloat := mTSECCAT; Nota.FieldByName('COUTROS').AsFloat := mCOUTROS; // Nota.FieldByName('TDESPACHO').AsFloat := mTDESPACHO; Nota.FieldByName('TARIFA').AsFloat := mTARIFA; // Nota.FieldByName('FRTVALOR').AsFloat := mFRTVALOR; Nota.FieldByName('QTD').AsFloat := mQTD; // Nota.FieldByName('CPESO').AsFloat := mCPESO; Nota.FieldByName('CTOTAL').AsFloat := mCTOTAL; Nota.FieldByName('FRTPESO').AsFloat := mFRTPESO; Nota.FieldByName('PROTOC').AsString := mProtoc; Nota.FieldByName('ARQUIVO').AsString := mNomeArq; Nota.FieldByName('CHAVECTE').AsString := mChaveCTE; Nota.FieldByName('PEDAGIO').AsFloat := mPEDAGIO; Nota.FieldByName('GLOBAL').AsString := 'N'; // modificar este campo qdo for usar para outros clientes Nota.FieldByName('CVALOR').AsFloat := mCVALOR; Nota.FieldByName('CNATUC').AsString := mCNATUC; Nota.FieldByName('CESPECIE').AsString := mCESPECIE; end; dm1.Nota.Commit; end; end;
  3. O Fórum é pra isso né !! Aprendermos o que não sabemos e compartilhar experiências que descobrimos. Seguindo o velho ditado e muito correto que "Ninguém sabe tanto que não possa aprender, e nem tão pouco que não possa ensinar !!!" Valew pessoal.
  4. Pessoal, importante saber que neste repositório por algum motivo não estarão 100% das notas recebidas contra o CNPJ. Outra coisa. As vezes demora dias pra determinada NF-e constar no repositório. Att.
  5. Percebam no código fonte que postei acima faço um CTE de Substituição ao invés de fazer um CTE de Anulação, necessário em casos que o CTE foi emitido com "Tomador Errado - Inversão de Frete". Nesta situação o CTE substituto tem que ser preenchido com os mesmos valores do CTE a ser substituído mas desta vez com o tomador correto. Percebam que junto ao evento acima a opção a tag "infCteNorm.infCteSub.indAlteraToma" é modificada para SIM, e não precisa "CTE de Anulação" basta "CTE de Substituição" mas a NFE de Anulação e o evento de desacordo ainda serão obrigatórios. Esta situação torna-se necessária, quando o CTE errado já está contido dentro de um MDFe e este já consultado por alguma barreira policial ou Radar automático (Existem radares que pela placa, consultam o MDFe do Veículo automaticamente). Se não for o caso, a melhor opção mesmo, sempre vai ser "Cancelar o CTE" e fazer outro.
  6. Leia estes links, para base de conhecimento. https://blog.signainfo.com.br/detalhes/quando-posso-emitir-o-cte-de-anulacao-e-o-cte-de-substituicao https://www.ophos.com.br/ct-e-de-anulacao-e-substituicao/ https://blog.oobj.com.br/prestacao-de-servico-em-desacordo/ Segue código que tenho no meu sistema // verifica se o CTE é de Anulação if copy(dm1.Nota.FieldByName('NFEANULA').AsString,1,1)<>'' then // cte tem nota de anulação begin // TpcteTipoCTe = (tcNormal, tcComplemento, tcAnulacao, tcSubstituto); Ide.tpCTe := tcSubstituto; infCTeNorm.infCteSub.chCte:=dm1.Nota.FieldByName('CTEORIG').AsString; // cte a ser subsituido infCTeNorm.infCteSub.tomaICMS.refNFe:=dm1.Nota.FieldByName('NFEANULA').AsString; // chave da nfe de anulaçao emitida pelo tomador // todo colocar rotina para mudança no frete if dm1.Nota.FieldByName('ALT_TOMA').AsString='S' then infCTeNorm.infCteSub.indAlteraToma:=tiSim else infCTeNorm.infCteSub.indAlteraToma:=tiNao; end; Importante observar que além do tomador do serviço que consta no CTE ter que emitir uma NFE de anulação de valores referenciando o CTE a ser anulado, também terá que emitir obrigatoriamente um evento em desacordo referenciando o mesmo CTE. Infelizmente a burocracia nesta situação é enorme, e na maioria das as vezes o próprio contribuinte que foi "mencionado erroneamente" no CTE, não tem sistema ou pessoal qualificado ou mesmo condições de emitir este evento ou NFE. O que muita das vezes, a anulação não é feita, e o transportador emissor do CTE emitido de forma errada acaba tendo que "arcar" com os custos de impostos. Ficou muito ruim estas exigências do SEFAZ. Espero que estes links possam ajudar em alguma coisa ou mesmo dar uma luz. Creio que é isso, caso eu estiver errado os amigos me perdoem e me corrijam por favor. Abraços
  7. https://www.google.com/search?q=como+consumir+apis+em+delphi&oq=como+consumir+apis+em+delphi&aqs=chrome..69i57j33i22i29i30l2.5045j0j7&sourceid=chrome&ie=UTF-8 Clique neste Link e veja a imensidão de material disponível ensinando como fazer isto no Delphi. Tenho certeza que vai achar o que precisa. Grande abraço !!
  8. Bom dia pessoal Aqui também está com problemas. Pra eu usar a teSVCRS, depois que voltar ao normal vou precisar refazer algum processo ? ou basta modificar para "teNormal" ?
  9. Tai Pessoal, uma oportunidade de desenvolver um pequeno aplicativo somente pra isso. Talvez oferece-lo de forma gratuita fazendo com que este aplicativo seja veículo de marketing. Pensem nisso.
  10. Caro amigo mlsvicente, Como fui ajudado aqui por diversas vezes com exemplos de código, segue uma pequena contribuição; Esta rotina que desenvolvi e está funcionando perfeitamente. Se os moderadores acharem conveniente, podem anexar este código a um novo botão no fonte do exemplo do acbrNFe, criando uma nova funcionalidade. Espero que ajude. Abraços a todos // busca os 50 próximos xmls do Ambiente Nacional s grava em uma pasta derminada // Para rodar este exemplo, deverão serem prenchidas as seguintes propriedades do ACBrNFE propriedades { // padrao do certificado A1 ACBrNFe1.Configuracoes.Geral.SSLLib := libOpenSSL; ACBrNFe1.Configuracoes.Geral.SSLCryptLib := cryOpenSSL; ACBrNFe1.Configuracoes.Geral.SSLHttpLib := httpOpenSSL; ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2; ACBrNFe1.SSL.SSLType := LT_TLSv1_2; // configurando certificado ACBrNFe1.Configuracoes.Certificados.ArquivoPFX := Empresa.FieldbyName('CER_PATH').AsString; ACBrNFe1.Configuracoes.Certificados.Senha := Empresa.FieldbyName('CER_PASS').AsString; // Define local para salvar os arquivos ACBrNFe1.Configuracoes.Arquivos.PathNFe := Empresa.FieldbyName('XML_PATH').AsString; ACBrNFe1.Configuracoes.Arquivos.PathSchemas := Empresa.FieldbyName('SCHEMAS').AsString; } procedure TfrmPrincipal.btIniciandoBuscaClick(Sender: TObject); // var sChave, cUFAutor, CNPJ, ultNSU, ANSU: string; iQtdBuscou, i : Integer; LDocZip: TdocZipCollectionItem; begin cUFAutor := ''; ACBrNFe1.DistribuicaoDFe(Empresa.FieldByName('UF').AsInteger, Empresa.FieldByName('CNPJ').AsString, Empresa.FieldByName('ULT_NSU').AsString, ''); Memo1.Lines.Text := ACBrNFe1.WebServices.DistribuicaoDFe.RetWS; memo2.Lines.Text := ACBrNFe1.WebServices.DistribuicaoDFe.RetornoWS; LoadXML(ACBrNFe1.WebServices.DistribuicaoDFe.RetWS, WBResposta); iQtdBuscou := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count; for i := 0 to Pred(iQtdBuscou) do begin LDocZip := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i]; ultNSU := LDocZip.NSU; if (LDocZip.schema = schprocNFe) then // separa somente xml de nfe begin ACBrNFe1.NotasFiscais.Clear; acbrNFE1.NotasFiscais.LoadFromString(LDocZip.XML, true ); sChave := ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.chNFe; ACBrNFe1.NotasFiscais.GravarXML(sChave+'.XML'); end; end; if Empresa.RLock(empresa.RecNo) then begin Empresa.Edit; Empresa.FieldByName('ULT_NSU').AsString := ultNSU; Empresa.Unlock(Empresa.RecNo); end; End;
  11. Maravilha BigWings, Vou fazer os testes aqui !! Obrigado pela resposta. Grande abraço !!!
  12. Bom dia pessoal. Tenho uma dúvida referente ao método DistribuicaoDFePorChaveNFe. Sei que de acordo com a NT 2014.002 V1.02b, uma empresa "Transportadora de Cargas", consegue baixar o XML completo da NFE, mesmo que a mesma não tenha sido manifestada previamente, isto usando o método DistribuicaoDFePorUltNSU . A minha dúvida é: Se eu usar o método DistribuicaoDFePorChaveNFe contendo a chave de uma NFE, em que esta transportadora seja um dos atores da nota, vou ter como resultado o XML da NFE completo, mesmo que a mesma não tenha sido manifestada previamente pelo destinatário da nota ainda. Estou um pouco confuso por não ter usado estes métodos ainda. Mas recorro aos colegas especialistas para sanarem minha dúvida. Desde já agradeço o apoio de todos.
  13. Parabéns pela iniciativa caro amigo Laercio Amici. O prazer e a satisfação em poder contribuir com algo que ajudará pessoas em uma comunidade, é uma recompensa muito maior que receber em dinheiro por um trabalho executado. Estou estudando para melhorar meus conhecimentos em Delphi para poder ajudar em algo também !!! Grande abraço, e sucesso !!!!
  14. Olá caro amigo Wagner_Fix. Não sei se conseguiu resolver, mas tenho algumas observações a fazer, experiência minha a ser compartilhada, talvez possa dar uma luz 1º - Se a empresa for "Não Contribuinte" ela tem que enviar a declaração, caso ela seja "Contribuinte", tem que ser uma NF-e de anulação ou desacordo. 2º - Creio que se der certo o CTE de anulação, não precisará do CTE de substituição. Basta fazer um CTE novo com as informações corretas. 3º - Quando for fazer um CTE de anulação ou o mesmo deverá ter os campos idênticos ao CTE anulado, ou seja, mesmo remetente, destinatário, mesma NFe contida nele, cidade de coleta e entrega, etc. 4º - Mesmo que o MDFe tenha sido emitido, mas não tenha sido "consultado" pelo fisco, ou seja não tenha nenhum evento, você consegue cancelar o MDFe. Com isso conseguirá cancelar o CTe. Com certeza seria o caminho mais fácil. A respeito destes trâmites, as vezes nem mesmo os contadores sabem nos informar!! Temos que ir na tentativa e erro. Isto é ruim, e é um risco, mas faça tudo com o acordo do seu cliente. Boa sorte amigo !!cte de anulação.bmp
  15. Segue exemplo ACBr { Informações OPCIONAIS sobre o produto predominante } prodPred.tpCarga := tcGranelSolido; prodPred.xProd := 'Descricao do Produto'; prodPred.cEAN := '78967142344650'; // nao é obrigatorio prodPred.NCM := '01012100'; // não é obrigatorio // Informações do Local de Carregamento // Informar somente quando MDF-e for de carga lotação prodPred.infLocalCarrega.CEP := 14800000; prodPred.infLocalCarrega.latitude := 0; prodPred.infLocalCarrega.longitude := 0; // Informações do Local de Descarregamento // Informar somente quando MDF-e for de carga lotação prodPred.infLocalDescarrega.CEP := 14800000; prodPred.infLocalDescarrega.latitude := 0; prodPred.infLocalDescarrega.longitude := 0; Poste aqui se o conseguiu !!
  16. Caro amigo Luis Claudio, tenta dar uma refatorada no seu código. Antes de popular o MDFe, desligue os controles DBware das tabelas, principalmente da tabela de CT-e principal e suas tabelas filhas ligadas a ela (Master-Detail), segue um exemplo do site da Embarcadero: procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin ListBox1.Clear; ListBox1.Items[0]:= 'Destination Airports:'; with Flights do begin DisableControls; try First; i:= 1; ListBox1.Items[0]:= 'Destination Airports:'; while not Eof do begin ListBox1.Items[i]:= Fields[2].Value;; i:= i + 1; Next; end; finally EnableControls; end; end; end; Isso pode ajudar bastante. Até mais !!
  17. Bom dia Ítalo. Vou estudar sobre isso !! para tentar ajudar. Grande abraço !!
  18. Pessoal, testei o arquivo postado no outro link, e funcionou perfeitamente. Gastei 20 minutos para implantar esta funcionalidade em meu sistema. Mais uma vez, fico agradecido a todos deste grupo. Iniciativa maravilhosa. Todos trabalhando e contribuindo para o bem de todos !! Valew pessoal !!!
  19. Haaa me desculpe, não tinha verificado. Muito obrigado. Vou verificar. Att
  20. Boa tarde pessoal !! Quase todas as outras seguradoras usam o AT&M, e já fiz esta integração e está rodando perfeitamente. Agora estou tendo necessidade de adequar meu sistema para averbar eletronicamente o CT-e com o WebService da Porto Seguro. O suporte deles é terrivel!! Alguém aqui tem o caminho das pedras ? Manuais, etc. Para eu ja ir colocando a mão na massa ? Desde já agradeço o apoio. Até mais.
  21. SEFAZ Voltou a funcionar normalmente. Problema resolvido. Como sempre eles não honestos em mostrar a disponibilidade do SITE.
  22. Leandro Miler Santana

    USO INDEVIDO

    Bom dia pessoal. Estou com um problema em um cliente, todos os ctes que estamos tentando gerar está dando 'USO INDEVIDO'. Já tentei outro CNPJ com outro certificado, pois este cliente tem 2 cnpjs. Digitei um novo cte com numeração nova, nao deu. Digite um novo cte em outra cnpj, tambem não deu. Sempre da o mesmo erro. No Sefaz consta que está tudo ok, apesar que nem sempre o SEFAZ coloca a informação correta na disponibilidade. Alguem sabe me dizer alguma coisa !:
  23. Acabei de fazer a integração com o Web Service via ACBr. Está funcionando perfeitamente. Muito bom !!! Agradeço à todos que colaboraram de alguma forma com este componente. Antes de implementa-lo, eu usava a estratégia de copiar cada CT-e gerado para a pasta do ATM. Agora não precisamos mais disso. Muito me ajudou. Parabéns à todos que trabalharam neste projeto. Muito Obrigado.
  24. Suspensão da obrigatoriedade da geração do código CIOT até o julgamento, em fevereiro, pelo Supremo Tribunal Federal. Leiam arquivo anexo. Suspensão Obrigaação CIOT.pdf
  25. Acabei modificando o CFOP para 6932 e funcionou perfeitamente. Obrigado pelo apoio
×
×
  • 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.