unit uPluginPedidosProveedor;

interface

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

type
  TPluginPedidosProveedor = class(TModuleController, IMCPedidosProveedor)
    actPedidosProveedor: TAction;
    ExtraImages: TPngImageList;
    LargeImages: TPngImageList;
    MainMenu: TMainMenu;
    ModuleActionList: TActionList;
    SmallImages: TPngImageList;
    Compras1: TMenuItem;
    Pedidosaproveedor1: TMenuItem;
    procedure actPedidosProveedorExecute(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure VerPedidos(const ID_Contrato: Integer;
      const AReferenciaContrato : String = ''; const ANombreCliente : String = '');

  end;

implementation

{$R *.dfm}

uses
  Forms, Dialogs, SysUtils, cxControls,
  uPedidosProveedorController, uBizPedidosProveedor, uPedidosProveedorViewRegister;

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

exports
  GetModule name GET_MODULE_FUNC;

procedure TPluginPedidosProveedor.actPedidosProveedorExecute(Sender: TObject);
var
  APedidosProveedorController : IPedidosProveedorController;
  APedidosProveedor : IBizPedidoProveedor;

begin
  APedidosProveedorController := TPedidosProveedorController.Create;
  APedidosProveedor := (APedidosProveedorController.BuscarTodos as IBizPedidoProveedor);
  APedidosProveedorController.VerTodos(APedidosProveedor);
end;

constructor TPluginPedidosProveedor.Create(AOwner: TComponent);
begin
  inherited;
  ModuleName := MODULENAME_PEDIDOS_PROVEEDOR;
  uPedidosProveedorViewRegister.RegisterViews;
end;

destructor TPluginPedidosProveedor.Destroy;
begin
  uPedidosProveedorViewRegister.UnregisterViews;
  inherited;
end;

procedure TPluginPedidosProveedor.VerPedidos(const ID_Contrato: Integer;
  const AReferenciaContrato, ANombreCliente: String);
var
  APedidosController : IPedidosProveedorController;
  APedidos : IBizPedidoProveedor;
  AText : String;
begin
  AText := Format('Lista de pedidos a proveedor del contrato %s - %s', [AReferenciaContrato, ANombreCliente]);
  APedidosController := TPedidosProveedorController.Create;
  try
    ShowHourglassCursor;
    try
      APedidos := APedidosController.BuscarDelContrato(ID_Contrato);
    finally
      HideHourglassCursor;
    end;
    APedidosController.VerTodos(APedidos, True, AText);
  finally
    APedidos := NIL;
    APedidosController := NIL;
  end;
end;

initialization
  RegisterModuleClass(TPluginPedidosProveedor);

finalization
  UnRegisterModuleClass(TPluginPedidosProveedor);

end.
