2007-06-11 15:29:06 +00:00
unit uDataModuleFacturasCliente;
interface
uses
SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter,
uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
uIDataModuleFacturasCliente, uBizFacturasCliente, uBizDetallesFacturaCliente,
2008-09-22 16:09:44 +00:00
uDADesigntimeCall, uIDataModuleFacturasClienteReport, uIntegerListUtils;
2007-06-11 15:29:06 +00:00
type
TDataModuleFacturasCliente = class( TDAClientDataModule, IDataModuleFacturasCliente, IDataModuleFacturasClienteReport)
RORemoteService: TRORemoteService;
DABinAdapter: TDABINAdapter;
tbl_FacturasCliente: TDACDSDataTable;
ds_FacturasCliente: TDADataSource;
tbl_FacturasCliente_Detalles: TDACDSDataTable;
ds_FacturasCliente_Detalles: TDADataSource;
DADesigntimeCall1: TDADesigntimeCall;
LoginRemoteService: TRORemoteService;
ROWinInetHTTPChannel1: TROWinInetHTTPChannel;
ROBinMessage1: TROBinMessage;
2009-02-26 10:44:16 +00:00
tbl_ListaAnosFacturas: TDACDSDataTable;
ds_ListaAnosFacturas: TDADataSource;
2007-06-11 15:29:06 +00:00
procedure DAClientDataModuleCreate( Sender: TObject) ;
private
function _CloneDataTable ( const ADataTable : TDACDSDataTable) : TDACDSDataTable; overload ;
function _GetDetalles : IBizDetallesFacturaCliente;
public
2009-02-26 10:44:16 +00:00
function GetAnosItems : TStringList;
2007-06-11 15:29:06 +00:00
function GetItems : IBizFacturaCliente;
function GetItem( const ID : Integer ) : IBizFacturaCliente;
function GetNextID( const DataSetName : String ) : Integer ;
function NewItem : IBizFacturaCliente;
// Report
2008-09-22 16:09:44 +00:00
function GetRptFacturas( const AListaID: TIntegerList;
const ShowLogotipo: Boolean = False ) : Binary;
function GetRptPDFFacturas( const AID: Integer ;
const ShowLogotipo: Boolean = False ) : Binary;
2007-06-11 15:29:06 +00:00
end ;
implementation
{$R *.DFM}
uses
2010-03-22 12:14:47 +00:00
Forms, Windows, FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls,
uDAInterfaces, schFacturasClienteClient_Intf, uBizContactos;
2007-06-11 15:29:06 +00:00
{ TdmPresupuestos }
procedure TDataModuleFacturasCliente. DAClientDataModuleCreate( Sender: TObject) ;
begin
RORemoteService. Channel : = dmConexion. Channel;
RORemoteService. Message : = dmConexion. Message ;
end ;
function TDataModuleFacturasCliente. GetNextID( const DataSetName: String ) : Integer ;
var
aGeneratorName : String ;
begin
if DataSetName = nme_FacturasCliente then
aGeneratorName : = 'GEN_FACTURAS_CLIENTE_ID' ;
if DataSetName = nme_FacturasCliente_Detalles then
aGeneratorName : = 'GEN_FACTURA_CLIENTE_DETALLES_ID' ;
Result : = ( RORemoteService as IsrvFacturasCliente) . GetNextAutoInc( aGeneratorName)
end ;
2008-09-22 16:09:44 +00:00
function TDataModuleFacturasCliente. GetRptPDFFacturas(
const AID: Integer ; const ShowLogotipo: Boolean = False ) : Binary;
var
AParam : TIntegerArray;
2010-03-22 12:14:47 +00:00
Tipo: Integer ;
2007-06-11 15:29:06 +00:00
begin
2010-03-22 12:14:47 +00:00
//Si dice que no se imprimir<69> la factura como becoaching
Tipo : = 1 ;
if ( Application. MessageBox( '<27> Desea imprimir las facturas/abonos de cliente seleccionados, con el modelo por defecto?' , 'Atenci<63> n' , MB_YESNO) = IDNO) then
Tipo : = 2 ;
2008-09-22 16:09:44 +00:00
AParam : = TIntegerArray. Create;
try
AParam. Add( AID) ;
2010-03-22 12:14:47 +00:00
Result : = ( RORemoteService as IsrvFacturasCliente) . GenerarInformeEnPDF( AParam, ShowLogotipo, Tipo)
2008-09-22 16:09:44 +00:00
finally
FreeANDNIL( AParam)
end ;
end ;
function TDataModuleFacturasCliente. GetRptFacturas(
const AListaID: TIntegerList; const ShowLogotipo: Boolean = False ) : Binary;
var
AParam : TIntegerArray;
2010-03-22 12:14:47 +00:00
Tipo: Integer ;
2008-09-22 16:09:44 +00:00
begin
2010-03-22 12:14:47 +00:00
//Si dice que no se imprimir<69> la factura como becoaching
Tipo : = 1 ;
if ( Application. MessageBox( '<27> Desea imprimir las facturas/abonos de cliente seleccionados, con el modelo por defecto?' , 'Atenci<63> n' , MB_YESNO) = IDNO) then
Tipo : = 2 ;
2008-09-22 16:09:44 +00:00
AParam : = AListaID. ToIntegerArray;
try
2010-03-22 12:14:47 +00:00
Result : = ( RORemoteService as IsrvFacturasCliente) . GenerarInforme( AParam, ShowLogotipo, Tipo)
2008-09-22 16:09:44 +00:00
finally
FreeANDNIL( AParam)
end ;
2007-06-11 15:29:06 +00:00
end ;
function TDataModuleFacturasCliente. NewItem: IBizFacturaCliente;
begin
Result : = GetItem( ID_NULO)
end ;
function TDataModuleFacturasCliente. _CloneDataTable( const ADataTable : TDACDSDataTable) : TDACDSDataTable;
begin
Result : = NIL ;
if not Assigned( ADataTable) then
raise Exception. Create ( 'No se ha asignado la tabla de origen (CloneDataTable)' ) ;
Result : = TDACDSDataTable. Create( NIL ) ;
CloneDataTable( ADataTable, Result ) ;
end ;
function TDataModuleFacturasCliente. _GetDetalles: IBizDetallesFacturaCliente;
var
ADetalles : TDACDSDataTable;
begin
ShowHourglassCursor;
try
ADetalles : = _CloneDataTable( tbl_FacturasCliente_Detalles) ;
with ADetalles do
begin
BusinessRulesID : = BIZ_CLIENT_DETALLES_FACTURA_CLIENTE;
DetailOptions : = DetailOptions -
[ dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates] ;
end ;
Result : = ( ADetalles as IBizDetallesFacturaCliente) ;
finally
HideHourglassCursor;
end ;
end ;
2009-02-26 10:44:16 +00:00
function TDataModuleFacturasCliente. GetAnosItems: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos : = TStringList. Create;
ShowHourglassCursor;
try
with tbl_ListaAnosFacturas do
begin
Open;
First;
while not eof do
begin
AListaAnos. Add( Format( '%s=%s' , [ Fields[ 0 ] . AsString, Fields[ 0 ] . AsString] ) ) ;
Next;
end ;
Close;
end ;
Result : = AListaAnos;
finally
HideHourglassCursor;
end ;
end ;
2007-06-11 15:29:06 +00:00
function TDataModuleFacturasCliente. GetItem( const ID: Integer ) : IBizFacturaCliente;
begin
ShowHourglassCursor;
try
Result : = Self. GetItems;
with Result . DataTable. Where do
begin
if NotEmpty then
AddOperator( opAND) ;
OpenBraket;
AddText( fld_FacturasClienteID + ' = ' + IntToStr( ID) ) ;
CloseBraket;
end ;
finally
HideHourglassCursor;
end ;
end ;
function TDataModuleFacturasCliente. GetItems: IBizFacturaCliente;
var
AFactura : TDACDSDataTable;
begin
ShowHourglassCursor;
try
AFactura : = _CloneDataTable( tbl_FacturasCliente) ;
// EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!!
AFactura. FieldByName( fld_FacturasClienteREFERENCIA) . ServerAutoRefresh : = TRUE ;
AFactura. BusinessRulesID : = BIZ_CLIENT_FACTURA_CLIENTE;
with TBizFacturaCliente( AFactura. BusinessEventsObj) do
begin
Detalles : = _GetDetalles;
end ;
Result : = ( AFactura as IBizFacturaCliente) ;
finally
HideHourglassCursor;
end ;
end ;
end .