unit uViewPresupuesto;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewBase, uBizPresupuestos, cxControls, cxContainer,
  cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, DB,
  uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls, cxGraphics, uCustomView,
  uViewDatosYSeleccionCliente, AppEvnts, dxLayoutControl, cxMemo,
  cxImageComboBox, dxLayoutLookAndFeels, cxSpinEdit, cxLabel;

type
  IViewPresupuesto = interface(IViewBase)
    ['{7FDBC909-C3F2-4778-9FE3-1D813FEA7FC1}']
    function GetPresupuesto: IBizPresupuesto;
    procedure SetPresupuesto(const Value: IBizPresupuesto);
    property Presupuesto: IBizPresupuesto read GetPresupuesto write
            SetPresupuesto;
  end;

  TfrViewPresupuesto = class(TfrViewBase, IViewPresupuesto)
    DADataSource: TDADataSource;
    dxLayoutControl1Group_Root: TdxLayoutGroup;
    dxLayoutControl1: TdxLayoutControl;
    dxLayoutControl1Item1: TdxLayoutItem;
    frViewClientePresupuesto1: TfrViewDatosYSeleccionCliente;
    dxLayoutControl1Group1: TdxLayoutGroup;
    dxLayoutControl1Group2: TdxLayoutGroup;
    dxLayoutControl1Group3: TdxLayoutGroup;
    dxLayoutControl1Group4: TdxLayoutGroup;
    dxLayoutControl1Group5: TdxLayoutGroup;
    dxLayoutControl1Group6: TdxLayoutGroup;
    dxLayoutControl1Group7: TdxLayoutGroup;
    dxLayoutControl1Group9: TdxLayoutGroup;
    dxLayoutControl1Item2: TdxLayoutItem;
    eReferencia: TcxDBTextEdit;
    dxLayoutControl1Item4: TdxLayoutItem;
    edtFechaPresupuesto: TcxDBDateEdit;
    dxLayoutControl1Item7: TdxLayoutItem;
    edtFechaDecision: TcxDBDateEdit;
    dxLayoutControl1Item8: TdxLayoutItem;
    memFormaPago: TcxDBMemo;
    dxLayoutControl1Item9: TdxLayoutItem;
    memPlazoEntrega: TcxDBMemo;
    dxLayoutControl1Item10: TdxLayoutItem;
    memObservaciones: TcxDBMemo;
    dxLayoutControl1Group10: TdxLayoutGroup;
    edtVigencia: TcxDBSpinEdit;
    dxLayoutControl1Item11: TdxLayoutItem;
    cbSituacion: TcxDBComboBox;
    dxLayoutControl1Item13: TdxLayoutItem;
    Label1: TLabel;
    dxLayoutControl1Item5: TdxLayoutItem;
    procedure edtVigenciaPropertiesChange(Sender: TObject);
    procedure edtFechaPresupuestoPropertiesChange(Sender: TObject);
    procedure cbSituacionPropertiesInitPopup(Sender: TObject);
    procedure OnCreate(Sender: TObject);
  private
    FPresupuesto: IBizPresupuesto;
  protected
    function GetPresupuesto: IBizPresupuesto;
    procedure SetPresupuesto(const Value: IBizPresupuesto);
  public
    property Presupuesto: IBizPresupuesto read GetPresupuesto write
            SetPresupuesto;
  end;

implementation

uses uBizContactos, DateUtils;

{$R *.dfm}

procedure TfrViewPresupuesto.cbSituacionPropertiesInitPopup(Sender: TObject);
begin
  inherited;
  with cbSituacion.Properties.Items do
  begin
    if Count = 0 then
    begin
      BeginUpdate;
      try
        Clear;
        AddStrings(Presupuesto.DarListaSituaciones);
      finally
        EndUpdate;
      end;
    end;
  end;
end;

procedure TfrViewPresupuesto.edtFechaPresupuestoPropertiesChange(
  Sender: TObject);
begin
  inherited;
//  lblFechaVigencia.Caption := 'Validez hasta: ' + DateToStr(DateOf(FPresupuesto.FECHA_VIGENCIA));
end;

procedure TfrViewPresupuesto.edtVigenciaPropertiesChange(Sender: TObject);
begin
  inherited;
//  lblFechaVigencia.Caption := 'Validez hasta: ' + DateToStr(DateOf(FPresupuesto.FECHA_VIGENCIA));
end;

function TfrViewPresupuesto.GetPresupuesto: IBizPresupuesto;
begin
  Result := FPresupuesto;
end;

procedure TfrViewPresupuesto.OnCreate(Sender: TObject);
begin
  frViewClientePresupuesto1.MsgElegirCliente := 'Elija el cliente al que se le realizará el presupuesto.';
end;

procedure TfrViewPresupuesto.SetPresupuesto(const Value: IBizPresupuesto);
begin
  FPresupuesto := Value;
  if Assigned(FPresupuesto) then
    DADataSource.DataTable := FPresupuesto.DataTable
  else
    DADataSource.DataTable := NIL;

  frViewClientePresupuesto1.Cliente := FPresupuesto.Cliente;
end;

end.
