unit uPluginFacturasProveedor;

interface

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

type
  TPluginFacturasProveedor = class(TModuleController, IMCFacturasProveedor)
    actFacturasProveedor: TAction;
    ExtraImages: TPngImageList;
    LargeImages: TPngImageList;
    MainMenu: TMainMenu;
    ModuleActionList: TActionList;
    SmallImages: TPngImageList;
    Compras1: TMenuItem;
    Facturasdeproveedor1: TMenuItem;
    procedure actFacturasProveedorExecute(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure VerFacturasContrato(Const ID_Contrato: Integer; Ref_Contrato: String = ''; NomCLi_Contrato: String = '');
  end;

implementation

{$R *.dfm}

uses
  Forms, Dialogs, SysUtils, cxControls,
  uFacturasProveedorController, uBizFacturasProveedor, uFacturasProveedorViewRegister;

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

exports
  GetModule name GET_MODULE_FUNC;

procedure TPluginFacturasProveedor.actFacturasProveedorExecute(Sender: TObject);
var
  AFacturasProveedorController : IFacturasProveedorController;
  AFacturasProveedor : IBizFacturaProveedor;

begin
  AFacturasProveedorController := TFacturasProveedorController.Create;
  AFacturasProveedor := (AFacturasProveedorController.BuscarTodos as IBizFacturaProveedor);
  AFacturasProveedorController.VerTodos(AFacturasProveedor);
end;

constructor TPluginFacturasProveedor.Create(AOwner: TComponent);
begin
  inherited;
  ModuleName := MODULENAME_FACTURAS_PROVEEDOR;
  uFacturasProveedorViewRegister.RegisterViews;
end;

destructor TPluginFacturasProveedor.Destroy;
begin
  uFacturasProveedorViewRegister.UnregisterViews;
  inherited;
end;

procedure TPluginFacturasProveedor.VerFacturasContrato(
  const ID_Contrato: Integer; Ref_Contrato, NomCLi_Contrato: String);
var
  AFacturasProveedorController : IFacturasProveedorController;
  AFacturas : IBizFacturaProveedor;
  AText : String;
begin
  AText := Format('Lista de facturas a proveedor del contrato %s - %s', [Ref_Contrato, NomCLi_Contrato]);
  AFacturasProveedorController := TFacturasProveedorController.Create;
  try
    ShowHourglassCursor;
    try
      AFacturas := AFacturasProveedorController.BuscarTodos; // BuscarDelContrato(ID_Contrato);
    finally
      HideHourglassCursor;
    end;
    AFacturasProveedorController.VerTodos(AFacturas, True, AText);
  finally
    AFacturas := NIL;
    AFacturasProveedorController := NIL;
  end;
end;

initialization
  RegisterModuleClass(TPluginFacturasProveedor);

finalization
  UnRegisterModuleClass(TPluginFacturasProveedor);

end.
