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.