-
Total de ítens
625 -
Registro em
-
Última visita
-
Days Won
3
valterpatrick last won the day on 25 Fevereiro
valterpatrick had the most liked content!
Sobre valterpatrick

Contact Methods
-
Website URL
https://github.com/valterpatrick
Últimos Visitantes
valterpatrick's Achievements
-
Mandar mensagem no WhatsApp
valterpatrick replied to dreamsoft_PR's tópico in Dúvidas Gerais sobre o ACBr
Você pode utilizar a API pública do Whatsapp que abre o aplicativo instalado ou o whatsapp web com o número aberto e também com o texto, mas não arquivos, apenas texto. Eu fiz uma unit bem simples e fácil de mexer onde você pode utilizar, está no link abaixo: https://github.com/valterpatrick/WhatsappEnvMens2/blob/master/WhatsApp.pas Caso queira enviar mensagem direto ou arquivo, tem de usar a API, que no caso pode ser a oficial (muito burocrática), pode contratar serviços de chatbot/API que não são oficiais (eu utilizo o Digisac), mas funcionam super bem e dominam o mercado aliás. Outra opção é você utilizar bilbiotecas no Delphi ou em outras linguagens. No Delphi vai ter o WPP4Delphi que é muito bom e recomendo, assim como tem o TInject que usei e também é bom, não muito. -
Emitir em 2 faixas de numeração
valterpatrick replied to IVANILSON's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Se procurar na legislação sobre pulo de sequência da numeração, vai ver que dentro de um mesmo mês você pode usar a sequência que foi pulada sem problema algum, mas nos demais não, então se você for utilizar esta estratégia, que seja para um pulo de numeração não muito grande e que na virada do mês, você inutilize as numerações que ficaram sem ser utilizadas e depois comece de novo, mas isto vai ser muiiiiiiiiiiiiiiiito trabalhoso e tende a dar muiiiiiiiiiiiiiiitos problemas, então a melhor solução para isto e que não há problema algum na legislação, pelo menos até onde eu vi, é utilizar duas séries. Para o pc a série 001, para o app a série 002 ou se você utilizar API, enviar por requisição os dados e deixar o seu servidor gerenciar a numeração da nota fiscal. -
Você vai encontrar o demo no seguinte caminho: "\\ACBr\Exemplos\ACBrDFe\ACBrNFe". A emissão de NFe e NFCe é feita pelo mesmo componente, que é o ACBrNFe. Os Schemas XML estão no seguinte caminho: "\\ACBr\Exemplos\ACBrDFe\Schemas\NFe". Na base de conhecimento do ACBr você encontra alguns tópicos que podem te ajudar: https://www.projetoacbr.com.br/forum/forum/73-nf-enfc-e/ Em requisitos fiscais vai ter algumas coisas que tem de ficar atento quanto a emissão de NFCe em alguns estados: https://www.projetoacbr.com.br/forum/forum/89-requisitos-fiscais-por-uf/ Se você se tornar ACBr PRO, vai ter disponivel alguns cursos que podem te ajudar como "Dominando a Emissão da NFCe". https://acbr.nutror.com/curso/f34eee461b52b3f3c8192e42924b0fb03a195a94 Tendo qualquer dúvida, pesquisa no fórum, se não achar, faça uma postagem.
-
De nada, espero ter ajudado. Mudou um pouco o site do Google, mas não deve ser problema para você.
-
Te recomendo utilizar este serviço. Embora esteja em inglês, é de um SAAS de brasileiro. Eu já utilizei o AWS SES para envio de email marketing e é ótimo, funciona bem, é barato (10 centavos de dolar por 1000 emails), mas o suporte é ruim se vc fizer envios onde pode cair no spam, ser bloqueado e etc. Já o serviço que te recomendei é ótimo, está funcionando bem, a plataforma é boa, também é barato (20 centavos de dolar por 1000 emails) e a melhor parte, o suporte. Quando precisar e precisará, estarão a disposição. Faça um teste, são 10mil emails gratuitos por mês. Qualquer coisa chama no chat. Link: https://jsxmail.org/
-
WhatsApp : ENVIO DE MENSAGENS VIA ERP
valterpatrick replied to AnDes Sistemas's tópico in Dúvidas não relacionadas ao ACBr
Mesmo usando a api oficial do whatsapp vc pode ser bloqueado. O bloqueio do whatsapp é independente de ferramenta, ele leva em consideração o padrão do usuário, assim como outras coisas. Vou listar algumas coisas que pode fazer para não ser bloqueado: Quem recebe sua mensagem ter você como contato; Quem recebe sua mensagem interagir com sua mensagem; Enviar mensagens para números que estão na sua lista de contatos; Não enviar mensagens repetidas, ou seja, onde o texto é praticamente igual para várias das quais você enviou. Varie algumas coisas como saudações (oi, bom dia, boa tarde, olá, como vai,...); Interagir no whatsapp como se fosse um usuário comum: interagir com mensagens (curtir, responder), stories, grupos; Esquentar o número se for novo, que nada mais é que fazer o envio de mensagens e interações de forma gradativa, ou seja, hoje vc envia x mensagens, entra em alguns grupos, interage nos grupos, stories e etc. No dia seguinte, a mesma coisa, mas aumentando a frequência aos poucos e não esquecer que o outro usuário precisa interagir com você; Vou compartilhar uma experiência que já tive aqui: Compramos um número novo para um vendedor e ele começou a enviar algumas mensagens direto do celular, não usou nenhuma ferramenta, nem o whatsapp web e foi bloqueado no mesmo dia. Isto por que o whatsapp pensou que fosse algum spam, já que estava enviando mensagens parecidas para números que não estavam na lista de contatos, nem na lista de contatos de quem estava recebendo e nem foi tantas assim, acho que se for 20 contatos diferente é muito. A melhor opção de fato é a api oficial, que está mais fácil hoje, mas ainda sim é burocrática. As outras ferramentas que emulam o whatsapp web, seja empresas contratadas que já oferecem o serviço via api ou aplicação, até mesmo componentes como o TInject, WPP4Delphi, Evolution e muitos outros vão te entregar um resultado igual a api oficial, não vou dizer melhor por que algumas coisas não funcionam bem nestas ferramentas como é o caso dos botões. O que vai importar ai é como você usa a ferramenta, então pesquise sobre o assunto e veja técnicas para não ser bloqueado. -
Service não encontra certificado
valterpatrick replied to GabrielLeal7's tópico in Dúvidas Gerais sobre o ACBr
Pode ser o caso de você colocar para ler o certificado como arquivo ou salvar ele no banco de dados, ao invés de usar ele instalado no windows. Pode ter alguma configuração do windows que barra e etc, dificil de prever e configurar. -
FCI - Ficha de Conteúdo de Importação
valterpatrick replied to valterpatrick's tópico in Outros (ACBrLFD, ACBrSEF2, etc)
Espero que ele ajude vc. Eu fiz a pedido de um cliente meu, acabou que nem foi para frente. É foda esta situação, vc desenvolve um recurso novo, gasta tempo ali que poderia ser usado em outras coisas e a pessoa não usa. Boa sorte ai.- 12 replies
-
- fci
- ficha de conteúdo de importação
- (e 4 mais)
-
FCI - Ficha de Conteúdo de Importação
valterpatrick replied to valterpatrick's tópico in Outros (ACBrLFD, ACBrSEF2, etc)
Lembrando que o componente FCI que eu desenvolvi, ele é parecido com o Sintegra/Sped, onde é gerado um arquivo txt com os dados dos produtos para serem validados no programa validador da receita federal. Não tem nada relacionado a api, digo isto pois fui procurado recentemente no privado para tirar dúvidas deste componente. Caso queiram saber mais e ver se é algo útil a você, veja o link abaixo do site da receita paulista que fala a respeito, assim como dá o link para a documentação e também o download do programa validador. https://portal.fazenda.sp.gov.br/servicos/fci- 12 replies
-
- 3
-
-
- fci
- ficha de conteúdo de importação
- (e 4 mais)
-
Você deve preencher no Cedente os dados do convênio, que no caso seria o CNPJ da empresa, nome, endereço, a conta e a agência do banco inter. Não precisa preencher nada em modalidade e convenio, mas na carteira seria 112, já que o 110 tem de ter alguma liberação no banco inter. Vou te dar alguns exemplos de dados a serem preenchidos também: ACBrBoleto1.Cedente.TipoCarteira := tctSimples; ACBrBoleto1.Cedente.IdentDistribuicao := tbClienteDistribui; ACBrBoleto1.Cedente.ResponEmissao := tbCliEmite; ACBrBoleto1.Cedente.CaracTitulo := tcSimples; ACBrBoleto1.Configuracoes.WebService.UseCertificateHTTP := True; ACBrBoleto1.Configuracoes.WebService.TimeOut := 30000; // 30 segundos padrão ACBrBoleto1.Cedente.CedenteWS.IndicadorPix := True; ACBrBoleto1.Cedente.PIX.TipoChavePIX := tchCNPJ; ACBrBoleto1.Cedente.PIX.Chave := ''; Veja estes posts também:
-
valterpatrick started following Pesquisa Dados Sefaz Estadual
-
Pesquisa Dados Sefaz Estadual
um tópico no fórum postou valterpatrick Dúvidas não relacionadas ao ACBr
Pessoal, algumas SEFAZ disponibilizam periodicamente arquivos txt/csv contendo a lista dos contribuintes. Nesta lista tem o CNPJ, a Inscrição Estadual e outros campos. Isto é ótimo por que podemos importar estes dados e cruzar com uma base de CNPJ para ter a inscrição estadual ali fácil. Desta forma não precisamos utilizar a pesquisa de contribuintes na SEFAZ onde há uma limitação de pesquisa não conhecida ainda. Sem falar que dependendo da informação que estiver ali, podemos utilizar para fins de marketing, como é o caso do cadastro de produtores rurais. Até o momento consegui acesso a algumas bases, gostaria de saber se vocês conseguiram através do site das SEFAZ de outros estados o link para baixar os dados contendo inscrição estadual ou até outra informação que pode ser relevante. * Links: https://portalsped.fazenda.mg.gov.br/spedmg/nfce/Consulta-Cadastro-de-Contribuintes/ https://www.fazenda.mg.gov.br/utilidades/download.html * Arquivo contendo o CNPJ e inscrição estadual das empresas mineiras. * Links: https://www.fazenda.pr.gov.br/Pagina/CAD/ICMS https://www.fazenda.pr.gov.br/Pagina/CADPRO * Arquivos contendo os dados das empresas do estado de PR. * Observação: para baixar os arquivos, tem de colocar uma barra no final do link. Exemplo: No site está assim: http://processos.fazenda.pr.gov.br/arquivos/ativos Para conseguir baixar tem de ficar assim: http://processos.fazenda.pr.gov.br/arquivos/ativos/ * Links: https://www.sefaz.pb.gov.br/info/cadastro Observação: clicar em Arquivos Para Download -
Eu declarei a uses ACBrNotasFiscais e consigo declarar a variável do tipo NotaFiscal, contudo eu não declarei ela dentro de uma função da classe, mas sim da unit. Vou te dar um exemplo: Type TENotaFiscal = class end; procedure AlimentarNFe(NumDFe: String); implementation { TENotaFiscal } procedure TENotaFiscal.AlimentarNFe(NumDFe: String); var Ok: Boolean; // NotaF :NotaFiscal; begin end
-
ROBERTO EDUARDO started following valterpatrick
-
Uma outra solução seria você utilizar o Consulta Cadastro do componente ACBrNFe. Segue Exemplo de código abaixo: NFe.WebServices.ConsultaCadastro.UF := FUF; if Length(FCPF_CNPJ) > 11 then NFe.WebServices.ConsultaCadastro.CNPJ := FCPF_CNPJ else NFe.WebServices.ConsultaCadastro.CPF := FCPF_CNPJ; NFe.WebServices.ConsultaCadastro.Executar; Config := TIniFile.Create(ExtractFileDir(Application.ExeName) + '\Config.ini'); try Config.EraseSection('CONSULTA_CADASTRO_SEFAZ'); Config.WriteBool('CONSULTA_CADASTRO_SEFAZ', 'Usado', True); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cStat', NFe.WebServices.ConsultaCadastro.cStat); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xMotivo', NFe.WebServices.ConsultaCadastro.xMotivo); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'UF', NFe.WebServices.ConsultaCadastro.UF); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cUF', NFe.WebServices.ConsultaCadastro.cUF); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CNPJ', NFe.WebServices.ConsultaCadastro.CNPJ); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CPF', NFe.WebServices.ConsultaCadastro.CPF); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IE', IfThen(NFe.WebServices.ConsultaCadastro.IE.Trim = '', NFe.WebServices.ConsultaCadastro.RetConsCad.IE, NFe.WebServices.ConsultaCadastro.IE)); Config.WriteDateTime('CONSULTA_CADASTRO_SEFAZ', 'dhCons', NFe.WebServices.ConsultaCadastro.dhCons); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'QuantCadEst', NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad.Count); for I := 0 to NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad.Count - 1 do begin Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IE_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].IE); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CNPJ_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CNPJ); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CPF_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CPF); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'UF_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].UF); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cSit_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].cSit); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'indCredNFe_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].indCredNFe); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'indCredCTe_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].indCredCTe); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xNome_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xNome); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xFant_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xFant); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xRegApur_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xRegApur); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'CNAE_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CNAE); Config.WriteDate('CONSULTA_CADASTRO_SEFAZ', 'dIniAtiv_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].dIniAtiv); Config.WriteDate('CONSULTA_CADASTRO_SEFAZ', 'dUltSit_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].dUltSit); Config.WriteDate('CONSULTA_CADASTRO_SEFAZ', 'dBaixa_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].dBaixa); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IEUnica_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].IEUnica); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IEAtual_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].IEAtual); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xLgr_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xLgr); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'nro_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].nro); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xCpl_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xCpl); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xBairro_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xBairro); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cMun_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].cMun); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xMun_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xMun); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'CEP_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CEP); end; finally Config.Free; end;
-
Não. O componente lê o arquivo da DI e importa os dados para o componente onde você pode pegar estes dados e inserir no seu sistema ou gerar um arquivo xml padrão da NFe, mas não é algo automático, você tem de fazer isto a partir do código feito por vc. O componente abstrai a complexidade da DI, isto já é muito trabalho. Dá uma lida no componente, ele fica na pasta "\\ACBr\Fontes\ACBrDFe\ACBrDI".