Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.37 KB | None | 0 0
  1. procedure TFrmVendaExpressa.ProcurarProduto(aProcurar: Boolean; strPesquisa: String);
  2. var
  3.   mProduto: String;
  4.   mCodigo: string;
  5. begin
  6.   mProduto := '';
  7.   mCodigo  := '';
  8.  
  9.   try
  10.     if aProcurar then
  11.     begin
  12.       if dbProcurarProduto.Execute then
  13.       begin
  14.         mProduto := dbProcurarProduto.ResultFieldAsString('REFERENCIA');
  15.         mCodigo  := dbProcurarProduto.ResultFieldAsString('CODIGO_BARRA');
  16.  
  17.         db_view_estoque.Close;
  18.         db_view_estoque.SQL.Clear;
  19.  
  20.         case cbbTipoPesquisa.ItemIndex of
  21.           0: // CODIGO DE BARRA
  22.             begin
  23.               db_view_estoque.SQL.Add('SELECT * FROM VIEW_ESTOQUEVENDA WHERE CODIGO_BARRA =:CODIGOBARRA');
  24.               db_view_estoque.ParamByName('CODIGOBARRA').asString := mCodigo;
  25.  
  26.               FrmPesquisaProduto.edtCodigoBarra.Text := mCodigo;
  27.             end;
  28.           1: // REFERENCIA
  29.             begin
  30.               db_view_estoque.SQL.Add('SELECT * FROM VIEW_ESTOQUEVENDA WHERE REFERENCIA =:REFERENCIA');
  31.               db_view_estoque.ParamByName('REFERENCIA').asString := mProduto;
  32.               FrmPesquisaProduto.edtCodigoBarra.Text             := mProduto;
  33.             end;
  34.         end;
  35.         db_view_estoque.open;
  36.       end;
  37.  
  38.       FrmPesquisaProduto.dbedtDescricao.SetFocus;
  39.  
  40.     end
  41.     else
  42.     begin
  43.       if cbbTipoPesquisa.ItemIndex = 0 then // CODIGO DE BARRA
  44.       begin
  45.         db_view_estoque.Close;
  46.         db_view_estoque.SQL.Clear;
  47.         db_view_estoque.SQL.Add('SELECT * FROM VIEW_ESTOQUEVENDA WHERE CODIGO_BARRA =:CODIGOBARRA');
  48.         db_view_estoque.ParamByName('CODIGOBARRA').asString := strPesquisa;
  49.         db_view_estoque.open;
  50.       end;
  51.  
  52.       if cbbTipoPesquisa.ItemIndex = 1 then // REFERENCIA
  53.       begin
  54.         db_view_estoque.Close;
  55.         db_view_estoque.SQL.Clear;
  56.         db_view_estoque.SQL.Add('SELECT * FROM VIEW_ESTOQUEVENDA WHERE REFERENCIA =:REFERENCIA');
  57.         db_view_estoque.ParamByName('REFERENCIA').asString := strPesquisa;
  58.         db_view_estoque.open;
  59.       end;
  60.  
  61.       if db_view_estoque.IsEmpty then
  62.       begin
  63.         Mensagem('Produto não encontrado');
  64.         exit;
  65.       end;
  66.  
  67.       mProduto := db_view_estoque.FieldByName('REFERENCIA').asString;
  68.       mCodigo  := db_view_estoque.FieldByName('CODIGO_BARRA').asString;
  69.     end;
  70.  
  71.     try
  72.       If not(db_VendasItens.state in [dsEdit]) then
  73.         db_VendasItens.Edit;
  74.  
  75.       db_VendasItens.FieldByName('IDPRODUTO').AsInteger  := StrToInt(GetProdutoCampo(mProduto, 'CODIGO'));
  76.       db_VendasItens.FieldByName('PRODUTO').asString     := mProduto;
  77.       db_VendasItens.FieldByName('CODIGOBARRA').asString := mCodigo;
  78.  
  79.       if db_VendasItens.FieldByName('VLR_UNIT').AsFloat <= 0 then
  80.       begin
  81.         If not(db_VendasItens.state in [dsEdit]) then
  82.           db_VendasItens.Edit;
  83.  
  84.         db_VendasItens.FieldByName('UND').asString       := db_view_estoque.FieldByName('UND').asString;
  85.         db_VendasItens.FieldByName('VLR_UNIT').AsFloat   := db_view_estoque.FieldByName('PRC_VENDA').AsFloat;
  86.         db_VendasItens.FieldByName('DESCRICAO').asString := db_view_estoque.FieldByName('DESCRICAO').asString;
  87.       end;
  88.  
  89.     finally
  90.       db_view_estoque.Close;
  91.     end;
  92.  
  93.   finally
  94.  
  95.     if db_VendasItens.FieldByName('VLR_UNIT').AsFloat > 0 then
  96.     begin
  97.       if (db_VendasItens.state in [dsEdit]) then
  98.         db_VendasItens.Post;
  99.     end;
  100.  
  101.   end;
  102. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement