{
===============================================================================
  Copyright (©) 2001. Rodax Software.
===============================================================================
  Los contenidos de este fichero son propiedad de Rodax Software titular del
  copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
  en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
  acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
  bajo el que se suministra.
  -----------------------------------------------------------------------------
  Web:  www.rodax-software.com
===============================================================================
  Fecha primera versión: 13-05-2002
  Versión actual: 1.0.0
  Fecha versión actual:  13-05-2002
===============================================================================
  Modificaciones:

    Fecha         Comentarios
    ---------------------------------------------------------------------------
===============================================================================
}

unit Vendedores;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, Grids, DBGrids, ComCtrls, IBDatabase, ToolWin, ExtCtrls,
  IBCustomDataSet, IBQuery, RXDBCtrl, RdxPaneles, RdxBarras,
  RdxBotones, Mensajes, RdxFrameVendedores, Configuracion,
  cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxEdit, cxDBData,
  cxGridLevel, cxClasses,
  cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxGrid, RdxFrame, Menus, am2000menuitem,
  am2000popupmenu, am2000, StdCtrls, AdvPanel, ActnList, am2000utils, cxDataStorage,
  cxContainer, cxTextEdit;

type
  TfrVendedores = class(TRdxFrameVendedores)
    brSeleccion: TRdxBarraInferior;
    bSeleccionar: TRdxBoton;
    bCancelar: TRdxBoton;
    dsVendedores: TDataSource;
    BarraSuperior: TRdxBarraSuperior;
    bConsultar: TRdxBotonSuperior;
    bEliminar: TRdxBotonSuperior;
    bModificar: TRdxBotonSuperior;
    bAnadir: TRdxBotonSuperior;
    gridVendedores: TcxGrid;
    gridVendedoresDBTableView1: TcxGridDBTableView;
    gridVendedoresLevel1: TcxGridLevel;
    MenuOpciones: TPopupMenu2000;
    mnuAnadir: TMenuItem2000;
    mnuModificar: TMenuItem2000;
    mnuEliminar: TMenuItem2000;
    mnuConsultar: TMenuItem2000;
    pnlCuerpo: TPanel;
    Acciones: TActionList;
    actAnadir: TAction;
    actModificar: TAction;
    actEliminar: TAction;
    actConsultar: TAction;
    actSeleccionar: TAction;
    actCancelar: TAction;
    bSeparador2: TShape;
    bComisiones: TRdxBotonSuperior;
    actComisiones: TAction;
    imgSombra: TImage;
    Panel1: TPanel;
    eNombre: TLabel;
    Buscar: TcxTextEdit;
    bLimpiar: TRdxBoton;
    procedure gridVendedoresRefreshButton(Sender: TObject);
    procedure RdxFrameVendedoresShow(Sender: TObject);
    procedure bLimpiarClick(Sender: TObject);
    procedure actAnadirExecute(Sender: TObject);
    procedure actModificarExecute(Sender: TObject);
    procedure actEliminarExecute(Sender: TObject);
    procedure actConsultarExecute(Sender: TObject);
    procedure actSeleccionarExecute(Sender: TObject);
    procedure actCancelarExecute(Sender: TObject);
    procedure gridVendedoresDBTableView1DblClick(Sender: TObject);
    procedure actComisionesExecute(Sender: TObject);
    procedure BuscarPropertiesChange(Sender: TObject);
  private
    procedure ActualizarBotones;
  protected
    procedure BuscarVendedor; override;
    procedure FreeContenido; override;
  public
    constructor Create (AOwner : TComponent); override;
    destructor Destroy; override;
  published
    property TablaVendedores;
    property Entidad;
  end;

var
  frVendedores: TfrVendedores;

implementation

{$R *.DFM}

uses
  Variants, BaseDatos, Entidades, TablaVendedores, Vendedor, ComisionesVendedores;

