unit uViewDetallesPresupuestoCliente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewDetallesArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter,
  cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
  uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit,
  Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns,
  JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
  uControllerDetallesArticulos, uBizPresupuestosCliente, uDAInterfaces, Buttons,
  Mask, DBCtrls;

type
  IViewDetallesPresupuestoCliente = interface(IViewDetallesArticulos)
  ['{3AF39FF4-291E-4E87-AF9A-93C240A744CD}']
    function GetPresupuesto: IBizPresupuestoCliente;
    procedure SetPresupuesto(const Value: IBizPresupuestoCliente);
    property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
  end;

  TfrViewDetallesPresupuestoCliente = class(TfrViewDetallesArticulos, IViewDetallesPresupuestoCliente)
    procedure BitBtn1Click(Sender: TObject);
  protected
    FPresupuesto: IBizPresupuestoCliente;
    function GetPresupuesto: IBizPresupuestoCliente;
    procedure SetPresupuesto(const Value: IBizPresupuestoCliente);

    procedure AnadirArticulosInterno; override;
		procedure RellenarArticulosInterno; override;    
    function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;

  public
    property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
  end;

implementation
{$R *.dfm}

uses uDetallesPresupuestoClienteController;

{ TfrViewDetallesPresupuestoProveedor }

function TfrViewDetallesPresupuestoCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
  Result := (Controller as IDetallesPresupuestoClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Presupuesto.Cliente.ID);
end;

procedure TfrViewDetallesPresupuestoCliente.AnadirArticulosInterno;
begin
  (Controller as IDetallesPresupuestoClienteController).AnadirArticulos(Detalles, Presupuesto.Cliente);
end;

procedure TfrViewDetallesPresupuestoCliente.BitBtn1Click(Sender: TObject);
begin
  inherited;
FPresupuesto.Detalles.Insert;
end;

function TfrViewDetallesPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente;
begin
  Result := FPresupuesto; 
end;

procedure TfrViewDetallesPresupuestoCliente.RellenarArticulosInterno;  
begin  
  (Controller as IDetallesPresupuestoClienteController).AnadirArticulos(Detalles, Presupuesto.Cliente, False);  
end; 

procedure TfrViewDetallesPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente);
begin
  FPresupuesto := Value;
end;

end.
