unit uArticulosPedidoProveedorController;

interface

uses
  uDADataTable, uArticulosController, uBizArticulos, uBizContactos;

type
  IArticulosPedidoProveedorController = interface(IArticulosController)
  ['{8C8A8D8D-82D2-4434-81C3-36E4F43F3B3E}']
    function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; 
  end;

  TArticulosPedidoProveedorController = class(TArticulosController, IArticulosPedidoProveedorController)
  public
    function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; overload;
  end;

implementation

{ TArticulosPedidoProveedorController }

uses Controls, cxControls, uIEditorElegirArticulosPedidosProveedor, uIEditorElegirArticulos;

function TArticulosPedidoProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String;
  AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo;
var
  AEditor : IEditorElegirArticulosPedidosProveedor;
begin
  Result := NIL;

  CreateEditor('EditorElegirArticulosPedidoProveedor', IEditorElegirArticulosPedidosProveedor, AEditor);
  if Assigned(AEditor) then
    try
       AEditor.Controller := Self;
       AEditor.Articulos := AArticulos;
       AEditor.Proveedor := AProveedor;
       AEditor.MultiSelect := AMultiSelect;
       AEditor.Mensaje := AMensaje;
       if IsPositiveResult(AEditor.ShowModal) then
          Result := AEditor.ArticulosSeleccionados;
    finally
       AEditor.Release;
       AEditor := NIL;
    end;
end;

end.
