unit uEditorActualizarTiendaWeb;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActnList, StdCtrls, ExtCtrls, uDialogBase, CheckLst,
  EasyListview, uIEditorActualizarTiendaWeb,
  uTiendaWebController, uBizTiendaWeb, MPCommonObjects,
  ImgList, PngImageList;

type
  TfEditorActualizarTiendaWeb = class(TfDialogBase, IEditorActualizarTiendaWeb)
    EasyListview1: TEasyListview;
    PngImageList1: TPngImageList;
    procedure FormShow(Sender: TObject);
    procedure actAceptarExecute(Sender: TObject);
    procedure actCancelarExecute(Sender: TObject);
    procedure actAceptarUpdate(Sender: TObject);
  private
    procedure RellenarContenidos; 
  protected
    FContenidosAct : TContenidosActualizables;
//    FTienda : IBizTiendaWeb;
//    FController : ITiendaWebController;
{    function GetTiendaWeb: IBizTiendaWeb;
    procedure SetTiendaWeb(const Value: IBizTiendaWeb);}
    function GetContenidosActualizables: TContenidosActualizables;
    procedure SetContenidosActualizables(const Value: TContenidosActualizables);
  public
//    property TiendaWeb: IBizTiendaWeb read GetTiendaWeb write SetTiendaWeb;
    property ContenidosActualizables: TContenidosActualizables read GetContenidosActualizables write SetContenidosActualizables;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

var
  fEditorActualizarTiendaWeb: TfEditorActualizarTiendaWeb;

implementation

{$R *.dfm}

{ TfEditorActualizarTiendaWeb }

procedure TfEditorActualizarTiendaWeb.actAceptarExecute(Sender: TObject);
begin
  inherited;
  ModalResult := mrOK;
end;

procedure TfEditorActualizarTiendaWeb.actAceptarUpdate(Sender: TObject);
begin
  inherited;
  //
end;

procedure TfEditorActualizarTiendaWeb.actCancelarExecute(Sender: TObject);
begin
  inherited;
  ModalResult := mrCancel;
end;

constructor TfEditorActualizarTiendaWeb.Create(AOwner: TComponent);
begin
  inherited;
  //
end;

destructor TfEditorActualizarTiendaWeb.Destroy;
begin
  //
  inherited;
end;

procedure TfEditorActualizarTiendaWeb.FormShow(Sender: TObject);
begin
  inherited;
  RellenarContenidos;
end;

function TfEditorActualizarTiendaWeb.GetContenidosActualizables: TContenidosActualizables;
var
  i: Integer;
begin
  FContenidosAct := [];
  for i := 0 to EasyListView1.Items.Count - 1 do
  begin
    if EasyListview1.Items[i].Checked then
      case EasyListview1.Items[i].Tag of
        Ord(caClientes) : FContenidosAct := FContenidosAct + [caClientes];
        Ord(caProveedores) : FContenidosAct := FContenidosAct + [caProveedores];
      end;
  end;

  Result := FContenidosAct;
end;

procedure TfEditorActualizarTiendaWeb.RellenarContenidos;
var
  AItem : TEasyItem;
begin
  inherited;

  EasyListView1.BeginUpdate;
  try
    EasyListView1.Items.Clear;
    EasyListView1.CellSizes.Tile.Width := EasyListview1.ClientWidth;

    // Clientes
    AItem := EasyListview1.Items.Add();
    with AItem do
    begin
      ImageIndex := 0;
      Captions[0] := 'Clientes';
      Captions[1] := 'Actualiza los clientes con acceso permitido a la tienda web';
      DetailCount := 2;
      Details[0] := 0;  // Columna NOMBRE;
      Details[1] := 1;  // Columna DESCRIPCION;
      Checked := (caClientes in FContenidosAct);
      Tag := Ord(caClientes);
    end;

    // Proveedores
    AItem := EasyListview1.Items.Add();
    with AItem do
    begin
      ImageIndex := 1;
      Captions[0] := 'Proveedores y artículos';
      Captions[1] := 'Actualiza los proveedores de la tienda web y sus artículos';
      DetailCount := 2;
      Details[0] := 0;  // Columna NOMBRE;
      Details[1] := 1;  // Columna DESCRIPCION;
      Checked := (caProveedores in FContenidosAct);
      Tag := Ord(caProveedores);
    end;

    // Pedidos de cliente
    {AItem := EasyListview1.Items.Add();
    with AItem do
    begin
      ImageIndex := 2;
      Captions[0] := 'Pedidos de cliente';
      Captions[1] := 'Actualiza el estado de los pedidos de cliente de la tienda web';
      DetailCount := 2;
      Details[0] := 0;  // Columna NOMBRE;
      Details[1] := 1;  // Columna DESCRIPCION;
      Checked := (caPedidosCliente in FContenidosAct);
      Tag := Ord(caPedidosCliente);
    end;}
  finally
    EasyListView1.EndUpdate;
  end
end;

procedure TfEditorActualizarTiendaWeb.SetContenidosActualizables(
  const Value: TContenidosActualizables);
begin
  FContenidosAct := Value;
end;

end.

