Ir para conteúdo
  • Cadastre-se

Giquieu

Membros Pro
  • Total de ítens

    65
  • Registro em

  • Última visita

Tudo que Giquieu postou

  1. 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).
  2. 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...
  3. 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;
  4. 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
  5. Olá pessoal, fiz update para ultima versao do ACBr, está sem as alterações. Ocorreu algum problema? Provavelmente, se forem subir pro SVN, terei que aplicar os ajustes novamente, certo? []'s
  6. 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
  7. Que bom que ajudou. Pra melhorar o desempenho do loop deixaria com o down to, afinal, normalmente o cancelamento vai ocorrer nos últimos itens... xD
  8. Olá, eu estava com o mesmo problema. De uma olhada nesse post: http://www.projetoacbr.com.br/forum/topic/18486-dúvidas-acbrecfvirtualnfce/?do=findComment&comment=131967 Até hoje estou usando assim, e não deu problema, até seria interessante verificar com o pessoal pra subir pro SVN...
  9. SAT ainda não implementei... Apenas com ECF, NFCe, e nos outros recebimentos do sistema, por ex: as contas a receber.
  10. Gostei muito de integrar com a Software Express (CliSitef). ACBrTEF é o cara, dá pra fazer a integração muito fácil !!!
  11. 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
  12. 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?
  13. 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
  14. 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?
  15. 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
  16. 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.
  17. Veja a Revision 8786, nela foi implementado algumas coisas referente a cabeçalho e impressão de Sangria/Suprimento. O Link é esse:
  18. infoceasa, Utilizo uma MP 4200 TH e não tenho nenhum problema. Obs: Tive que atualizar o Firmware dela, pra funcionar o QrCode.
  19. Olá, Solivan e Juliomar, Alguém já implementou TEF com a NFCe usando ACBr? Eu implementei mas estou com problemas para imprimir o comprovante de credito e debito. No inicio consegui contornar usando uma técnica encontrada aqui: Que é, desativar a ESC/POS e ativar a Não Fiscal, assim, imprimiu o CDC, porém com um layout bem desagradável... Então, caso alguém tenha implementado e queira compartilhar. Mas, caso ninguém tenha implementado... Eu comecei implementar uma classe que irá imprimir Cupom Vinculado/Relatório Gerencial via ESC/POS. A primeira coisa que fiz foi separar as propriedades de Comando da TACBrNFeDANFeESCPOS, são as variáveis que começam com "cCmd...", pra facilitar o uso em outras classes que irão usar ESC/POS como impressão. Preciso de um conselho, de onde colocar essa classe, onde ativa-la? Pois atualmente instancio e realizo o controle dela na mão. Pensei em criar uma propriedade (HabilitaImpESCPOS True/False) no ACBrECFVirtualNFCe, mas fico com duvida em relação as outras classes de ECF virtual que ja existem (Nao Fiscal, SAT). Em anexo, deixei um CDC emitido via ESC/POS na Bematech MP-4200 TH
  20. tchuck, realmente isso está ocorrendo... Pode haver mais de uma vez o mesmo Item? Não seira melhorar comparara o Index do Item? var I: Integer; begin for I := NotasFiscais.Items[0].NFe.Det.Count -1 downto 0 do begin if (I = NumItem-1) then begin NotasFiscais.Items[0].NFe.Det.Delete(I); Break; end; end;
  21. Olá pessoal, Implementei o evento QuandoCancelarDocumento do componente TACBrECFVirtualNFCe, dessa maneira: procedure TFPDV.DoQuandoCancelarDocumento(Justificativa: String); begin Justificativa := JustCancNFCeDao.FindDescJustCancNFCePadrao; end; E percebi que a Justificativa não estava mudando, então mudei a assinatura do Método para: TACBrECFVirtualNFCeQuandoCancelarDocumento = procedure(out Justificativa : String) of object; Acrescentei o out na assinatura, e funcionou, talvez esteja se perdendo em passar a referência da String entre os Métodos. Poderiam acrescentar essa pequena alteração no SVN? []'s
  22. Olá pessoal, o tópico é antigo, mas alguém conseguiu calcular o DigestValue sem usar o Certificado Digital?
  23. Olá pessoal, Também estou com o mesmo problema enfrentado pelo Rafael. As alterações foram avaliadas? Baixei a última revisão e não encontrei as alteações. []'s
  24. Acabei de ligar pra SEFAZ/PR, e me comunicaram que não é possível gerar o DigestValue sem assinar o xml, então, cada ponto de venda obrigatoriamente deverá ter um certificado digital instalado. Mas li em vários lugares que uma das funções do CSC - Código de Segurança do Contribuinte (O Token) é a possibilidade de não necessitar a instalação de certificado em todas os pontos de venda. Alguém implementou NFCe no cenário que comentei no primeiro post?
×
×
  • 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...