unit uViewPedidosProveedor;

interface

uses
  uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter,
  cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
  dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
  dxPSEdgePatterns, cxImageComboBox, ImgList, Controls, PngImageList,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGridLnk,
  uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes,
  cxGrid,
  uBizPedidosProveedor;

type
  IViewPedidosProveedor = interface(IViewGrid)
  ['{DF3B0989-5449-4F3A-8EF3-69CE35A62AAA}']
    function GetPedidos: IBizPedidoProveedor;
    procedure SetPedidos(const Value: IBizPedidoProveedor);
    property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos;
  end;

  TfrViewPedidosProveedor = class(TfrViewGrid, IViewPedidosProveedor)
    cxGridDBTableView1: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    cxGridLevel2: TcxGridLevel;
    cxGridLevel3: TcxGridLevel;
    PngImageList: TPngImageList;
    cxGridViewCODIGO: TcxGridDBColumn;
    cxGridViewREFERENCIA: TcxGridDBColumn;
    cxGridViewFECHAPEDIDO: TcxGridDBColumn;
    cxGridViewFECHACONFIRMACION: TcxGridDBColumn;
    cxGridViewSITUACION: TcxGridDBColumn;
    cxGridViewFECHAENTREGA: TcxGridDBColumn;
    cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn;
    cxGridViewNOMBRE: TcxGridDBColumn;
    procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
  protected
    FNivelFiltrado : TcxFilterCriteriaItemList;
    FPedidos: IBizPedidoProveedor;
    function GetPedidos: IBizPedidoProveedor;
    procedure SetPedidos(const Value: IBizPedidoProveedor);
    procedure FilterChanged(Sender : TObject); override;
  public
    property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos;
  end;

implementation

uses SysUtils, windows, uDataModulePedidosProveedor, schPedidosProveedorClient_Intf;

{$R *.dfm}

procedure TfrViewPedidosProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
  inherited;
  FreeAndNil(FNivelFiltrado);
  FilterChanged(self);
end;

procedure TfrViewPedidosProveedor.FilterChanged(Sender: TObject);
var
  AItemList: TcxFilterCriteriaItemList;
  AItemList2: TcxFilterCriteriaItemList;
begin
  inherited;

  cxGridView.DataController.Filter.BeginUpdate;

  AItemList := cxGridView.DataController.Filter.Root;
  AItemList2 := AItemList.AddItemList(fboAnd);
  FNivelFiltrado := AItemList2;

  case cxGrid.ActiveLevel.Index of
    1   : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PENDIENTE, SITUACION_PEDIDO_PENDIENTE);
    2   : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PARCIAL, SITUACION_PEDIDO_PARCIAL);
    3   : AItemList2.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_RECIBIDO, SITUACION_PEDIDO_RECIBIDO);
  end;
  AItemList := AItemList2;

  if cxGridView.DataController.Filter.IsEmpty
  then cxGridView.DataController.Filter.Active := False
  else cxGridView.DataController.Filter.Active := True;

  cxGridView.DataController.Filter.EndUpdate;
  cxGrid.ActiveLevel.GridView := cxGridView;
end;

function TfrViewPedidosProveedor.GetPedidos: IBizPedidoProveedor;
begin
  Result := FPedidos;
end;

procedure TfrViewPedidosProveedor.SetPedidos(const Value: IBizPedidoProveedor);
begin
  FPedidos := Value;
  if Assigned(FPedidos) then
    dsDataSource.DataTable := FPedidos.DataTable;
end;

end.
