unit uPluginAlbaranesProveedor;

interface

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

type
  TPluginAlbaranesProveedor = class(TModuleController, IMCAlbaranesProveedor)
    actAlbaranesProveedor: TAction;
    ExtraImages: TPngImageList;
    LargeImages: TPngImageList;
    MainMenu: TMainMenu;
    ModuleActionList: TActionList;
    SmallImages: TPngImageList;
    Compras1: TMenuItem;
    AlbaranesdeProveedor1: TMenuItem;
    actDevolucionesProveedor: TAction;
    rdenesdedevolucin1: TMenuItem;
    procedure actAlbaranesProveedorExecute(Sender: TObject);
    procedure actDevolucionesProveedorExecute(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure VerAlbaranes(const ID_Proveedor: Integer;
      const ANombreProveedor : String = '');
    procedure VerDevoluciones(const ID_Proveedor: Integer;
      const ANombreProveedor : String = '');
  end;

implementation

{$R *.dfm}

uses
  Forms, Dialogs, SysUtils, cxControls,
  uAlbaranesProveedorController, uBizAlbaranesProveedor, uAlbaranesProveedorViewRegister;

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

exports
  GetModule name GET_MODULE_FUNC;

procedure TPluginAlbaranesProveedor.actAlbaranesProveedorExecute(Sender: TObject);
var
  AAlbaranesProveedorController : IAlbaranesProveedorController;
  AAlbaranesProveedor : IBizAlbaranProveedor;

begin
  AAlbaranesProveedorController := TAlbaranesProveedorController.Create;
  AAlbaranesProveedor := (AAlbaranesProveedorController.BuscarAlbaranesNormales as IBizAlbaranProveedor);
  AAlbaranesProveedorController.VerTodosAlbaranes(AAlbaranesProveedor);
end;

procedure TPluginAlbaranesProveedor.actDevolucionesProveedorExecute(Sender: TObject);
var
  AAlbaranesProveedorController : IAlbaranesProveedorController;
  AAlbaranesProveedor : IBizAlbaranProveedor;

begin
  AAlbaranesProveedorController := TAlbaranesProveedorController.Create;
  AAlbaranesProveedor := (AAlbaranesProveedorController.BuscarAlbaranesDevolucion as IBizAlbaranProveedor);
  AAlbaranesProveedorController.VerTodosAlbaranesDev(AAlbaranesProveedor);
end;

constructor TPluginAlbaranesProveedor.Create(AOwner: TComponent);
begin
  inherited;
  ModuleName := MODULENAME_ALBARANES_PROVEEDOR;
  uAlbaranesProveedorViewRegister.RegisterViews;
end;

destructor TPluginAlbaranesProveedor.Destroy;
begin
  uAlbaranesProveedorViewRegister.UnregisterViews;
  inherited;
end;

procedure TPluginAlbaranesProveedor.VerAlbaranes(const ID_Proveedor: Integer;
  const ANombreProveedor: String);
var
  AAlbaranesProveedorController : IAlbaranesProveedorController;
  AAlbaranesProveedor : IBizAlbaranProveedor;
  AText : String;
begin
  AText := Format('Lista de albaranes del cliente %s', [ANombreProveedor]);
  AAlbaranesProveedorController := TAlbaranesProveedorController.Create;
  try
    ShowHourglassCursor;
    try
      AAlbaranesProveedor := AAlbaranesProveedorController.BuscarAlbaranesNormales(ID_Proveedor);
    finally
      HideHourglassCursor;
    end;
    AAlbaranesProveedorController.VerTodosAlbaranes(AAlbaranesProveedor, True, AText);
  finally
    AAlbaranesProveedor := NIL;
    AAlbaranesProveedorController := NIL;
  end;
end;


procedure TPluginAlbaranesProveedor.VerDevoluciones(const ID_Proveedor: Integer;
  const ANombreProveedor: String);
var
  AAlbaranesProveedorController : IAlbaranesProveedorController;
  AAlbaranesProveedor : IBizAlbaranProveedor;
  AText : String;
begin
  AText := Format('Lista de devoluciones del cliente %s', [ANombreProveedor]);
  AAlbaranesProveedorController := TAlbaranesProveedorController.Create;
  try
    ShowHourglassCursor;
    try
      AAlbaranesProveedor := AAlbaranesProveedorController.BuscarAlbaranesDevolucion(ID_Proveedor);
    finally
      HideHourglassCursor;
    end;
    AAlbaranesProveedorController.VerTodosAlbaranesDev(AAlbaranesProveedor, True, AText);
  finally
    AAlbaranesProveedor := NIL;
    AAlbaranesProveedorController := NIL;
  end;
end;

initialization
  RegisterModuleClass(TPluginAlbaranesProveedor);

finalization
  UnRegisterModuleClass(TPluginAlbaranesProveedor);

end.
