This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Modulos/Inventario/Views/uEditorInventario.pas
2007-06-11 15:35:41 +00:00

262 lines
7.2 KiB
ObjectPascal

unit uEditorInventario;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
uCustomEditor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
uViewInventario, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase,
uIEditorInventario, uBizInventario, uViewGridBase, uInventarioController,
JvExComCtrls, JvStatusBar;
type
TfEditorInventario = class(TfEditorGridBase, IEditorInventario)
actRecibirPedido: TAction;
actTrasladar: TAction;
actReservar: TAction;
actLiberar: TAction;
TBXSeparatorItem17: TTBXSeparatorItem;
rasladar1: TMenuItem;
Liberar1: TMenuItem;
Reservar1: TMenuItem;
frViewInventario1: TfrViewInventario;
procedure actModificarExecute(Sender: TObject);
procedure actRecibirPedidoExecute(Sender: TObject);
procedure actTrasladarExecute(Sender: TObject);
procedure actReservarExecute(Sender: TObject);
procedure actLiberarExecute(Sender: TObject);
procedure actTrasladarUpdate(Sender: TObject);
procedure actReservarUpdate(Sender: TObject);
procedure actLiberarUpdate(Sender: TObject);
procedure FormShow(Sender: TObject);
protected
FInventario: IBizInventario;
FController : IInventarioController;
function GetInventario: IBizInventario;
procedure SetInventario(const Value: IBizInventario);
function GetController : IInventarioController; virtual;
procedure SetController (const Value : IInventarioController); virtual;
function GetArticulosSeleccionados: IBizInventario;
procedure NuevoInterno; override;
procedure EliminarInterno; override;
public
property Inventario: IBizInventario read GetInventario write SetInventario;
property Controller : IInventarioController read GetController write SetController;
property ArticulosSeleccionados: IBizInventario read GetArticulosSeleccionados;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure PonerTitulos(const ATitulo: string = ''); override;
end;
implementation
{$R *.DFM}
uses uGridUtils, uDataModuleInventario, uDataModuleUsuarios, uEditorBase;
{, uDBSelectionList, uDataModulePedidosProveedor,
uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes;
}
{ TfEditorInventario }
{
***************************** TfEditorInventario *****************************
}
constructor TfEditorInventario.Create(AOwner: TComponent);
begin
inherited;
ViewGrid := frViewInventario1;
end;
destructor TfEditorInventario.Destroy;
begin
FInventario := NIL;
inherited;
end;
procedure TfEditorInventario.EliminarInterno;
var
AArticulos: IBizInventario;
begin
if (Application.MessageBox('¿Desea realizar la salida del almacén del artículo/os seleccionado/os?', 'Confirmación', MB_YESNO) = IDYES) then
begin
// AArticulos := ArticulosSeleccionados;
// if FController.Eliminar(AArticulos, True) then
if FController.Eliminar(Inventario, False, True) then
RefrescarInterno;
end;
end;
procedure TfEditorInventario.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(ViewGrid) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Inventario) then
raise Exception.Create('No hay ningún inventario asignado');
Inventario.DataTable.Active := True;
ViewGrid.GotoFirst;
end;
procedure TfEditorInventario.actModificarExecute(Sender: TObject);
begin
// inherited;
end;
function TfEditorInventario.GetArticulosSeleccionados: IBizInventario;
begin
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Inventario as IBizInventario).SelectedRecords.SelectedRecordsObj);
// En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid
Result := Controller.ExtraerSeleccionados(Inventario);
end;
function TfEditorInventario.GetController: IInventarioController;
begin
Result := FController;
end;
function TfEditorInventario.GetInventario: IBizInventario;
begin
Result := FInventario;
end;
procedure TfEditorInventario.NuevoInterno;
begin
FController.RecibirArticulos(ViewGrid._Grid.ActiveLevel.Tag);
RefrescarInterno;
end;
procedure TfEditorInventario.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
FTitulo := 'Inventario de articulos en almacenes - ' + dmUsuarios.EmpresaActual.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
procedure TfEditorInventario.SetController(const Value: IInventarioController);
begin
FController := Value;
end;
procedure TfEditorInventario.SetInventario(const Value: IBizInventario);
begin
FInventario := Value;
dsDataTable.DataTable := FInventario.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewInventario).Inventario := FInventario;
end;
procedure TfEditorInventario.actRecibirPedidoExecute(Sender: TObject);
//var
// APedido: IBizPedidosProveedor;
begin
inherited;
{
APedido := dmPedidos.GetItemsPendientesRecepcion;
try
if APedido.ShowForSelect = mrOK then
begin
Inventario.RecibirArticulos(APedido, ViewGrid.Grid.ActiveLevel.Tag);
end;
finally
APedido := NIL;
end;
}
end;
procedure TfEditorInventario.actTrasladarExecute(Sender: TObject);
var
AArticulos: IBizInventario;
begin
// AArticulos := ArticulosSeleccionados;
// if FController.Eliminar(AArticulos, True) then
if FController.Trasladar(Inventario, False) then
RefrescarInterno;
end;
procedure TfEditorInventario.actReservarExecute(Sender: TObject);
//var
// AMontaje: IBizMontaje;
begin
inherited;
{
AMontaje := dmMontajes.GetItemsPendientes(sitPendientes);
try
if AMontaje.ShowForSelect = mrOK then
begin
Inventario.Reservar(AMontaje);
ViewGrid.RefreshGrid;
ViewGrid.SyncFocusedRecordsFromDataSet;
end;
finally
AMontaje := NIL;
end;
}
end;
procedure TfEditorInventario.actLiberarExecute(Sender: TObject);
begin
{
if (MessageDlg('¿Está seguro que desea liberar los artículos seleccionados?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
Inventario.Liberar;
ViewGrid.RefreshGrid;
ViewGrid.SyncFocusedRecordsFromDataSet;
}
end;
procedure TfEditorInventario.actTrasladarUpdate(Sender: TObject);
begin
inherited;
{
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
}
end;
procedure TfEditorInventario.actReservarUpdate(Sender: TObject);
begin
inherited;
{
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
}
end;
procedure TfEditorInventario.actLiberarUpdate(Sender: TObject);
begin
inherited;
{
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
}
end;
end.