-
Total de ítens
279 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Leandro Miler Santana postou
-
Uso Indevido - Hoje Rejeição Sefaz São Paulo
um tópico no fórum postou Leandro Miler Santana ACBrCTe
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 ? -
Cte - Conhecimentos - LoadFromFile (XML)
Leandro Miler Santana replied to Nota10's tópico in ACBrCTe
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; -
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.
-
Consultar NFs emitidas contra o meu CNPJ
Leandro Miler Santana replied to mlsvicente's tópico in ACBrNFe
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. -
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.
-
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
-
CONSUMIR WEB SERVICE
Leandro Miler Santana replied to Vander Ramos's tópico in Object Pascal - Delphi & Lazarus
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 !! -
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" ?
-
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.
-
Consultar NFs emitidas contra o meu CNPJ
Leandro Miler Santana replied to mlsvicente's tópico in ACBrNFe
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; -
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.
-
ACBrFrenet - Componente para cotação de frete
Leandro Miler Santana replied to Laercio Amici's tópico in ACBrTCP
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 !!!! -
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
-
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 !!
-
Popular componente de forma mais rapida
Leandro Miler Santana replied to luisclaudio_jr 's tópico in ACBrMDFe
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 !! -
Bom dia Ítalo. Vou estudar sobre isso !! para tentar ajudar. Grande abraço !!
-
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 !!!
-
Haaa me desculpe, não tinha verificado. Muito obrigado. Vou verificar. Att
-
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.
-
SEFAZ Voltou a funcionar normalmente. Problema resolvido. Como sempre eles não honestos em mostrar a disponibilidade do SITE.
-
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 !:
-
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.
-
CIOT CANCELADO ATÉ REUNIÃO EM FEVEREIRO 2020
um tópico no fórum postou Leandro Miler Santana ACBrCTe
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 -
CT- SubContratação com Remetente MG - Destintario SP
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Acabei modificando o CFOP para 6932 e funcionou perfeitamente. Obrigado pelo apoio
