unit uViewDetallesPedidoCliente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewDetallesArticulosParaVenta, 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,
  uControllerDetallesArticulos, uBizPedidosCliente, cxLookAndFeels,
  cxLookAndFeelPainters, cxButtonEdit, cxDropDownEdit, cxEditRepositoryItems,
  Menus, cxGridCustomPopupMenu, cxGridPopupMenu, uDAInterfaces, SpTBXItem,
  cxRichEdit, StdActns, ExtActns, TB2Item, TB2Dock, TB2Toolbar, StdCtrls,
  JvExStdCtrls, JvCombobox, JvColorCombo, uViewDetallesArticulos, Grids, DBGrids;

type
  IViewDetallesPedidoCliente = interface(IViewDetallesArticulos)
  ['{3AF39FF4-291E-4E87-AF9A-93C240A744CD}']
    function GetPedido: IBizPedidoCliente;
    procedure SetPedido(const Value: IBizPedidoCliente);
    property Pedido: IBizPedidoCliente read GetPedido write SetPedido;
  end;

  TfrViewDetallesPedidoCliente = class(TfrViewDetallesArticulosParaVenta, IViewDetallesPedidoCliente)
    cxGridViewCANTIDAD2: TcxGridDBColumn;
    procedure cxGridViewCANTIDAD2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);

  protected
    FPedido: IBizPedidoCliente;
    function GetPedido: IBizPedidoCliente;
    procedure SetPedido(const Value: IBizPedidoCliente);

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

  public
    property Pedido: IBizPedidoCliente read GetPedido write SetPedido;
  end;

implementation
{$R *.dfm}

uses uDetallesPedidoClienteController;

{ TfrViewDetallesPedidoProveedor }

function TfrViewDetallesPedidoCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
  Result := (Controller as IDetallesPedidoClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Pedido.Cliente.ID, 0);
end;

procedure TfrViewDetallesPedidoCliente.AnadirArticulosInterno;
begin
  (Controller as IDetallesPedidoClienteController).AnadirArticulos(Detalles, Pedido.Cliente, true, 0);
end;

procedure TfrViewDetallesPedidoCliente.cxGridViewCANTIDAD2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  inherited;
  (Controller as IDetallesPedidoClienteController).ModificarCantidadColores(Detalles);
end;

function TfrViewDetallesPedidoCliente.GetPedido: IBizPedidoCliente;
begin
  Result := FPedido; 
end;

procedure TfrViewDetallesPedidoCliente.RellenarArticulosInterno;
begin
  (Controller as IDetallesPedidoClienteController).AnadirArticulos(Detalles, Pedido.Cliente, False, 0);
end;

procedure TfrViewDetallesPedidoCliente.SetPedido(const Value: IBizPedidoCliente);
begin
  FPedido := Value;
end;

end.
