ECF não vende item
18/03/2003
0
A minha a dúvida está em passar o parâmetro DESCONTO. O programa não pode dar desconto nenhum, em nenhuma hipótese. Eu tentei de várias formas(0000, 00000000, 0000¬, R$0,00) mas não deu certo. Não sei se o erro está nos desconto não. Eu é quem acho isso. Aí vai meu código para vender item.
procedure TfrmVenda.Edit1Exit(Sender: TObject);
var
total, cont, preco: double;
cod, desc, icm, valor, tot1, desco, qtde, de: String;
iRetorno : integer;
begin
if StatusBar1.Panels[3].Text = ´1´ then begin
inicia;
preco:=strtofloat(edit1.text);
cod:=inttostr(Dm.EstoqueCod.AsInteger);
desc:=Dm.EstoqueDescricao.asstring;
icm:=´01´;
qtde:=StrZeros(edQde.Text, 4);
valor:=floattostrf(preco, ffCurrency, 12, 2);
desco:=´0000´;//Tentei de várias formas, esta é a última q fiz. Eu não quero colocar um campo para descontos, pois eles não vão existir, por isso quero passar os valores diretos para o ECF.
Buffer := #27+´|09|´+cod+´|´+desc+´|´+icm+´|´+qtde+´|´+valor+´|´+desco+´|´+ 27;//venda de itens
encerra;
// Abaixo as procedures inicia e encerra. Fiz assim, para evitar de escrever os mesmos códigos, sempre.
procedure TfrmVenda.encerra;
var
iRetorno: integer;
begin
iRetorno := FormataTX(Buffer);
if iRetorno = 1 then
ShowMessage(´Erro de comunucação física.´);
iRetorno := FechaPorta();
if iRetorno = 0 then
ShowMessage(´Erro ao tentar liberar porta.´);
end;
procedure TfrmVenda.inicia;
var
iRetorno: integer;
begin
iRetorno := IniPortaStr(ComboBox1.Items[ComboBox1.ItemIndex]);
if iRetorno = 0 then
ShowMessage(´Erro ao inicializar porta.´);
end;
Buffer é global.
Anonymous
Posts
18/03/2003
E_gama
18/03/2003
Anonymous
18/03/2003
E_gama
Ao inves de utilizar a funcao acima para converter o valor, faca uma teste mandando um valor fixo. Ex.:
Valor := ´000000000115´; // R$ 1,15
Verifique tambem se o tamanho do campo valor esta correto.
18/03/2003
Anonymous
19/03/2003
Anonymous
O checkbos ACK, mercado e Comando não executado e Canc. não permitido também. Já não aguento mais. Onde será q errei? Eis como ficou a rotina de venda de item:
procedure TfrmVenda.Edit1Exit(Sender: TObject);
var
total, cont, preco: double;
cod, desc, icm, valor, tot1, desco, qtde, de: String;
iRetorno : integer;
Buffer: String;
begin
if StatusBar1.Panels[3].Text = ´1´ then begin
iRetorno := IniPortaStr(ComboBox1.Items[ComboBox1.ItemIndex]);
if iRetorno = 0 then
ShowMessage(´Erro ao inicializar porta.´);
preco:=strtofloat(edit1.text);// O preco é digitado na hora, e não do BD.
cod:=Dm.EstoqueCod.AsString;
desc:=Dm.EstoqueDescricao.asstring;
icm:=´01´;
qtde:=StrZeros(edQde.Text, 4);
valor:=edit1.text;
desco:=´0000´;
Buffer := #27+´|09|´+cod+´|´+desc+´|´+icm+´|´+qtde+´|´+valor+´|´+desco+´|´+ 27;
iRetorno := FormataTX(Buffer);
if iRetorno = 1 then
ShowMessage(´Erro de comunucação física.´);
iRetorno := FechaPorta();
if iRetorno = 0 then
ShowMessage(´Erro ao tentar liberar porta.´);
Dm.Item.Insert;
Dm.ItemCod_Venda.AsInteger:=Dm.VendaNumero.AsInteger;
Dm.ItemDescricao.AsString:=Dm.EstoqueDescricao.AsString;
Dm.ItemQde.AsFloat:=strtofloat(edQde.Text);
Dm.ItemValor_Uni.AsFloat:=strtofloat(edit1.Text);
Dm.ItemValor_Total.asFloat:=strtofloat(edQde.Text)*strtofloat(edit1.Text);
Dm.Item.Post;
tot:=tot+(strtofloat(qtde)*strtocurr(edit1.text));
Panel2.Caption:=FloatToStrF(Tot, ffCurrency, 12, 2);
lbTotal.Caption:=FloatToStrF(Tot, ffCurrency, 12, 2);
end;
end;
19/03/2003
E_gama
emerson@salesiano.com.br
Clique aqui para fazer login e interagir na Comunidade :)