{ =============================================================================== Copyright (©) 2007. Rodax Software. =============================================================================== Los contenidos de este fichero son propiedad de Rodax Software titular del copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, en su totalidad o en parte, con el permiso escrito de Rodax Software, o de acuerdo con los términos y condiciones establecidas en el acuerdo/contrato bajo el que se suministra. ----------------------------------------------------------------------------- Web: www.rodax-software.com =============================================================================== Fecha primera versión: Versión actual: 1.0.0 Fecha versión actual: =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit uDataModuleTiendaWeb; interface uses SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, uDADesigntimeCall, uIDataModuleTiendaWeb, uBizTiendaWeb, uBizOscAddressBook, uBizOscCustomers, uBizOscManufacturers, uBizOscProducts, uBizOscOrderProducts, uBizOscOrders, uDataModuleBase, uDAMemDataTable, uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uRODynamicRequest; type TDataModuleTiendaWeb = class(TDataModuleBase, IDataModuleTiendaWeb) RORemoteService: TRORemoteService; DADesigntimeCall1: TDADesigntimeCall; LoginRemoteService: TRORemoteService; ROWinInetHTTPChannel1: TROWinInetHTTPChannel; ROBinMessage1: TROBinMessage; tbl_osc_AddressBook: TDAMemDataTable; ds_osc_AddressBook: TDADataSource; tbl_osc_Customers: TDAMemDataTable; ds_osc_Customers: TDADataSource; tbl_osc_Manufacturers: TDAMemDataTable; ds_osc_Manufacturers: TDADataSource; tbl_osc_Orders: TDAMemDataTable; ds_osc_Orders: TDADataSource; tbl_osc_Orders_products: TDAMemDataTable; ds_osc_Orders_products: TDADataSource; Bin2DataStreamer: TDABin2DataStreamer; rda_TiendaWeb: TDARemoteDataAdapter; tbl_TiendaWeb: TDAMemDataTable; ds_TiendaWeb: TDADataSource; tbl_osc_Products: TDAMemDataTable; ds_osc_Products: TDADataSource; procedure DAClientDataModuleCreate(Sender: TObject); protected function DarNombreGenerador(DataSetName: String): String; virtual; function _GetOSCAddressBook: IBizOscAddressBook; function _GetOSCOrderProducts: IBizOSCOrderProducts; public function GetNextID(const DataSetName : String) : Integer; function GetItems: IBizTiendaWeb; function GetItem(const ID_Empresa : Integer) : IBizTiendaWeb; function NewItem : IBizTiendaWeb; function GetOSCCustomers: IBizOSCCustomer; function GetOSCCustomer(const IDLocal : Integer): IBizOSCCustomer; function NewOSCCustomer : IBizOSCCustomer; function GetOSCManufacturers: IBizOSCManufacturer; function GetOSCManufacturer(const IDLocal : Integer): IBizOSCManufacturer; function NewOSCManufacturer : IBizOSCManufacturer; function GetOSCProducts: IBizOSCProduct; function GetOSCProduct(const IDLocal : Integer): IBizOSCProduct; function NewOSCProduct : IBizOSCProduct; function GetNextIDOSC(const DataSetName : String) : Integer; function GetOSCOrders: IBizOscOrder; function GetOSCOrder(const IDLocal : Integer): IBizOscOrder; function HayConexionConTienda : Boolean; end; implementation {$R *.DFM} uses FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, schTiendaWebClient_Intf; { TDataModuleTiendaWeb } // Descomentar si tiene informe // function TDataModuleTiendaWeb.GetReport(const AIBizTiendaWebID: Integer): Binary; // begin // Result := (RORemoteService as IsrvTiendaWeb).GenerateReport(AIBizTiendaWebID) // end; procedure TDataModuleTiendaWeb.DAClientDataModuleCreate(Sender: TObject); begin RORemoteService.Channel := dmConexion.Channel; RORemoteService.Message := dmConexion.Message; end; function TDataModuleTiendaWeb.DarNombreGenerador(DataSetName: String): String; begin Result := ''; if DataSetName = nme_TiendaWeb then Result := 'GEN_TIENDA_WEB_ID' end; function TDataModuleTiendaWeb.GetNextID(const DataSetName: String): Integer; var aGeneratorName : String; begin aGeneratorName := DarNombreGenerador(DataSetName); Result := (RORemoteService as IsrvTiendaWeb).GetNextAutoInc(aGeneratorName) end; function TDataModuleTiendaWeb.GetNextIDOSC(const DataSetName: String): Integer; begin Result := (RORemoteService as IsrvTiendaWeb).GetNextAutoIncOSC(DataSetName); end; function TDataModuleTiendaWeb._GetOSCAddressBook: IBizOscAddressBook; var AAddressBook : TDAMemDataTable; begin ShowHourglassCursor; try AAddressBook := CloneDataTable(tbl_osc_AddressBook); with AAddressBook do begin BusinessRulesID := BIZ_CLIENT_OSC_ADDRESSBOOK; DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; end; Result := (AAddressBook as IBizOscAddressBook); finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb._GetOSCOrderProducts: IBizOscOrderProducts; var AOrderProducts : TDAMemDataTable; begin ShowHourglassCursor; try AOrderProducts := CloneDataTable(tbl_osc_Orders_products); with AOrderProducts do begin BusinessRulesID := BIZ_CLIENT_OSC_ORDERPRODUCTS; DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; end; Result := (AOrderProducts as IBizOscOrderProducts); finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetItems: IBizTiendaWeb; var AIBizTiendaWeb : TDAMemDataTable; begin ShowHourglassCursor; try AIBizTiendaWeb := CloneDataTable(tbl_TiendaWeb); AIBizTiendaWeb.BusinessRulesID := BIZ_CLIENT_TIENDAWEB; Result := (AIBizTiendaWeb as IBizTiendaWeb); finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetItem(const ID_Empresa: Integer): IBizTiendaWeb; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetItems; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_TiendaWebID_EMPRESA), NewConstant(ID_EMPRESA, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.NewItem: IBizTiendaWeb; begin Result := GetItem(ID_NULO) end; function TDataModuleTiendaWeb.NewOSCCustomer: IBizOSCCustomer; begin Result := GetOSCCustomer(ID_NULO) end; function TDataModuleTiendaWeb.NewOSCManufacturer: IBizOSCManufacturer; begin Result := GetOSCManufacturer(ID_NULO) end; function TDataModuleTiendaWeb.NewOSCProduct: IBizOSCProduct; begin Result := GetOSCProduct(ID_NULO) end; function TDataModuleTiendaWeb.GetOSCCustomer(const IDLocal: Integer): IBizOSCCustomer; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetOSCCustomers; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_osc_Customersrdx_customers_id_local), NewConstant(IDLocal, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetOSCCustomers: IBizOSCCustomer; var ACustomer : TDAMemDataTable; begin ShowHourglassCursor; try ACustomer := CloneDataTable(tbl_osc_Customers); ACustomer.BusinessRulesID := BIZ_CLIENT_OSC_CUSTOMER; with TBizOSCCustomer(ACustomer.BusinessEventsObj) do begin AddressBook := _GetOSCAddressBook; end; Result := (ACustomer as IBizOSCCustomer); finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetOSCManufacturer(const IDLocal: Integer): IBizOSCManufacturer; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetOSCManufacturers; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_osc_Manufacturersrdx_manufacturers_id_local), NewConstant(IDLocal, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetOSCManufacturers: IBizOSCManufacturer; var AManufacturer : TDAMemDataTable; begin ShowHourglassCursor; try AManufacturer := CloneDataTable(tbl_osc_Manufacturers); AManufacturer.BusinessRulesID := BIZ_CLIENT_OSC_MANUFACTURER; Result := (AManufacturer as IBizOSCManufacturer); finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetOSCOrder(const IDLocal: Integer): IBizOscOrder; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetOSCOrders; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_osc_Ordersorders_id), NewConstant(IDLocal, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetOSCOrders: IBizOscOrder; var AOrder : TDAMemDataTable; begin ShowHourglassCursor; try AOrder := CloneDataTable(tbl_osc_Orders); AOrder.BusinessRulesID := BIZ_CLIENT_OSC_ORDER; with TBizOscOrder(AOrder.BusinessEventsObj) do begin OrderProducts := _GetOSCOrderProducts; end; Result := (AOrder as IBizOscOrder); finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetOSCProduct(const IDLocal: Integer): IBizOSCProduct; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetOSCProducts; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_osc_Productsrdx_products_id_local), NewConstant(IDLocal, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.GetOSCProducts: IBizOSCProduct; var AProduct : TDAMemDataTable; begin ShowHourglassCursor; try AProduct := CloneDataTable(tbl_osc_Products); AProduct.BusinessRulesID := BIZ_CLIENT_OSC_PRODUCT; Result := (AProduct as IBizOSCProduct); finally HideHourglassCursor; end; end; function TDataModuleTiendaWeb.HayConexionConTienda: Boolean; begin Result := (RORemoteService as IsrvTiendaWeb).HayConexionConTienda; end; end.