constructor TfrVendedores.Create (AOwner : TComponent);
begin
  inherited Create(AOwner);
  Entidad := entVendedor;

  BaseDatos := dmBaseDatos.BD;
  Transaccion := dmBaseDatos.Transaccion;
  TablaVendedores := TIBDataSet.Create(Self);
  dsVendedores.DataSet := TablaVendedores;

  with TablaVendedores do
  begin
    DisableControls;
    Database := BaseDatos;
    Transaction := Transaccion;
    SelectSQL.Assign(dmTablaVendedores.sqlGrid);
    Prepare;
    Open;
    ActualizarBotones;
    EnableControls;
  end;

  dmTablaVendedores.InicializarGridVendedores(gridVendedoresDBTableView1);
  gridVendedoresDBTableView1.OnDblClick := gridVendedoresDBTableView1DblClick;
  gridVendedoresDBTableView1.Controller.GoToFirst;
end;

destructor TfrVendedores.Destroy;
begin
  TablaVendedores.Close;
  TablaVendedores.UnPrepare;
  TablaVendedores.Free;
  inherited;
end;

procedure TfrVendedores.BuscarVendedor;
begin
  with TablaVendedores do
  begin
    DisableControls;
    Close;
    Open;
    ActualizarBotones;

    EnableControls;
    if not Locate('CODIGO', CodigoVendedor, []) then
      gridVendedoresDBTableView1.Controller.GoToFirst
    else
      gridVendedoresDBTableView1.Controller.TopRowIndex := gridVendedoresDBTableView1.Controller.FocusedRowIndex;
  end;
end;

procedure TfrVendedores.FreeContenido;
begin
  if (Contenido is TRdxFrameVendedores) then
    CodigoVendedor := (Contenido as TRdxFrameVendedores).CodigoVendedor;
  inherited FreeContenido;
  //gridVendedores.SetFocus;
end;

procedure TfrVendedores.ActualizarBotones;
begin
  if BaseDatos.IsReadOnly then
  begin
    actAnadir.Enabled := False;
    actModificar.Enabled := False;
    actEliminar.Enabled := False;
    actConsultar.Enabled := True;
    Exit;
  end;

  if TablaVendedores.RecordCount = 0 then begin
    actAnadir.Enabled := True;
    actModificar.Enabled := False;
    actEliminar.Enabled := False;
    actConsultar.Enabled := False;
  end
  else begin
    actAnadir.Enabled := True;
    actModificar.Enabled := True;
    actEliminar.Enabled := True;
    actConsultar.Enabled := True;
  end;
end;

procedure TfrVendedores.gridVendedoresRefreshButton(Sender: TObject);
begin
  BuscarVendedor;
end;

procedure TfrVendedores.RdxFrameVendedoresShow(Sender: TObject);
begin
  Buscar.SetFocus
end;

procedure TfrVendedores.bLimpiarClick(Sender: TObject);
begin
  Buscar.Text := '';
end;

procedure TfrVendedores.actAnadirExecute(Sender: TObject);
begin
  Contenido := TfrVendedor.Create(Self);
  Contenido.Modo := Anadir;
end;

procedure TfrVendedores.actModificarExecute(Sender: TObject);
begin
  Contenido := TfrVendedor.Create(Self);
  Contenido.Modo := Modificar;
end;

procedure TfrVendedores.actEliminarExecute(Sender: TObject);
begin
  Contenido := TfrVendedor.Create(Self);
  Contenido.Modo := Eliminar;
end;

procedure TfrVendedores.actConsultarExecute(Sender: TObject);
begin
  Contenido := TfrVendedor.Create(Self);
  Contenido.Modo := Consultar;
end;

procedure TfrVendedores.actSeleccionarExecute(Sender: TObject);
begin
  CodigoVendedor := TablaVendedores.FieldByName('CODIGO').AsString;
  CloseFrame;
end;

procedure TfrVendedores.actCancelarExecute(Sender: TObject);
begin
  FCodigoVendedor := NULL;
  CloseFrame;
end;

procedure TfrVendedores.gridVendedoresDBTableView1DblClick(
  Sender: TObject);
begin
  if Modo = Seleccionar then
    actSeleccionar.Execute
  else
    actModificar.Execute;
end;

procedure TfrVendedores.actComisionesExecute(Sender: TObject);
begin
  Contenido := TfrComisionesVendedores.Create(Self);
  Contenido.Modo := Consultar;
end;

procedure TfrVendedores.BuscarPropertiesChange(Sender: TObject);
begin
  FiltrarGrid(gridVendedores, Buscar.Text);  
end;

end.
