177 lines
4.5 KiB
ObjectPascal
177 lines
4.5 KiB
ObjectPascal
|
|
unit uDataModuleLogistica;
|
||
|
|
|
||
|
|
interface
|
||
|
|
|
||
|
|
uses {vcl:} SysUtils, Classes, DB, DBClient,
|
||
|
|
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
|
||
|
|
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
|
||
|
|
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
|
||
|
|
uBizLogistica;
|
||
|
|
|
||
|
|
type
|
||
|
|
TdmLogistica = class(TDAClientDataModule)
|
||
|
|
DABINAdapter: TDABINAdapter;
|
||
|
|
RORemoteService: TRORemoteService;
|
||
|
|
tbl_Almacenes: TDACDSDataTable;
|
||
|
|
ds_Almacenes: TDADataSource;
|
||
|
|
tbl_Articulos: TDACDSDataTable;
|
||
|
|
ds_Articulos: TDADataSource;
|
||
|
|
procedure DAClientDataModuleCreate(Sender: TObject);
|
||
|
|
private
|
||
|
|
public
|
||
|
|
function GetItemsAlmacenes: IBizAlmacen;
|
||
|
|
function GetItemsArticulos: IBizArticulosAlmacen;
|
||
|
|
function GetItemAlmacen(Codigo : Integer): IBizAlmacen;
|
||
|
|
function GetItemArticulo(Codigo : Integer): IBizArticulosAlmacen;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
function GetNextAutoinc : integer;
|
||
|
|
// function GetCliente(Codigo : Integer): IBizCliente; overload;
|
||
|
|
procedure Preview;
|
||
|
|
end;
|
||
|
|
|
||
|
|
var
|
||
|
|
dmLogistica: TdmLogistica;
|
||
|
|
|
||
|
|
implementation
|
||
|
|
|
||
|
|
{$R *.DFM}
|
||
|
|
|
||
|
|
uses
|
||
|
|
Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
|
||
|
|
uDataTableUtils, uROTypes, uEditorPreview,
|
||
|
|
Dialogs, schLogisticaClient_Intf, uDataModuleBase, uDBSelectionList;
|
||
|
|
|
||
|
|
const
|
||
|
|
MAX_RECORDS = 100;
|
||
|
|
|
||
|
|
|
||
|
|
procedure TdmLogistica.DAClientDataModuleCreate(Sender: TObject);
|
||
|
|
begin
|
||
|
|
RORemoteService.Channel := dmBase.Channel;
|
||
|
|
RORemoteService.Message := dmBase.Message;
|
||
|
|
end;
|
||
|
|
|
||
|
|
function TdmLogistica.GetItemsAlmacenes: IBizAlmacen;
|
||
|
|
var
|
||
|
|
dtAlmacenes: TDACDSDataTable;
|
||
|
|
ACursor: TCursor;
|
||
|
|
begin
|
||
|
|
ACursor := Screen.Cursor;
|
||
|
|
Screen.Cursor := crHourGlass;
|
||
|
|
try
|
||
|
|
dtAlmacenes := TDACDSDataTable.Create(NIL);
|
||
|
|
CloneDataTable(tbl_Almacenes, dtAlmacenes);
|
||
|
|
dtAlmacenes.BusinessRulesID := 'BizAlmacen';
|
||
|
|
Result := (dtAlmacenes as IBizAlmacen);
|
||
|
|
finally
|
||
|
|
Screen.Cursor := ACursor;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure TdmLogistica.Preview;
|
||
|
|
var
|
||
|
|
AStream: TMemoryStream;
|
||
|
|
AEditorPreview : TfEditorPreview;
|
||
|
|
begin
|
||
|
|
{ AStream := Binary.Create;
|
||
|
|
AEditorPreview := TfEditorPreview.Create(Application);
|
||
|
|
try
|
||
|
|
AStream := (RemoteService as ISrvContactos).GenerateReport;
|
||
|
|
AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
|
||
|
|
AEditorPreview.ShowModal;
|
||
|
|
finally
|
||
|
|
AEditorPreview.Release;
|
||
|
|
AStream.Free;
|
||
|
|
end;
|
||
|
|
}
|
||
|
|
end;
|
||
|
|
|
||
|
|
{function TdmAlmacenes.GetCliente(Codigo: Integer): IBizCliente;
|
||
|
|
var
|
||
|
|
// dtContactos: TDACDSDataTable;
|
||
|
|
// dtCategorias: TDACDSDataTable;
|
||
|
|
// ACursor: TCursor;
|
||
|
|
begin
|
||
|
|
{ ACursor := Screen.Cursor;
|
||
|
|
Screen.Cursor := crHourGlass;
|
||
|
|
try
|
||
|
|
dtContactos := TDACDSDataTable.Create(NIL);
|
||
|
|
CloneDataTable(tbl_Contactos, dtContactos);
|
||
|
|
dtContactos.BusinessRulesID := 'BizCliente';
|
||
|
|
|
||
|
|
dtCategorias := TDACDSDataTable.Create(NIL);
|
||
|
|
CloneDataTable(tbl_CategoriasContacto, dtCategorias);
|
||
|
|
dtCategorias.BusinessRulesID := 'BizCategoria';
|
||
|
|
(dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto);
|
||
|
|
|
||
|
|
Result := (dtContactos as IBizCliente);
|
||
|
|
GetCliente(Result, Codigo);
|
||
|
|
finally
|
||
|
|
Screen.Cursor := ACursor;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
}
|
||
|
|
|
||
|
|
function TdmLogistica.GetNextAutoinc: integer;
|
||
|
|
begin
|
||
|
|
// Result := (RORemoteService as IsrvContactos).GetNextAutoinc;
|
||
|
|
end;
|
||
|
|
|
||
|
|
function TdmLogistica.GetItemAlmacen(Codigo: Integer): IBizAlmacen;
|
||
|
|
var
|
||
|
|
AAlmacen: IBizAlmacen;
|
||
|
|
begin
|
||
|
|
AAlmacen := GetItemsAlmacenes;
|
||
|
|
with AAlmacen.DataTable do
|
||
|
|
begin
|
||
|
|
if Active then Active := False;
|
||
|
|
Where.Clear;
|
||
|
|
Where.AddCondition(fld_ALMACENESCODIGO, cEqual, Codigo);
|
||
|
|
Active := True;
|
||
|
|
end;
|
||
|
|
Result := AAlmacen;
|
||
|
|
end;
|
||
|
|
|
||
|
|
function TdmLogistica.GetItemsArticulos: IBizArticulosAlmacen;
|
||
|
|
var
|
||
|
|
dtArticulos: TDACDSDataTable;
|
||
|
|
ACursor: TCursor;
|
||
|
|
begin
|
||
|
|
ACursor := Screen.Cursor;
|
||
|
|
Screen.Cursor := crHourGlass;
|
||
|
|
try
|
||
|
|
dtArticulos := TDACDSDataTable.Create(NIL);
|
||
|
|
CloneDataTable(tbl_Articulos, dtArticulos);
|
||
|
|
dtArticulos.BusinessRulesID := 'BizArticulosAlmacen';
|
||
|
|
Result := (dtArticulos as IBizArticulosAlmacen);
|
||
|
|
finally
|
||
|
|
Screen.Cursor := ACursor;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
function TdmLogistica.GetItemArticulo(Codigo: Integer): IBizArticulosAlmacen;
|
||
|
|
var
|
||
|
|
AArticuloAlmacen: IBizArticulosAlmacen;
|
||
|
|
begin
|
||
|
|
AArticuloAlmacen := GetItemsArticulos;
|
||
|
|
with AArticuloAlmacen.DataTable do
|
||
|
|
begin
|
||
|
|
if Active then Active := False;
|
||
|
|
Where.Clear;
|
||
|
|
Where.AddCondition(fld_ARTICULOSCODIGO, cEqual, Codigo);
|
||
|
|
Active := True;
|
||
|
|
end;
|
||
|
|
Result := AArticuloAlmacen;
|
||
|
|
end;
|
||
|
|
|
||
|
|
initialization
|
||
|
|
dmLogistica := TdmLogistica.Create(nil);
|
||
|
|
|
||
|
|
finalization
|
||
|
|
FreeAndNil(dmLogistica);
|
||
|
|
|
||
|
|
end.
|
||
|
|
|