unit uViewDireccionEntregaContratoCliente;

interface

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

type
  IViewDireccionEntregaContratoCliente = interface(IViewBase)
  ['{7467855C-066F-4A60-B88F-2837C8050B1E}']
    function GetContratoCliente: IBizContratoCliente;
    procedure SetContratoCliente(const Value: IBizContratoCliente);
    property ContratoCliente: IBizContratoCliente read GetContratoCliente write SetContratoCliente;
  end;

  TfrViewDireccionEntregaContratoCliente = class(TfrViewBase, IViewDireccionEntregaContratoCliente)
    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 : IBizContratoCliente;
    FController : IContratosClienteController;
    function GetContratoCliente: IBizContratoCliente;
    procedure SetContratoCliente(const Value: IBizContratoCliente);
    procedure RefrescarDireccion;
  public
    property ContratoCliente: IBizContratoCliente read GetContratoCliente  write SetContratoCliente;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

implementation

{$R *.dfm}

uses
  uEditorRegistryUtils;

procedure TfrViewDireccionEntregaContratoCliente.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 TfrViewDireccionEntregaContratoCliente.Create(AOwner: TComponent);
begin
  inherited;
  FPedido := NIL;

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

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

function TfrViewDireccionEntregaContratoCliente.GetContratoCliente: IBizContratoCliente;
begin
  Result := FPedido;
end;

procedure TfrViewDireccionEntregaContratoCliente.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 TfrViewDireccionEntregaContratoCliente.SetContratoCliente(
  const Value: IBizContratoCliente);
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.
