git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES/trunk@12 9a1d36f3-7752-2d40-8ccb-50eb49674c68
127 lines
4.1 KiB
ObjectPascal
127 lines
4.1 KiB
ObjectPascal
unit srvPedidosProveedor_Impl;
|
|
|
|
{----------------------------------------------------------------------------}
|
|
{ This unit was automatically generated by the RemObjects SDK after reading }
|
|
{ the RODL file associated with this project . }
|
|
{ }
|
|
{ This is where you are supposed to code the implementation of your objects. }
|
|
{----------------------------------------------------------------------------}
|
|
|
|
interface
|
|
|
|
uses
|
|
{vcl:} Classes, SysUtils,
|
|
{RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
|
|
{Ancestor Implementation:} DARemoteService_Impl,
|
|
{Used RODLs:} DataAbstract_Intf,
|
|
{Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
|
|
uDABusinessProcessor, uDAInterfaces, uDADataTable, uDACDSDataTable,
|
|
frxClass, frxDBSet, DB, IBDatabase, IBCustomDataSet, uDABINAdapter;
|
|
|
|
type
|
|
{ TsrvPedidosProveedor }
|
|
TsrvPedidosProveedor = class(TDARemoteService, IsrvPedidosProveedor)
|
|
bpPedidosProveedor: TDABusinessProcessor;
|
|
DADataCabecera: TDADataSource;
|
|
DADataDetalles: TDADataSource;
|
|
frxDBCabecera: TfrxDBDataset;
|
|
frxDBDetalles: TfrxDBDataset;
|
|
tbl_Pedido: TDACDSDataTable;
|
|
tbl_DetallesPedido: TDACDSDataTable;
|
|
IBDatabase1: TIBDatabase;
|
|
IBTransaction1: TIBTransaction;
|
|
IBDataSet1: TIBDataSet;
|
|
IBDataSet2: TIBDataSet;
|
|
DataSource1: TDataSource;
|
|
DataSource2: TDataSource;
|
|
DABINAdapter: TDABINAdapter;
|
|
frxReport1: TfrxReport;
|
|
schPedidosProveedor: TDASchema;
|
|
private
|
|
protected
|
|
function GetNextAutoinc: Integer;
|
|
function DarNuevaReferencia: String;
|
|
function GenerateReport(const Codigo: Integer): Binary;
|
|
function PuedoEliminarPedido(const Codigo: Integer): Boolean;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
uses
|
|
{Generated:} FactuGES_Invk, uDataModuleServer, dialogs;
|
|
|
|
procedure Create_srvPedidosProveedor(out anInstance : IUnknown);
|
|
begin
|
|
anInstance := TsrvPedidosProveedor.Create(NIL);
|
|
end;
|
|
|
|
{ srvPedidosProveedor }
|
|
{ TsrvPedidosProveedor }
|
|
|
|
function TsrvPedidosProveedor.DarNuevaReferencia: String;
|
|
var
|
|
dsReferencia: IDADataset;
|
|
begin
|
|
dsReferencia := schPedidosProveedor.NewDataset(Connection, 'DarReferenciaPedido');
|
|
dsReferencia.Active := True;
|
|
Result := dsReferencia.FieldByName('REFERENCIA').AsString;
|
|
end;
|
|
|
|
function TsrvPedidosProveedor.GenerateReport(
|
|
const Codigo: Integer): Binary;
|
|
var
|
|
dsMaster: IDADataset;
|
|
dsDetail: IDADataset;
|
|
AStream: TMemoryStream;
|
|
begin
|
|
AStream := TMemoryStream.Create;
|
|
Result := Binary.Create;
|
|
try
|
|
dsMaster := schPedidosProveedor.NewDataset(Connection, 'InformeCabeceraPedido', ['CODIGO'], [Codigo]);
|
|
dsDetail := schPedidosProveedor.NewDataset(Connection, 'InformeDetallesPedido', ['CODIGOPEDIDO'], [Codigo], False);
|
|
dsDetail.Active := True;
|
|
|
|
AStream.Clear;
|
|
ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
|
ServiceAdapter.ReadDataset(AStream, tbl_Pedido, TRUE, '', TRUE, TRUE);
|
|
|
|
AStream.Clear;
|
|
ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
|
|
ServiceAdapter.ReadDataset(AStream, tbl_DetallesPedido, TRUE, '', TRUE, TRUE);
|
|
|
|
frxReport1.LoadFromFile(DarRutaInformes + 'InfPedido.fr3', True);
|
|
frxReport1.PrepareReport;
|
|
frxReport1.PreviewPages.SaveToStream(Result);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
end;
|
|
|
|
function TsrvPedidosProveedor.GetNextAutoinc: Integer;
|
|
begin
|
|
Result := uDataModuleServer.GetNextAutoinc(Connection, 'GEN_PEDIDOS');
|
|
end;
|
|
|
|
function TsrvPedidosProveedor.PuedoEliminarPedido(const Codigo: Integer): Boolean;
|
|
var
|
|
dsData: IDASQLCommand;
|
|
begin
|
|
Result := True;
|
|
Connection.BeginTransaction;
|
|
try
|
|
dsData := schPedidosProveedor.NewCommand(Connection, 'Delete_PedidosProveedor', ['OLD_CODIGO'], [Codigo]);
|
|
except
|
|
on E: Exception do
|
|
Result := False;
|
|
end;
|
|
Connection.RollbackTransaction;
|
|
end;
|
|
|
|
initialization
|
|
TROClassFactory.Create('srvPedidosProveedor', Create_srvPedidosProveedor, TsrvPedidosProveedor_Invoker);
|
|
|
|
finalization
|
|
|
|
end.
|