unit uEditorEntradaArticulosInventario; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uCustomView, uViewBase, uEditorItem, pngimage, uViewGridBase, uViewGrid, JvComponentBase, uBizInventario, uViewListaArticulosInventario, uIEditorEntradaArticulosInventario, uInventarioController, JvExComCtrls, JvStatusBar; type TfEditorEntradaArticulosInventario = class(TfEditorDBItem, IEditorEntradaArticulosInventario) frViewListaArticulos: TfrViewListaArticulosInventario; actAnadirInventario: TAction; actEliminarInventario: TAction; TBXToolbar1: TTBXToolbar; TBXItem33: TTBXItem; TBXItem34: TTBXItem; TBXSeparatorItem16: TTBXSeparatorItem; procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); procedure actAnadirInventarioExecute(Sender: TObject); procedure actEliminarInventarioExecute(Sender: TObject); private FHayCambios: Boolean; FController : IInventarioController; FArticulos: IBizInventario; function GetArticulos: IBizInventario; procedure SetArticulos(const Value: IBizInventario); function GetController : IInventarioController; procedure SetController (const Value : IInventarioController); protected procedure GuardarInterno; override; public property Controller : IInventarioController read GetController write SetController; property Articulos: IBizInventario read GetArticulos write SetArticulos; constructor Create(AOwner: TComponent); override; end; implementation {$R *.dfm} //uses uEditorUtils; { TfEditorRecibirPedido } function TfEditorEntradaArticulosInventario.GetArticulos: IBizInventario; begin Result := FArticulos; end; function TfEditorEntradaArticulosInventario.GetController: IInventarioController; begin Result := FController; end; procedure TfEditorEntradaArticulosInventario.GuardarInterno; begin inherited; //En este punto se realizará el applyupdates FController.GuardarArticulosUnitarios(Articulos); FHayCambios:= False; end; procedure TfEditorEntradaArticulosInventario.SetArticulos(const Value: IBizInventario); begin FArticulos := Value; if Assigned(FArticulos) then dsDataTable.DataTable := FArticulos.DataTable else dsDataTable.DataTable := NIL; frViewListaArticulos.dsDataSource.DataTable := dsDataTable.DataTable; if FArticulos.IDAlmacenEntrada = -1 then FArticulos.IDAlmacenEntrada := frViewListaArticulos.Almacenes.ID; // frViewDatosPedido.Pedido := FArticulos.Pedido; end; procedure TfEditorEntradaArticulosInventario.SetController(const Value: IInventarioController); begin FController := Value end; procedure TfEditorEntradaArticulosInventario.actAnadirInventarioExecute(Sender: TObject); begin //Todos los cambios serán en caché hasta que el usuario decida guardar FController.Anadir(Articulos); FHayCambios:= True; end; procedure TfEditorEntradaArticulosInventario.CustomEditorClose(Sender: TObject; var Action: TCloseAction); begin inherited; if FHayCambios then ModalResult := mrOK else ModalResult := mrCancel; end; procedure TfEditorEntradaArticulosInventario.actEliminarInventarioExecute(Sender: TObject); begin //Todos los cambios serán en caché hasta que el usuario decida guardar Controller.Eliminar(Articulos, false, false); FHayCambios:= True; end; constructor TfEditorEntradaArticulosInventario.Create(AOwner: TComponent); begin inherited; FHayCambios:= False; end; end.