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

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

unit uEditorTipoIVA;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Grids, DBGrids, StdCtrls, Mask, DBCtrls, DB,
  uBizTiposIVA, uTiposIVAController, 
  uDADataTable, uIEditorTipoIVA, ActnList, ExtCtrls, JvExControls, JvComponent,
  JvEnterTab, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
  cxSpinEdit, cxDBEdit, uDAInterfaces;

type
  TfEditorTipoIVA = class(TForm, IEditorTipoIVA)
    ActionList1: TActionList;
    dsTipoIVA: TDADataSource;
    actAceptar: TAction;
    actCancelar: TAction;
    bAceptar: TButton;
    bCancelar: TButton;
    eReferencia: TDBEdit;
    eDescripcion: TDBEdit;
    Label1: TLabel;
    Bevel1: TBevel;
    Label2: TLabel;
    Label3: TLabel;
    Label8: TLabel;
    Bevel4: TBevel;
    Label4: TLabel;
    actCerrar: TAction;
    JvEnterAsTab1: TJvEnterAsTab;
    eIVA: TcxDBSpinEdit;
    eRE: TcxDBSpinEdit;
    procedure FormShow(Sender: TObject);

    procedure actAceptarExecute(Sender: TObject);
    procedure actCancelarExecute(Sender: TObject);
    procedure actCerrarExecute(Sender: TObject);
  protected
    FTipoIVA: IBizTipoIVA;
    FController : ITiposIVAController;
    function GetTipoIVA: IBizTipoIVA;
    procedure SetTipoIVA(const Value: IBizTipoIVA);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property TipoIVA: IBizTipoIVA read GetTipoIVA write SetTipoIVA;
  end;


implementation
{$R *.dfm}

{ TfEditorTiposIVA }

uses
  uDialogUtils;

function TfEditorTipoIVA.GetTipoIVA: IBizTipoIVA;
begin
  Result := FTipoIVA;
end;

procedure TfEditorTipoIVA.SetTipoIVA(const Value: IBizTipoIVA);
begin
  FTipoIVA := Value;
  if Assigned(FTipoIVA) then
  begin
    dsTipoIVA.DataTable := FTipoIVA.DataTable;
    dsTipoIVA.DataTable.Open;
  end
  else begin
    dsTipoIVA.DataTable := NIL;
  end;
end;


constructor TfEditorTipoIVA.Create(AOwner: TComponent);
begin
  inherited;
  FController := TTiposIVAController.Create;
end;

destructor TfEditorTipoIVA.Destroy;
begin
  FTipoIVA := NIL;
  FController := NIL;
  inherited;
end;

procedure TfEditorTipoIVA.actAceptarExecute(Sender: TObject);
begin
  FController.Guardar(FTipoIVA);
  actCerrar.Execute;
end;

procedure TfEditorTipoIVA.actCancelarExecute(Sender: TObject);
begin
  FController.DescartarCambios(FTipoIVA);
  actCerrar.Execute;
end;

procedure TfEditorTipoIVA.actCerrarExecute(Sender: TObject);
begin
  Close;
end;

procedure TfEditorTipoIVA.FormShow(Sender: TObject);
begin
  if not FTipoIVA.DataTable.Active then
     FTipoIVA.DataTable.Active := True;

  if FTipoIVA.EsNuevo then
    Self.Caption := 'Nuevo tipo de IVA'
  else
    Self.Caption := 'Modificar tipo de IVA';
end;

end.
