unit uPluginRecibosProveedor;

interface

uses
  uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
  ImgList, Controls, PngImageList, uPlugins_Intf;

type
  TPluginRecibosProveedor = class(TModuleController, IMCRecibosProveedor)
    actRecibosProveedor: TAction;
    ExtraImages: TPngImageList;
    LargeImages: TPngImageList;
    MainMenu: TMainMenu;
    ModuleActionList: TActionList;
    SmallImages: TPngImageList;
    Compras1: TMenuItem;
    RecibosdeProveedor1: TMenuItem;
    procedure actRecibosProveedorExecute(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure VerRecibos(const ID_Proveedor: Integer;
      const ANombreProveedor : String = '');
  end;

implementation

{$R *.dfm}

uses
  Forms, Dialogs, SysUtils, cxControls, uRecibosProveedorViewRegister,
  uRecibosProveedorController, uBizRecibosProveedor;

function GetModule : TModuleController;
begin
  Result := TPluginRecibosProveedor.Create(NIL);
end;

exports
  GetModule name GET_MODULE_FUNC;

procedure TPluginRecibosProveedor.actRecibosProveedorExecute(Sender: TObject);
var
  ARecibosProveedorController : IRecibosProveedorController;
  ARecibosProveedor : IBizRecibosProveedor;

begin
  ARecibosProveedorController := TRecibosProveedorController.Create;
  ARecibosProveedor := (ARecibosProveedorController.BuscarTodos as IBizRecibosProveedor);
  ARecibosProveedorController.VerTodos(ARecibosProveedor);
end;

constructor TPluginRecibosProveedor.Create(AOwner: TComponent);
begin
  inherited;
  ModuleName := MODULENAME_RECIBOS_PROVEEDOR;
  uRecibosProveedorViewRegister.RegisterViews;
end;

destructor TPluginRecibosProveedor.Destroy;
begin
  uRecibosProveedorViewRegister.UnregisterViews;
  inherited;
end;

procedure TPluginRecibosProveedor.VerRecibos(const ID_Proveedor: Integer;
  const ANombreProveedor: String);
var
  ARecibosController : IRecibosProveedorController;
  ARecibos : IBizRecibosProveedor;
  AText : String;
begin
  AText := Format('Lista de recibos del proveedor %s', [ANombreProveedor]);
  ARecibosController := TRecibosProveedorController.Create;
  try
    ShowHourglassCursor;
    try
      ARecibos := ARecibosController.BuscarTodos(ID_Proveedor);      
    finally
      HideHourglassCursor;
    end;
    ARecibosController.VerTodos(ARecibos, True, AText);
  finally
    ARecibos := NIL;
    ARecibosController := NIL;
  end;
end;

initialization
  RegisterModuleClass(TPluginRecibosProveedor);

finalization
  UnRegisterModuleClass(TPluginRecibosProveedor);

end.
