{
===============================================================================
  Copyright (©) 2007. 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: 
  Versión actual: 1.0.0
  Fecha versión actual: 
===============================================================================
  Modificaciones:

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

unit uEditorElegirFacturasCliente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage,
  JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
  ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid,
  JvExComCtrls, JvStatusBar,
  ComCtrls, TB2ExtItems, TBXExtItems, TBX,
  TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
  JvNavigationPane, uViewBarraSeleccion, JvgWizardHeader, StdCtrls,

  uViewFacturasCliente, uEditorFacturasCliente, uBizFacturasCliente, uIEditorElegirFacturasCliente,
  Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls,
  cxContainer, cxEdit, cxTextEdit, TBXDkPanels, JSDialog, uDAInterfaces;


type
  TfEditorElegirFacturasCliente = class(TfEditorFacturasCliente, IEditorElegirFacturasCliente)
    frViewBarraSeleccion1: TfrViewBarraSeleccion;
    JvgWizardHeader1: TJvgWizardHeader;
    EditorSeleccionActionList: TActionList;
    actBuscar2: TAction;
    actQuitarFiltro2: TAction;
    actAnchoAuto2: TAction;
    procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject);
    procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
    procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure actAnchoAuto2Execute(Sender: TObject);
  protected
    procedure SetMultiSelect (AValue : Boolean);
    function GetMultiSelect : Boolean;
    function GetFacturasClienteSeleccionados: IBizFacturaCliente;
    procedure SetViewGrid(const Value: IViewGridBase); override;
    procedure SetMensaje (const AValue: String);
    function GetMensaje: String;
  public
    property Mensaje : String read GetMensaje write SetMensaje;
    property FacturasClienteSeleccionados: IBizFacturaCliente read GetFacturasClienteSeleccionados;
    property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
  end;

implementation

uses
  uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils,
  uGridStatusUtils, uDialogUtils, uEditorBase, uFacturasClienteController, uDateUtils;

{$R *.dfm}

{ TfEditorElegirFacturasCliente }

procedure TfEditorElegirFacturasCliente.actAnchoAuto2Execute(Sender: TObject);
begin
  inherited;
  actAnchoAuto.Execute;
end;

procedure TfEditorElegirFacturasCliente.FormShow(Sender: TObject);
begin
  inherited;
  EditorActionList.State := asSuspended;

  frViewFacturasCliente1.frViewFiltroBase1.edtFechaIniFiltro.EditValue := darFechaPrimerDia(now);
  frViewFacturasCliente1.frViewFiltroBase1.edtFechaFinFiltro.EditValue := darFechaUltimoDia(now);
end;

procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actCancelarExecute(
  Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actSeleccionarExecute(
  Sender: TObject);
begin
  inherited;
  ModalResult := mrOk;
end;

procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actSeleccionarUpdate(
  Sender: TObject);
begin
  inherited;
  (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0)
end;

function TfEditorElegirFacturasCliente.GetFacturasClienteSeleccionados: IBizFacturaCliente;
begin
  SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords);
  // En SelectedRecords tengo los ID de las filas seleccionadas del grid
  Result := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente;
end;

function TfEditorElegirFacturasCliente.GetMensaje: String;
begin
  Result := JvgWizardHeader1.Comments.Text;
end;

function TfEditorElegirFacturasCliente.GetMultiSelect: Boolean;
begin
  Result := ViewGrid.MultiSelect;
end;

procedure TfEditorElegirFacturasCliente.SetMensaje(const AValue: String);
begin
  JvgWizardHeader1.Comments.Text := AValue;
end;

procedure TfEditorElegirFacturasCliente.SetMultiSelect(AValue: Boolean);
begin
  ViewGrid.MultiSelect := AValue;
end;

procedure TfEditorElegirFacturasCliente.SetViewGrid(const Value: IViewGridBase);
begin
  inherited;
  ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute;
end;

end.
