unit uEditorAlbaranesDevProveedor;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uEditorAlbaranesProveedor, JSDialog, Menus, DB, uDADataTable,
  JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList,
  PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, SpTBXItem,
  TB2ExtItems,  TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls,
  JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesDevProveedor,
  uDAInterfaces, dxGDIPlusClasses;

type

  TfEditorAlbaranesDevProveedor = class(TfEditorAlbaranesProveedor, IEditorAlbaranesDevProveedor)
    N4: TMenuItem;
    Acercade1: TMenuItem;
  protected
    procedure AsignarVista; override;
    procedure NuevoInterno; override;
  public
    procedure PonerTitulos(const ATitulo: string = ''); override;
    constructor Create(AOwner: TComponent); override;  
  end;

implementation
{$R *.dfm}

uses
  uDataModuleUsuarios, uViewAlbaranesDevProveedor, uFactuGES_App,
  uGenerarAlbaranesProvUtils, uBizAlbaranesProveedor;
   
{ TfEditorAlbaranesDevProveedor }

procedure TfEditorAlbaranesDevProveedor.AsignarVista;
begin
  ViewGrid := CreateView(TfrViewAlbaranesDevProveedor) as IViewAlbaranesDevProveedor;
end;

constructor TfEditorAlbaranesDevProveedor.Create(AOwner: TComponent);
begin
	inherited;

  FHeaderText := 'Lista de órdenes de devolución de proveedor';
  FWindowCaption := FHeaderText;	
end;

procedure TfEditorAlbaranesDevProveedor.NuevoInterno;
var
  Respuesta : Integer;
  AAlbaran : IBizAlbaranProveedor;
  ADevolucion : IBizAlbaranProveedor;
begin
//  inherited; <-- No llamar al padre

  Respuesta := JsNuevoAlbaranDialog.Execute;

  if Respuesta <> IDCANCEL then
  begin
    case JsNuevoAlbaranDialog.CustomButtonResult of
      200   : begin   // Utilizar un albaran
                AAlbaran := FController.ElegirAlbaranes(FController.BuscarAlbaranesNormales,
                      'Elija el albarán de proveedor que desea utilizar para dar de alta la orden de devolución.', False);
                if Assigned(AAlbaran) then
                begin
                  ADevolucion := FController.GenerarDevolucion(AAlbaran);
                  if Assigned(ADevolucion) then
                  begin
                    FController.Ver(ADevolucion);
                    actRefrescar.Execute;
                  end;
                end;
              end;
      100    : begin   // Devolución nueva vacía
                  if FController.AnadirAlbaranDev(Albaranes) then
                    FController.Ver(Albaranes);
                end;
    end;
  end;
end;

procedure TfEditorAlbaranesDevProveedor.PonerTitulos(const ATitulo: string);
var
  FTitulo : String;
begin
  FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE;
  inherited PonerTitulos(FTitulo);
end;

end.
