diff --git a/Source/ApplicationBase/Empresas/Controller/uTiendasEmpresaController.pas b/Source/ApplicationBase/Empresas/Controller/uTiendasEmpresaController.pas index 4c3efdbb..7c63bbec 100644 --- a/Source/ApplicationBase/Empresas/Controller/uTiendasEmpresaController.pas +++ b/Source/ApplicationBase/Empresas/Controller/uTiendasEmpresaController.pas @@ -18,6 +18,7 @@ type TTiendasEmpresaController = class(TControllerBase, ITiendasEmpresaController) private FDataModule : IDataModuleEmpresas; + function CrearTiendaTodas: IBizEmpresaTienda; public constructor Create; override; destructor Destroy; override; @@ -33,11 +34,22 @@ implementation uses uDataModuleEmpresas, schEmpresasClient_Intf, uIEditorTiendaEmpresa, - uEditorRegistryUtils, cxControls, uFactuGES_App; + uEditorRegistryUtils, cxControls, uFactuGES_App, uDataTableUtils; function TTiendasEmpresaController.Buscar(const ID: Integer): IBizEmpresaTienda; +var + ATienda : IBizEmpresaTienda; begin - Result := FDataModule.GetTienda(ID); + Result := NIL; + + if ID = CTE_ID_TODAS then + { Si ID = 0 entonces hay que devolcer una tienda ficticia para + representar a todas las tiendas. } + ATienda := CrearTiendaTodas + else + ATienda := FDataModule.GetTienda(ID); + + Result := ATienda; end; function TTiendasEmpresaController.BuscarTodas: IBizEmpresaTienda; @@ -84,4 +96,29 @@ begin end; end; + +function TTiendasEmpresaController.CrearTiendaTodas: IBizEmpresaTienda; +var + ATienda: IBizEmpresaTienda; +begin + ATienda := FDataModule.NewTienda; + + ATienda.DataTable.Open; + DesconectarTabla(ATienda.DataTable); + try + ATienda.Edit; + try + ATienda.ID := CTE_ID_TODAS; + ATienda.ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + ATienda.NOMBRE := CTE_TODAS; + finally + ATienda.Post; + end; + finally + ConectarTabla(ATienda.DataTable); + end; + + Result := ATienda; +end; + end.