unit uArticulosFacturaProveedorController;

interface

uses
  uDADataTable, uArticulosController, uBizArticulos, uBizContactos;

type
  IArticulosFacturaProveedorController = interface(IArticulosController)
  ['{9B6F6963-D16F-43FE-B33F-47824A5FAFE7}']
    function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo;
  end;

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

implementation

{ TArticulosFacturaProveedorController }

uses Controls, uIEditorElegirArticulosFacturasProveedor, uIEditorElegirArticulos;

function TArticulosFacturaProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String;
  AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo;
var
  AEditor : IEditorElegirArticulosFacturasProveedor;
begin
  Result := NIL;
  CreateEditor('EditorElegirArticulosFacturaProveedor', IEditorElegirArticulosFacturasProveedor, AEditor);
  try
    with AEditor do
    begin
      Controller := Self;
      Articulos := AArticulos;
      Proveedor := AProveedor;
      MultiSelect := AMultiSelect;
      Mensaje := AMensaje;
      if IsPositiveResult(ShowModal) then
        Result := ArticulosSeleccionados;
	  Release;
    end;
  finally
    AEditor := NIL;
  end;
end;

end.
