Pesquisar na Comunidade
Showing results for tags 'VendeItem'.
Encontrado 5 registros
-
Olá, preciso da ajuda de vocês. Tenho um cliente com uma Daruma FS800i, e lá ocorre um erro de "O tempo limite do semáforo expirou" ao lançar alguns itens. Não tem um padrão, as vezes é o primeiro item ou o terceiro, quinto, ou décimo item... A venda abre normalmente, vai lançando itens normalmente, e ai da erro ao lançar um determinado item. E depois disso se tentar lançar de novo, ele lança e finaliza a venda normal. Esse erro só acontece nesse cliente, já troquei de cabo USB, já reinstalei driver, já mudei a porta COM, já conversei com o pessoal da Daruma e fizemos alguns testes pelo aplicativo da Daruma e dai funciona sem erros. E esse erro não acontece em todas as vendas, as vezes passa uma tarde sem acontecer, e ai em determinada venda, o erro acontece. Uso ACBrECF, habilitei os logs da ECF, porém não consegui interpretar qual o erro. Então se puderem me ajudar, segue anexo o log da ECF de uma venda que deu erro. A venda foi lançado 5 itens (iguais), e ao lançar o quinto item ele deu o erro. Depois foi tentado novamente, lançou normal e foi finalizada a venda. Detalhe: tenho outros clientes com a mesma impressora e o erro não ocorre. Agradeço desde já a todos. Abraços LogEcf.log
-
Quando na Daruma MFD (FS700) ou superior temos na lista das alíquotas cadastradas da seguinte forma. T01 = 7% T03 = 12% T04 = 17% Pulando o T02 ao mandarmos o comando vendeItem com a aliquota 17,00T o componente esta vendendo a 12% porque. Porque no carrega alíquota esta assim. Aliquota.Indice := IntToStrZero(fpAliquotas.Count+1, 2); e deveria ser Aliquota.Indice := IntToStrZero(Cont, 2); Porque mesmo não tendo a alíquota cadastrada na ECF mesma assim o índice pula. ACBrECFDaruma.pas ACBrSerial-change-log.txt
-
Tenho um programa para emissão de cupom fiscal mas não esta funcionando a rotina de vender item. so esta rotina que não funciona. tudo esta ok. estou reaproveitando meu sistema que tenho a algum tempo. Ajustei tudo pra o trunk2 mas só essa rotina não ta rolando. obs, fiz ela na época em que o acbr so aceitava porcentagem no desconto. estou mantendo tudo como eu fiz aqui para ver se alguém me ajuda nisso. obrigado. function TFormPDVFiscal.Vendeitem: boolean; var indice : integer; Porcentagem_Desconto : double; ini : tinifile; begin if (self.editestoque.Valor <= 0) and (self.bloqueia_estoque_zerado = true) then begin aviso('O produto não possui estoque, por favor informe outro para esta venda', self.usuario_nome,maviso); result := false; end else begin //definindo descricao com grande if self.ACBrECF.Modelo <> ecfDataRegis then self.ACBrECF.DescricaoGrande := true; // ---------------------------- calculando o desconto. ------------------------- // Ex: Val.Unitário = 10,50 // Valor do Desconto = 0,50 // Porcentagem_Desconto = ( 0,50 / 10,50 ) * 100 = 4,7619 % // isso pq o acbr ecf so aceita procentagem de desconto // ----------------------------------------------------------------------------- result := false; try self.Escrevestatus('verificando se ja abril o cupom'); if not self.cupomAberto then self.NovoCupom; self.Escrevestatus('verificando se so vai vender com vendedor'); ini:= tinifile.create('PDV.ini'); if StrToBool2(Codifica('D',ini.readSTRING('Venda','so vender com vendedor','S'))) and (self.vendedor = 0) then aviso('Informe o vendedor para poder vender.', self.usuario_nome,maviso) else begin self.Escrevestatus('verificando se tem desconto. se tiver pedir senha se necessario'); Porcentagem_Desconto := 0; if self.eddesconto.valor <> 0 //se nao passou o supoervisor entao acnela tudo then if not LogaOperador(self.ponto, true, false, self, self.fsqlconnection) then begin aviso('Você passou um desconto e este não foi aprovado por um supervisor entao o produto não será vendido', self.usuario_nome, maviso); SetandoFocus(self.edCodigo); exit; end else begin self.Escrevestatus('calculando o desconto.'); //Ex: Val.Unitário = 10,50 // Valor do Desconto = 0,50 //Porcentagem_Desconto = ( 0,50 / 10,50 ) * 100 = 4,7619 % //isso pq o acbr ecf so aceita procentagem de desconto Porcentagem_Desconto := ( self.eddesconto.valor / Self.edPrecoUnita.valor ) * 100 end; //vendendo o item... if (self.eddescricao.text <> '') and (edcodigo.text <> '') and (edPrecoUnita.valor <> 0) then begin self.Escrevestatus('vendendo o item...'); self.Escrevestatus('vendo o modelo da impressora'); self.Escrevestatus('tentando vender com a acbr...'); //edICMS.Text := colocaicmsDeVenda(17); self.ACBrECF.VendeItem(edCodigo.Text, RetiraAcento(edDescricao.Text, false), edICMS.Text, edQtd.valor, edPrecoUnita.valor, Porcentagem_Desconto, edUN.Text, '%', 'D'); self.Escrevestatus('item vendido com acbr'); self.Escrevestatus('gravando o item no banco de dados'); //nao cadastrar a venda se tiver usando boate self.VENDA_ITENS.PDV_VENDA := self.venda; self.VENDA_ITENS.Ponto := strtoint(self.ponto); self.VENDA_ITENS.NUMERO := addnumero; self.venda_itens.custo := strtocurr2(campocdc('produto','custo','codigo = '+INTTOSTR(Self.codigoproduto), fsqlconnection, ultimo_erro)); self.VENDA_ITENS.PRODUTO := Self.codigoproduto; self.VENDA_ITENS.DESCRICAO := edDescricao.text; self.VENDA_ITENS.PRECO_UNITARIO := edPrecoUnita.Valor - self.eddesconto.valor; self.VENDA_ITENS.QUANTIDADE := edQtd.Valor; self.VENDA_ITENS.ST := edICMS.Text; self.VENDA_ITENS.EMPRESA := strtoint(self.ValidaEmpresa); self.VENDA_ITENS.icms := strtocurrdef(edICMS.Text,0); self.VENDA_ITENS.TOTAL := (edPrecoUnita.valor - self.eddesconto.valor) * edqtd.valor; self.VENDA_ITENS.ATUALIZASAO := now; self.VENDA_ITENS.UNIDADE := edUN.text; self.VENDA_ITENS.vendedor := vendedor; self.VENDA_ITENS.CODIGO := strtoint(autoincremento(nil,'pdv_venda_itens','codigo',self.fsqlconnection)); self.VENDA_ITENS.grava; //colocando o valor na descrição edDescricao.text := '';//edDescricao.text + ' ' +floattostr(edqtd.valor)+ ' x '+ formatcurr('#,##0.00',edPrecoUnita.valor); //calculando o total if SELF.ACBRECF.Modelo <> ecfDataRegis then begin total.valor := aCBrECF.Subtotal; totalTEF := StrToFloat(EasyTEF.tratarCupomFiscal(tmeSubTotal, [''])); end; self.Escrevestatus('colocando ele na grid'); indice := self.grid.Insert; // grid.Cells[0,0] := 'Número'; self.grid.Cells[0,indice] := inttostr(self.VENDA_ITENS.NUMERO); //grid.Cells[1,0] := 'Descrição do item'; self.grid.Cells[1,indice] := self.VENDA_ITENS.DESCRICAO; //grid.cells[2,0] := 'unidade'; self.grid.Cells[2,indice] := self.VENDA_ITENS.UNIDADE; //grid.cells[2,0] := 'Preço'; self.grid.Cells[3,indice] := formatfloat('##,##0.00',self.VENDA_ITENS.PRECO_UNITARIO); //grid.Cells[3,0] := 'Qtd.'; self.grid.Cells[4,indice] := currtostr(self.VENDA_ITENS.QUANTIDADE); //grid.Cells[4,0] := 'Total.'; self.grid.Cells[5,indice] := formatfloat('##,##0.00',self.VENDA_ITENS.PRECO_UNITARIO * self.VENDA_ITENS.QUANTIDADE); //grid.Cells[5,0] := 'codigo escondido'; self.grid.Cells[6,indice] := inttostr(self.VENDA_ITENS.PRODUTO); //se vai autenticar if prod_aut = true then self.grid.Cells[55,indice] := 'S' else self.grid.Cells[55,indice] := ''; //limpando os edits.. edCodigo.Text := ''; edICMS.Text := '0'; edQtd.valor := 0; edPrecoUnita.Text := '0'; edDesconto.valor := 0; edUN.Text := ''; editestoque.valor := 0; result := true; self.total.valor := self.grid.calculaCampo(5); end else begin aviso('Informe os dados do produto corretamente.'+#13+ 'Obs.: o sistema não permite vender um item com o preço zerado', self.usuario_nome, maviso); setandofocus(self.edcodigo); result := false; end; end; ini.free; finally //se deu pau ao abrir o cupom intao verificar configuraçoes dele end ; end; end;
-
Problemas Com Método Vendeitem Em Acbrecf Para Passar Alíquota
um tópico no fórum postou Leonardo Romano Camargo ACBrSerial
Boa tarde, após a atualização dos componentes Acbr, tive problemas com o método VendeItem da Unit ACBrECF. Minha rotina estava passando alíquota com o sulfixo e indice ("T01","S01" etc), mas agora o item é impresso na ecf, e logo depois gera uma exceção de alíquota não encontrada e cancela o item. Na nova unit ACBrECF, existem dois novos métodos, IniciaVendeItem() e FinalizaVendeItem(), essas duas passam por rotinas que verificam a aliquota e nesse ponto está meu problema... Passo a aliquota("T01") como parâmetro para o metodo VendeItem(), a rotina IniciaVendeItem() verifica minha aliquota pelo sufixo("T") e depois pelo indice("01"), ela salva o índice dentro da mesma variavel onde se encontrava a aliquota, perdendo assim o sufixo(ficando apenas "01"). Logo em seguida é impresso o item normalmente. E no final é executado o metodo FinalizaVendeItem() onde ele executa a mesma verificação de aliquota com a mesma variável, porém agora só está o indice("01"), gerando assim a exceção de aliquota não encontrada e cancelando o item que acabou de ser impresso. Desde já agradeço a atenção. -
Olá, estou usando a função abaixo para gerar meu cupom fiscal, cujo parametro cCodigo só aceita 13 caracteres e preciso de 14 caracteres, se eu passo um campo com 14 caracteres ele elimina o ultimo código, ficando assim: Valor original : 12345678901234 Valor cupom : 1234567890123 Estou usando uma impressora da Bematech, modelo MP-4000 TH FI
- 7 replies
-
- 14 Caracteres
- VendeItem
- (e 2 mais)