unit uDataModuleProveedores; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, uDACDSDataTable, uDABINAdapter, uRORemoteService, uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposProveedor, uIDataModuleProveedores, uBizContactos, uDADesigntimeCall, uDARemoteDataAdapter, uDADataStreamer, uRODynamicRequest, uDAInterfaces, uDAMemDataTable, uDABin2DataStreamer; type TDataModuleProveedores = class(TDataModuleContactos, IDataModuleProveedores) tbl_GruposProveedor: TDAMemDataTable; ds_GruposProveedor: TDADataSource; tbl_Proveedores: TDAMemDataTable; ds_Proveedores: TDADataSource; public function GetItem(const ID : Integer) : IBizProveedor; function NewItem : IBizProveedor; function GetItems : IBizProveedor; function GetItemsTiendaWeb : IBizProveedor; function GetGruposProveedor : IBizGrupoProveedor; function DarListaDescripcionesProveedores : TStringList; end; implementation {$R *.dfm} uses FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils, uStringsUtils; { TDataModuleProveedores } function TDataModuleProveedores.DarListaDescripcionesProveedores: TStringList; begin Result := TStringList.Create; StringToStrings((RORemoteService as IsrvContactos).DarListaDescripcionesProveedores, '|', Result); end; function TDataModuleProveedores.GetGruposProveedor: IBizGrupoProveedor; var AGrupoProveedor : TDAMemDataTable; begin ShowHourglassCursor; try AGrupoProveedor := CloneDataTable(tbl_GruposProveedor); AGrupoProveedor.BusinessRulesID := BIZ_CLIENT_GRUPOSPROVEEDOR; Result := (AGrupoProveedor as IBizGrupoProveedor); finally HideHourglassCursor; end; end; function TDataModuleProveedores.GetItem(const ID: Integer): IBizProveedor; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetItems; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; finally HideHourglassCursor; end; end; function TDataModuleProveedores.GetItems: IBizProveedor; var AContacto : TDAMemDataTable; begin ShowHourglassCursor; try AContacto := CloneDataTable(tbl_Proveedores); AContacto.BusinessRulesID := BIZ_CLIENT_PROVEEDOR; with TBizProveedor(AContacto.BusinessEventsObj) do begin DatosBancarios := _GetDatosBancarios; Direcciones := _GetDirecciones; end; Result := (AContacto as IBizProveedor); finally HideHourglassCursor; end; end; function TDataModuleProveedores.GetItemsTiendaWeb: IBizProveedor; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetItems; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_ClientesTIENDA_WEB), NewConstant(1, datInteger), dboEqual); Clear; Expression := Condicion end; finally HideHourglassCursor; end; end; function TDataModuleProveedores.NewItem: IBizProveedor; begin Result := GetItem(ID_NULO) end; end.