Giquieu
Membros Pro-
Total de ítens
65 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Giquieu postou
-
Não. Pra resolver deixo o certificado em cada PC que vai emitir algum tipo de DFe...
-
Integracao API BlueSoft Cosmos
Giquieu replied to Daniel Paixão-Cascavel's tópico in Object Pascal - Delphi & Lazarus
Olá, Provavelmente seu ResponseCosmos está NIL. Faça o seguinte: ResponseCosmos := RESTResponse2.JSONValue; ou RESTResponse2.JSONValue.GetValue<TJSONString>('description').Value; Tome cuidado ao acessar variáveis não instanciadas... -
Integracao API BlueSoft Cosmos
Giquieu replied to Daniel Paixão-Cascavel's tópico in Object Pascal - Delphi & Lazarus
Não tenho o Tokyo para verificar, mas provavelmente é o uses que não está correto... Adicione a REST.Types no uses do seu fonte e tente novamente... Pode dar uma olhada aqui: http://docwiki.embarcadero.com/Libraries/Tokyo/en/REST.Types.TRESTRequestMethod -
Diz para o servidor que você está enviando na requisição um XML: IdHTTP.Request.ContentType := 'text/xml'; IdHTTP.Request.ContentEncoding := 'utf-8'; Diz para o servidor que você quer receber a resposta em XML: IdHTTP.Request.Accept := 'text/xml';
- 14 replies
-
- delphi
- webservice
-
(e 1 mais)
Tags:
-
É so seguir o fluxo do processo que esta no demo. Não tem segredo, é só implementar os eventos e pronto. @Poliany, seja mais especifica com o seu problema. De preferencia em um novo tópico.
-
API de Comunicacao com o GerenciaNet
Giquieu replied to CEDG's tópico in Object Pascal - Delphi & Lazarus
Visto que eles disponibilizam uma API RESTFull respondendo JSON, o passo inicial seria definir/criar uma biblioteca de JSON pro ACBr. Veja a discussão:- 14 replies
-
- gerencianet
- delphi
-
(e 1 mais)
Tags:
-
Realmente uma biblioteca de JSON é muito abrangente e demandaria um bom esforço inicial pra criar uma. No meu ver, o melhor dos mundos seria usar as bibliotecas nativas, porém será necessário um bom trabalho pra criar uma Fachada que encapsule as bibliotecas do Delphi e do Lazarus. Pelo menos a maioria das classes entre Delphi/Lazarus tem o mesmo nome... (TJSONObject, TJSONString, TJSONNumber, etc). Mas diante do que o Elton disse, sobre estabilidade, erros, no final fica melhor usar uma de Terceiro mesmo. xD Já usei a LkJSON, tanto no Delphi quanto no Lazarus. Apesar do repositório dela esta parada, ela está estável. Achei interessante a: https://github.com/hgourvest/superobject - Para Delphi e Lazarus. Eu não intendo muito bem essa questão de licença... qual licença que a biblioteca deve estar registrada pra podermos usar e modificar se necessário?
-
Pessoal, Inevitavelmente, cada vez mais JSON vem se tornando o protocolo de comunicação mais utilizados entre as aplicações. Sabemos que existem bibliotecas de conversão nativas tanto para o Delphi quanto para o Lazarus. E tantas outras de terceiros, de código fechado e de código aberto. Creio que cedo ou tarde, o projeto ACBr terá que fazer uso de alguma biblioteca JSON, então gostaria de propor aqui uma discussão pra validar/decidir o uso de JSON dentro do projeto ACBr. Poderia-se iniciar com algumas questões: Criar uma biblioteca própria? Criada do zero, ou se basear em alguma já existente? Usar uma existente e colocar dentro de /Terceiros/? Qual biblioteca existente utilizar? Usar nativo? IFDEF pra Lazarus e Delphi/XE? Estou levantando essa questão, pois estou criando um componente pra realizar a comunicação com o COSMOS da Bluesoft fazendo uso da TACBrHTTP, onde o retorno é JSON. Na qual, quem sabe após a definição de uma biblioteca JSON, esse componente poderá fazer parte do projeto ACBr... claro se o mesmo for aprovado. Aguardo uma discussão []'s
-
Controle de transações Delphi + Zeoslib
Giquieu replied to marcelo.hp's tópico in Object Pascal - Delphi & Lazarus
Vc não, necessariamente, precisa usar TClientDataSet, quando vc trabalha com Zeos, a TZQuery, consegue trabalhar off-line. O seu problema está em: TZAbstractConnection.StartTransaction; Aqui é chamado a verificação do contador de transação. Veja aqui: Unit: ZAbstractConnection Classe: TZAbstractConnection Metodo: CheckAutoCommitMode procedure TZAbstractConnection.CheckAutoCommitMode; begin if not FAutoCommit and (FExplicitTransactionCounter = 0) then raise EZDatabaseError.Create(SInvalidOpInNonAutoCommit); end; Em anexo estou deixando um pdf que irá te ajudar. Tutorial_Zeos_Especial_Em_Portugues_BR.rar -
Integracao API BlueSoft Cosmos
Giquieu replied to Daniel Paixão-Cascavel's tópico in Object Pascal - Delphi & Lazarus
Pedro, na documentação da API não existe nada sobre trazer as informações de tributações. Logo, nessa versão da API não é possível acessar as tributações ou eles não documentaram. Mas creio que a BlueSoft deve estar fazendo alguma coisa pra disponibilizar esses dados... Acompanho a API do Cosmos faz um tempo, lembro que no inicio era disponibilizado apenas a descrição e alguma coisa de NCM. Hoje já dá até pra pegar a imagem do produto (quando existe rsrss). -
Integracao API BlueSoft Cosmos
Giquieu replied to Daniel Paixão-Cascavel's tópico in Object Pascal - Delphi & Lazarus
Se vc estiver usando Delphi XE7+ usa os componentes da REST.* Vc vai precisar 3 componentes: REST: TRESTClient; Request: TRESTRequest; Response: TRESTResponse; E vai montar o código parecido com esse: REST.BaseURL := ' http://cosmos.bluesoft.com.br/api'; Request.Client := REST; Request.Response := Response; Request.Method := rmGet; Request.Resource := '/gtins/{codigo}'; Request.Params.AddHeader('X-Cosmos-Token', 'SEU_TOKEN'); Request.Set Params.ParameterByName('codigo').Value := 'GTIN_DO_PRODUTO'; Request.Execute; if (Response.StatusCode = 200) then begin Meu_Objeto_Que_Representa_o_JSON_do_Cosmos := Meu_Parser_De_Json_Para_Algo_Que_Meu_Sistema_Entende(Response.JSONValue); end; Meu_Parser_De_Json_Para_Algo_Que_Meu_Sistema_Entende Aqui vc pode usar xSuperObject como o Renato falou ou outra biblioteca que lê JSON. Recomendo usar as do próprio Delphi System.JSON. Meu_Objeto_Que_Representa_o_JSON_do_Cosmos Aqui pode ser algo que o seu sistema conheça, um Objeto, um DataSet. Algo que represente o retorno do Cosmos. Um pequeno exemplo pra vc pegar valores do retorno do Cosmos usando a System.JSON: ResponseCosmos: TJSONValue; // Para pegar a description que está de exemplo no site: ResponseCosmos.GetValue<TJSONString>('description').Value; // Para pegar a o code do NCM que está de exemplo no site: ResponseCosmos.GetValue<TJSONObject>('ncm').GetValue<TJSONString>('code').Value; ResponseCosmos.GetValue<TJSONObject>('ncm').GetValue<TJSONString>('description').Value; ResponseCosmos.GetValue<TJSONObject>('ncm').GetValue<TJSONString>('full_description').Value; // Note que os Parametros estao em minusculos, é CASESENSITIVE... -
Pis E Cofins No Nfc-E
Giquieu replied to Carlos Jorge Junior's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Provavelmente teu código deve estar saindo do fluxo da geração das tags PIS/COFINS, se vc informar tudo zero, as tags não serão geradas. Veja o código abaixo retirado do pcnNFeW: procedure TNFeW.GerarDetImpostoPIS(const i: Integer); begin if (nfe.Ide.modelo <> 55) and ((nfe.Det[i].Imposto.PIS.vBC = 0) and (nfe.Det[i].Imposto.PIS.pPIS = 0) and (nfe.Det[i].Imposto.PIS.vPIS = 0) and (nfe.Det[i].Imposto.PIS.qBCProd = 0) and (nfe.Det[i].Imposto.PIS.vAliqProd = 0) and (not (nfe.Det[i].Imposto.PIS.CST in [pis04, pis05, pis06, pis07, pis08, pis09, pis49]))) then //No caso da NFC-e, o grupo de tributação do PIS e o grupo de tributação da COFINS são opcionais. exit; procedure TNFeW.GerarDetImpostoCOFINS(const i: Integer); begin if (nfe.Ide.modelo <> 55) and ((nfe.Det[i].Imposto.COFINS.vBC = 0) and (nfe.Det[i].Imposto.COFINS.pCOFINS = 0) and (nfe.Det[i].Imposto.COFINS.vCOFINS = 0) and (nfe.Det[i].Imposto.COFINS.qBCProd = 0) and (nfe.Det[i].Imposto.COFINS.vAliqProd = 0) and (not (nfe.Det[i].Imposto.COFINS.CST in [cof04, cof05, cof06, cof07, cof08, cof09, cof49]))) then //No caso da NFC-e, o grupo de tributação do PIS e o grupo de tributação da COFINS são opcionais. exit; -
Olá, Ao vender um produto com desconto estou recebendo a seguinte rejeição: 531 - Total da BC ICMS (id:W03) difere do somatório do valor dos itens (id:N15). O produto que esta sendo vendido é Isento, então no evento QuandoVenderItem faço o seguinte tratamento: with Det.Imposto do begin ICMS.pICMS := 0; ICMS.vICMS := 0; ICMS.vBC := 0 end; Porém, após esse tratamento está sendo chamado o DescontoAcrescimoItemAnteriorVirtual: procedure TACBrECFVirtualNFCeClass.DescontoAcrescimoItemAnteriorVirtual(ItemCupom: TACBrECFVirtualClassItemCupom; PorcDesc: Double); var Det: TDetCollectionItem; begin ..... if fsACBrNFCe.NotasFiscais.Items[0].NFe.Emit.CRT <> crtSimplesNacional then begin Det.Imposto.ICMS.vBC := RoundABNT((ItemCupom.Qtd*ItemCupom.ValorUnit)+ItemCupom.DescAcres,2); Det.Imposto.ICMS.vICMS := RoundABNT( Det.Imposto.ICMS.vBC*(Det.Imposto.ICMS.pICMS/100),2); end; end; Nesse caso, se o emitente não for do Simples, está sendo recalculado o vBC, vICMS, porém meu produto é Isento. vBC e vICMS não deveriam ir vazios no XML? Que procedimento deve-se fazer nesse caso? []'s
-
Olá, fiz alguns ajustes corrigindo dois probleminhas que encontrei ao usar o demo do ECF configurado para emitir NFCe OpenSSL usando o PosPrinter. "\Fontes\ACBrDFe\ACBrNFe\ACBrECFVirtualNFCe\ACBrECFVirtualNFCe.pas" "\Exemplos\ACBrSerial\ACBrECF\Lazarus\ecfteste1.pas" Segue alguns comentários: ACBrECFVirtualNFCe.pas Neste fonte basicamente corrigi o TACBrECFVirtualNFCeClass.GravaArqINIVirtual(ConteudoINI: TStrings); Quando não informado nada para o NomeArqINI, que nesse caso será gerado um nome automaticamente. Este nome é gerado através do TACBrECFVirtualClass.CalculaNomeArqINI, que pega o path da aplicação + acbrecf + .ini. Ao chamar o TACBrECFVirtualNFCeClass.GravaArqINIVirtual, o ACBr irá gravar o XML através do GravarTXT, passando como nome do arquivo o fsNomeArqTempXML. (fsNomeArqTempXML é valorizado em TACBrECFVirtualNFCeClass.AtivarVirtual com o valor de NomeArqINI apenas mudando a extensão de .txt para .xml.) Nesse caso, o CalcularNomeArquivoCompleto que é chamado dentro do NotaFiscal.GravarTXT retorna por exemplo o seguinte valor: 'H:\ACBr\Exemplos\ACBrSerial\ACBrECF\Lazarus\Docs\H:ACBr\Exemplos\ACBrSerial\ACBrECF\Lazarus\acbrecf001.xml' Quando o ACBr tenta salvar o .txt, ocasiona o erro, pois esse path não existe. ecfteste1.pas Ajuste na propriedade quando usado com OpenSSL: ACBrNFe1.Configuracoes.Certificados.Certificado para ACBrNFe1.Configuracoes.Certificados.ArquivoPFX []'s ACBrECFVirtualNFCe.pas ecfteste1.pas
-
Opnião sobre Operadoras qual utilizar para o TEF
Giquieu replied to SisComp - Proc. de Dados's tópico in Dúvidas sobre TEF
SAT ainda não implementei... Apenas com ECF, NFCe, e nos outros recebimentos do sistema, por ex: as contas a receber. -
Opnião sobre Operadoras qual utilizar para o TEF
Giquieu replied to SisComp - Proc. de Dados's tópico in Dúvidas sobre TEF
Gostei muito de integrar com a Software Express (CliSitef). ACBrTEF é o cara, dá pra fazer a integração muito fácil !!! -
Existe algumas opções: 1. Extrato direto com as Adquirentes. 2. Arquivo Retorno de Alguma VAN. 3. Ou como nosso amigo Marcelo comentou o Arquivo Retorno da Software Express. 1. Extrato direto com as Adquirentes. O mais trabalhoso... rsrs Provavelmente vc vai precisar solicitar para seu cliente o layout, estuda-lo e implementa-lo no seu sistema. Terá que fazer o download do Extrato Adquirente por Adquirente. Cada Adquirente tem seu próprio modelo/layout, normalmente são dois Arquivos, tem Adquirente que chega a enviar 5 arquivos... 2. Arquivo(s) Retorno de Alguma VAN. Vc vai fechar o contrato com uma VAN, e está fará o processo de realizar o download dos Extratos das Adquirentes, disponibilizando em um único lugar. Facilita pq os extratos estarão em apenas um lugar... Vc também terá o trabalho de interpretar Extrato por Extrato, quero dizer, a CIELO trabalha com um layout, a REDE é outro layout, e por ai vai... 3. Arquivo Retorno da Software Express Procure o comercial deles solicitando informações sobre o módulo de Conciliação. Mas basicamente, a SE irá te retornar um ÚNICO extrato, contento todas as transações. Apenas um layout para vc integrar... show né? xD
-
Olá, pessoal, como tenho em algumas classes que herdam de classes do ACBR, e ainda não fiz download do trunk2, seria possível listar os principais fontes que receberam refactoring? ou os fontes que tiverem um refactoring considerável grande?
-
Abertura Da Nfce Offline E O Envio Normal
Giquieu replied to Giquieu's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Boa William, Fiz as seguinte alterações, conforme vc sugeriu: Ide.dhCont := DateZero; Alterei para Ide.dhCont := 0; pra não ocorrer nenhum resulta inesperado aqui (Self.Items[i].NFe.Ide.dhCont <> 0). E também adicionei ACBr.NotasFiscais.Items[0].NFe.infNFe.ID := ''; E funcionou perfeitamente! Muito obrigado pela ajuda... []'s -
Abertura Da Nfce Offline E O Envio Normal
Giquieu replied to Giquieu's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Exatamente, porém, olhe esse fluxo: Ide.tpEmiss = teOffline | teContingencia; (Sem conexão com a SEFAZ) Ide.dhCont = now; Ide.xJust = 'JUSTIFICATIVA'; VendeItem VendeItem Voltou a Conexão com a SEFAZ: Ide.tpEmiss = teNormal; Ide.dhCont = DateZero; Ide.xJust = ''; VendeItem VendeItem Validar <- Aqui Retorna que devo informar uma Valor para Ide.xJust... Assinar ACBrNFe1.Enviar(...) Esse fluxo deveria funcionar sem problemas, ou não posso mais alterar o Ide.tpEmiss após abrir a NFCe? -
Abertura Da Nfce Offline E O Envio Normal
um tópico no fórum postou Giquieu NFC-e - Nota Fiscal do Consumidor Eletrônica
Olá pessoal, Imaginem o seguinte cenário: O PDV está sem comunicação com a SEFAZ, então, a NFCe é aberta em modo offline (contingência). Durante a venda o PDV restabelece a conexão com a SEFAZ, logo, tenho a possibilidade de enviar essa NFCe normalmente. Quando abro a NFCe offline a chave é formada. (41150513284396000198650100000010009000001005) com o digito 9, identificando que é offline. O que estou fazendo é o seguinte: ao abrir a NFCe offline, informo o motivo e a data/hora, e no momento de enviar, se a conexão estiver OK, limpo os campos Ide.xJust e Ide.dhCont, e mudo o Ide.tpEmis para teNormal, Gero o xml, valido e assino. Porém ao validar o xml, o mesmo retorna que o campo xJust deve ter um valor, creio que seja pq a chave ainda esteja como offline (digito 9). É possível executar esse cenário? Abrir a NFCe em contingência (chave 41150513284396000198650100000010009000001005) e depois enviar normalmente (chave 41150513284396000198650100000010001000001005)? []'s -
O emulador da Bematech-MP4200 TH FI, é Fiscal, e o ACBrNFeDANFEEscPos, se comunica apenas com impressoras Não Fiscal via protocolo Esc/Pos. Até onde sei a Bematech não tem nenhum emulador de impressora não fiscal. Vc pode implementar NFCe com o DANFE Fortes ou outro para impressora a jato/laser.