unit CadTipoProduto;

interface

uses
  Windows, system.UItypes, IB_Access,  Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ModeloCadastro, UCBase, ImgList, AppEvnts, IB_Components,
  ExtCtrls, StdCtrls, jpeg, Grids, IB_Grid, Buttons, ComCtrls, Mask,
  IB_Controls, Rotinas, Menus, IB_EditButton, System.ImageList, cxGraphics,
  cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinOffice2010Blue,
  cxButtons;

type
  TfrmCadTipoProduto = class(TFrModeloCadastro)
    GroupBox2: TGroupBox;
    dbCodigo: TIB_Text;
    edtDescricao: TIB_Edit;
    edtGrupo: TIB_LookupCombo;
    btnPesquisaGrupo: TBitBtn;
    qryGrupo: TIB_Query;
    dtGrupo: TIB_DataSource;
    popCadGrupo: TPopupMenu;
    Cadastrodegrupo1: TMenuItem;
    PesquiarGrupo1: TMenuItem;
    ImageList1: TImageList;
    dbOrdem: TIB_Edit;
    qryOrdenar: TIB_Query;
    btnOrdenar: TSpeedButton;
    qrTipoSaida_Grupo: TIB_Query;
    dsrTipoSaida: TIB_DataSource;
    IB_Grid1: TIB_Grid;
    Label3: TLabel;
    btnAddTipoSaida: TcxButton;
    btnDelTipoSaida: TcxButton;
    qrTipoSaida: TIB_Query;
    procedure FormCreate(Sender: TObject);
    procedure BtGravarClick(Sender: TObject);
    procedure edPesquisaKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnPesquisaGrupoClick(Sender: TObject);
    procedure BtExcluirClick(Sender: TObject);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtProximoClick(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
    procedure Cadastrodegrupo1Click(Sender: TObject);
    procedure btnOrdenarClick(Sender: TObject);
    procedure btnDelTipoSaidaClick(Sender: TObject);
    procedure btnAddTipoSaidaClick(Sender: TObject);
  private
    procedure AtualizaTela;
    function MaiorOrdem:Integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadTipoProduto: TfrmCadTipoProduto;

implementation

uses DataModulo, ModeloPesquisa, CadGrupoProduto, OrdenarTipoProduto;

{$R *.dfm}

procedure TfrmCadTipoProduto.FormCreate(Sender: TObject);
begin
   Gera_Codigo := True;
   Descricao_Unica := True;
   Campo_Tabela := 'DESCRICAO';

   inherited;
   qryGrupo.Open;
   qrTipoSaida.Open();
end;

procedure TfrmCadTipoProduto.BtGravarClick(Sender: TObject);
begin
   if edtDescricao.Text = '' then
   begin
      MessageDlg('Informe a descrição', mtWarning, [mbOK], 0);
      edtDescricao.SetFocus;
      Exit;
   end;
   if qryGrupo.FieldByName('COD_GRUPO_PRODUTO').IsNull then
   begin
      MessageDlg('Informe o Grupo do Produto', mtWarning, [mbOK], 0);
      edtGrupo.SetFocus;
      Exit;
   end
   else TbPrincipal.FieldByName('COD_GRUPO').Value:=qryGrupo.FieldByName('COD_GRUPO_PRODUTO').Value;
   inherited;
end;

procedure TfrmCadTipoProduto.edPesquisaKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
   if (Key =  VerificaAtalho(Dados.tbConfig.FieldByName('ATALHO_PESQUISA').AsString)) and ( edtGrupo.Focused) then
      btnPesquisaGrupo.Click;

end;

procedure TfrmCadTipoProduto.btnPesquisaGrupoClick(Sender: TObject);
begin
   if TbPrincipal.State in [dssBrowse] then
     Exit;

   frmModeloPesquisa                  := TfrmModeloPesquisa.Create(Application);
   frmModeloPesquisa.Tabela           :=  qryGrupo;
   frmModeloPesquisa.lbltitulo.Caption:= 'Pesquisa Grupo de Produtos';
   if frmModeloPesquisa.ShowModal = mrok then
   begin
      qryGrupo.Locate('COD_GRUPO_PRODUTO', frmModeloPesquisa.TbPrincipal.FieldByName('COD_GRUPO_PRODUTO').Value ,[]);
   end;
   frmModeloPesquisa.Destroy;
   Screen.OnActiveControlChange := TrocaCor;
end;

procedure TfrmCadTipoProduto.AtualizaTela;
begin
   //===================== Atualiza a visualizacao dos dados =====================
   if not qryGrupo.Locate('COD_GRUPO_PRODUTO' , TbPrincipal.FieldByName('COD_GRUPO').Value, []) then
     InicioDaTabela(qryGrupo);

   qrTipoSaida_Grupo.Close;
   qrTipoSaida_Grupo.ParamByName('codTipoProduto').Value := TbPrincipal.FieldByName('COD_TIPO_PRODUTO').Value;
   qrTipoSaida_Grupo.Open();
end;

procedure TfrmCadTipoProduto.BtExcluirClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;

end;

procedure TfrmCadTipoProduto.BtAnteriorClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;
end;

procedure TfrmCadTipoProduto.BtProximoClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;

end;

procedure TfrmCadTipoProduto.BtInserirClick(Sender: TObject);
begin
  inherited;
  AtualizaTela;
  TbPrincipal.FieldByName('ORDEM').Value:=MaiorOrdem+1;
end;

procedure TfrmCadTipoProduto.BtEditarClick(Sender: TObject);
begin
  inherited;
  AtualizaTela;
end;

procedure TfrmCadTipoProduto.Cadastrodegrupo1Click(Sender: TObject);
var cod : Integer;
begin
  inherited;
   if TbPrincipal.State in [dssBrowse] then
     Exit;

   frmCadGrupoProduto := TfrmCadGrupoProduto.Create(Application);
   frmCadGrupoProduto.OutraTela := True;
   frmCadGrupoProduto.BtInserirClick(Self);
   frmCadGrupoProduto.ShowModal;
   cod := frmCadGrupoProduto.TbPrincipal.FieldByName('COD_GRUPO_PRODUTO').AsInteger;
   frmCadGrupoProduto.Destroy;
   Screen.OnActiveControlChange := TrocaCor;

   qryGrupo.RefreshAll;
   if NOT qryGrupo.Locate('COD_GRUPO_PRODUTO',COD,[]) then
   if not qryGrupo.Bof then
   begin
      qryGrupo.First;
      qryGrupo.Prior;
   end;
end;



function TfrmCadTipoProduto.MaiorOrdem:Integer;
begin
  qryPesquisa.Close;
  qryPesquisa.SQL.Clear;
  qryPesquisa.SQL.Add('SELECT MAX(ORDEM)as MAIOR FROM PRODUTO_TIPO_PRODUTO');
  qryPesquisa.Open;

  Result:= qryPesquisa.fieldBYnAME('MAIOR').AsInteger;
end;

procedure TfrmCadTipoProduto.btnAddTipoSaidaClick(Sender: TObject);
begin
  inherited;
  frmModeloPesquisa := TfrmModeloPesquisa.Create(Self);
  frmModeloPesquisa.Tabela := qrTipoSaida;
  frmModeloPesquisa.lblTitulo.Caption := 'Pesquisa tipo de saída';
  if frmModeloPesquisa.ShowModal = mrok then
  begin
     qrTipoSaida_Grupo.ReadOnly := false;
     qrTipoSaida_Grupo.Insert;
     qrTipoSaida_Grupo.FieldByName('COD_TIPO_SAIDA_GRUPO').Value := ProximoCodigoChave('PRODUTO_TIPO_SAIDA_GRUPO' , 'COD_TIPO_SAIDA_GRUPO' , '');
     qrTipoSaida_Grupo.FieldByName('COD_TIPO_PRODUTO').Value     := TbPrincipal.FieldByName('COD_TIPO_PRODUTO').Value;
     qrTipoSaida_Grupo.FieldByName('COD_TIPO_SAIDA').Value       := frmModeloPesquisa.TbPrincipal.FieldByName('COD_TIPO_SAIDA').Value ;
     qrTipoSaida_Grupo.Post;

     qrTipoSaida_Grupo.Refresh;
  end;

  FreeAndNil ( frmModeloPesquisa );
end;

procedure TfrmCadTipoProduto.btnDelTipoSaidaClick(Sender: TObject);
begin
  inherited;
   if qrTipoSaida_Grupo.IsEmpty then
     exit;

   if (MessageDlg('Deseja realmente excluir o item selecionado?', mtWarning, [mbYes, mbNo], 0) = mrNo) then
     exit;

   GravaAuditoria( True, qrTipoSaida);

   qrTipoSaida_Grupo.ReadOnly := false;
   qrTipoSaida_Grupo.Delete;
end;

procedure TfrmCadTipoProduto.btnOrdenarClick(Sender: TObject);
begin
  inherited;
  frmOrdenarTipoProduto := TfrmOrdenarTipoProduto.Create(Application);
  frmOrdenarTipoProduto.ShowModal;
  frmOrdenarTipoProduto.Destroy;
end;

end.
