This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES2/Source/Modulos/Tienda web/Data/uDataModuleTiendaWeb.pas
2010-09-17 15:55:33 +00:00

412 lines
12 KiB
ObjectPascal

{
===============================================================================
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.