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/Facturas de cliente/Cliente/uDataModuleFacturasCliente.pas
2007-06-21 16:02:50 +00:00

204 lines
6.8 KiB
ObjectPascal

unit uDataModuleFacturasCliente;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
uDADesigntimeCall, uBizFacturasCliente,
frxExportImage, frxExportPDF, frxDCtrl,
frxClass, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich,
frxChart, frxOLE, frxBarcode;
type
TdmFacturasCliente = class(TDAClientDataModule)
RORemoteService: TRORemoteService;
tbl_FacturasCliente: TDACDSDataTable;
ds_FacturasCliente: TDADataSource;
tbl_DetallesFacturasCliente: TDACDSDataTable;
ds_DetallesFacturasCliente: TDADataSource;
DADesigntimeCall1: TDADesigntimeCall;
RORemoteService2: TRORemoteService;
procedure DAClientDataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
function GetNextAutoinc : integer;
function GetItem: IBizFacturasCliente;
function GetItems: IBizFacturasCliente;
procedure Print(Const Codigo: Integer);
procedure Preview(Const Codigo: Integer);
function DarNuevaReferencia : String;
function PuedoEliminarFactura (CodigoFactura : Integer) : Boolean;
procedure Refrescar(lReport: TfrxReport; Const Codigo: Integer; const TamLetra: Integer);
end;
var
dmFacturasCliente: TdmFacturasCliente;
implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uBizContacto,
uDataModuleContactos, uDataModuleBase,
FactuGES_Intf, uEditorPreviewFacturaCliente, uEditorPreview,
uROTypes, schFacturasClienteClient_Intf;
{ TDAClientDataModule1 }
function TdmFacturasCliente.GetItems: IBizFacturasCliente;
var
dtCabecera: TDACDSDataTable;
dtDetalles: TDACDSDataTable;
ACursor: TCursor;
begin
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
dtCabecera := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_FacturasCliente, dtCabecera);
with dtCabecera do
begin
BusinessRulesID := BIZ_FACTURASCLIENTE;
FieldByName(fld_FacturasClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
FieldByName(fld_FacturasClienteIVA).BusinessRulesID := 'Client.Field.IVA';
end;
dtDetalles := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_DetallesFacturasCliente, dtDetalles);
with dtDetalles do
begin
BusinessRulesID := BIZ_DETALLESFACTURASCLIENTE;
DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
FieldByName(fld_DetallesFacturasClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
FieldByName(fld_DetallesFacturasClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
FieldByName(fld_DetallesFacturasClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
FieldByName(fld_DetallesFacturasClienteVISIBLE).BusinessRulesID := 'Client.Field.Visible';
end;
(dtCabecera as IBizFacturasCliente).Detalles := (dtDetalles as IBizDetallesFacturasCliente);
Result := (dtCabecera as IBizFacturasCliente);
finally
Screen.Cursor := ACursor;
end;
end;
procedure TdmFacturasCliente.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmBase.Channel;
RORemoteService.Message := dmBase.Message;
Adapter := dmBase.Adapter;
end;
function TdmFacturasCliente.GetItem: IBizFacturasCliente;
var
dtCabecera: TDACDSDataTable;
dtDetalles: TDACDSDataTable;
ACursor: TCursor;
begin
{ ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
dtCabecera := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_AlbaranCliente, dtCabecera);
with dtCabecera do
begin
BusinessRulesID := BIZ_ALBARANCLIENTE;
FieldByName(fld_AlbaranClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
FieldByName(fld_AlbaranClienteIVA).BusinessRulesID := 'Client.Field.IVA';
end;
dtDetalles := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_DetallesAlbaranCliente, dtDetalles);
with dtDetalles do
begin
BusinessRulesID := BIZ_DETALLESALBARANCLIENTE;
DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
FieldByName(fld_DetallesAlbaranClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
FieldByName(fld_DetallesAlbaranClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
FieldByName(fld_DetallesAlbaranClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
end;
with (dtAlbaranes as IBizAlbaranesCliente) do
begin
Detalles := (dtDetalles as IBizDetallesAlbaranCliente);
end;
Result := (dtAlbaranes as IBizAlbaranesCliente);
finally
Screen.Cursor := ACursor;
end;}
end;
function TdmFacturasCliente.GetNextAutoinc: integer;
begin
Result := (RORemoteService as IsrvFacturasCliente).GetNextAutoinc;
end;
procedure TdmFacturasCliente.Preview(const Codigo: Integer);
var
AStream: TROBinaryMemoryStream;
AEditorPreviewFacturaCliente : TfEditorPreviewFacturaCliente;
begin
AEditorPreviewFacturaCliente := TfEditorPreviewFacturaCliente.Create(Application);
try
AStream := (RORemoteService as IsrvFacturasCliente).GenerateReport(Codigo, 0);
AEditorPreviewFacturaCliente.Report.PreviewPages.LoadFromStream(AStream);
AEditorPreviewFacturaCliente.Codigo := Codigo;
AEditorPreviewFacturaCliente.ShowModal;
finally
AEditorPreviewFacturaCliente.Release;
AStream.Free;
end;
end;
function TdmFacturasCliente.DarNuevaReferencia: String;
begin
Result := (RORemoteService as IsrvFacturasCliente).DarNuevaReferencia;
end;
function TdmFacturasCliente.PuedoEliminarFactura(CodigoFactura: Integer): Boolean;
begin
Result := (RORemoteService as IsrvFacturasCliente).PuedoEliminarFactura(CodigoFactura);
end;
procedure TdmFacturasCliente.Print(const Codigo: Integer);
var
AStream: TROBinaryMemoryStream;
AEditorPreview : TfEditorPreview;
begin
AEditorPreview := TfEditorPreview.Create(Application);
try
AStream := (RORemoteService as IsrvFacturasCliente).GenerateReport(Codigo, 0);
AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
AEditorPreview.Print;
finally
AEditorPreview.Release;
AStream.Free;
end;
end;
procedure TdmFacturasCliente.Refrescar(lReport: TfrxReport; const Codigo, TamLetra: Integer);
var
AStream: TROBinaryMemoryStream;
begin
AStream := (RORemoteService as IsrvFacturasCliente).GenerateReport(Codigo, TamLetra);
lReport.PreviewPages.LoadFromStream(AStream);
lReport.ShowPreparedReport;
end;
initialization
dmFacturasCliente := TdmFacturasCliente.Create(nil);
finalization
FreeAndNil(dmFacturasCliente);
end.