Ir para conteúdo
  • Cadastre-se

netsolutions

Membros
  • Total de ítens

    416
  • Registro em

  • Última visita

Tudo que netsolutions postou

  1. Certo.. digamos que tbm mataram quase todas as minhasma queria garantir tenho a tabela cabecalho nota, e a tabela itens_nota ... entendi que tenho que agrupar os registros porém tenho Dúvida com relacao aos campos wregistro50.ValorContabil aqui vai o valor total do item ou total da Nota?? wregistro50.BasedeCalculo aqui é a base de calculo do item ou da nota?? wregistro50.Icms icms do item ou da nota?? wregistro50.Cfop Esse pego do item é obvio se eu tenho uma nota com dois Produtos.. eu repito os dados referente ao cabeçalho da nota, que resiam o cnpj do emitente o estado, modelo e serie da nota, e só altero os campos referente aos itens é isso??? se o valor contabil for o total do item, a somatoria dos itens da nota no registro 50 podem nao bater com o valor total da nota, se a nota tiver desconto ou frete por exemplo... é assim mesmo??
  2. E onde fala que eu não posso manter mais de um preço na mesma tabela??? pq qual a diferença de eu ter os campos Preco1 , preco2 e preco3 Na tabela produtos ou ter uma tabela produtos_preco1, tabela_ preco2 ???
  3. Juliomar, mas ai eu tenho um problema, No Exemplo que eu dei do Produto Gelado! Se eu vendo uma Coca Cola que custa R$3,00, mas se estiver Gelada custa R$ 3,50... na mesma venda posso vender uma Coca Cola Gelada e uma Sem gelo, nesse caso eu tenho que buscar a segunda opção de preço que tenho.. na mesma venda! não posso fazer isso??
  4. Pessoal, bom dia, se possivel alguém pode me tirar só uma Dúvida referente a tributação do ICMS... é o seguinte, estou emitindo uma nota com CST do ICMS 000 - Tributada integralmente quando utilize cst_icms = 000 tenho que passer a Base de calculo do Item, onde passo o valor total do item acredito que até ai tudo bem nos totais dos impostos.. eu totalize a Base de calculo do item somando a BC do icms de todos os itens da nota.. até aqui tbm tudo bem! problema: o valor do ICMS está zerado, mas transmite a nota normalmente, queria saber se eu teria que calcular o valor do icms para todos os produtos que são tributados integralmente, ou se só calcula valor se tiver aliquota de ICMS?? Alguém pode me ajudar com isso?? eu acredito que só devo calcular se tiver aliquota até pq provavelmente daria erro se não fosse assim, mas gostaria de tirar a Dúvida! ABraços!
  5. Alguém conseguiu Baixar o XML da nota já??? ou só usando a API mesmo????
  6. Eu pensei nisso, pq atualmente estou gravando apenas o Ultimo evento occorrido, no Caso de Manifestação do Destinatário... geralmente eles usam sempre Ciencia da Operação e Confirmação, mas seria interessante para ter um histórico né...
  7. Pessoal me surgiu uma dúvida agora, pelos posts que andei lendo! são 4 eventos que podem ser gerados na Manifestação! tenho uma nota de compra, consultei no webservice e meretornou, vou me manifestar como ciente da operação e quando receber a mercadoria como Operação confirmada.. nesse caso efetuei disparei dois eventos... tenho uma tabela da Manifestacoes onde armazeno os dados referents as manifestações, nesse caso.. eu posso fazer 1 - Ciencia da Operação e Gravo o protocol de aturoização 2- Quando Confirmo a Operação, Edito somente os registros da operação para confirmação e o Protocolo? isso procede, ou devo gerar um registro na tabela para cada evento??
  8. não resolve, mexer no interval do timer aparentemente não altera em nada aumentei o timer para 60 agora.. acho que vou manter aqui no 60 mesmo... Usar um o quê??? como faço isso??? profilier?? em vista de quando abri o tópico, ja consegui uma melhora significativa no tempo de resposta, mudei as validações como você disse... mas precisava melhorar mais como funciona esse profilier?
  9. Como faço para Apontar onde quero fazer o download do XML??? alguém ai ja esta Fazendo o Download do XML??
  10. REQUISITO XIII 1. O PAF-ECF deve utilizar Tabela de Mercadorias e Serviços que contenha os seguintes campos, admitindo-se a utilização de mais de uma tabela, desde que haja recurso para selecionar a tabela a ser utilizada: 5. O valor unitário que deverá ser único para cada mercadoria ou servico; Bom como eu comentei anteriormente, tenho uma tabela Produtos no meu BD que possui três preços! pelo que eu entendi no requisite, só é permitido um Valor?? mas na hora de fazer a venda eu deixo o operador selecionar qual preço ele quer buscar a Dúvida é a seguinte, eu não possu buscar mais de um preço na mesma tabela?? é isso?? não entendi!
  11. Bom, pessoal estou no Mesmo Barco aqui, fiz o seguinte, se a chave da NFe for de SP estou passando o Corgao = 91, senão não passo nada como o Regys disse para comentar o Corgao para minas.. é isso mesmo???
  12. Olá pessoal, só levantando novamente um assunto que já vi aqui no Forum, mas queria esclarecer melhor TEnho um produto na minha tabela de Produtos Ex Coca Cola o meu produto Coca cola, pode possuir quatro preços diferentes Preço a Vista, Preço a Prazo ,preço promocional e Preço Gelado porque alguns clientes cobram um valor a mais no caso do produto Gelado. OK, em um post vi o Régys dizer que, se trabalho com mais de um preço, devo utilizar acréscimo ou desconto no ECF, tem algum requisito que fala a respeito, pq não ví nada... EX: se eu registrar coca cola R$3,00 no ECF e em seguida registrar Coca Cola R$ 3,50 Sem informar como acréscimo está errado?? teria que informar Coca Cola R$3,00 Acréscimo R$ 0,50 Se for o Preço Gelado ou a Prazo?? Coca Cola R$3,00 Desconto R$0,50 se for o preço Promocional?? é assim que deve ser feito?
  13. o Interval do timer eu coloquei o Valor "1" antes estava "100"
  14. Vou fazer essas correçoes e posto o resultado
  15. DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.xNome Aqui Pego o retorno do nome... como pego o protocolo de cada NFe retornada??
  16. //Edit que recebe o Código do Produto procedure TFrmPdv.CODIGO_PRODUTOPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var mensagem : string; begin if not statusCaixa(mensagem) then begin DisplayValue := ''; CODIGO_PRODUTO.Clear; STATUS_CAIXA.Caption := mensagem; STATUS_CAIXA.Refresh; exit; end; if not ACBrECF1.Ativo then begin STATUS_CAIXA.Caption := 'NÃO FOI POSSIVEL COMUNICAR A IMPRESSORA!'; Exit; end; //Fecho o Menu se ele Estiver aberto if abre_menu then begin fecha_menu := true; abre_menu := false; TimerMenu.Enabled := True; TimerMenuTimer(sender); end; PDV_CODIGO_PRODUTO := CODIGO_PRODUTO.Text; CODIGO_PRODUTO.Clear; DisplayValue := ''; if CONSULTAPRECO then begin //Faço a Consulta de Preço ConsultaPrecoProduto; end else begin //Insere o Produto ACBrLCB1.Fila.Add( PDV_CODIGO_PRODUTO ); TimerVendeItem.Enabled := True; //InsereProduto; end; end; //Timer que deveria ler a Fila do ACBRLCB procedure TFrmPdv.TimerVendeItemTimer(Sender: TObject); begin TimerVendeItem.Enabled := False; try // Verifica se o ACBrECF está ocupado, Se estiver não vende, tentará novamente no próximo evento do Timer // // FVendendo é liga no inicio de VendeItem e desligada no Final Application.ProcessMessages; if not ( fEmVenda or ACBrECF1.AguardandoResposta) then begin PDV_CODIGO_PRODUTO := ACBrLCB1.LerFila; InsereProduto; end; finally TimerVendeItem.Enabled := (ACBrLCB1.Fila.Count > 0); end; end; //Procedimento que Válida os dados do Produto e Insere no ECF e no BD procedure TFrmPdv.InsereProduto; var mensagem, vAliquota, PDV_CODIGO_PROD_BALANCA : string; PRODUTO_BALANCA : boolean; //Verificar se o Cod do Produto é de Balança begin fEmVenda := True ; try if statusCaixa(mensagem) then begin if not VENDAINICIADA then begin IniciarVenda; end; if (Trim(PDV_CODIGO_PRODUTO) <> '') and (VENDAINICIADA) then begin PRODUTO_BALANCA := false; //Verificar se o Produto é de Balança if (strToInt(copy(PDV_CODIGO_PRODUTO,1,1))=parametrosBalanca.FieldByName('identificador_codigo_balanca').AsInteger) and (length(PDV_CODIGO_PRODUTO)=13) then begin PRODUTO_BALANCA := true; total_item.Value := StrTocurr(copy(PDV_CODIGO_PRODUTO,parametrosBalanca.FieldByName('posicao_inicial_valor').AsInteger,parametrosBalanca.FieldByName('posicao_final_valor').AsInteger))/100; PDV_CODIGO_PRODUTO := copy(PDV_CODIGO_PRODUTO,parametrosBalanca.FieldByName('posicao_inicial_codigo').AsInteger,parametrosBalanca.FieldByName('posicao_final_codigo').AsInteger); end; Produtos.Close; Produtos.SQL.Clear; Produtos.SQL.Add('select codigo, nome, aliquota, valor_aliquota, un, ncm, custo, preco_vista, imagem, balanca from produtos where codigo = :pCod'); Produtos.ParamByName('pCod').AsString := PDV_CODIGO_PRODUTO; Produtos.Open; if Produtos.RecordCount <= 0 then begin NOME_PRODUTO.Style.Font.Color := clRed; NOME_PRODUTO.Caption := 'Produto não encontrado'; NOME_PRODUTO.Refresh; VALOR_UN.Text := '0,00'; quantidade.Text := '1,000'; total_item.Text := '0,00'; PDV_CODIGO_PRODUTO := ''; Exit; end else begin if ALTEROU_QTD = 1 then begin quantidade.Value := 1; ALTEROU_QTD := 0; end; NOME_PRODUTO.Style.Font.Color := clWindowText; //Busco a Aliquota do Produto if Trim(Produtos.FieldByName('aliquota').AsString) = 'T' then vAliquota := Produtos.FieldByName('valor_aliquota').AsString else vAliquota := Produtos.FieldByName('aliquota').AsString; //Fim da Aliquota //Recupera os Valores NOME_PRODUTO.Caption := Produtos.FIeldByName('nome').AsString; VALOR_UN.Value := Produtos.FIeldByName('preco_vista').AsCurrency; //Calcula o Valor Total do ITEM if not CALCULA_QTD then //Verifica se é para calcular a QTD do ITEm quando informar o Valor total do item begin //Verificar se o Produto é de Balança if PRODUTO_BALANCA then begin quantidade.Value := RoundABNT(total_item.Value / Produtos.FIeldByName('preco_vista').AsCurrency,3); quantidade.Refresh; end else begin total_item.Value := quantidade.Value * Produtos.FIeldByName('preco_vista').AsCurrency; end; //Fim da Verificação se é Balança ou se é Produto Normal end else begin quantidade.Value := RoundABNT(total_item.Value / Produtos.FIeldByName('preco_vista').AsCurrency,3); CALCULA_QTD := False; end; //Verifico se o Valor Será Arredondado ou Truncado //se for modo Arredondamento (A) if ModoArredondar = 'A' then begin total_item.Value := RoundTo(total_item.Value, -2); end; //se for modo Arredondamento (T) if ModoArredondar = 'T' then begin total_item.Value := TruncFix(total_item.Value,2); end; //Verifico se a Quantidade foi alterada para depois volta-la para 1 quando incluir um novo Item if quantidade.Value <> 1 then begin ALTEROU_QTD := 1; end; Application.ProcessMessages; //Chama o Procedimento que Insere o Produto no Banco e Imprime na Impressora if IncluirItensVenda(PDV_CODIGO_PRODUTO, Produtos.FieldByName('nome').AsString,vAliquota,Produtos.FIeldByName('un').AsString, Produtos.FIeldByName('ncm').AsString ,Produtos.FIeldByName('custo').AsCurrency, Produtos.FIeldByName('preco_vista').AsCurrency,0, quantidade.Value, total_item.Value, true ) then begin STATUS_CAIXA.Caption := 'VENDA INICIADA...'; //CODIGO_PRODUTO.Clear; end; NOME_PRODUTO.Refresh; end; end; end else begin STATUS_CAIXA.Caption := 'Para Fazer Vendas o Caixa precisa ser aberto'; end; finally fEmVenda := False ; end; end; Elton, segue Acima o Código que desenvolvi, o problema que o corre, é que ao inserir um item o cursor fica travado por quase um Segundo no edit antes de liberar para eu digitar o próximo código, não sei se é isso, mas o ACBRCF tem uma propriedade que trava o mouse e teclado?? ja tentei varias coisas aqui, mas o mais rápido que consegui é esse tempo ai que da quase 1 Segundo de um código para outro!
  17. Entendi, se eu consultar 3 vezes, sempre na Terceira vez, me traz as notas que foram disparadas contra mim.... você acha que eu devo iniciar a consulta sempre do Ultmo NSU?? pelo que eu entendi na nota técnica, quando você passa o NSU = 0 ele deveria retornar as notas dos ultimos 15 dias... mas não retorna nada.. ai eu consulto novamente após ele pegar o NSU retornado não retorna nada, geralmente na Terceira consulta retorna as notas... Não entendi porque isso acontece.. você consegue me explicar isso??
  18. Italo, além do que citei acima que não sei para que serve o procedimento GravaUltimaConsulta; tenho um outro problema... toda vez que faço a Consulta ele retorna cstat = 137 ACBRNfe1.WebServices.ConsNFeDest.retConsNFeDest.cStat = 137 ai ele carrega o Edit NSU com o valor do ultimo NSU, ai mando consultar novamente e a mesma coisa ocorre... como devo proceder???
  19. Italo, to penando pra Fazer essa Bendita Consulta aqui, e estou me baseando pelo Seu Código'... quando você chama o Procedimento: GravaUltimaConsulta; você grava só o numero (NSU) ou grava todos os dados da consulta no BD??? é isso mesmo entendi direito??
  20. Pessoal, tenho uma Dúvida que talves seja idiota, mas estou testando aqui e talves pelo resultado dos testes me confunda mais.. Quando faço uma confulta usando: FrmMenu.ACBrNFe1.ConsultaNFeDest(CNPJ, StrToIndicadorNFe(ok,indNFe), StrToIndicadorEmissor(ok,IndEmi), UltNSu); // Retorno de NFe's for i := 0 to AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Count -1 do begin if Trim(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.chNFe) <> '' then begin memo1.lines.add(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.xNome) ; memo1.lines.add(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.chNFe ) ; memo1.lines.add(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.CNPJCPF ) ; memo1.lines.add(VarToStr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.vNF)) ; memo1.lines.add(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.IE) ; memo1.lines.add(DateToStr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.dEmi)) ; memo1.lines.add(VarToStr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.tpNF)) ; memo1.lines.add(VarToStr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.cSitNFe)) ; memo1.lines.add(VarToStr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.cSitConf)); end ; end ; // Retorno de NFe's // Retorno de Cancelamento's for i := 0 to AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Count -1 do begin if Trim(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.chNFe) <> '' then begin memo1.lines.add( AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.xNome ); memo1.lines.add( floatTostr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.vNF) ); // memo1.lines.add( AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc... end ; end ; // Retorno de CCe's for i := 0 to AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Count -1 do begin if Trim(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCCe.chNFe) <> '' then begin memo1.lines.add( AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCCe.chNFe ); memo1.lines.add( AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCCe.descEvento ); // memo1.lines.add( AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCCe... end ; end ; //Fim d Isso deveria me retornar as notas que foram disparadas contra o meu CNPJ correto?? Estou fazendo testes aqui, mas essa consulta não me retorna nada, pelo que entendi deveria retornar as notas dos ultimos 15 dias se eu informar o NSU = 0, estou enviando NSU = 0 mas não retorna nada, ja tentei mudra para modo de produção o ambiente, mas não retorna nada, e nos ultimos 15 dias com certeza existem notas que foram disparadas contra o CNPJ que estou utilizando para testes!
  21. Bom, eu adicionei tudo no Timer ao invés de utilizer a trhead, igual no exemplo citado nesse tópico pelo Daniel Simões http://www.forumweb....lemas-com-acbr/ mesmo assim, perco um tempinho de um código para o outro, alguma idéia do que posso fazer para liberar mais rápido?
  22. Pessoal, estou desenvolvendo aqui a Manifestação do Destinatario, e tenho vasculhado o forum em busca de um entendimento claro.. cheguei a seguinte Conclusão.. Cancelamento, Carta de Correção e Manifestação de Destinatario, são 3 eventos diferentes.. correto?? atualmente no meu sistema, na Tabela de Notas Fiscais eu guarda a informação de se a nota esta cancelada ou não. tenho uma tabela de Carta de Correções eletronicas, e agora estou criando uma Tabela para as manifestações do destinatario... por acaso, alguém utiliza uma tabela de eventos para armazenar todos os eventos?? ou o ideal é separar mesmo... e o cancelamento deveria ser separado do cabeçalho da nota?? ou vocês também usam junto essa informação?? Grato!
  23. Muito Obrigado Regys!
  24. tentando explicar melhor... Eu digito um código no edit e pressiono enter, se rápidamente eu digitar outro código e pressionar enter, ele não escreve o código, ele dica aproximadamente 1 Segundo travado até permitir que eu digite outro código! eu queria permitir que o usuario digitasse o outro código, mesmo antes do procedimento anterior ter terminado
×
×
  • 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...