Informes de facturas de cliente adaptados al resumen
git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@879 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
16ebcab039
commit
9a2b3795ae
@ -45,10 +45,6 @@
|
||||
<Borland.ProjectType>Package</Borland.ProjectType>
|
||||
<BorlandProject>
|
||||
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">Libreria base de FactuGES</Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
|
||||
|
||||
|
||||
|
||||
|
||||
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages><Source><Source Name="MainSource">Base.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
|
||||
@ -58,6 +54,57 @@
|
||||
<DelphiCompile Include="Base.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\adortl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxDataD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxEditorsD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxExportD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxExtEditorsD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxGridD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxIntl6D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxIntlPrintSys3D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxLibraryD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\cxPageControlD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\DataAbstract_Core_D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\dbrtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\dclIndyCore.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\designide.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\dsnap.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\dxPSCoreD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\dxThemeD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\GUISDK_D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\IndyCore.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\IndyProtocols.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\IndySystem.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\Jcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JclVcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JSDialog100.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvCmpD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvCoreD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvDlgsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvMMD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvNetD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvPageCompsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvStdCtrlsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\JvSystemD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\pckMD5.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\pckUCDataConnector.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\pckUserControl_RT.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\PngComponentsD10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\PNG_D10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\RemObjects_Core_D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\RemObjects_Indy_D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\rtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\TB2k_D10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\tbx_d10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\vcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\vclactnband.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\vcldb.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\vcljpg.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\VclSmp.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\vclx.dcp" />
|
||||
<DCCReference Include="..\Modulos\Facturas de cliente\xmlrtl.dcp" />
|
||||
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
|
||||
<DCCReference Include="Conexion\uConfigurarConexion.pas">
|
||||
<Form>fConfigurarConexion</Form>
|
||||
@ -82,57 +129,13 @@
|
||||
<Form>dmBase</Form>
|
||||
<DesignClass>TDataModule</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="Utiles\adortl.dcp" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uClassRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uEditorRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uInformeRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uViewRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\ClipboardUtils.pas" />
|
||||
<DCCReference Include="Utiles\Ctltortf.pas" />
|
||||
<DCCReference Include="Utiles\cxDataD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxEditorsD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxExportD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxExtEditorsD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxGridD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxIntl6D11.dcp" />
|
||||
<DCCReference Include="Utiles\cxIntlPrintSys3D11.dcp" />
|
||||
<DCCReference Include="Utiles\cxLibraryD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxPageControlD11.dcp" />
|
||||
<DCCReference Include="Utiles\DataAbstract_Core_D11.dcp" />
|
||||
<DCCReference Include="Utiles\dbrtl.dcp" />
|
||||
<DCCReference Include="Utiles\dclIndyCore.dcp" />
|
||||
<DCCReference Include="Utiles\designide.dcp" />
|
||||
<DCCReference Include="Utiles\dsnap.dcp" />
|
||||
<DCCReference Include="Utiles\dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="Utiles\dxPSCoreD11.dcp" />
|
||||
<DCCReference Include="Utiles\dxThemeD11.dcp" />
|
||||
<DCCReference Include="Utiles\GUISDK_D11.dcp" />
|
||||
<DCCReference Include="Utiles\IndyCore.dcp" />
|
||||
<DCCReference Include="Utiles\IndyProtocols.dcp" />
|
||||
<DCCReference Include="Utiles\IndySystem.dcp" />
|
||||
<DCCReference Include="Utiles\Jcl.dcp" />
|
||||
<DCCReference Include="Utiles\JclVcl.dcp" />
|
||||
<DCCReference Include="Utiles\JSDialog100.dcp" />
|
||||
<DCCReference Include="Utiles\JvCmpD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvCoreD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvDlgsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvMMD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvNetD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvPageCompsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvStdCtrlsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvSystemD11R.dcp" />
|
||||
<DCCReference Include="Utiles\MidasSpeedFix.pas" />
|
||||
<DCCReference Include="Utiles\pckMD5.dcp" />
|
||||
<DCCReference Include="Utiles\pckUCDataConnector.dcp" />
|
||||
<DCCReference Include="Utiles\pckUserControl_RT.dcp" />
|
||||
<DCCReference Include="Utiles\PngComponentsD10.dcp" />
|
||||
<DCCReference Include="Utiles\PNG_D10.dcp" />
|
||||
<DCCReference Include="Utiles\RemObjects_Core_D11.dcp" />
|
||||
<DCCReference Include="Utiles\RemObjects_Indy_D11.dcp" />
|
||||
<DCCReference Include="Utiles\rtl.dcp" />
|
||||
<DCCReference Include="Utiles\TB2k_D10.dcp" />
|
||||
<DCCReference Include="Utiles\tbx_d10.dcp" />
|
||||
<DCCReference Include="Utiles\uAppInfoUtils.pas" />
|
||||
<DCCReference Include="Utiles\uCalculosUtils.pas" />
|
||||
<DCCReference Include="Utiles\uDataTableUtils.pas" />
|
||||
@ -152,13 +155,6 @@
|
||||
<DCCReference Include="Utiles\uSaveClipboard.pas" />
|
||||
<DCCReference Include="Utiles\uSistemaFunc.pas" />
|
||||
<DCCReference Include="Utiles\uStringsUtils.pas" />
|
||||
<DCCReference Include="Utiles\vcl.dcp" />
|
||||
<DCCReference Include="Utiles\vclactnband.dcp" />
|
||||
<DCCReference Include="Utiles\vcldb.dcp" />
|
||||
<DCCReference Include="Utiles\vcljpg.dcp" />
|
||||
<DCCReference Include="Utiles\VclSmp.dcp" />
|
||||
<DCCReference Include="Utiles\vclx.dcp" />
|
||||
<DCCReference Include="Utiles\xmlrtl.dcp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
<!-- EurekaLog First Line
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -799,6 +799,103 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
end>
|
||||
end
|
||||
item
|
||||
Params = <>
|
||||
Statements = <
|
||||
item
|
||||
Connection = 'IBX'
|
||||
TargetTable = 'V_FACTURAS_CLIENTE'
|
||||
SQL =
|
||||
'select ID_EMPRESA,'#10'extract (year from fecha_factura) as ANO,'#10'ext' +
|
||||
'ract (month from fecha_factura) as MES,'#10'case'#10'when extract (month' +
|
||||
' from fecha_factura) = 1 then '#39'ENERO - '#39' || extract (year from f' +
|
||||
'echa_factura)'#10'when extract (month from fecha_factura) = 2 then '#39 +
|
||||
'FEBRERO - '#39' || extract (year from fecha_factura)'#10'when extract (m' +
|
||||
'onth from fecha_factura) = 3 then '#39'MARZO - '#39' || extract (year fr' +
|
||||
'om fecha_factura)'#10'when extract (month from fecha_factura) = 4 th' +
|
||||
'en '#39'ABRIL - '#39' || extract (year from fecha_factura)'#10'when extract ' +
|
||||
'(month from fecha_factura) = 5 then '#39'MAYO - '#39' || extract (year f' +
|
||||
'rom fecha_factura)'#10'when extract (month from fecha_factura) = 6 t' +
|
||||
'hen '#39'JUNIO - '#39' || extract (year from fecha_factura)'#10'when extract' +
|
||||
' (month from fecha_factura) = 7 then '#39'JULIO - '#39' || extract (year' +
|
||||
' from fecha_factura)'#10'when extract (month from fecha_factura) = 8' +
|
||||
' then '#39'AGOSTO - '#39' || extract (year from fecha_factura)'#10'when extr' +
|
||||
'act (month from fecha_factura) = 9 then '#39'SEPTIEMBRE - '#39' || extra' +
|
||||
'ct (year from fecha_factura)'#10'when extract (month from fecha_fact' +
|
||||
'ura) = 10 then '#39'OCTUBRE - '#39' || extract (year from fecha_factura)' +
|
||||
#10'when extract (month from fecha_factura) = 11 then '#39'NOVIEMBRE - ' +
|
||||
#39' || extract (year from fecha_factura)'#10'when extract (month from ' +
|
||||
'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' +
|
||||
'cha_factura)'#10'end as TITULO,'#10'sum(BASE_IMPONIBLE) as BASE_IMPONIBL' +
|
||||
'E,'#10'sum(IMPORTE_IVA) as IMPORTE_IVA,'#10'sum(IMPORTE_TOTAL) AS IMPORT' +
|
||||
'E_TOTAL'#10'from V_facturas_cliente'#10'group by 1,2,3,4'#10'order by 1,2,3,' +
|
||||
'4'#10
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
DatasetField = 'ID_EMPRESA'
|
||||
TableField = 'ID_EMPRESA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ANO'
|
||||
TableField = '<unknown>'
|
||||
SQLOrigin = 'ANO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'MES'
|
||||
TableField = '<unknown>'
|
||||
SQLOrigin = 'MES'
|
||||
end
|
||||
item
|
||||
DatasetField = 'TITULO'
|
||||
TableField = '<unknown>'
|
||||
SQLOrigin = 'TITULO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'BASE_IMPONIBLE'
|
||||
TableField = 'BASE_IMPONIBLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_IVA'
|
||||
TableField = 'IMPORTE_IVA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_TOTAL'
|
||||
TableField = 'IMPORTE_TOTAL'
|
||||
end>
|
||||
end>
|
||||
Name = 'InformeListadoFacturasResumen'
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID_EMPRESA'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'ANO'
|
||||
DataType = datSmallInt
|
||||
end
|
||||
item
|
||||
Name = 'MES'
|
||||
DataType = datSmallInt
|
||||
end
|
||||
item
|
||||
Name = 'TITULO'
|
||||
DataType = datString
|
||||
Size = 19
|
||||
end
|
||||
item
|
||||
Name = 'BASE_IMPONIBLE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_IVA'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
end>
|
||||
end>
|
||||
JoinDataTables = <>
|
||||
UnionDataTables = <>
|
||||
@ -1296,10 +1393,6 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
Size = 255
|
||||
end
|
||||
end
|
||||
object DABINAdapter: TDABINAdapter
|
||||
Left = 48
|
||||
Top = 80
|
||||
end
|
||||
object DADSCabecera: TDADataSource
|
||||
DataSet = tbl_Cabecera.Dataset
|
||||
DataTable = tbl_Cabecera
|
||||
@ -1381,7 +1474,7 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
LocalSchema = schReport
|
||||
LocalDataStreamer = DABINAdapter
|
||||
LocalDataStreamer = Bin2DataStreamer
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'InformeFacturasCliente_Detalles'
|
||||
@ -1553,7 +1646,7 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
LocalSchema = schReport
|
||||
LocalDataStreamer = DABINAdapter
|
||||
LocalDataStreamer = Bin2DataStreamer
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'InformeFacturasCliente'
|
||||
@ -1599,7 +1692,7 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
PrintOptions.Printer = 'Por defecto'
|
||||
PrintOptions.PrintOnSheet = 0
|
||||
ReportOptions.CreateDate = 37800.807714351900000000
|
||||
ReportOptions.LastChange = 39829.645200729170000000
|
||||
ReportOptions.LastChange = 39836.552824236110000000
|
||||
ScriptLanguage = 'PascalScript'
|
||||
ScriptText.Strings = (
|
||||
'procedure frxReportOnStartReport(Sender: TfrxComponent);'
|
||||
@ -1688,7 +1781,7 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
LocalSchema = schReport
|
||||
LocalDataStreamer = DABINAdapter
|
||||
LocalDataStreamer = Bin2DataStreamer
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'InformeFacturasCliente_Vencimientos'
|
||||
@ -1811,7 +1904,7 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
LocalSchema = schReport
|
||||
LocalDataStreamer = DABINAdapter
|
||||
LocalDataStreamer = Bin2DataStreamer
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'InformeListadoFacturas'
|
||||
@ -1914,7 +2007,7 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
LocalSchema = schReport
|
||||
LocalDataStreamer = DABINAdapter
|
||||
LocalDataStreamer = Bin2DataStreamer
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'InformeListadoFacturasPendientes'
|
||||
@ -1922,4 +2015,35 @@ object RptFacturasCliente: TRptFacturasCliente
|
||||
Left = 792
|
||||
Top = 128
|
||||
end
|
||||
object frxDBInformeListadoFacturasResumen: TfrxDBDataset
|
||||
UserName = 'frxDBInformeListadoFacturasResumen'
|
||||
CloseDataSource = True
|
||||
DataSource = DADSInformeListadoFacturasResumen
|
||||
Left = 576
|
||||
Top = 216
|
||||
end
|
||||
object DADSInformeListadoFacturasResumen: TDADataSource
|
||||
DataSet = tbl_InformeListadoFacturasResumen.Dataset
|
||||
DataTable = tbl_InformeListadoFacturasResumen
|
||||
Left = 576
|
||||
Top = 272
|
||||
end
|
||||
object tbl_InformeListadoFacturasResumen: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <>
|
||||
Params = <>
|
||||
MasterMappingMode = mmDataRequest
|
||||
LogChanges = False
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
IndexDefs = <>
|
||||
Left = 576
|
||||
Top = 328
|
||||
end
|
||||
object Bin2DataStreamer: TDABin2DataStreamer
|
||||
Left = 48
|
||||
Top = 88
|
||||
end
|
||||
end
|
||||
|
||||
@ -8,7 +8,7 @@ uses
|
||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
|
||||
uDAMemDataTable, FactuGES_Intf, frxExportPDF;
|
||||
uDAMemDataTable, FactuGES_Intf, frxExportPDF, uDABin2DataStreamer;
|
||||
|
||||
type
|
||||
TRptFacturasCliente = class(TDataModule)
|
||||
@ -21,7 +21,6 @@ type
|
||||
DataSource2: TDataSource;
|
||||
cabecera: TIBQuery;
|
||||
detalles: TIBQuery;
|
||||
DABINAdapter: TDABINAdapter;
|
||||
DADSCabecera: TDADataSource;
|
||||
DADSDetalles: TDADataSource;
|
||||
tbl_Detalles: TDAMemDataTable;
|
||||
@ -87,12 +86,27 @@ type
|
||||
DADSInformeListadoFacturasPendientes: TDADataSource;
|
||||
tbl_InformeListadoFacturasPendientes: TDAMemDataTable;
|
||||
schReport: TDASchema;
|
||||
frxDBInformeListadoFacturasResumen: TfrxDBDataset;
|
||||
DADSInformeListadoFacturasResumen: TDADataSource;
|
||||
tbl_InformeListadoFacturasResumen: TDAMemDataTable;
|
||||
Bin2DataStreamer: TDABin2DataStreamer;
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
FIdEmpresa: Integer;
|
||||
FFechaInicio: Variant;
|
||||
FFechaFin: Variant;
|
||||
FFechaVenInicio: Variant;
|
||||
FFechaVenFin: Variant;
|
||||
FListaIDClientes: TIntegerArray;
|
||||
FImporteMinimo: Currency;
|
||||
|
||||
//Genera cada una de las facturas a imprimir
|
||||
procedure _GenerarFactura(const ID: Integer; const VerSello: Boolean = True);
|
||||
function _GenerarInforme(ATabla: TDAMemDataTable; const TipoInforme: String; const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const ImporteMinimo: Currency): Binary;
|
||||
|
||||
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
|
||||
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
|
||||
function _GenerarInforme(const TipoInforme: String): Binary;
|
||||
public
|
||||
function GenerarFactura(const ListaID : TIntegerArray; const VerSello: Boolean = True): Binary;
|
||||
function GenerarFacturaEnPDF(const ListaID : TIntegerArray; const VerSello: Boolean = True): Binary;
|
||||
@ -106,7 +120,7 @@ implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uSistemaFunc, uDataModuleServer, schFacturasClienteClient_Intf;
|
||||
uSistemaFunc, StrUtils, uDataModuleServer, schFacturasClienteClient_Intf;
|
||||
|
||||
const
|
||||
rptFacturaCliente = 'InfFacturaCliente.fr3';
|
||||
@ -118,9 +132,7 @@ const
|
||||
rptInformeListadoFactuasClientePendienteDesglosado = 'InformeListadoFacturasClientePendientesDesglosado.fr3';
|
||||
|
||||
{ Dataset names for schReport }
|
||||
// ds_InformeFacturasCliente = 'InformeFacturasCliente';
|
||||
// ds_InformeFacturasCliente_Detalles = 'InformeFacturasCliente_Detalles';
|
||||
// ds_InformeFacturasCliente_Vencimientos = 'InformeFacturasCliente_Vencimientos';
|
||||
ds_InformeListadoFacturasResumen = 'InformeListadoFacturasResumen';
|
||||
|
||||
|
||||
{ TRptFacturasCliente }
|
||||
@ -171,15 +183,58 @@ end;
|
||||
function TRptFacturasCliente.GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
|
||||
var
|
||||
ATipoInforme: String;
|
||||
AStream: TMemoryStream;
|
||||
dsMaster: IDADataset;
|
||||
|
||||
begin
|
||||
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
|
||||
AStream := TMemoryStream.Create;
|
||||
try
|
||||
//Inicializamos parametros
|
||||
FIdEmpresa := IdEmpresa;
|
||||
FFechaInicio := FechaInicio;
|
||||
FFechaFin := FechaFin;
|
||||
FFechaVenInicio := Null;
|
||||
FFechaVenFin := Null;
|
||||
FImporteMinimo := ImporteMinimo;
|
||||
|
||||
if Assigned(FListaIDClientes) then
|
||||
FListaIDClientes.Free;
|
||||
FListaIDClientes := ListaIDClientes;
|
||||
|
||||
//Se van a prepara las tablas del informe
|
||||
if tbl_InformeListadoFacturas.Active then
|
||||
tbl_InformeListadoFacturas.Active := False;
|
||||
PrepararTablaInforme(tbl_InformeListadoFacturas);
|
||||
|
||||
//Se prepara la tabla del listado resumen del informe
|
||||
if tbl_InformeListadoFacturasResumen.Active then
|
||||
tbl_InformeListadoFacturasResumen.Active := False;
|
||||
dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoFacturasResumen, [], [], False);
|
||||
PrepararTablaResumenInforme(dsMaster);
|
||||
//Esto se hace para rellenar la tabla del datamodule que usa el informe.
|
||||
dsMaster.Open;
|
||||
AStream.Clear;
|
||||
Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
||||
Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoFacturasResumen, TRUE, '', TRUE, TRUE);
|
||||
|
||||
//DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE
|
||||
if Desglosado then
|
||||
ATipoInforme := rptInformeIVADesglosado
|
||||
else
|
||||
ATipoInforme := rptInformeIVA;
|
||||
|
||||
Result := _GenerarInforme(tbl_InformeListadoFacturas, ATipoInforme, IdEmpresa, FechaInicio, FechaFin, Null, Null, ListaIDClientes, ImporteMinimo);
|
||||
//Finalmente se abren las tablas del informe
|
||||
tbl_InformeListadoFacturas.Active := True;
|
||||
tbl_InformeListadoFacturasResumen.Active := True;
|
||||
|
||||
Result := _GenerarInforme(ATipoInforme);
|
||||
finally
|
||||
AStream.Free;
|
||||
dsMaster := Nil;
|
||||
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRptFacturasCliente.GenerarInformeListadoFacturas(const IdEmpresa: Integer;
|
||||
@ -187,8 +242,41 @@ function TRptFacturasCliente.GenerarInformeListadoFacturas(const IdEmpresa: Inte
|
||||
const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
|
||||
var
|
||||
ATipoInforme: String;
|
||||
AStream: TMemoryStream;
|
||||
dsMaster: IDADataset;
|
||||
|
||||
begin
|
||||
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
|
||||
AStream := TMemoryStream.Create;
|
||||
try
|
||||
//Inicializamos parametros
|
||||
FIdEmpresa := IdEmpresa;
|
||||
FFechaInicio := FechaInicio;
|
||||
FFechaFin := FechaFin;
|
||||
FFechaVenInicio := FechaVenInicio;
|
||||
FFechaVenFin := FechaVenFin;
|
||||
FImporteMinimo := ImporteMinimo;
|
||||
|
||||
if Assigned(FListaIDClientes) then
|
||||
FListaIDClientes.Free;
|
||||
FListaIDClientes := ListaIDClientes;
|
||||
|
||||
//Se prepara la tabla del listado general del informe
|
||||
if tbl_InformeListadoFacturas.Active then
|
||||
tbl_InformeListadoFacturas.Active := False;
|
||||
PrepararTablaInforme(tbl_InformeListadoFacturas);
|
||||
|
||||
//Se prepara la tabla del listado resumen del informe
|
||||
if tbl_InformeListadoFacturasResumen.Active then
|
||||
tbl_InformeListadoFacturasResumen.Active := False;
|
||||
dsMaster := schReport.NewDataset(FConnection, ds_InformeListadoFacturasResumen, [], [], False);
|
||||
PrepararTablaResumenInforme(dsMaster);
|
||||
//Esto se hace para rellenar la tabla del datamodule que usa el informe.
|
||||
dsMaster.Open;
|
||||
AStream.Clear;
|
||||
Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
||||
Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoFacturasResumen, TRUE, '', TRUE, TRUE);
|
||||
|
||||
//DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE
|
||||
if Desglosado then
|
||||
@ -196,7 +284,17 @@ begin
|
||||
else
|
||||
ATipoInforme := rptInformeListadoFacturasCliente;
|
||||
|
||||
Result := _GenerarInforme(tbl_InformeListadoFacturas, ATipoInforme, IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, ImporteMinimo);
|
||||
//Finalmente se abren las tablas del informe
|
||||
tbl_InformeListadoFacturas.Active := True;
|
||||
tbl_InformeListadoFacturasResumen.Active := True;
|
||||
|
||||
Result := _GenerarInforme(ATipoInforme);
|
||||
|
||||
finally
|
||||
AStream.Free;
|
||||
dsMaster := Nil;
|
||||
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRptFacturasCliente.GenerarInformeListadoFacturasPendientes(
|
||||
@ -207,10 +305,30 @@ function TRptFacturasCliente.GenerarInformeListadoFacturasPendientes(
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
ATipoInforme: String;
|
||||
AStream: TMemoryStream;
|
||||
dsMaster: IDADataset;
|
||||
|
||||
begin
|
||||
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
|
||||
AStream := TMemoryStream.Create;
|
||||
try
|
||||
//Inicializamos parametros
|
||||
FIdEmpresa := IdEmpresa;
|
||||
FFechaInicio := FechaInicio;
|
||||
FFechaFin := FechaFin;
|
||||
FFechaVenInicio := FechaVenInicio;
|
||||
FFechaVenFin := FechaVenFin;
|
||||
FImporteMinimo := ImporteMinimo;
|
||||
|
||||
if Assigned(FListaIDClientes) then
|
||||
FListaIDClientes.Free;
|
||||
FListaIDClientes := ListaIDClientes;
|
||||
|
||||
//Se prepara la tabla del listado general del informe
|
||||
if tbl_InformeListadoFacturasPendientes.Active then
|
||||
tbl_InformeListadoFacturasPendientes.Active := False;
|
||||
PrepararTablaInforme(tbl_InformeListadoFacturasPendientes);
|
||||
|
||||
// Filtrar el informe por situacion
|
||||
with tbl_InformeListadoFacturasPendientes.DynamicWhere do
|
||||
@ -223,15 +341,153 @@ begin
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
|
||||
|
||||
//DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE
|
||||
if Desglosado then
|
||||
ATipoInforme := rptInformeListadoFactuasClientePendienteDesglosado
|
||||
else
|
||||
ATipoInforme := rptInformeListadoFactuasClientePendiente;
|
||||
|
||||
//Finalmente se abren las tablas del informe
|
||||
tbl_InformeListadoFacturasPendientes.Active := True;
|
||||
|
||||
Result := _GenerarInforme(tbl_InformeListadoFacturasPendientes, ATipoInforme, IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, ImporteMinimo);
|
||||
Result := _GenerarInforme(ATipoInforme);
|
||||
|
||||
finally
|
||||
AStream.Free;
|
||||
dsMaster := Nil;
|
||||
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRptFacturasCliente.PrepararTablaInforme(ATabla: TDAMemDataTable);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
// Filtrar el informe por empresa
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (ID_EMPRESA >= ID)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_EMPRESA), NewConstant(FIdEmpresa, datInteger), dboEqual);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
|
||||
// Filtrar el informe por fechas
|
||||
if not VarIsNull(FFechaInicio)
|
||||
and not VarIsNull(FFechaFin) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (FECHA_INICIO between FECHA_FIN)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FFechaInicio, datDateTime), dboGreaterOrEqual);
|
||||
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FFechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
|
||||
// Filtrar el informe por fechas de vencimiento
|
||||
if not VarIsNull(FFechaVenInicio)
|
||||
and not VarIsNull(FFechaVenFin) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_VENCIMIENTO), NewConstant(FFechaVenInicio, datDateTime), dboGreaterOrEqual);
|
||||
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_VENCIMIENTO), NewConstant(FFechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
|
||||
// Filtrar el informe por proveedor
|
||||
if Assigned(FListaIDClientes) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
for i := 0 to FListaIDClientes.Count - 1 do
|
||||
begin
|
||||
|
||||
// (ID_CLIENTE = ID)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_CLIENTE), NewConstant(FListaIDClientes.Items[i], datInteger), dboEqual);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// Filtrar el informe por importe minimo
|
||||
if (FImporteMinimo > 0) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (IMPORTE_TOTAL > ImporteMinimo)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasCLienteIMPORTE_TOTAL), NewConstant(FImporteMinimo, datCurrency), dboGreaterOrEqual);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRptFacturasCliente.PrepararTablaResumenInforme(ATabla: IDADataset);
|
||||
var
|
||||
i: Integer;
|
||||
AWhereStr : String;
|
||||
|
||||
begin
|
||||
// Filtrar el informe por empresa
|
||||
AWhereStr := ' (' + fld_FacturasCLienteID_EMPRESA + ' = ' + IntToStr(FIdEmpresa) + ') ';
|
||||
|
||||
// Filtrar el informe por fechas
|
||||
if not VarIsNull(FFechaInicio)
|
||||
and not VarIsNull(FFechaFin) then
|
||||
begin
|
||||
if Length(AWhereStr) > 0 then
|
||||
AWhereStr := AWhereStr + 'AND';
|
||||
AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteFECHA_FACTURA + ' between ''' + ReplaceStr(VarToStr(FFechaInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaFin),'/','.') + ''') ';
|
||||
end;
|
||||
|
||||
// Filtrar el informe por fechas de vencimiento
|
||||
if not VarIsNull(FFechaVenInicio)
|
||||
and not VarIsNull(FFechaVenFin) then
|
||||
begin
|
||||
if Length(AWhereStr) > 0 then
|
||||
AWhereStr := AWhereStr + 'AND';
|
||||
AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteFECHA_VENCIMIENTO + ' between ''' + ReplaceStr(VarToStr(FFechaVenInicio),'/','.') + ''' and ''' + ReplaceStr(VarToStr(FFechaVenFin),'/','.') + ''') ';
|
||||
end;
|
||||
|
||||
// Filtrar el informe por proveedor
|
||||
if Assigned(FListaIDClientes) then
|
||||
begin
|
||||
for i := 0 to FListaIDClientes.Count - 1 do
|
||||
begin
|
||||
if Length(AWhereStr) > 0 then
|
||||
AWhereStr := AWhereStr + 'AND';
|
||||
AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteID_CLIENTE + ' = ' + IntToStr(FListaIDClientes.Items[i]) + ') ';
|
||||
end;
|
||||
end;
|
||||
|
||||
// Filtrar el informe por importe minimo
|
||||
if (FImporteMinimo > 0) then
|
||||
begin
|
||||
if Length(AWhereStr) > 0 then
|
||||
AWhereStr := AWhereStr + 'AND';
|
||||
AWhereStr := AWhereStr + ' (' + fld_FacturasCLienteIMPORTE_TOTAL + ' >= ' + CurrToStr(FImporteMinimo) + ') ';
|
||||
end;
|
||||
|
||||
ATabla.Where.AddText(AWhereStr);
|
||||
end;
|
||||
|
||||
procedure TRptFacturasCliente._GenerarFactura(const ID: Integer; const VerSello: Boolean = True);
|
||||
@ -268,117 +524,22 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRptFacturasCliente._GenerarInforme(ATabla: TDAMemDataTable; const TipoInforme: String;
|
||||
const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
|
||||
const FechaVenInicio: Variant; const FechaVenFin: Variant;
|
||||
const ListaIDClientes: TIntegerArray; const ImporteMinimo: Currency): Binary;
|
||||
function TRptFacturasCliente._GenerarInforme(const TipoInforme: String): Binary;
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
i: Integer;
|
||||
AInforme: Variant;
|
||||
|
||||
begin
|
||||
Result := Binary.Create;
|
||||
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
|
||||
try
|
||||
|
||||
if ATabla.Active then
|
||||
ATabla.Active := False;
|
||||
|
||||
// Filtrar el informe por empresa
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (ID_EMPRESA >= ID)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_EMPRESA), NewConstant(IdEmpresa, datInteger), dboEqual);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
|
||||
// Filtrar el informe por fechas
|
||||
if not VarIsNull(FechaInicio)
|
||||
and not VarIsNull(FechaFin) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (FECHA_INICIO between FECHA_FIN)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FechaInicio, datDateTime), dboGreaterOrEqual);
|
||||
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FechaFin, datDateTime), dboLessOrEqual), Condicion, dboAnd);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
|
||||
// Filtrar el informe por fechas de vencimiento
|
||||
if not VarIsNull(FechaVenInicio)
|
||||
and not VarIsNull(FechaVenFin) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (FECHA_VENCIMIENTO_INICIO between FECHA_VENCIMIENTO_FIN)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_VENCIMIENTO), NewConstant(FechaVenInicio, datDateTime), dboGreaterOrEqual);
|
||||
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_VENCIMIENTO), NewConstant(FechaVenFin, datDateTime), dboLessOrEqual), Condicion, dboAnd);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
|
||||
// Filtrar el informe por cliente
|
||||
if Assigned(ListaIDClientes) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
for i := 0 to ListaIDClientes.Count - 1 do
|
||||
begin
|
||||
|
||||
// (ID_CLIENTE = ID)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_CLIENTE), NewConstant(ListaIDClientes.Items[i], datInteger), dboEqual);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
// Filtrar el informe por importe minimo
|
||||
if (ImporteMinimo > 0) then
|
||||
begin
|
||||
with ATabla.DynamicWhere do
|
||||
begin
|
||||
// (IMPORTE_TOTAL > ImporteMinimo)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteIMPORTE_TOTAL), NewConstant(ImporteMinimo, datCurrency), dboGreaterOrEqual);
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
ATabla.Active := True;
|
||||
// showmessage(inttostr(ATabla.RecordCount));
|
||||
|
||||
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
|
||||
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(FIdEmpresa));
|
||||
if VarIsNull(AInforme) then
|
||||
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));
|
||||
|
||||
frxReport.LoadFromFile(AInforme, True);
|
||||
frxReport.Variables.Variables['FechaInicio'] := FechaInicio;
|
||||
frxReport.Variables.Variables['FechaFin'] := FechaFin;
|
||||
frxReport.Variables.Variables['FechaInicio'] := FFechaInicio;
|
||||
frxReport.Variables.Variables['FechaFin'] := FFechaFin;
|
||||
|
||||
frxReport.PrepareReport(False);
|
||||
frxReport.PreviewPages.SaveToStream(Result);
|
||||
|
||||
finally
|
||||
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -2026,36 +2026,7 @@ object RptFacturasProveedor: TRptFacturasProveedor
|
||||
end
|
||||
object tbl_InformeListadoFacturasResumen: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID_EMPRESA'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'ANO'
|
||||
DataType = datSmallInt
|
||||
end
|
||||
item
|
||||
Name = 'MES'
|
||||
DataType = datSmallInt
|
||||
end
|
||||
item
|
||||
Name = 'TITULO'
|
||||
DataType = datString
|
||||
Size = 19
|
||||
end
|
||||
item
|
||||
Name = 'BASE_IMPONIBLE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_IVA'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
end>
|
||||
Fields = <>
|
||||
Params = <>
|
||||
MasterMappingMode = mmDataRequest
|
||||
LogChanges = False
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user