Ir para conteúdo
  • Cadastre-se

Romulo Cordeiro

Membros
  • Total de ítens

    29
  • Registro em

  • Última visita

Tudo que Romulo Cordeiro postou

  1. Boa Tarde, Senhores, não sei se poderia ser aqui nesse tópico postar a minha dúvida. Caso não seja me perdoem. Usei o componente ACBRBlocoX para gerar o XML de Redução Z e Estoque. Acontece que na hora de assinar ocorre o seguinte erro: " Não há suporte para o tipo de provedor de serviços de criptografia '24' ". Percebi que isso não acontece com todos os certificados, apenas com alguns. Depois de pesquisar aqui mesmo no fórum encontrei muita gente falando sobre o tipo de criptografia e também falavam sobre o programinha "instaladorvalid24.exe" que resolvia o problema. Segui as instruções e funcionou tudo ok; Aqueles certificado que apresentavam erros passaram a não apresentar. Como sou leigo no assunto sobre "certificados" gostaria de saber porque isso acontece? há alguma forma do acbr tratar esses erros? Desde já agradeço a atenção de todos.
  2. obrigado pela resposta. Tem alguma outra forma de transmitir o XML usando o acbr?
  3. Bom dia, Gostaria de Saber como usar a função do acbr: ACBrBlocoX.SSL.Enviar();
  4. Bom dia EMBarbosa. Mas a dúvida se trata do mesmo tópico (Redução Z). Apenas outra tag. Ou seja, toda minha duvida é sobre o XML da Redução Z.
  5. Romulo Cordeiro

    Extoque BLOCO X

    Bom dia, Senhores usei o link abaixo para validar o XML gerado pelo exemplo do proprio acbr pois o xml que eu gerei tava com erro na validação ai eu decidi testar o xml do exemplo do acbr. Acontece que deu o mesmo erro: O elemento 'DataReferenciaInicial' é inválido Alguem poderia me dizer o que eu estou fazendo de errado? https://sathomologa.sef.sc.gov.br/tax.NET/sat.siv.web/validacao.aspx
  6. Boa Tarde, Mais uma dúvida: <Produto> <Descricao>GASOLINA COMUM</Descricao> <Codigo Tipo="Proprio">0180035</Codigo> <Quantidade>17</Quantidade> // Esta quantidade aqui deveria ser 16,69 mas foi arredondada para 17 <Unidade>L</Unidade> <ValorUnitario>349</ValorUnitario> // Este valor aqui deveria ser 3,49 mas foi colocado 349 </Produto> Porque isso acontece? é correto mesmo o componente gerar dessa forma? Após a geração do arquivo, como faço a transmissão e como testo o retorno dessa transmissão?
  7. mas voce usa o comando with e eu não usei o mesmo e por isso tenho que atribuir todas as propriedades.
  8. Régys, Na minha rotina retirei os produtos e observe que para cada totalizador que eu tenho o XML é gerado com uma TAG <TotalizadorParcial> com a identificação <Identificacao/> <TotalizadorParcial> <Identificacao>01</Identificacao> <Valor>0</Valor> <ProdutosServicos/> </TotalizadorParcial> <TotalizadorParcial> <Identificacao/> <Valor>0</Valor> <ProdutosServicos/> </TotalizadorParcial> <TotalizadorParcial> <Identificacao>04</Identificacao> <Valor>0</Valor> <ProdutosServicos/> </TotalizadorParcial> <TotalizadorParcial> <Identificacao/> <Valor>0</Valor> <ProdutosServicos/> </TotalizadorParcial>
  9. Bom dia, Régys. Só mais uma pergunta: eu olhei o componente e não entendi como e quando ocorre a transmissão do arquivo? e a resposta do retorno como eu analiso? Grato pela atenção.
  10. Sim, estudei o Demo. Veja minha Rotina abaixo, acredito que eteja certa. procedure TFormGeraXML.GeraReducaoZ; Var NomeArq : String; DataReducao : TDate; CodImpressora : String; CodProduto : String; DescProduto : String; QtdeProduto : Integer; CodUnidade : String; PrecoProduto : Currency; begin // Esta primeira consulta me retorna minha(s) redução Z QConsulta.Close; QConsulta.SQL.Text := RetornaSQLReducao; QConsulta.Open; QConsulta.First; while not QConsulta.eof do begin v_InscEstadualEmp := QConsulta.FieldByName('CGF').AsString; v_CNPJEmp := QConsulta.FieldByName('CNPJ').AsString; v_RazaoSocialEmp := QConsulta.FieldByName('RAZAO_SOCIAL').AsString; v_VersaoPAF_ECF := QConsulta.FieldByName('VERSAO_PAF').AsString; DataReducao := QConsulta.FieldByName('DATA').AsDateTime; CodImpressora := QConsulta.FieldByName('COD_IMPRESSORA').AsString; lbMensagens.Caption := 'Redução Z do Dia: ' + DateToStr(DataReducao); lbMensagens.Update; // Preenche o cabeçalho PreencherCabecalho(ACBrBlocoX); ACBrBlocoX.ECF.NumeroFabricacao := QConsulta.FieldByName('NUM_FAB_ECF').AsString; ACBrBlocoX.ECF.Tipo := QConsulta.FieldByName('TIPO_ECF').AsString; ACBrBlocoX.ECF.Marca := QConsulta.FieldByName('MARCA_ECF').AsString; ACBrBlocoX.ECF.Modelo := QConsulta.FieldByName('MODELO_ECF').AsString; ACBrBlocoX.ECF.Versao := QConsulta.FieldByName('VERSAO_SB_ECF').AsString; ACBrBlocoX.ReducoesZ.DataReferencia := DataReducao; ACBrBlocoX.ReducoesZ.CRZ := QConsulta.FieldByName('CNT_REDUCOES').AsInteger; ACBrBlocoX.ReducoesZ.COO := QConsulta.FieldByName('COO').AsInteger; ACBrBlocoX.ReducoesZ.CRO := QConsulta.FieldByName('CNT_REINICIOS').AsInteger; ACBrBlocoX.ReducoesZ.VendaBrutaDiaria := QConsulta.FieldByName('VENDA_BRUTA').AsCurrency; ACBrBlocoX.ReducoesZ.GT := QConsulta.FieldByName('VALOR_GT').AsCurrency; // Define o nome do arquivo NomeArq := 'Reducao_' + IntToStr(YearOf(DataReducao)) + FormatFloat('00', MonthOf(DataReducao)) + FormatFloat('00', DayOf(DataReducao)) + '.XML'; // Consulta os Totalizadores Parciais QConsultaTotalizadores.Close; QConsultaTotalizadores.SQL.Text := RetornaSQLTotallizadoresRZ(CodImpressora, DataReducao); // Esta consulta me retorna os totalizadores da redução //CopiaParaClipboard(QConsultaTotalizadores.SQL.Text); QConsultaTotalizadores.Open; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Clear; QConsultaTotalizadores.First; while not QConsultaTotalizadores.Eof do // Percorrendo os totalizadores begin lbMensagens.Caption := 'Redução Z do Dia: ' + DateToStr(DataReducao) + ' (T.:) ' + QConsultaTotalizadores.FieldByName('REGISTRADOR').AsString; lbMensagens.Update; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Identificacao := QConsultaTotalizadores.FieldByName('REGISTRADOR').AsString; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Valor := QConsultaTotalizadores.FieldByName('VALOR').AsCurrency; // Consulta os produtos vendidos QConsultaProdutos.Close; QConsultaProdutos.SQL.Text := RetornaSQLProdutosRZ(CodImpressora, QConsulta.FieldByName('CNT_REDUCOES').AsString, QConsultaTotalizadores.FieldByName('REGISTRADOR').AsString); // Consulta dos produtos QConsultaProdutos.Open; QConsultaProdutos.First; while not QConsultaProdutos.Eof do // Percorrendo os produtos da redução begin lbMensagens.Caption := 'Redução Z do Dia: ' + DateToStr(DataReducao) + ' (T.:) ' + QConsultaTotalizadores.FieldByName('REGISTRADOR').AsString + 'Prod.:' + QConsultaProdutos.FieldByName('COD_PRODUTO').AsString; lbMensagens.Update; // Atribui os balores CodProduto := QConsultaProdutos.FieldByName('COD_PRODUTO').AsString; DescProduto := QConsultaProdutos.FieldByName('DESCRICAO').AsString; QtdeProduto := QConsultaProdutos.FieldByName('QUANTIDADE').AsInteger; CodUnidade := QConsultaProdutos.FieldByName('COD_UNIDADE').AsString; PrecoProduto := QConsultaProdutos.FieldByName('PRECO_CONTRATO').AsCurrency; if QConsultaProdutos.FieldByName('TIPO_PRODUTO').AsString = 'SERVIÇO' then begin ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Servicos.Add.Codigo.Tipo := tpcProprio; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Servicos.Add.Codigo.Numero := CodProduto; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Servicos.Add.Descricao := DescProduto; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Servicos.Add.Quantidade := QtdeProduto; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Servicos.Add.Unidade := RetornaUnidadeMedida(CodUnidade); ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Servicos.Add.ValorUnitario := PrecoProduto; end else begin ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Produtos.Add.Codigo.Tipo := tpcProprio; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Produtos.Add.Codigo.Numero := CodProduto; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Produtos.Add.Descricao := DescProduto; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Produtos.Add.Quantidade := QtdeProduto; ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Produtos.Add.Unidade := RetornaUnidadeMedida(CodUnidade); ACBrBlocoX.ReducoesZ.TotalizadoresParciais.Add.Produtos.Add.ValorUnitario := PrecoProduto; end; QConsultaProdutos.Next; end; QConsultaTotalizadores.Next; end; ACBrBlocoX.ReducoesZ.SaveToFile(v_DiretorioArq + NomeArq); //ACBrBlocoX.SSL.Enviar QConsulta.Next; end; lbMensagens.Caption := 'Mensagens:...'; lbMensagens.Update; end;
  11. Bom dia, Com relação ao campo quantidade: N no XML de estoque a minha quantidade possui 3 decimais como mostra na pagina 42 do REQUESITO LIX no item 1.17. Quantidade da mercadoria ou produto constante no estoque, com três casas decimais. A questão é o seguinte: Se eu eu tenho produtos em estoque que possui decimais, como no bloco X, no XML da Redução, minha quantidade tem que ser inteiro? Dessa forma eu podeira ter estoque decimais mas só poderia vender inteiro. Não tem sentido.
  12. Romulo Cordeiro

    XML da Redução Z

    Boa Tarde, Alguém sabe o que está acontecendo? Testando o componente, resolvi gerar o XML da redução Z apenas de um dia (30.11.2015) e nesse mesmo dia tive vendas apenas do totalizador "F1". Ou seja, só tive um totalizador. Porem ao montar as informações dos produtos vendidos na minha consulta só tenho 23 linhas mas no XML sai varias TAGS com as informações zeradas, ou seja, o XML é gerado varias vezes de forma errada como mostra o conteudo abaixo: <TotalizadoresParciais><TotalizadorParcial><Identificacao>F1</Identificacao><Valor>0</Valor><ProdutosServicos/></TotalizadorParcial><TotalizadorParcial><Identificacao/><Valor>8474193</Valor><ProdutosServicos/></TotalizadorParcial><TotalizadorParcial><Identificacao/><Valor>0</Valor><ProdutosServicos><Produto><Descricao/><Codigo Tipo="Proprio"/><Quantidade>0</Quantidade><Unidade/><ValorUnitario>0</ValorUnitario></Produto></ProdutosServicos></TotalizadorParcial><TotalizadorParcial><Identificacao/><Valor>0</Valor><ProdutosServicos><Produto><Descricao/><Codigo Tipo="GTIN">0180035</Codigo><Quantidade>0</Quantidade><Unidade/><ValorUnitario>0</ValorUnitario></Produto></ProdutosServicos></TotalizadorParcial><TotalizadorParcial><Identificacao/><Valor>0</Valor><ProdutosServicos><Produto><Descricao>GASOLINA COMUM</Descricao><Codigo Tipo="GTIN"/><Quantidade>0</Quantidade><Unidade/><ValorUnitario>0</ValorUnitario></Produto></ProdutosServicos></TotalizadorParcial><TotalizadorParcial><Identificacao/><Valor>0</Valor><ProdutosServicos><Produto><Descricao/><Codigo Tipo="GTIN"/><Quantidade>17</Quantidade><Unidade/><ValorUnitario>0</ValorUnitario></Produto></ProdutosServicos></TotalizadorParcial><TotalizadorParcial><Identificacao/><Valor>0</Valor><ProdutosServicos><Produto><Descricao/><Codigo Tipo="GTIN"/><Quantidade>0</Quantidade><Unidade>L</Unidade><ValorUnitario>0</ValorUnitario></Produto></ProdutosServicos></TotalizadorParcial><TotalizadorParcial><Identificacao/><Valor>0</Valor><ProdutosServicos><Produto><Descricao/><Codigo Tipo="GTIN"/><Quantidade>0</Quantidade><Unidade/><ValorUnitario>349</ValorUnitario></Produto></ProdutosServicos></TotalizadorParcial> Observe que coloquei em negrito algumas informações mas há muito mais erros. Uma das informações destacadas é o valor unitário de 349. Acontece que não tenho em minha base de dados nenhum produto com esse valor unitário. Reducao_20151130.XML
  13. Boa Tarde, Tenho uma duvida sobre o objeto TACBrBlocoX_Produto: Uma das propriedades desse objeto foi definida da seguinte forma: property Quantidade: Integer read FQuantidade write FQuantidade; Esse atributo é usado na tag do XML que tem as informações dos produtos da redução Z. Acontece que a propriedade está definida como inteiro e um produto vendido pode ter decimais (Ex: Gasolina). Alguém sabe como posso resolver essa situação, visto que meu produto possui decimais?
  14. Bom dia a todos !!! Estou migrando o meu sistema para atender as normas do PAF. Antes eu ultilizava a DLL da daruma e quando resolvi migrar adotei o ACBR. Até ai tudo bem....! O sistema já está em 80% migrado e funcionando tudo perfeitamente, onde eu usava a impressora da daruma FS600 para realizar os testes. Até que ontem 19/12/2011 um cliente me mandou uma impressora daruma matricial FS345 para eu dar uma olhada. Eu deveria ter olhado a impressoa em minha versão antiga do sistema e na hora que liguei na minha maquina esqueci e compilei o novo projeto com a impressora FS345 ligada em minha maquina e apos isso, mesmo voltando pra impressora FS600 entro no sistema, ele funciona normalmente mas dar um erro quando eu fecho o projeto. Não sei o que aconteceu mas não houve mudança nenhuma no projeto e mesmo assim ele está dando um erro de invalid pointer operation. Como se a impressora FS345 tivesse desconfigurado alguma coisa no meu projeto. Alguem tem alguma ideia do que possa ter acontecido?
  15. ok não deu erro mas como saber agora se a assinatura está correta?
  16. Desculpe por passar a chave mas não tô entendendo nada sobre como assinar o arquivo
  17. Estou chamando o metodo da seguinte forma: ACBrECF.AssinaArquivoComEAD(FCaminho + 'LMFC_Completa.txt'); e no evento onPAFGetKeyRSA tem o seguinte codigo abaixo: procedure TDmDados.ACBrECFPAFGetKeyRSA(var Chave: AnsiString); begin Chave := '-----BEGIN RSA PRIVATE KEY-----' + 'MIICWwIBAAKBgQCvliKg+V2dOWNWPk5RbW/OXdmTnfw37JwKud0+vSYH6R3J3Syp' + 'qeOBwavaisbQ4mwg9+oKteWmZLLasSJiAZHcJMdFvALily4nvH3gdJfjGJT6k8EB' + 'Z74bimXodgYsOaAqnx9Z40DUWl72R9qkImf20Mh4JTtZKnW+BM5fPfHKowIBJQKB' + 'gCq10RJmK4cbzA4PJ86eFEb0O9fMe57mhtItNdD9k6EPMMJmO0vdN1bp64gvmCT4' + 'zjGIaVyNHC9kmjUyAXHJB81bfXaQuKNyJuJW+BgNwDvC/Uq+936YlDvHlKD2aIvD' + 'hCG48kiFKPM7Ch2DFBMczg40pnLUeLqjR9u9KAGLSOb9AkEA9bh1QXgvWqudWYlQ' + 'Wl5FrJsYyJ0RuMzQnChCUl0RKavsXpP1BFkH3WhDlc2pV0oHStRYs+9Gfz5Wslsa' + 'IC8w6QJBALbuk7XMhRHirv1qZhqVGYM952S4rlgeHEf3EGeJhyUN7IEZHkmxOd+U' + 'OV5IrDhAmK2AuSQ/TETXGNcHsIvPx6sCQQCYvsVt4u0BAuVFft7sERaN4975PwsE' + 'LEpTO57ZQMV6xNEz327LWfAh2Qdq9Xcalc0ug//JzBcQ07laHPSQjAmlAkEArQsx' + 'x6XJ/Cl1GTsiUH8zzyy4SoUvTG+CiUOnu+L1dhQXElYH5NgUJoVLBikRnP7VnTST' + 'dVCiF5sJqM/sMTorkwJAJzpYoLE+P27XA1AooM228ek+0BbSYWlZAT581CvrFOUq' + '1L3V7eyG/c85rGx/nimGaWt/N45yMlIRO3mdfa+edg==' + '-----END RSA PRIVATE KEY-----'; end; obs: no final da um erro dizendo: erro ao ler a chave
  18. Pelo que sei o metodo AssinaArquivoComEAD cria a assinatura digital no final do arquivo
  19. Gerei um arquivo usando o acbr LeituraMemoriaFiscalSerial e depois usei o metodo AssinaArquivoComEAD porem quando usei o eECFc.exe (validador) para validar a assinatura digital fui informado que a assinatura era inválida.
  20. Romulo Cordeiro

    Assinatura Digital

    Usei o comando AssinaArquivoComEAD(NomeDoArquivo) mas deu erro. Alguem pode me ajudar?
  21. ok, já fiz mas valeu pela atenção. Obrigado!
  22. a dll da Daruma (DarumaFrameWork.dll) retorna essa informação
  23. O valor do NumCOOInicial = 0 tambem está errado
×
×
  • 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...