159 lines
5.1 KiB
ObjectPascal
159 lines
5.1 KiB
ObjectPascal
|
|
unit uBizOscManufacturerServer;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
schTiendaWebServer_Intf, uDAInterfaces, SysUtils,
|
|||
|
|
uDADataTable, uDABusinessProcessor, uBusinessUtils;
|
|||
|
|
|
|||
|
|
const
|
|||
|
|
BIZ_SERVER_OSC_MANUFACTURER= 'Server.OSC.Manufacturer';
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TBizOscManufacturerServer = class(Tosc_ManufacturersBusinessProcessorRules)
|
|||
|
|
protected
|
|||
|
|
procedure Insert_Manufacturers_Info(aChange: TDADeltaChange);
|
|||
|
|
procedure Update_Manufacturers_Info(aChange: TDADeltaChange);
|
|||
|
|
procedure Delete_Manufacturers_Info(aChange: TDADeltaChange);
|
|||
|
|
|
|||
|
|
procedure AfterProcessChange(Sender: TDABusinessProcessor;
|
|||
|
|
aChange: TDADeltaChange; Processed: Boolean;
|
|||
|
|
var CanRemoveFromDelta: Boolean); override;
|
|||
|
|
|
|||
|
|
procedure ProcessError(Sender: TDABusinessProcessor;
|
|||
|
|
aChangeType: TDAChangeType; aChange: TDADeltaChange;
|
|||
|
|
const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean;
|
|||
|
|
Error: Exception); override;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Dialogs, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl,
|
|||
|
|
schTiendaWebClient_Intf, uROClasses;
|
|||
|
|
|
|||
|
|
{ TBizOscManufacturerServer }
|
|||
|
|
|
|||
|
|
procedure TBizOscManufacturerServer.AfterProcessChange(Sender: TDABusinessProcessor;
|
|||
|
|
aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean);
|
|||
|
|
var
|
|||
|
|
ASchema : TDASchema;
|
|||
|
|
ACurrentConn : IDAConnection;
|
|||
|
|
ADataset : IDADataset;
|
|||
|
|
begin
|
|||
|
|
ASchema := Sender.Schema;
|
|||
|
|
ACurrentConn := GetBusinessProcessorConnection(Sender);
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
|
|||
|
|
case aChange.ChangeType of
|
|||
|
|
ctInsert: begin
|
|||
|
|
ADataSet := ASchema.NewDataset(ACurrentConn, 'GetLastID', [], [], True);
|
|||
|
|
aChange.NewValueByName[fld_osc_Manufacturersmanufacturers_id] := ADataSet.FieldByName('last_id').AsInteger;
|
|||
|
|
Insert_Manufacturers_Info(aChange);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
ctUpdate: Update_Manufacturers_Info(aChange);
|
|||
|
|
ctDelete: Delete_Manufacturers_Info(aChange);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
CanRemoveFromDelta := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizOscManufacturerServer.Delete_Manufacturers_Info(
|
|||
|
|
aChange: TDADeltaChange);
|
|||
|
|
var
|
|||
|
|
ASchema : TDASchema;
|
|||
|
|
ACurrentConn : IDAConnection;
|
|||
|
|
ACommand : IDASQLCommand;
|
|||
|
|
AIdiomasDataSet : IDADataset;
|
|||
|
|
I: Integer;
|
|||
|
|
begin
|
|||
|
|
// Borramos una fila por cada idioma que hay en OsCommerce y
|
|||
|
|
// por cada fabricante que hay.
|
|||
|
|
ASchema := BusinessProcessor.Schema;
|
|||
|
|
ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor);
|
|||
|
|
|
|||
|
|
ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_osc_Manufacturers_info');
|
|||
|
|
AIdiomasDataSet := ASchema.NewDataset(ACurrentConn, nme_osc_Languages);
|
|||
|
|
try
|
|||
|
|
AIdiomasDataSet.Open;
|
|||
|
|
for I := 0 to AIdiomasDataSet.RecordCount - 1 do
|
|||
|
|
begin
|
|||
|
|
with ACommand do
|
|||
|
|
begin
|
|||
|
|
ParamByName('OLD_manufacturers_id').Value := aChange.OldValueByName[fld_osc_Manufacturersmanufacturers_id];
|
|||
|
|
ParamByName('OLD_languages_id').Value := AIdiomasDataSet.FieldByName(fld_osc_Languageslanguages_id).Value;
|
|||
|
|
Execute;
|
|||
|
|
end;
|
|||
|
|
AIdiomasDataSet.Next;
|
|||
|
|
end;
|
|||
|
|
AIdiomasDataSet.Close;
|
|||
|
|
finally
|
|||
|
|
ACommand := NIL;
|
|||
|
|
AIdiomasDataSet := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizOscManufacturerServer.Insert_Manufacturers_Info(
|
|||
|
|
aChange: TDADeltaChange);
|
|||
|
|
var
|
|||
|
|
ASchema : TDASchema;
|
|||
|
|
ACurrentConn : IDAConnection;
|
|||
|
|
ACommand : IDASQLCommand;
|
|||
|
|
AIdiomasDataSet : IDADataset;
|
|||
|
|
I: Integer;
|
|||
|
|
begin
|
|||
|
|
// Aqu<71> insertamos una fila por cada idioma que hay en OsCommerce y
|
|||
|
|
// por cada fabricante que hay. Se hace para que no falle la tienda
|
|||
|
|
ASchema := BusinessProcessor.Schema;
|
|||
|
|
ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor);
|
|||
|
|
|
|||
|
|
ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_osc_Manufacturers_info');
|
|||
|
|
AIdiomasDataSet := ASchema.NewDataset(ACurrentConn, nme_osc_Languages);
|
|||
|
|
try
|
|||
|
|
AIdiomasDataSet.Open;
|
|||
|
|
for I := 0 to AIdiomasDataSet.RecordCount - 1 do
|
|||
|
|
begin
|
|||
|
|
with ACommand do
|
|||
|
|
begin
|
|||
|
|
ParamByName('manufacturers_id').Value := aChange.NewValueByName[fld_osc_Manufacturersmanufacturers_id];
|
|||
|
|
ParamByName('languages_id').Value := AIdiomasDataSet.FieldByName(fld_osc_Languageslanguages_id).Value;
|
|||
|
|
ParamByName('manufacturers_url').Value := '';
|
|||
|
|
ParamByName('url_clicked').Value := 0;
|
|||
|
|
ParamByName('date_last_click').Value := null;
|
|||
|
|
Execute;
|
|||
|
|
end;
|
|||
|
|
AIdiomasDataSet.Next;
|
|||
|
|
end;
|
|||
|
|
AIdiomasDataSet.Close;
|
|||
|
|
finally
|
|||
|
|
ACommand := NIL;
|
|||
|
|
AIdiomasDataSet := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizOscManufacturerServer.ProcessError(Sender: TDABusinessProcessor;
|
|||
|
|
aChangeType: TDAChangeType; aChange: TDADeltaChange;
|
|||
|
|
const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean;
|
|||
|
|
Error: Exception);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
//IMPORTANTE ESTO HACE QUE EL CLIENTE SE ENTERE DEL ERROR Y LOS BP ASOCIADOS EN EL
|
|||
|
|
//SCHEMA HAGAN ROLLBACK TAMBIEN
|
|||
|
|
CanRemoveFromDelta := True;
|
|||
|
|
raise Exception.Create(Error.Message);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizOscManufacturerServer.Update_Manufacturers_Info(
|
|||
|
|
aChange: TDADeltaChange);
|
|||
|
|
begin
|
|||
|
|
// Aqu<71> no hace falta hacer nada por que la informaci<63>n
|
|||
|
|
// que hay en manufacturers_info no la necesitamos.
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
initialization
|
|||
|
|
RegisterBusinessProcessorRules(BIZ_SERVER_OSC_MANUFACTURER, TBizOscManufacturerServer);
|
|||
|
|
|
|||
|
|
end.
|