unit uViewDireccionEntregaPresupuestoCliente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, uViewBase, uBizPresupuestosCliente, cxGraphics, dxLayoutControl, cxMemo,
  cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit,
  cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable,
  ActnList, uPresupuestosClienteController, Buttons, cxDBEdit, uDAInterfaces;

type
  IViewDireccionEntregaPresupuestoCliente = interface(IViewBase)
  ['{7467855C-066F-4A60-B88F-2837C8050B1E}']
    function GetPresupuestoCliente: IBizPresupuestoCliente;
    procedure SetPresupuestoCliente(const Value: IBizPresupuestoCliente);
    property PresupuestoCliente: IBizPresupuestoCliente read GetPresupuestoCliente write SetPresupuestoCliente;
  end;

  TfrViewDireccionEntregaPresupuestoCliente = class(TfrViewBase, IViewDireccionEntregaPresupuestoCliente)
    dxLayoutControl1: TdxLayoutControl;
    dxLayoutGroup1: TdxLayoutGroup;
    dsPedido: TDADataSource;
    dsAlmacenes: TDADataSource;
    dxLayoutControl1Item1: TdxLayoutItem;
    eCalle: TcxDBTextEdit;
    dxLayoutControl1Item2: TdxLayoutItem;
    ePoblacion: TcxDBTextEdit;
    dxLayoutControl1Item3: TdxLayoutItem;
    eProvincia: TcxDBTextEdit;
    dxLayoutControl1Item4: TdxLayoutItem;
    eCodigoPostal: TcxDBTextEdit;
    dxLayoutControl1Item5: TdxLayoutItem;
    eTlfTrabajo: TcxDBTextEdit;
    dxLayoutControl1Item6: TdxLayoutItem;
    ePersonaContacto: TcxDBTextEdit;
    dxLayoutControl1Group3: TdxLayoutGroup;
    dxLayoutControl1Group1: TdxLayoutGroup;
    dxLayoutControl1Group5: TdxLayoutGroup;
    dxLayoutControl1Group4: TdxLayoutGroup;
    procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
  protected
//    FAlmacenesController : IAlmacenesController;
//    FAlmacenes: IBizAlmacen;
    FPedido : IBizPresupuestoCliente;
    FController : IPresupuestosClienteController;
    function GetPresupuestoCliente: IBizPresupuestoCliente;
    procedure SetPresupuestoCliente(const Value: IBizPresupuestoCliente);
    procedure RefrescarDireccion;
  public
    property PresupuestoCliente: IBizPresupuestoCliente read GetPresupuestoCliente  write SetPresupuestoCliente;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

implementation

{$R *.dfm}

uses
  uEditorRegistryUtils;

procedure TfrViewDireccionEntregaPresupuestoCliente.cbListaPropertiesValidate(
  Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
  var Error: Boolean);
begin
{  if Assigned(FPedido) and (FPedido.ID_ALMACEN <> FAlmacenes.ID) then
  begin
    FPedido.Edit;
    FPedido.CALLE := FAlmacenes.CALLE;
    FPedido.POBLACION := FAlmacenes.POBLACION;
    FPedido.POBLACION := FAlmacenes.POBLACION;
    FPedido.PROVINCIA := FAlmacenes.PROVINCIA;
    FPedido.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL;
    FPedido.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO;
    FPedido.TELEFONO := FAlmacenes.TELEFONO;
    RefrescarDireccion;
  end;}
end;

constructor TfrViewDireccionEntregaPresupuestoCliente.Create(AOwner: TComponent);
begin
  inherited;
  FPedido := NIL;

  {  FController := TPresupuestosClienteController.Create;
  FAlmacenesController := TAlmacenesController.Create;
  FAlmacenes := FAlmacenesController.BuscarTodos;
  FAlmacenes.DataTable.Active := True;
  dsAlmacenes.DataTable := FAlmacenes.DataTable;}
end;

destructor TfrViewDireccionEntregaPresupuestoCliente.Destroy;
begin
{  cbLista.Properties.OnValidate := Nil;
  FAlmacenesController := Nil;
  FAlmacenes := Nil;
  FController := NIL;
}
  FPedido := NIL;
  inherited;
end;

function TfrViewDireccionEntregaPresupuestoCliente.GetPresupuestoCliente: IBizPresupuestoCliente;
begin
  Result := FPedido;
end;

procedure TfrViewDireccionEntregaPresupuestoCliente.RefrescarDireccion;
begin
{  memDireccion.Lines.Clear;
  if Assigned(FPedido) then
  begin
    memDireccion.Lines.Add(FPedido.CALLE);
    memDireccion.Lines.Add(FPedido.CODIGO_POSTAL + ' ' + FPedido.POBLACION);
    memDireccion.Lines.Add(FPedido.PROVINCIA);
  end;}
end;

procedure TfrViewDireccionEntregaPresupuestoCliente.SetPresupuestoCliente(
  const Value: IBizPresupuestoCliente);
begin

  FPedido := Value;
  if Assigned(FPedido) then
    dsPedido.DataTable := FPedido.DataTable
  else
    dsPedido.DataTable := NIL;
    
{  cbLista.Properties.OnValidate := NIL;
  dsPedido.DataTable := nil;

  FPedido := Value;

  if not FPedido.EsNuevo then
     RefrescarDireccion;

  // Esto al final para que no salten los eventos del cxComboBox
  dsPedido.DataTable := FPedido.DataTable;
  cbLista.Properties.OnValidate := cbListaPropertiesValidate;}
end;

end.
