This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
AlonsoYSal_FactuGES/Modulos/Articulos/Cliente/uDataModuleLogistica.pas
2007-06-21 16:02:50 +00:00

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.