unit uEditorArticulosAlmacen; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, uCustomEditor, uEditorGrid, uBizArticulos, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, uViewArticulosAlmacen, Menus, DB, uDADataTable, ComCtrls, uViewGrid, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, JvComponentBase; type IEditorArticulosAlmacen = interface(IEditorGrid) ['{24939779-BF07-43C4-AA66-FD59CD2A0692}'] function GetArticulosAlmacen: IBizArticulosAlmacen; procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen); property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write SetArticulosAlmacen; end; TfEditorArticulosAlmacen = class(TfEditorGrid, IEditorArticulosAlmacen) actRecibirPedido: TAction; actTrasladar: TAction; actReservar: TAction; actLiberar: TAction; TBXSeparatorItem16: TTBXSeparatorItem; TBXSeparatorItem17: TTBXSeparatorItem; rasladar1: TMenuItem; Liberar1: TMenuItem; Reservar1: TMenuItem; frViewBarraSeleccion: TfrViewBarraSeleccion; procedure actEliminarExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actNuevoExecute(Sender: TObject); procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject); procedure frViewBarraSeleccionbCancelarClick(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 frViewBarraSeleccionactCancelarExecute(Sender: TObject); private FArticulosAlmacen: IBizArticulosAlmacen; protected function GetArticulosAlmacen: IBizArticulosAlmacen; function GetSelectionBarVisible: Boolean; procedure SetArticulosAlmacen(const Value: IBizArticulosAlmacen); procedure SetSelectionBarVisible(const Value: Boolean); procedure SetViewGrid(const Value: IViewGrid); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ArticulosAlmacen: IBizArticulosAlmacen read GetArticulosAlmacen write SetArticulosAlmacen; property SelectionBarVisible: Boolean read GetSelectionBarVisible write SetSelectionBarVisible; end; var fEditorArticulosAlmacen : TfEditorArticulosAlmacen; implementation uses uDataModuleArticulos, uEditorUtils, uDBSelectionList, uDataModulePedidosProveedor, uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes; {$R *.DFM} function ShowEditorArticulosAlmacen (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorArticulosAlmacen; begin AEditor := TfEditorArticulosAlmacen.Create(Application); try AEditor.ArticulosAlmacen := (ABizObject as IBizArticulosAlmacen); Result := AEditor.ShowModal; finally AEditor.Release; end; end; function ShowSelectEditorArticulosAlmacen (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorArticulosAlmacen; begin AEditor := TfEditorArticulosAlmacen.Create(Application); try AEditor.ArticulosAlmacen := (ABizObject as IBizArticulosAlmacen); AEditor.SelectionBarVisible := True; Result := AEditor.ShowModal; finally AEditor.Release; end; end; { TfEditorArticulosAlmacen } { ***************************** TfEditorArticulosAlmacen ***************************** } constructor TfEditorArticulosAlmacen.Create(AOwner: TComponent); begin inherited; ViewGrid := CreateView(TfrViewArticulosAlmacen) as IViewArticulosAlmacen; end; destructor TfEditorArticulosAlmacen.Destroy; begin FArticulosAlmacen := NIL; inherited; end; procedure TfEditorArticulosAlmacen.actEliminarExecute(Sender: TObject); var aAux : ISelectedRowList; aPregunta : String; begin aPregunta := '¿Desea realizar la salida del almacén de este artículo?'; if Supports(ArticulosAlmacen, ISelectedRowList, aAux) then if (aAux.SelectedRows.Count > 1) then aPregunta := '¿Desea realizar la salida del almacén de los artículos que ha seleccionado?'; if (Application.MessageBox(PAnsiChar(aPregunta), 'Confirmación', MB_YESNO) = IDYES) then begin //inherited; ArticulosAlmacen.Eliminar; ViewGrid.RefreshGrid; end; end; procedure TfEditorArticulosAlmacen.actModificarExecute(Sender: TObject); begin // inherited; end; procedure TfEditorArticulosAlmacen.actNuevoExecute(Sender: TObject); begin ArticulosAlmacen.RecibirArticulos(ViewGrid.Grid.ActiveLevel.Tag); ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; procedure TfEditorArticulosAlmacen.frViewBarraSeleccionactSeleccionarExecute( Sender: TObject); begin inherited; ViewGrid.SyncFocusedRecordsFromGrid; ModalResult := mrOK; end; procedure TfEditorArticulosAlmacen.frViewBarraSeleccionbCancelarClick(Sender: TObject); begin inherited; frViewBarraSeleccion.actCancelarExecute(Sender); end; function TfEditorArticulosAlmacen.GetArticulosAlmacen: IBizArticulosAlmacen; begin Result := FArticulosAlmacen; end; function TfEditorArticulosAlmacen.GetSelectionBarVisible: Boolean; begin Result := frViewBarraSeleccion.Visible end; procedure TfEditorArticulosAlmacen.SetArticulosAlmacen(const Value: IBizArticulosAlmacen); begin FArticulosAlmacen := Value; dsDataTable.DataTable := FArticulosAlmacen.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewArticulosAlmacen).ArticulosAlmacen := ArticulosAlmacen; end; procedure TfEditorArticulosAlmacen.SetSelectionBarVisible(const Value: Boolean); begin frViewBarraSeleccion.Visible := True; ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute; end; procedure TfEditorArticulosAlmacen.SetViewGrid(const Value: IViewGrid); begin inherited; if Assigned(ViewGrid) and Assigned(ArticulosAlmacen) then (ViewGrid as IViewArticulosAlmacen).ArticulosAlmacen := ArticulosAlmacen; ViewGrid.OnDblClick := Nil; end; procedure TfEditorArticulosAlmacen.actRecibirPedidoExecute(Sender: TObject); var APedido: IBizPedidosProveedor; begin inherited; APedido := dmPedidos.GetItemsPendientesRecepcion; try if APedido.ShowForSelect = mrOK then begin ArticulosAlmacen.RecibirArticulos(APedido, ViewGrid.Grid.ActiveLevel.Tag); end; finally APedido := NIL; end; end; procedure TfEditorArticulosAlmacen.actTrasladarExecute(Sender: TObject); begin ArticulosAlmacen.Trasladar; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; procedure TfEditorArticulosAlmacen.actReservarExecute(Sender: TObject); var AMontaje: IBizMontaje; begin inherited; AMontaje := dmMontajes.GetItemsPendientes(sitPendientes); try if AMontaje.ShowForSelect = mrOK then begin ArticulosAlmacen.Reservar(AMontaje); ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; finally AMontaje := NIL; end; end; procedure TfEditorArticulosAlmacen.actLiberarExecute(Sender: TObject); begin if (MessageDlg('¿Está seguro que desea liberar los artículos seleccionados?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then ArticulosAlmacen.Liberar; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; procedure TfEditorArticulosAlmacen.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 TfEditorArticulosAlmacen.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 TfEditorArticulosAlmacen.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; procedure TfEditorArticulosAlmacen.frViewBarraSeleccionactCancelarExecute( Sender: TObject); begin inherited; frViewBarraSeleccion.actCancelarExecute(Sender); end; initialization RegisterEditor(IBizArticulosAlmacen, ShowEditorArticulosAlmacen, etItems); RegisterEditor(IBizArticulosAlmacen, ShowSelectEditorArticulosAlmacen, etSelectItems); finalization end.