unit uFormCadProdutos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uFormModelodeCadastro, Menus, DB, StdCtrls, Buttons, ExtCtrls,
  FMTBcd, SqlExpr, Provider, DBClient, Mask, DBCtrls, daDBEdit, daEdit;

type
  TfrmCadProdutos = class(TfrmModelodeCadastro)
    CDSCadProdutos: TClientDataSet;
    DSPCadProdutos: TDataSetProvider;
    SDSCadProdutos: TSQLDataSet;
    SDSCadProdutosID_PRODUTO: TIntegerField;
    SDSCadProdutosPRODUTO: TStringField;
    SDSCadProdutosMARCA: TStringField;
    SDSCadProdutosQTDE: TFMTBCDField;
    SDSCadProdutosCUSTO_ATUAL: TFMTBCDField;
    SDSCadProdutosCUSTO_MEDIO: TFMTBCDField;
    SDSCadProdutosCUSTO_KILO: TFMTBCDField;
    SDSCadProdutosUNIDADE: TStringField;
    SDSCadProdutosPRECO: TFMTBCDField;
    SDSCadProdutosFLAG: TSmallintField;
    CDSCadProdutosID_PRODUTO: TIntegerField;
    CDSCadProdutosPRODUTO: TStringField;
    CDSCadProdutosMARCA: TStringField;
    CDSCadProdutosQTDE: TFMTBCDField;
    CDSCadProdutosCUSTO_ATUAL: TFMTBCDField;
    CDSCadProdutosCUSTO_MEDIO: TFMTBCDField;
    CDSCadProdutosCUSTO_KILO: TFMTBCDField;
    CDSCadProdutosUNIDADE: TStringField;
    CDSCadProdutosPRECO: TFMTBCDField;
    CDSCadProdutosFLAG: TSmallintField;
    Label2: TLabel;
    edtCodPro: TdaEdit;
    Label7: TLabel;
    edtDescPro: TdaDBEdit;
    Label6: TLabel;
    edtMarca: TdaDBEdit;
    Label3: TLabel;
    edtEstAtual: TdaDBEdit;
    Label4: TLabel;
    edtCustoAtual: TdaDBEdit;
    Label5: TLabel;
    Label8: TLabel;
    edtCustoMedio: TdaDBEdit;
    Label9: TLabel;
    edtCustoKilo: TdaDBEdit;
    Label10: TLabel;
    edtUnidade: TdaDBEdit;
    Label11: TLabel;
    edtPreco: TdaDBEdit;
    qryProduto: TSQLQuery;
    procedure btnNovoClick(Sender: TObject);
    procedure btnSalvarClick(Sender: TObject);
    procedure btnExcluirClick(Sender: TObject);
    procedure btnAlterarClick(Sender: TObject);
    procedure btnCancelarClick(Sender: TObject);
    procedure btnPesquisarClick(Sender: TObject);
    procedure F10Click(Sender: TObject);
    procedure CDSCadProdutosAfterPost(DataSet: TDataSet);
    procedure CDSCadProdutosBeforePost(DataSet: TDataSet);
  private
    procedure LimpaFormulário;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadProdutos: TfrmCadProdutos;

implementation

uses uDM, uFuncoes, uFormPesqProdutos;

{$R *.dfm}

procedure TfrmCadProdutos.btnAlterarClick(Sender: TObject);
begin
  inherited;
  edtDescPro.SetFocus;
  btnAlterar.Enabled := False;
end;

procedure TfrmCadProdutos.btnCancelarClick(Sender: TObject);
begin
  inherited;
  LimpaFormulário;
end;

procedure TfrmCadProdutos.btnExcluirClick(Sender: TObject);
begin
  inherited;
  if Confirma then
  begin
    Confirma := False;
    edtCodPro.Clear;
    btnNovo.SetFocus;
  end;
end;

procedure TfrmCadProdutos.btnNovoClick(Sender: TObject);
begin
  inherited;
  qryProduto.Close;
  qryProduto.Open;
  edtCodPro.Text := qryProduto.FieldByName('id_produto').AsString;
  edtDescPro.SetFocus;
end;

procedure TfrmCadProdutos.btnPesquisarClick(Sender: TObject);
begin
  inherited;
  if btnPesquisar.Enabled = True then
    begin
      Application.CreateForm(TfrmPesqProdutos,frmPesqProdutos);
      if frmPesqProdutos.ShowModal = mrOk then
      begin
        SDSCadProdutos.Close;
        CDSCadProdutos.Close;
        SDSCadProdutos.ParamByName('ID_PRODUTO').AsInteger := frmPesqProdutos.CDSPesqProdutosID_PRODUTO.AsInteger;
        CDSCadProdutos.Open;

        edtCodPro.Text := frmPesqProdutos.CDSPesqProdutosID_PRODUTO.AsString;

        AtivarBotoes(True);   
        btnSalvar.Enabled := False;  

        edtCodPro.Enabled := False;
        frmPesqProdutos.CDSPesqProdutos.Close;
        PanelCenter.Enabled := False;
        btnAlterar.SetFocus;

      end;
      FreeAndNil(frmPesqProdutos);
    end;
end;

procedure TfrmCadProdutos.btnSalvarClick(Sender: TObject);
begin
  inherited;
  TRY
    dstGenerico.DataSet.Post;
    AtivarBotoes(False);
    CaixadeMensagemAviso('Registro Gravado com Sucesso!');
    LimpaFormulário;
  Except
    ON EDataBaseError DO
      BEGIN
        CaixadeMensagemAviso('Campo [ PRODUTO ] deve ser Preenchido!');
      END;
  END;
end;

procedure TfrmCadProdutos.CDSCadProdutosAfterPost(DataSet: TDataSet);
begin
  inherited;
  CDSCadProdutos.ApplyUpdates(-1);
end;

procedure TfrmCadProdutos.CDSCadProdutosBeforePost(DataSet: TDataSet);
begin
  inherited;
  CDSCadProdutosID_PRODUTO.AsInteger := StrToInt(edtCodPro.Text);
end;

procedure TfrmCadProdutos.F10Click(Sender: TObject);
begin
  inherited;
  btnPesquisarClick(btnPesquisar);
end;

procedure TfrmCadProdutos.LimpaFormulário;
begin
  CDSCadProdutos.Close;
  edtCodPro.Clear;
  PanelCenter.Enabled := False;
  btnNovo.SetFocus;
end;

end.
