diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj
index 9c6fdd3..dab61ca 100644
--- a/Source/Base/Base.dproj
+++ b/Source/Base/Base.dproj
@@ -54,58 +54,58 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TDataModule
diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc
index fbb1ee5..a7bc819 100644
--- a/Source/Cliente/FactuGES.rc
+++ b/Source/Cliente/FactuGES.rc
@@ -1,7 +1,7 @@
MAINICON ICON "C:\Codigo\Resources\Iconos\Factuges.ico"
1 VERSIONINFO
-FILEVERSION 4,1,9,0
-PRODUCTVERSION 4,1,9,0
+FILEVERSION 4,2,1,0
+PRODUCTVERSION 4,2,1,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
@@ -13,10 +13,10 @@ BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "CompanyName", "Rodax Software S.L.\0"
- VALUE "FileVersion", "4.1.9.0\0"
+ VALUE "FileVersion", "4.2.1.0\0"
VALUE "InternalName", "FactuGES\0"
VALUE "ProductName", "FactuGES\0"
- VALUE "ProductVersion", "4.1.9.0\0"
+ VALUE "ProductVersion", "4.2.1.0\0"
END
END
BLOCK "VarFileInfo"
diff --git a/Source/Informes/1/InformeObjetivosAgentesAlbaranes.fr3 b/Source/Informes/1/InformeObjetivosAgentesAlbaranes.fr3
index ba8b6fd..ffdb28f 100644
--- a/Source/Informes/1/InformeObjetivosAgentesAlbaranes.fr3
+++ b/Source/Informes/1/InformeObjetivosAgentesAlbaranes.fr3
@@ -1,5 +1,5 @@
-
+
@@ -32,8 +32,8 @@
-
-
+
+
@@ -45,12 +45,12 @@
-
+
-
+
-
+
diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm
index 8cdf5c7..a9071d6 100644
--- a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm
+++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm
@@ -484,124 +484,6 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DataType = datCurrency
end>
end
- item
- Params = <>
- Statements = <
- item
- ConnectionType = 'Interbase'
- Default = True
- Name = 'IBX'
- SQL =
- 'select A.ID_EMPRESA, A.ID_AGENTE,'#10' A.ANO,'#10' A.MES,'#10' AO.C' +
- 'ANTIDAD_OBJETIVO,'#10' AO.IMPORTE_OBJETIVO,'#10' A.CANTIDAD_CONSEG' +
- 'UIDA,'#10' A.CANTIDAD_DEVUELTA,'#10' A.IMPORTE_CONSEGUIDO,'#10' A.I' +
- 'MPORTE_DEVUELTO,'#10' (A.CANTIDAD_CONSEGUIDA - AO.CANTIDAD_OBJETI' +
- 'VO) as CANTIDAD_RESULTADO,'#10' (A.IMPORTE_CONSEGUIDO - AO.IMPORT' +
- 'E_OBJETIVO) as IMPORTE_RESULTADO'#10#10#10'from v_inf_objetivos_albarane' +
- 's A'#10'left join V_INF_OBJETIVOS_ALB_AGENTES AO on ((AO.id_agente =' +
- ' A.id_agente) and (AO.ano = A.ANO) and (AO.mes = A.MES))'#10#10#10
- StatementType = stSQL
- ColumnMappings = <
- item
- DatasetField = 'ID_EMPRESA'
- TableField = 'ID_EMPRESA'
- end
- item
- DatasetField = 'ID_AGENTE'
- TableField = 'ID_AGENTE'
- end
- item
- DatasetField = 'ANO'
- TableField = 'ANO'
- end
- item
- DatasetField = 'MES'
- TableField = 'MES'
- end
- item
- DatasetField = 'CANTIDAD_OBJETIVO'
- TableField = 'CANTIDAD_OBJETIVO'
- end
- item
- DatasetField = 'IMPORTE_OBJETIVO'
- TableField = 'IMPORTE_OBJETIVO'
- end
- item
- DatasetField = 'CANTIDAD_CONSEGUIDA'
- TableField = 'CANTIDAD_CONSEGUIDA'
- end
- item
- DatasetField = 'CANTIDAD_DEVUELTA'
- TableField = 'CANTIDAD_DEVUELTA'
- end
- item
- DatasetField = 'IMPORTE_CONSEGUIDO'
- TableField = 'IMPORTE_CONSEGUIDO'
- end
- item
- DatasetField = 'IMPORTE_DEVUELTO'
- TableField = 'IMPORTE_DEVUELTO'
- end
- item
- DatasetField = 'CANTIDAD_RESULTADO'
- TableField = 'CANTIDAD_RESULTADO'
- end
- item
- DatasetField = 'IMPORTE_RESULTADO'
- TableField = 'IMPORTE_RESULTADO'
- end>
- end>
- Name = 'Informe_Objetivos_Albaranes'
- Fields = <
- item
- Name = 'ID_EMPRESA'
- DataType = datInteger
- end
- item
- Name = 'ID_AGENTE'
- DataType = datInteger
- end
- item
- Name = 'ANO'
- DataType = datSmallInt
- end
- item
- Name = 'MES'
- DataType = datSmallInt
- end
- item
- Name = 'CANTIDAD_OBJETIVO'
- DataType = datInteger
- end
- item
- Name = 'IMPORTE_OBJETIVO'
- DataType = datCurrency
- end
- item
- Name = 'CANTIDAD_CONSEGUIDA'
- DataType = datCurrency
- end
- item
- Name = 'CANTIDAD_DEVUELTA'
- DataType = datCurrency
- end
- item
- Name = 'IMPORTE_CONSEGUIDO'
- DataType = datCurrency
- end
- item
- Name = 'IMPORTE_DEVUELTO'
- DataType = datCurrency
- end
- item
- Name = 'CANTIDAD_RESULTADO'
- DataType = datCurrency
- end
- item
- Name = 'IMPORTE_RESULTADO'
- DataType = datCurrency
- end>
- end
item
Params = <
item
@@ -619,47 +501,64 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Default = True
Name = 'IBX'
SQL =
- 'select SEN.ID_AGENTE, C.NOMBRE as AGENTE, ANO, MES,'#10' P.descri' +
- 'pcion,'#10#10' coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES, 0) a' +
- 's CLIENTES_TOTALES,'#10#10' sum(ALTAS_CLIENTE) as ALTAS_CLIENTE,'#10#10' ' +
- ' sum(CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(IMPORTE_OBJE' +
- 'TIVO) as IMPORTE_OBJETIVO,'#10#10' sum(CANTIDAD_CONSEGUIDA) as CANT' +
- 'IDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_DEVUELTA,'#10' ' +
- ' sum(IMPORTE_CONSEGUIDO) as IMPORTE_CONSEGUIDO, sum(IMPORTE_DEV' +
- 'UELTO) as IMPORTE_DEVUELTO,'#10#10' (sum(CANTIDAD_CONSEGUIDA) - sum' +
- '(CANTIDAD_OBJETIVO)) as CANTIDAD_RESULTADO,'#10' (sum(IMPORTE_CON' +
- 'SEGUIDO) - sum(IMPORTE_OBJETIVO)) as IMPORTE_RESULTADO,'#10' case' +
- ' when (sum(IMPORTE_CONSEGUIDO) > 0) then (sum(IMPORTE_CONSEGUIDO' +
- ')/sum(CANTIDAD_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_MEDIO_' +
- 'UNIDAD,'#10#10' case when (sum(IMPORTE_CONSEGUIDO) > 0) then (sum(I' +
- 'MPORTE_CONSEGUIDO)/coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALE' +
- 'S, 0))'#10' else 0'#10' end as IMPORTE_MEDIO_CLIENTE'#10#10'from'#10'('#10'selec' +
- 't AO.ID_AGENTE, AO.ANO, AO.MES,'#10'0 as ALTAS_CLIENTE,'#10'sum(AO.CANTI' +
- 'DAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(AO.IMPORTE_OBJETIVO) as ' +
- 'IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA, 0 as CANTIDAD_DEVUEL' +
- 'TA, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO'#10'from V_INF_OB' +
- 'JETIVOS_ALB_AGENTES AO'#10'left join contactos C on (C.ID = AO.ID_AG' +
- 'ENTE)'#10'where (AO.ANO = :ANO1)'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select I' +
- 'D_AGENTE, ANO, MES,'#10'0 as ALTAS_CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, ' +
- '0 as IMPORTE_OBJETIVO,'#10'sum(CANTIDAD_CONSEGUIDA) as CANTIDAD_CONS' +
- 'EGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_DEVUELTA, sum(IMPORTE' +
- '_CONSEGUIDO) as IMPORTE_CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMP' +
- 'ORTE_DEVUELTO'#10'from v_inf_objetivos_albaranes'#10'where ((v_inf_objet' +
- 'ivos_albaranes.id_empresa = :ID_EMPRESA) and (v_inf_objetivos_al' +
- 'baranes.ANO = :ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGENT' +
- 'E, ANO, MES,'#10'count(ID_CLIENTE) as ALTAS_CLIENTE,'#10'0 as CANTIDAD_O' +
- 'BJETIVO, 0 as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA, 0 as C' +
- 'ANTIDAD_DEVUELTA, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO' +
- #10'from v_inf_obj_clientes_agentes'#10'where (ANO = :ANO1)'#10'group by 1,' +
- '2,3'#10') SEN'#10#10'left join periodos_aux P on ((P.periodo = '#39'MENSUAL'#39') ' +
- 'and (P.valor = MES))'#10'left join contactos C on (C.ID = SEN.ID_AGE' +
- 'NTE)'#10#10'left join'#10'('#10'select coalesce(ID_AGENTE, -1) as ID_AGENTE, c' +
- 'ount(ID_CLIENTE) as NUM_CLIENTES_TOTALES'#10'from clientes_datos'#10'gro' +
- 'up by 1'#10') CLIENTES_TOTALES on (CLIENTES_TOTALES.ID_AGENTE = SEN.' +
- 'id_Agente)'#10#10'where {where}'#10'group by 1,2,3,4,5,6'#10'order by 1,2,3,4,' +
- '5,6'#10#10#10#10
+ 'select SEN.ID_AGENTE, COALESCE(C.NOMBRE, '#39'SIN ASIGNAR'#39') as AGENT' +
+ 'E, ANO, MES,'#10' P.descripcion,'#10#10' coalesce(CLIENTES_TOTALES.N' +
+ 'UM_CLIENTES_TOTALES, 0) as CLIENTES_TOTALES,'#10#10' sum(ALTAS_CLIE' +
+ 'NTE) as ALTAS_CLIENTE,'#10#10' sum(CANTIDAD_OBJETIVO) as CANTIDAD_O' +
+ 'BJETIVO, sum(IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' sum(CAN' +
+ 'TIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA)' +
+ ' as CANTIDAD_DEVUELTA, sum(CANTIDAD_TOTAL_CONSEGUIDA) as CANTIDA' +
+ 'D_TOTAL_CONSEGUIDA,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE_CONSE' +
+ 'GUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, sum(IMPORTE_TO' +
+ 'TAL_CONSEGUIDO) as IMPORTE_TOTAL_CONSEGUIDO,'#10#10' (sum(CANTIDAD_' +
+ 'TOTAL_CONSEGUIDA) - sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RESULTAD' +
+ 'O,'#10' (sum(IMPORTE_TOTAL_CONSEGUIDO) - sum(IMPORTE_OBJETIVO)) a' +
+ 's IMPORTE_RESULTADO,'#10#10' case when (sum(CANTIDAD_TOTAL_CONSEGUI' +
+ 'DA) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/sum(CANTIDAD_TOTAL' +
+ '_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_MEDIO_UNIDAD,'#10#10' c' +
+ 'ase when (coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES, 0) <> ' +
+ '0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/coalesce(CLIENTES_TOTALES' +
+ '.NUM_CLIENTES_TOTALES, 0))'#10' else 0'#10' end as IMPORTE_MEDIO_C' +
+ 'LIENTE'#10#10#10'from'#10'('#10'select AO.ID_AGENTE, AO.ANO, AO.MES,'#10'0 as ALTAS_' +
+ 'CLIENTE,'#10'sum(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(AO.' +
+ 'IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA,' +
+ ' 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0 as IM' +
+ 'PORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_TOTAL_CONS' +
+ 'EGUIDO'#10'from V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join contactos C' +
+ ' on (C.ID = AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'group by 1,2,3'#10 +
+ #10'UNION ALL'#10#10'select ID_AGENTE, ANO, MES,'#10'0 as ALTAS_CLIENTE,'#10'0 as' +
+ ' CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum(CANTIDAD_CONSEGUI' +
+ 'DA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_D' +
+ 'EVUELTA, (sum(CANTIDAD_CONSEGUIDA) + sum(CANTIDAD_DEVUELTA)) as ' +
+ 'CANTIDAD_TOTAL_CONSEGUIDA,'#10'sum(IMPORTE_CONSEGUIDO) as IMPORTE_CO' +
+ 'NSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, (sum(IMPORT' +
+ 'E_CONSEGUIDO) + sum(IMPORTE_DEVUELTO)) as IMPORTE_TOTAL_CONSEGUI' +
+ 'DO'#10'from v_inf_objetivos_albaranes'#10'where ((v_inf_objetivos_albara' +
+ 'nes.id_empresa = :ID_EMPRESA) and (v_inf_objetivos_albaranes.ANO' +
+ ' = :ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGENTE, ANO, MES' +
+ ','#10'count(ID_CLIENTE) as ALTAS_CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, 0 ' +
+ 'as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA, 0 as CANTIDAD_DEV' +
+ 'UELTA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0 as IMPORTE_CONSEGUIDO, ' +
+ '0 as IMPORTE_DEVUELTO, 0 as IMPORTE_TOTAL_CONSEGUIDO'#10'from v_inf_' +
+ 'obj_clientes_agentes'#10'where (ANO = :ANO1)'#10'group by 1,2,3'#10') SEN'#10#10'l' +
+ 'eft join periodos_aux P on ((P.periodo = '#39'MENSUAL'#39') and (P.valor' +
+ ' = MES))'#10'left join contactos C on (C.ID = SEN.ID_AGENTE)'#10'left jo' +
+ 'in agentes_datos on (agentes_datos.id_agente = SEN.ID_AGENTE)'#10#10'l' +
+ 'eft join'#10'('#10'select coalesce(ID_AGENTE, -1) as ID_AGENTE, count(ID' +
+ '_CLIENTE) as NUM_CLIENTES_TOTALES'#10'from clientes_datos'#10'group by 1' +
+ #10') CLIENTES_TOTALES on (CLIENTES_TOTALES.ID_AGENTE = SEN.id_Agen' +
+ 'te)'#10#10'where agentes_datos.FECHA_BAJA is null'#10'and {where}'#10'group by' +
+ ' 1,2,3,4,5,6'#10'order by 1,2,3,4,5,6'#10#10#10#10
StatementType = stSQL
ColumnMappings = <
+ item
+ DatasetField = 'ID_AGENTE'
+ TableField = 'ID_AGENTE'
+ end
+ item
+ DatasetField = 'AGENTE'
+ TableField = 'AGENTE'
+ end
item
DatasetField = 'ANO'
TableField = 'ANO'
@@ -672,6 +571,14 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DatasetField = 'DESCRIPCION'
TableField = 'DESCRIPCION'
end
+ item
+ DatasetField = 'CLIENTES_TOTALES'
+ TableField = 'CLIENTES_TOTALES'
+ end
+ item
+ DatasetField = 'ALTAS_CLIENTE'
+ TableField = 'ALTAS_CLIENTE'
+ end
item
DatasetField = 'CANTIDAD_OBJETIVO'
TableField = 'CANTIDAD_OBJETIVO'
@@ -704,18 +611,6 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DatasetField = 'IMPORTE_RESULTADO'
TableField = 'IMPORTE_RESULTADO'
end
- item
- DatasetField = 'ID_AGENTE'
- TableField = 'ID_AGENTE'
- end
- item
- DatasetField = 'ALTAS_CLIENTE'
- TableField = 'ALTAS_CLIENTE'
- end
- item
- DatasetField = 'CLIENTES_TOTALES'
- TableField = 'CLIENTES_TOTALES'
- end
item
DatasetField = 'IMPORTE_MEDIO_UNIDAD'
TableField = 'IMPORTE_MEDIO_UNIDAD'
@@ -725,8 +620,12 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
TableField = 'IMPORTE_MEDIO_CLIENTE'
end
item
- DatasetField = 'AGENTE'
- TableField = 'AGENTE'
+ DatasetField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ TableField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ TableField = 'IMPORTE_TOTAL_CONSEGUIDO'
end>
end>
Name = 'InformeListadoObjetivosMensual'
@@ -777,6 +676,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -785,6 +688,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
@@ -2131,51 +2038,85 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
ConnectionType = 'Interbase'
Default = True
SQL =
- 'select SEN.ID_AGENTE, C.NOMBRE as AGENTE, ANO, TRIMESTRE,'#10' P.' +
- 'descripcion,'#10#10' coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES' +
- ', 0) as CLIENTES_TOTALES,'#10#10' sum(ALTAS_CLIENTE) as ALTAS_CLIEN' +
- 'TE,'#10#10' sum(CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(IMPORT' +
- 'E_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' sum(CANTIDAD_CONSEGUIDA) a' +
- 's CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_DEVUEL' +
- 'TA,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE_CONSEGUIDO, sum(IMPOR' +
- 'TE_DEVUELTO) as IMPORTE_DEVUELTO,'#10#10' (sum(CANTIDAD_CONSEGUIDA)' +
- ' - sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RESULTADO,'#10' (sum(IMPOR' +
- 'TE_CONSEGUIDO) - sum(IMPORTE_OBJETIVO)) as IMPORTE_RESULTADO,'#10' ' +
- ' case when (sum(IMPORTE_CONSEGUIDO) > 0) then (sum(IMPORTE_CONS' +
- 'EGUIDO)/sum(CANTIDAD_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_' +
- 'MEDIO_UNIDAD,'#10#10' case when (sum(IMPORTE_CONSEGUIDO) > 0) then ' +
- '(sum(IMPORTE_CONSEGUIDO)/coalesce(CLIENTES_TOTALES.NUM_CLIENTES_' +
- 'TOTALES, 0))'#10' else 0'#10' end as IMPORTE_MEDIO_CLIENTE'#10#10'from'#10'(' +
- #10'select AO.ID_AGENTE, AO.ANO, AO.TRIMESTRE,'#10'0 as ALTAS_CLIENTE,'#10 +
- 'sum(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(AO.IMPORTE_O' +
- 'BJETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA, 0 as CAN' +
- 'TIDAD_DEVUELTA, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO'#10'f' +
- 'rom V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join contactos C on (C.I' +
- 'D = AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'group by 1,2,3'#10#10'UNION A' +
- 'LL'#10#10'select ID_AGENTE, ANO, TRIMESTRE,'#10'0 as ALTAS_CLIENTE,'#10'0 as C' +
- 'ANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum(CANTIDAD_CONSEGUIDA' +
- ') as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_DEV' +
- 'UELTA, sum(IMPORTE_CONSEGUIDO) as IMPORTE_CONSEGUIDO, sum(IMPORT' +
- 'E_DEVUELTO) as IMPORTE_DEVUELTO'#10'from v_inf_objetivos_albaranes'#10'w' +
- 'here ((v_inf_objetivos_albaranes.id_empresa = :ID_EMPRESA) and (' +
- 'v_inf_objetivos_albaranes.ANO = :ANO1))'#10'group by 1,2,3'#10#10'UNION AL' +
- 'L'#10#10'select ID_AGENTE, ANO, TRIMESTRE,'#10'count(ID_CLIENTE) as ALTAS_' +
- 'CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'0 as CAN' +
- 'TIDAD_CONSEGUIDA, 0 as CANTIDAD_DEVUELTA, 0 as IMPORTE_CONSEGUID' +
- 'O, 0 as IMPORTE_DEVUELTO'#10'from v_inf_obj_clientes_agentes'#10'where (' +
- 'ANO = :ANO1)'#10'group by 1,2,3'#10') SEN'#10#10'left join periodos_aux P on (' +
- '(P.periodo = '#39'TRIMESTRAL'#39') and (P.valor = TRIMESTRE))'#10'left join ' +
- 'contactos C on (C.ID = SEN.ID_AGENTE)'#10#10'left join'#10'('#10'select coales' +
- 'ce(ID_AGENTE, -1) as ID_AGENTE, count(ID_CLIENTE) as NUM_CLIENTE' +
- 'S_TOTALES'#10'from clientes_datos'#10'group by 1'#10') CLIENTES_TOTALES on (' +
- 'CLIENTES_TOTALES.ID_AGENTE = SEN.id_Agente)'#10#10'where {where}'#10'group' +
- ' by 1,2,3,4,5,6'#10'order by 1,2,3,4,5,6'#10#10#10#10
+ 'select SEN.ID_AGENTE, COALESCE(C.NOMBRE, '#39'SIN ASIGNAR'#39') as AGENT' +
+ 'E, ANO, TRIMESTRE,'#10' P.descripcion,'#10#10' coalesce(CLIENTES_TOT' +
+ 'ALES.NUM_CLIENTES_TOTALES, 0) as CLIENTES_TOTALES,'#10#10' sum(ALTA' +
+ 'S_CLIENTE) as ALTAS_CLIENTE,'#10#10' sum(CANTIDAD_OBJETIVO) as CANT' +
+ 'IDAD_OBJETIVO, sum(IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' s' +
+ 'um(CANTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEV' +
+ 'UELTA) as CANTIDAD_DEVUELTA, sum(CANTIDAD_TOTAL_CONSEGUIDA) as C' +
+ 'ANTIDAD_TOTAL_CONSEGUIDA,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE' +
+ '_CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, sum(IMPO' +
+ 'RTE_TOTAL_CONSEGUIDO) as IMPORTE_TOTAL_CONSEGUIDO,'#10#10' (sum(CAN' +
+ 'TIDAD_TOTAL_CONSEGUIDA) - sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RE' +
+ 'SULTADO,'#10' (sum(IMPORTE_TOTAL_CONSEGUIDO) - sum(IMPORTE_OBJETI' +
+ 'VO)) as IMPORTE_RESULTADO,'#10#10' case when (sum(CANTIDAD_TOTAL_CO' +
+ 'NSEGUIDA) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/sum(CANTIDAD' +
+ '_TOTAL_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_MEDIO_UNIDAD,'#10 +
+ #10' case when (coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES, ' +
+ '0) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/coalesce(CLIENTES_T' +
+ 'OTALES.NUM_CLIENTES_TOTALES, 0))'#10' else 0'#10' end as IMPORTE_M' +
+ 'EDIO_CLIENTE'#10#10#10'from'#10'('#10'select AO.ID_AGENTE, AO.ANO, AO.TRIMESTRE,' +
+ #10'0 as ALTAS_CLIENTE,'#10'sum(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJET' +
+ 'IVO, sum(AO.IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD' +
+ '_CONSEGUIDA, 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGU' +
+ 'IDA, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORT' +
+ 'E_TOTAL_CONSEGUIDO'#10'from V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join' +
+ ' contactos C on (C.ID = AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'gro' +
+ 'up by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGENTE, ANO, TRIMESTRE,'#10'0 as A' +
+ 'LTAS_CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum' +
+ '(CANTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUE' +
+ 'LTA) as CANTIDAD_DEVUELTA, (sum(CANTIDAD_CONSEGUIDA) + sum(CANTI' +
+ 'DAD_DEVUELTA)) as CANTIDAD_TOTAL_CONSEGUIDA,'#10'sum(IMPORTE_CONSEGU' +
+ 'IDO) as IMPORTE_CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEV' +
+ 'UELTO, (sum(IMPORTE_CONSEGUIDO) + sum(IMPORTE_DEVUELTO)) as IMPO' +
+ 'RTE_TOTAL_CONSEGUIDO'#10'from v_inf_objetivos_albaranes'#10'where ((v_in' +
+ 'f_objetivos_albaranes.id_empresa = :ID_EMPRESA) and (v_inf_objet' +
+ 'ivos_albaranes.ANO = :ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select I' +
+ 'D_AGENTE, ANO, TRIMESTRE,'#10'count(ID_CLIENTE) as ALTAS_CLIENTE,'#10'0 ' +
+ 'as CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSE' +
+ 'GUIDA, 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0' +
+ ' as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_TOTA' +
+ 'L_CONSEGUIDO'#10'from v_inf_obj_clientes_agentes'#10'where (ANO = :ANO1)' +
+ #10'group by 1,2,3'#10') SEN'#10#10'left join periodos_aux P on ((P.periodo =' +
+ ' '#39'TRIMESTRAL'#39') and (P.valor = TRIMESTRE))'#10'left join contactos C ' +
+ 'on (C.ID = SEN.ID_AGENTE)'#10'left join agentes_datos on (agentes_da' +
+ 'tos.id_agente = SEN.ID_AGENTE)'#10#10'left join'#10'('#10'select coalesce(ID_A' +
+ 'GENTE, -1) as ID_AGENTE, count(ID_CLIENTE) as NUM_CLIENTES_TOTAL' +
+ 'ES'#10'from clientes_datos'#10'group by 1'#10') CLIENTES_TOTALES on (CLIENTE' +
+ 'S_TOTALES.ID_AGENTE = SEN.id_Agente)'#10#10'where agentes_datos.FECHA_' +
+ 'BAJA is null'#10'and {where}'#10'group by 1,2,3,4,5,6'#10'order by 1,2,3,4,5' +
+ ',6'#10#10#10#10#10#10#10#10#10
StatementType = stSQL
ColumnMappings = <
+ item
+ DatasetField = 'ID_AGENTE'
+ TableField = 'ID_AGENTE'
+ end
+ item
+ DatasetField = 'AGENTE'
+ TableField = 'AGENTE'
+ end
item
DatasetField = 'ANO'
TableField = 'ANO'
end
+ item
+ DatasetField = 'TRIMESTRE'
+ TableField = 'TRIMESTRE'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CLIENTES_TOTALES'
+ TableField = 'CLIENTES_TOTALES'
+ end
+ item
+ DatasetField = 'ALTAS_CLIENTE'
+ TableField = 'ALTAS_CLIENTE'
+ end
item
DatasetField = 'CANTIDAD_OBJETIVO'
TableField = 'CANTIDAD_OBJETIVO'
@@ -2208,30 +2149,6 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DatasetField = 'IMPORTE_RESULTADO'
TableField = 'IMPORTE_RESULTADO'
end
- item
- DatasetField = 'DESCRIPCION'
- TableField = 'DESCRIPCION'
- end
- item
- DatasetField = 'TRIMESTRE'
- TableField = 'TRIMESTRE'
- end
- item
- DatasetField = 'AGENTE'
- TableField = 'AGENTE'
- end
- item
- DatasetField = 'ID_AGENTE'
- TableField = 'ID_AGENTE'
- end
- item
- DatasetField = 'ALTAS_CLIENTE'
- TableField = 'ALTAS_CLIENTE'
- end
- item
- DatasetField = 'CLIENTES_TOTALES'
- TableField = 'CLIENTES_TOTALES'
- end
item
DatasetField = 'IMPORTE_MEDIO_UNIDAD'
TableField = 'IMPORTE_MEDIO_UNIDAD'
@@ -2239,6 +2156,14 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
item
DatasetField = 'IMPORTE_MEDIO_CLIENTE'
TableField = 'IMPORTE_MEDIO_CLIENTE'
+ end
+ item
+ DatasetField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ TableField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ TableField = 'IMPORTE_TOTAL_CONSEGUIDO'
end>
end>
Name = 'InformeListadoObjetivosTrimestral'
@@ -2289,6 +2214,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -2297,6 +2226,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
@@ -2330,51 +2263,85 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
ConnectionType = 'Interbase'
Default = True
SQL =
- 'select SEN.ID_AGENTE, C.NOMBRE as AGENTE, ANO, SEMESTRE,'#10' P.d' +
- 'escripcion,'#10#10' coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES,' +
- ' 0) as CLIENTES_TOTALES,'#10#10' sum(ALTAS_CLIENTE) as ALTAS_CLIENT' +
- 'E,'#10#10' sum(CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(IMPORTE' +
- '_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' sum(CANTIDAD_CONSEGUIDA) as' +
- ' CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_DEVUELT' +
- 'A,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE_CONSEGUIDO, sum(IMPORT' +
- 'E_DEVUELTO) as IMPORTE_DEVUELTO,'#10#10' (sum(CANTIDAD_CONSEGUIDA) ' +
- '- sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RESULTADO,'#10' (sum(IMPORT' +
- 'E_CONSEGUIDO) - sum(IMPORTE_OBJETIVO)) as IMPORTE_RESULTADO,'#10' ' +
- ' case when (sum(IMPORTE_CONSEGUIDO) > 0) then (sum(IMPORTE_CONSE' +
- 'GUIDO)/sum(CANTIDAD_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_M' +
- 'EDIO_UNIDAD,'#10#10' case when (sum(IMPORTE_CONSEGUIDO) > 0) then (' +
- 'sum(IMPORTE_CONSEGUIDO)/coalesce(CLIENTES_TOTALES.NUM_CLIENTES_T' +
- 'OTALES, 0))'#10' else 0'#10' end as IMPORTE_MEDIO_CLIENTE'#10#10'from'#10'('#10 +
- 'select AO.ID_AGENTE, AO.ANO, AO.SEMESTRE,'#10'0 as ALTAS_CLIENTE,'#10'su' +
- 'm(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(AO.IMPORTE_OBJ' +
- 'ETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA, 0 as CANTI' +
- 'DAD_DEVUELTA, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO'#10'fro' +
- 'm V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join contactos C on (C.ID ' +
- '= AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'group by 1,2,3'#10#10'UNION ALL' +
- #10#10'select ID_AGENTE, ANO, SEMESTRE,'#10'0 as ALTAS_CLIENTE,'#10'0 as CANT' +
- 'IDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum(CANTIDAD_CONSEGUIDA) a' +
- 's CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_DEVUEL' +
- 'TA, sum(IMPORTE_CONSEGUIDO) as IMPORTE_CONSEGUIDO, sum(IMPORTE_D' +
- 'EVUELTO) as IMPORTE_DEVUELTO'#10'from v_inf_objetivos_albaranes'#10'wher' +
- 'e ((v_inf_objetivos_albaranes.id_empresa = :ID_EMPRESA) and (v_i' +
- 'nf_objetivos_albaranes.ANO = :ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10 +
- 'select ID_AGENTE, ANO, SEMESTRE,'#10'count(ID_CLIENTE) as ALTAS_CLIE' +
- 'NTE,'#10'0 as CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'0 as CANTIDA' +
- 'D_CONSEGUIDA, 0 as CANTIDAD_DEVUELTA, 0 as IMPORTE_CONSEGUIDO, 0' +
- ' as IMPORTE_DEVUELTO'#10'from v_inf_obj_clientes_agentes'#10'where (ANO ' +
- '= :ANO1)'#10'group by 1,2,3'#10') SEN'#10#10'left join periodos_aux P on ((P.p' +
- 'eriodo = '#39'SEMESTRAL'#39') and (P.valor = SEMESTRE))'#10'left join contac' +
- 'tos C on (C.ID = SEN.ID_AGENTE)'#10#10'left join'#10'('#10'select coalesce(ID_' +
- 'AGENTE, -1) as ID_AGENTE, count(ID_CLIENTE) as NUM_CLIENTES_TOTA' +
- 'LES'#10'from clientes_datos'#10'group by 1'#10') CLIENTES_TOTALES on (CLIENT' +
- 'ES_TOTALES.ID_AGENTE = SEN.id_Agente)'#10#10'where {where}'#10'group by 1,' +
- '2,3,4,5,6'#10'order by 1,2,3,4,5,6'#10#10#10#10
+ 'select SEN.ID_AGENTE, COALESCE(C.NOMBRE, '#39'SIN ASIGNAR'#39') as AGENT' +
+ 'E, ANO, SEMESTRE,'#10' P.descripcion,'#10#10' coalesce(CLIENTES_TOTA' +
+ 'LES.NUM_CLIENTES_TOTALES, 0) as CLIENTES_TOTALES,'#10#10' sum(ALTAS' +
+ '_CLIENTE) as ALTAS_CLIENTE,'#10#10' sum(CANTIDAD_OBJETIVO) as CANTI' +
+ 'DAD_OBJETIVO, sum(IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' su' +
+ 'm(CANTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVU' +
+ 'ELTA) as CANTIDAD_DEVUELTA, sum(CANTIDAD_TOTAL_CONSEGUIDA) as CA' +
+ 'NTIDAD_TOTAL_CONSEGUIDA,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE_' +
+ 'CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, sum(IMPOR' +
+ 'TE_TOTAL_CONSEGUIDO) as IMPORTE_TOTAL_CONSEGUIDO,'#10#10' (sum(CANT' +
+ 'IDAD_TOTAL_CONSEGUIDA) - sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RES' +
+ 'ULTADO,'#10' (sum(IMPORTE_TOTAL_CONSEGUIDO) - sum(IMPORTE_OBJETIV' +
+ 'O)) as IMPORTE_RESULTADO,'#10#10' case when (sum(CANTIDAD_TOTAL_CON' +
+ 'SEGUIDA) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/sum(CANTIDAD_' +
+ 'TOTAL_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_MEDIO_UNIDAD,'#10#10 +
+ ' case when (coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES, 0' +
+ ') <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/coalesce(CLIENTES_TO' +
+ 'TALES.NUM_CLIENTES_TOTALES, 0))'#10' else 0'#10' end as IMPORTE_ME' +
+ 'DIO_CLIENTE'#10#10#10'from'#10'('#10'select AO.ID_AGENTE, AO.ANO, AO.SEMESTRE,'#10'0' +
+ ' as ALTAS_CLIENTE,'#10'sum(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIV' +
+ 'O, sum(AO.IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_C' +
+ 'ONSEGUIDA, 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUID' +
+ 'A, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_' +
+ 'TOTAL_CONSEGUIDO'#10'from V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join c' +
+ 'ontactos C on (C.ID = AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'group' +
+ ' by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGENTE, ANO, SEMESTRE,'#10'0 as ALTA' +
+ 'S_CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum(CA' +
+ 'NTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA' +
+ ') as CANTIDAD_DEVUELTA, (sum(CANTIDAD_CONSEGUIDA) + sum(CANTIDAD' +
+ '_DEVUELTA)) as CANTIDAD_TOTAL_CONSEGUIDA,'#10'sum(IMPORTE_CONSEGUIDO' +
+ ') as IMPORTE_CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUEL' +
+ 'TO, (sum(IMPORTE_CONSEGUIDO) + sum(IMPORTE_DEVUELTO)) as IMPORTE' +
+ '_TOTAL_CONSEGUIDO'#10'from v_inf_objetivos_albaranes'#10'where ((v_inf_o' +
+ 'bjetivos_albaranes.id_empresa = :ID_EMPRESA) and (v_inf_objetivo' +
+ 's_albaranes.ANO = :ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select ID_A' +
+ 'GENTE, ANO, SEMESTRE,'#10'count(ID_CLIENTE) as ALTAS_CLIENTE,'#10'0 as C' +
+ 'ANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUID' +
+ 'A, 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0 as ' +
+ 'IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_TOTAL_CO' +
+ 'NSEGUIDO'#10'from v_inf_obj_clientes_agentes'#10'where (ANO = :ANO1)'#10'gro' +
+ 'up by 1,2,3'#10') SEN'#10#10'left join periodos_aux P on ((P.periodo = '#39'SE' +
+ 'MESTRAL'#39') and (P.valor = SEMESTRE))'#10'left join contactos C on (C.' +
+ 'ID = SEN.ID_AGENTE)'#10'left join agentes_datos on (agentes_datos.id' +
+ '_agente = SEN.ID_AGENTE)'#10#10'left join'#10'('#10'select coalesce(ID_AGENTE,' +
+ ' -1) as ID_AGENTE, count(ID_CLIENTE) as NUM_CLIENTES_TOTALES'#10'fro' +
+ 'm clientes_datos'#10'group by 1'#10') CLIENTES_TOTALES on (CLIENTES_TOTA' +
+ 'LES.ID_AGENTE = SEN.id_Agente)'#10#10'where agentes_datos.FECHA_BAJA i' +
+ 's null'#10'and {where}'#10'group by 1,2,3,4,5,6'#10'order by 1,2,3,4,5,6'#10#10#10#10 +
+ #10#10#10#10#10
StatementType = stSQL
ColumnMappings = <
+ item
+ DatasetField = 'ID_AGENTE'
+ TableField = 'ID_AGENTE'
+ end
+ item
+ DatasetField = 'AGENTE'
+ TableField = 'AGENTE'
+ end
item
DatasetField = 'ANO'
TableField = 'ANO'
end
+ item
+ DatasetField = 'SEMESTRE'
+ TableField = 'SEMESTRE'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CLIENTES_TOTALES'
+ TableField = 'CLIENTES_TOTALES'
+ end
+ item
+ DatasetField = 'ALTAS_CLIENTE'
+ TableField = 'ALTAS_CLIENTE'
+ end
item
DatasetField = 'CANTIDAD_OBJETIVO'
TableField = 'CANTIDAD_OBJETIVO'
@@ -2407,26 +2374,6 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
DatasetField = 'IMPORTE_RESULTADO'
TableField = 'IMPORTE_RESULTADO'
end
- item
- DatasetField = 'DESCRIPCION'
- TableField = 'DESCRIPCION'
- end
- item
- DatasetField = 'AGENTE'
- TableField = 'AGENTE'
- end
- item
- DatasetField = 'ID_AGENTE'
- TableField = 'ID_AGENTE'
- end
- item
- DatasetField = 'ALTAS_CLIENTE'
- TableField = 'ALTAS_CLIENTE'
- end
- item
- DatasetField = 'CLIENTES_TOTALES'
- TableField = 'CLIENTES_TOTALES'
- end
item
DatasetField = 'IMPORTE_MEDIO_UNIDAD'
TableField = 'IMPORTE_MEDIO_UNIDAD'
@@ -2436,8 +2383,12 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
TableField = 'IMPORTE_MEDIO_CLIENTE'
end
item
- DatasetField = 'SEMESTRE'
- TableField = 'SEMESTRE'
+ DatasetField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ TableField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ TableField = 'IMPORTE_TOTAL_CONSEGUIDO'
end>
end>
Name = 'InformeListadoObjetivosSemestral'
@@ -2488,6 +2439,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -2496,6 +2451,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
@@ -2532,7 +2491,7 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 37800.807714351900000000
- ReportOptions.LastChange = 40935.658182025470000000
+ ReportOptions.LastChange = 40952.717896423610000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);'
@@ -3793,6 +3752,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -3801,6 +3764,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
@@ -3885,6 +3852,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -3893,6 +3864,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
@@ -3977,6 +3952,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -3985,6 +3964,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas
index 82f0f6f..7ce951d 100644
--- a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas
+++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas
@@ -375,11 +375,6 @@ begin
else
PrepararTablaInformeObjetivos(tbl_InformeObjetivosSemestral);
- //Se preparan las tablas del listado resumen del informe
-// PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorAlbaranadoResumen);
-// PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorIncidenciasResumen);
-// PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorOrdenesDevResumen);
-
Result := Binary.Create;
AInforme := DarRutaFichero(DarRutaInformes, rptInformeObjetivosAgentesAlbaranes, IntTostr(FIdEmpresa));
@@ -462,7 +457,7 @@ begin
begin
// (ID_AGENTE = ID)
- Condicion := NewBinaryExpression(NewField('OBJETIVOS', 'ID_AGENTE'), NewConstant(FListaIDAgentes.Items[i], datInteger), dboEqual);
+ Condicion := NewBinaryExpression(NewField('SEN', 'ID_AGENTE'), NewConstant(FListaIDAgentes.Items[i], datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
@@ -471,7 +466,6 @@ begin
end;
end;
-
DADSInformeObjetivos.DataTable := ATabla;
ATabla.ParamByName('ID_EMPRESA').AsInteger := FIdEmpresa;
ATabla.ParamByName('ANO1').AsVariant := FAno1;
diff --git a/Source/Modulos/Contactos/Views/uEditorAgente.dfm b/Source/Modulos/Contactos/Views/uEditorAgente.dfm
index 32f6888..12c95b6 100644
--- a/Source/Modulos/Contactos/Views/uEditorAgente.dfm
+++ b/Source/Modulos/Contactos/Views/uEditorAgente.dfm
@@ -132,7 +132,7 @@ inherited fEditorAgente: TfEditorAgente
inherited pgPaginas: TPageControl
Width = 864
Height = 614
- ActivePage = ObjetivosFacturas
+ ActivePage = ObjetivosAlbaranes
ExplicitWidth = 864
ExplicitHeight = 614
inherited pagGeneral: TTabSheet
@@ -366,18 +366,6 @@ inherited fEditorAgente: TfEditorAgente
inherited ToolBar1: TToolBar
Width = 856
ExplicitWidth = 856
- inherited ToolButton1: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton4: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton2: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton7: TToolButton
- ExplicitWidth = 113
- end
end
end
end
@@ -415,7 +403,7 @@ inherited fEditorAgente: TfEditorAgente
end
end
object ObjetivosAlbaranes: TTabSheet
- Caption = 'Objetivos Albaranes'
+ Caption = 'Objetivos'
ImageIndex = 4
inline frViewAgenteObjetivosAlbaranes1: TfrViewAgenteObjetivosAlbaranes
Left = 0
@@ -459,18 +447,6 @@ inherited fEditorAgente: TfEditorAgente
inherited ToolBar1: TToolBar
Width = 856
ExplicitWidth = 856
- inherited ToolButton1: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton4: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton2: TToolButton
- ExplicitWidth = 113
- end
- inherited ToolButton7: TToolButton
- ExplicitWidth = 113
- end
end
inherited tbxFiltro: TTBXToolbar
Width = 856
@@ -481,6 +457,7 @@ inherited fEditorAgente: TfEditorAgente
object ObjetivosFacturas: TTabSheet
Caption = 'Objetivos Facturas'
ImageIndex = 5
+ TabVisible = False
inline frViewAgenteObjetivosFacturas1: TfrViewAgenteObjetivosFacturas
Left = 0
Top = 0
@@ -495,11 +472,13 @@ inherited fEditorAgente: TfEditorAgente
ParentFont = False
TabOrder = 0
ReadOnly = False
- ExplicitLeft = 353
- ExplicitTop = 229
+ ExplicitWidth = 856
+ ExplicitHeight = 586
inherited cxGrid: TcxGrid
Width = 856
Height = 540
+ ExplicitWidth = 856
+ ExplicitHeight = 540
inherited cxGridView: TcxGridDBTableView
DataController.Summary.DefaultGroupSummaryItems = <
item
@@ -521,9 +500,11 @@ inherited fEditorAgente: TfEditorAgente
end
inherited ToolBar1: TToolBar
Width = 856
+ ExplicitWidth = 856
end
inherited tbxFiltro: TTBXToolbar
Width = 856
+ ExplicitWidth = 856
end
end
end
diff --git a/Source/Modulos/Contactos/Views/uViewAgenteObjetivosAlbaranes.pas b/Source/Modulos/Contactos/Views/uViewAgenteObjetivosAlbaranes.pas
index 58264c9..babbc48 100644
--- a/Source/Modulos/Contactos/Views/uViewAgenteObjetivosAlbaranes.pas
+++ b/Source/Modulos/Contactos/Views/uViewAgenteObjetivosAlbaranes.pas
@@ -43,7 +43,7 @@ type
implementation
{$R *.dfm}
-uses schContactosClient_Intf;
+uses schContactosClient_Intf, DateUtils;
{ TfrViewAgenteObjetivosAlbaranes }
@@ -58,10 +58,14 @@ begin
end;
procedure TfrViewAgenteObjetivosAlbaranes.CustomViewShow(Sender: TObject);
+var
+ i: Integer;
+ Ano: String;
begin
+ Ano := IntToStr(YearOf(Date));
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
inherited;
- cbxListaAnos.ItemIndex := 0;
+ cbxListaAnos.ItemIndex := FListaAnos.IndexOfName(Ano);
end;
function TfrViewAgenteObjetivosAlbaranes.GetController: IAgentesController;
diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm
index 31205a4..62a3aec 100644
--- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm
+++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm
@@ -2375,91 +2375,152 @@ object RptFacturasCliente: TRptFacturasCliente
end>
end
item
- Params = <>
+ Params = <
+ item
+ Name = 'ANO1'
+ Value = '2012'
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ Value = '1'
+ end>
Statements = <
item
Connection = 'IBX'
- TargetTable = 'V_FACTURAS_CLIENTE'
+ ConnectionType = 'Interbase'
+ Default = True
+ Name = 'IBX'
SQL =
- #10'select'#10' A.ID_EMPRESA,'#10' A.ID_AGENTE,'#10' A.AGENTE,'#10' A.A' +
- 'NO,'#10' A.MES,'#10' AO.CANTIDAD_OBJETIVO,'#10' AO.IMPORTE_OBJETIVO' +
- ','#10' A.CANTIDAD_CONSEGUIDA,'#10' A.CANTIDAD_DEVUELTA,'#10' A.IMPO' +
- 'RTE_CONSEGUIDO,'#10' A.IMPORTE_DEVUELTO,'#10' (A.CANTIDAD_CONSEGUI' +
- 'DA - AO.CANTIDAD_OBJETIVO) as CANTIDAD_RESULTADO,'#10' (A.IMPORTE' +
- '_CONSEGUIDO - AO.IMPORTE_OBJETIVO) as IMPORTE_RESULTADO'#10#10#10'from v' +
- '_inf_objetivos_albaranes A'#10'left join V_INF_OBJETIVOS_ALB_AGENTES' +
- ' AO on ((AO.id_agente = A.id_agente) and (AO.ano = A.ANO) and (A' +
- 'O.mes = A.MES))'#10'where {where}'#10'order by 1,2,3,4,5'#10#10
+ 'select SEN.ID_AGENTE, COALESCE(C.NOMBRE, '#39'SIN ASIGNAR'#39') as AGENT' +
+ 'E, ANO, MES,'#10' P.descripcion,'#10#10' coalesce(CLIENTES_TOTALES.N' +
+ 'UM_CLIENTES_TOTALES, 0) as CLIENTES_TOTALES,'#10#10' sum(ALTAS_CLIE' +
+ 'NTE) as ALTAS_CLIENTE,'#10#10' sum(CANTIDAD_OBJETIVO) as CANTIDAD_O' +
+ 'BJETIVO, sum(IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' sum(CAN' +
+ 'TIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA)' +
+ ' as CANTIDAD_DEVUELTA, sum(CANTIDAD_TOTAL_CONSEGUIDA) as CANTIDA' +
+ 'D_TOTAL_CONSEGUIDA,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE_CONSE' +
+ 'GUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, sum(IMPORTE_TO' +
+ 'TAL_CONSEGUIDO) as IMPORTE_TOTAL_CONSEGUIDO,'#10#10' (sum(CANTIDAD_' +
+ 'TOTAL_CONSEGUIDA) - sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RESULTAD' +
+ 'O,'#10' (sum(IMPORTE_TOTAL_CONSEGUIDO) - sum(IMPORTE_OBJETIVO)) a' +
+ 's IMPORTE_RESULTADO,'#10#10' case when (sum(CANTIDAD_TOTAL_CONSEGUI' +
+ 'DA) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/sum(CANTIDAD_TOTAL' +
+ '_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_MEDIO_UNIDAD,'#10#10' c' +
+ 'ase when (coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES, 0) <> ' +
+ '0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/coalesce(CLIENTES_TOTALES' +
+ '.NUM_CLIENTES_TOTALES, 0))'#10' else 0'#10' end as IMPORTE_MEDIO_C' +
+ 'LIENTE'#10#10#10'from'#10'('#10'select AO.ID_AGENTE, AO.ANO, AO.MES,'#10'0 as ALTAS_' +
+ 'CLIENTE,'#10'sum(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIVO, sum(AO.' +
+ 'IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA,' +
+ ' 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0 as IM' +
+ 'PORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_TOTAL_CONS' +
+ 'EGUIDO'#10'from V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join contactos C' +
+ ' on (C.ID = AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'group by 1,2,3'#10 +
+ #10'UNION ALL'#10#10'select ID_AGENTE, ANO, MES,'#10'0 as ALTAS_CLIENTE,'#10'0 as' +
+ ' CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum(CANTIDAD_CONSEGUI' +
+ 'DA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA) as CANTIDAD_D' +
+ 'EVUELTA, (sum(CANTIDAD_CONSEGUIDA) + sum(CANTIDAD_DEVUELTA)) as ' +
+ 'CANTIDAD_TOTAL_CONSEGUIDA,'#10'sum(IMPORTE_CONSEGUIDO) as IMPORTE_CO' +
+ 'NSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, (sum(IMPORT' +
+ 'E_CONSEGUIDO) + sum(IMPORTE_DEVUELTO)) as IMPORTE_TOTAL_CONSEGUI' +
+ 'DO'#10'from v_inf_objetivos_facturas'#10'where ((v_inf_objetivos_factura' +
+ 's.id_empresa = :ID_EMPRESA) and (v_inf_objetivos_facturas.ANO = ' +
+ ':ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGENTE, ANO, MES,'#10'c' +
+ 'ount(ID_CLIENTE) as ALTAS_CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, 0 as ' +
+ 'IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA, 0 as CANTIDAD_DEVUEL' +
+ 'TA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0 as IMPORTE_CONSEGUIDO, 0 a' +
+ 's IMPORTE_DEVUELTO, 0 as IMPORTE_TOTAL_CONSEGUIDO'#10'from v_inf_obj' +
+ '_clientes_agentes'#10'where (ANO = :ANO1)'#10'group by 1,2,3'#10') SEN'#10#10'left' +
+ ' join periodos_aux P on ((P.periodo = '#39'MENSUAL'#39') and (P.valor = ' +
+ 'MES))'#10'left join contactos C on (C.ID = SEN.ID_AGENTE)'#10'left join ' +
+ 'agentes_datos on (agentes_datos.id_agente = SEN.ID_AGENTE)'#10#10'left' +
+ ' join'#10'('#10'select coalesce(ID_AGENTE, -1) as ID_AGENTE, count(ID_CL' +
+ 'IENTE) as NUM_CLIENTES_TOTALES'#10'from clientes_datos'#10'group by 1'#10') ' +
+ 'CLIENTES_TOTALES on (CLIENTES_TOTALES.ID_AGENTE = SEN.id_Agente)' +
+ #10#10'where agentes_datos.FECHA_BAJA is null'#10'and {where}'#10'group by 1,' +
+ '2,3,4,5,6'#10'order by 1,2,3,4,5,6'#10#10#10#10
StatementType = stSQL
ColumnMappings = <
- item
- DatasetField = 'ID_EMPRESA'
- TableField = 'ID_EMPRESA'
- end
- item
- DatasetField = 'MES'
- TableField = ''
- end
- item
- DatasetField = 'ANO'
- TableField = ''
- end
item
DatasetField = 'ID_AGENTE'
TableField = 'ID_AGENTE'
end
item
DatasetField = 'AGENTE'
- TableField = ''
- SQLOrigin = 'AGENTE'
+ TableField = 'AGENTE'
+ end
+ item
+ DatasetField = 'ANO'
+ TableField = 'ANO'
+ end
+ item
+ DatasetField = 'MES'
+ TableField = 'MES'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CLIENTES_TOTALES'
+ TableField = 'CLIENTES_TOTALES'
+ end
+ item
+ DatasetField = 'ALTAS_CLIENTE'
+ TableField = 'ALTAS_CLIENTE'
end
item
DatasetField = 'CANTIDAD_OBJETIVO'
- TableField = ''
- SQLOrigin = 'CANTIDAD_OBJETIVO'
+ TableField = 'CANTIDAD_OBJETIVO'
end
item
DatasetField = 'IMPORTE_OBJETIVO'
- TableField = ''
- SQLOrigin = 'IMPORTE_OBJETIVO'
+ TableField = 'IMPORTE_OBJETIVO'
end
item
DatasetField = 'CANTIDAD_CONSEGUIDA'
- TableField = ''
- SQLOrigin = 'CANTIDAD_CONSEGUIDA'
+ TableField = 'CANTIDAD_CONSEGUIDA'
end
item
DatasetField = 'CANTIDAD_DEVUELTA'
- TableField = ''
- SQLOrigin = 'CANTIDAD_DEVUELTA'
+ TableField = 'CANTIDAD_DEVUELTA'
+ end
+ item
+ DatasetField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ TableField = 'CANTIDAD_TOTAL_CONSEGUIDA'
end
item
DatasetField = 'IMPORTE_CONSEGUIDO'
- TableField = ''
- SQLOrigin = 'IMPORTE_CONSEGUIDO'
+ TableField = 'IMPORTE_CONSEGUIDO'
end
item
DatasetField = 'IMPORTE_DEVUELTO'
- TableField = ''
- SQLOrigin = 'IMPORTE_DEVUELTO'
+ TableField = 'IMPORTE_DEVUELTO'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ TableField = 'IMPORTE_TOTAL_CONSEGUIDO'
end
item
DatasetField = 'CANTIDAD_RESULTADO'
- TableField = ''
- SQLOrigin = 'CANTIDAD_RESULTADO'
+ TableField = 'CANTIDAD_RESULTADO'
end
item
DatasetField = 'IMPORTE_RESULTADO'
- TableField = ''
- SQLOrigin = 'IMPORTE_RESULTADO'
+ TableField = 'IMPORTE_RESULTADO'
+ end
+ item
+ DatasetField = 'IMPORTE_MEDIO_UNIDAD'
+ TableField = 'IMPORTE_MEDIO_UNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTE_MEDIO_CLIENTE'
+ TableField = 'IMPORTE_MEDIO_CLIENTE'
end>
end>
- Name = 'InformeListadoObjetivos'
+ Name = 'InformeListadoObjetivosMensual'
Fields = <
- item
- Name = 'ID_EMPRESA'
- DataType = datInteger
- end
item
Name = 'ID_AGENTE'
DataType = datInteger
@@ -2478,9 +2539,22 @@ object RptFacturasCliente: TRptFacturasCliente
DataType = datSmallInt
end
item
- Name = 'CANTIDAD_OBJETIVO'
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'CLIENTES_TOTALES'
DataType = datInteger
end
+ item
+ Name = 'ALTAS_CLIENTE'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'CANTIDAD_OBJETIVO'
+ DataType = datLargeInt
+ end
item
Name = 'IMPORTE_OBJETIVO'
DataType = datCurrency
@@ -2493,6 +2567,10 @@ object RptFacturasCliente: TRptFacturasCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -2501,6 +2579,10 @@ object RptFacturasCliente: TRptFacturasCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
@@ -2508,6 +2590,467 @@ object RptFacturasCliente: TRptFacturasCliente
item
Name = 'IMPORTE_RESULTADO'
DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_CLIENTE'
+ DataType = datCurrency
+ end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ANO1'
+ Value = '2012'
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ Value = '1'
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ Name = 'IBX'
+ SQL =
+ 'select SEN.ID_AGENTE, COALESCE(C.NOMBRE, '#39'SIN ASIGNAR'#39') as AGENT' +
+ 'E, ANO, SEMESTRE,'#10' P.descripcion,'#10#10' coalesce(CLIENTES_TOTA' +
+ 'LES.NUM_CLIENTES_TOTALES, 0) as CLIENTES_TOTALES,'#10#10' sum(ALTAS' +
+ '_CLIENTE) as ALTAS_CLIENTE,'#10#10' sum(CANTIDAD_OBJETIVO) as CANTI' +
+ 'DAD_OBJETIVO, sum(IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' su' +
+ 'm(CANTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVU' +
+ 'ELTA) as CANTIDAD_DEVUELTA, sum(CANTIDAD_TOTAL_CONSEGUIDA) as CA' +
+ 'NTIDAD_TOTAL_CONSEGUIDA,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE_' +
+ 'CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, sum(IMPOR' +
+ 'TE_TOTAL_CONSEGUIDO) as IMPORTE_TOTAL_CONSEGUIDO,'#10#10' (sum(CANT' +
+ 'IDAD_TOTAL_CONSEGUIDA) - sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RES' +
+ 'ULTADO,'#10' (sum(IMPORTE_TOTAL_CONSEGUIDO) - sum(IMPORTE_OBJETIV' +
+ 'O)) as IMPORTE_RESULTADO,'#10#10' case when (sum(CANTIDAD_TOTAL_CON' +
+ 'SEGUIDA) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/sum(CANTIDAD_' +
+ 'TOTAL_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_MEDIO_UNIDAD,'#10#10 +
+ ' case when (coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES, 0' +
+ ') <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/coalesce(CLIENTES_TO' +
+ 'TALES.NUM_CLIENTES_TOTALES, 0))'#10' else 0'#10' end as IMPORTE_ME' +
+ 'DIO_CLIENTE'#10#10#10'from'#10'('#10'select AO.ID_AGENTE, AO.ANO, AO.SEMESTRE,'#10'0' +
+ ' as ALTAS_CLIENTE,'#10'sum(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJETIV' +
+ 'O, sum(AO.IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_C' +
+ 'ONSEGUIDA, 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUID' +
+ 'A, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_' +
+ 'TOTAL_CONSEGUIDO'#10'from V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join c' +
+ 'ontactos C on (C.ID = AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'group' +
+ ' by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGENTE, ANO, SEMESTRE,'#10'0 as ALTA' +
+ 'S_CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum(CA' +
+ 'NTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUELTA' +
+ ') as CANTIDAD_DEVUELTA, (sum(CANTIDAD_CONSEGUIDA) + sum(CANTIDAD' +
+ '_DEVUELTA)) as CANTIDAD_TOTAL_CONSEGUIDA,'#10'sum(IMPORTE_CONSEGUIDO' +
+ ') as IMPORTE_CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUEL' +
+ 'TO, (sum(IMPORTE_CONSEGUIDO) + sum(IMPORTE_DEVUELTO)) as IMPORTE' +
+ '_TOTAL_CONSEGUIDO'#10'from v_inf_objetivos_facturas'#10'where ((v_inf_ob' +
+ 'jetivos_facturas.id_empresa = :ID_EMPRESA) and (v_inf_objetivos_' +
+ 'facturas.ANO = :ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGEN' +
+ 'TE, ANO, SEMESTRE,'#10'count(ID_CLIENTE) as ALTAS_CLIENTE,'#10'0 as CANT' +
+ 'IDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUIDA, ' +
+ '0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0 as IMP' +
+ 'ORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_TOTAL_CONSE' +
+ 'GUIDO'#10'from v_inf_obj_clientes_agentes'#10'where (ANO = :ANO1)'#10'group ' +
+ 'by 1,2,3'#10') SEN'#10#10'left join periodos_aux P on ((P.periodo = '#39'SEMES' +
+ 'TRAL'#39') and (P.valor = SEMESTRE))'#10'left join contactos C on (C.ID ' +
+ '= SEN.ID_AGENTE)'#10'left join agentes_datos on (agentes_datos.id_ag' +
+ 'ente = SEN.ID_AGENTE)'#10#10'left join'#10'('#10'select coalesce(ID_AGENTE, -1' +
+ ') as ID_AGENTE, count(ID_CLIENTE) as NUM_CLIENTES_TOTALES'#10'from c' +
+ 'lientes_datos'#10'group by 1'#10') CLIENTES_TOTALES on (CLIENTES_TOTALES' +
+ '.ID_AGENTE = SEN.id_Agente)'#10#10'where agentes_datos.FECHA_BAJA is n' +
+ 'ull'#10'and {where}'#10'group by 1,2,3,4,5,6'#10'order by 1,2,3,4,5,6'#10#10#10#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID_AGENTE'
+ TableField = 'ID_AGENTE'
+ end
+ item
+ DatasetField = 'AGENTE'
+ TableField = 'AGENTE'
+ end
+ item
+ DatasetField = 'ANO'
+ TableField = 'ANO'
+ end
+ item
+ DatasetField = 'SEMESTRE'
+ TableField = 'SEMESTRE'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CLIENTES_TOTALES'
+ TableField = 'CLIENTES_TOTALES'
+ end
+ item
+ DatasetField = 'ALTAS_CLIENTE'
+ TableField = 'ALTAS_CLIENTE'
+ end
+ item
+ DatasetField = 'CANTIDAD_OBJETIVO'
+ TableField = 'CANTIDAD_OBJETIVO'
+ end
+ item
+ DatasetField = 'IMPORTE_OBJETIVO'
+ TableField = 'IMPORTE_OBJETIVO'
+ end
+ item
+ DatasetField = 'CANTIDAD_CONSEGUIDA'
+ TableField = 'CANTIDAD_CONSEGUIDA'
+ end
+ item
+ DatasetField = 'CANTIDAD_DEVUELTA'
+ TableField = 'CANTIDAD_DEVUELTA'
+ end
+ item
+ DatasetField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ TableField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ end
+ item
+ DatasetField = 'IMPORTE_CONSEGUIDO'
+ TableField = 'IMPORTE_CONSEGUIDO'
+ end
+ item
+ DatasetField = 'IMPORTE_DEVUELTO'
+ TableField = 'IMPORTE_DEVUELTO'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ TableField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ end
+ item
+ DatasetField = 'CANTIDAD_RESULTADO'
+ TableField = 'CANTIDAD_RESULTADO'
+ end
+ item
+ DatasetField = 'IMPORTE_RESULTADO'
+ TableField = 'IMPORTE_RESULTADO'
+ end
+ item
+ DatasetField = 'IMPORTE_MEDIO_UNIDAD'
+ TableField = 'IMPORTE_MEDIO_UNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTE_MEDIO_CLIENTE'
+ TableField = 'IMPORTE_MEDIO_CLIENTE'
+ end>
+ end>
+ Name = 'InformeListadoObjetivosSemestral'
+ Fields = <
+ item
+ Name = 'ID_AGENTE'
+ DataType = datInteger
+ end
+ item
+ Name = 'AGENTE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'SEMESTRE'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'CLIENTES_TOTALES'
+ DataType = datInteger
+ end
+ item
+ Name = 'ALTAS_CLIENTE'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'CANTIDAD_OBJETIVO'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'IMPORTE_OBJETIVO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_DEVUELTA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_DEVUELTO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_CLIENTE'
+ DataType = datCurrency
+ end>
+ end
+ item
+ Params = <
+ item
+ Name = 'ANO1'
+ Value = '2012'
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ Value = '1'
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ Name = 'IBX'
+ SQL =
+ 'select SEN.ID_AGENTE, COALESCE(C.NOMBRE, '#39'SIN ASIGNAR'#39') as AGENT' +
+ 'E, ANO, TRIMESTRE,'#10' P.descripcion,'#10#10' coalesce(CLIENTES_TOT' +
+ 'ALES.NUM_CLIENTES_TOTALES, 0) as CLIENTES_TOTALES,'#10#10' sum(ALTA' +
+ 'S_CLIENTE) as ALTAS_CLIENTE,'#10#10' sum(CANTIDAD_OBJETIVO) as CANT' +
+ 'IDAD_OBJETIVO, sum(IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10#10' s' +
+ 'um(CANTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEV' +
+ 'UELTA) as CANTIDAD_DEVUELTA, sum(CANTIDAD_TOTAL_CONSEGUIDA) as C' +
+ 'ANTIDAD_TOTAL_CONSEGUIDA,'#10' sum(IMPORTE_CONSEGUIDO) as IMPORTE' +
+ '_CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEVUELTO, sum(IMPO' +
+ 'RTE_TOTAL_CONSEGUIDO) as IMPORTE_TOTAL_CONSEGUIDO,'#10#10' (sum(CAN' +
+ 'TIDAD_TOTAL_CONSEGUIDA) - sum(CANTIDAD_OBJETIVO)) as CANTIDAD_RE' +
+ 'SULTADO,'#10' (sum(IMPORTE_TOTAL_CONSEGUIDO) - sum(IMPORTE_OBJETI' +
+ 'VO)) as IMPORTE_RESULTADO,'#10#10' case when (sum(CANTIDAD_TOTAL_CO' +
+ 'NSEGUIDA) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/sum(CANTIDAD' +
+ '_TOTAL_CONSEGUIDA))'#10' else 0'#10' end as IMPORTE_MEDIO_UNIDAD,'#10 +
+ #10' case when (coalesce(CLIENTES_TOTALES.NUM_CLIENTES_TOTALES, ' +
+ '0) <> 0) then (sum(IMPORTE_TOTAL_CONSEGUIDO)/coalesce(CLIENTES_T' +
+ 'OTALES.NUM_CLIENTES_TOTALES, 0))'#10' else 0'#10' end as IMPORTE_M' +
+ 'EDIO_CLIENTE'#10#10#10'from'#10'('#10'select AO.ID_AGENTE, AO.ANO, AO.TRIMESTRE,' +
+ #10'0 as ALTAS_CLIENTE,'#10'sum(AO.CANTIDAD_OBJETIVO) as CANTIDAD_OBJET' +
+ 'IVO, sum(AO.IMPORTE_OBJETIVO) as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD' +
+ '_CONSEGUIDA, 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGU' +
+ 'IDA, 0 as IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORT' +
+ 'E_TOTAL_CONSEGUIDO'#10'from V_INF_OBJETIVOS_ALB_AGENTES AO'#10'left join' +
+ ' contactos C on (C.ID = AO.ID_AGENTE)'#10'where (AO.ANO = :ANO1)'#10'gro' +
+ 'up by 1,2,3'#10#10'UNION ALL'#10#10'select ID_AGENTE, ANO, TRIMESTRE,'#10'0 as A' +
+ 'LTAS_CLIENTE,'#10'0 as CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'sum' +
+ '(CANTIDAD_CONSEGUIDA) as CANTIDAD_CONSEGUIDA, sum(CANTIDAD_DEVUE' +
+ 'LTA) as CANTIDAD_DEVUELTA, (sum(CANTIDAD_CONSEGUIDA) + sum(CANTI' +
+ 'DAD_DEVUELTA)) as CANTIDAD_TOTAL_CONSEGUIDA,'#10'sum(IMPORTE_CONSEGU' +
+ 'IDO) as IMPORTE_CONSEGUIDO, sum(IMPORTE_DEVUELTO) as IMPORTE_DEV' +
+ 'UELTO, (sum(IMPORTE_CONSEGUIDO) + sum(IMPORTE_DEVUELTO)) as IMPO' +
+ 'RTE_TOTAL_CONSEGUIDO'#10'from v_inf_objetivos_facturas'#10'where ((v_inf' +
+ '_objetivos_facturas.id_empresa = :ID_EMPRESA) and (v_inf_objetiv' +
+ 'os_facturas.ANO = :ANO1))'#10'group by 1,2,3'#10#10'UNION ALL'#10#10'select ID_A' +
+ 'GENTE, ANO, TRIMESTRE,'#10'count(ID_CLIENTE) as ALTAS_CLIENTE,'#10'0 as ' +
+ 'CANTIDAD_OBJETIVO, 0 as IMPORTE_OBJETIVO,'#10'0 as CANTIDAD_CONSEGUI' +
+ 'DA, 0 as CANTIDAD_DEVUELTA, 0 as CANTIDAD_TOTAL_CONSEGUIDA, 0 as' +
+ ' IMPORTE_CONSEGUIDO, 0 as IMPORTE_DEVUELTO, 0 as IMPORTE_TOTAL_C' +
+ 'ONSEGUIDO'#10'from v_inf_obj_clientes_agentes'#10'where (ANO = :ANO1)'#10'gr' +
+ 'oup by 1,2,3'#10') SEN'#10#10'left join periodos_aux P on ((P.periodo = '#39'T' +
+ 'RIMESTRAL'#39') and (P.valor = TRIMESTRE))'#10'left join contactos C on ' +
+ '(C.ID = SEN.ID_AGENTE)'#10'left join agentes_datos on (agentes_datos' +
+ '.id_agente = SEN.ID_AGENTE)'#10#10'left join'#10'('#10'select coalesce(ID_AGEN' +
+ 'TE, -1) as ID_AGENTE, count(ID_CLIENTE) as NUM_CLIENTES_TOTALES'#10 +
+ 'from clientes_datos'#10'group by 1'#10') CLIENTES_TOTALES on (CLIENTES_T' +
+ 'OTALES.ID_AGENTE = SEN.id_Agente)'#10#10'where agentes_datos.FECHA_BAJ' +
+ 'A is null'#10'and {where}'#10'group by 1,2,3,4,5,6'#10'order by 1,2,3,4,5,6'#10 +
+ #10#10#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID_AGENTE'
+ TableField = 'ID_AGENTE'
+ end
+ item
+ DatasetField = 'AGENTE'
+ TableField = 'AGENTE'
+ end
+ item
+ DatasetField = 'ANO'
+ TableField = 'ANO'
+ end
+ item
+ DatasetField = 'TRIMESTRE'
+ TableField = 'TRIMESTRE'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CLIENTES_TOTALES'
+ TableField = 'CLIENTES_TOTALES'
+ end
+ item
+ DatasetField = 'ALTAS_CLIENTE'
+ TableField = 'ALTAS_CLIENTE'
+ end
+ item
+ DatasetField = 'CANTIDAD_OBJETIVO'
+ TableField = 'CANTIDAD_OBJETIVO'
+ end
+ item
+ DatasetField = 'IMPORTE_OBJETIVO'
+ TableField = 'IMPORTE_OBJETIVO'
+ end
+ item
+ DatasetField = 'CANTIDAD_CONSEGUIDA'
+ TableField = 'CANTIDAD_CONSEGUIDA'
+ end
+ item
+ DatasetField = 'CANTIDAD_DEVUELTA'
+ TableField = 'CANTIDAD_DEVUELTA'
+ end
+ item
+ DatasetField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ TableField = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ end
+ item
+ DatasetField = 'IMPORTE_CONSEGUIDO'
+ TableField = 'IMPORTE_CONSEGUIDO'
+ end
+ item
+ DatasetField = 'IMPORTE_DEVUELTO'
+ TableField = 'IMPORTE_DEVUELTO'
+ end
+ item
+ DatasetField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ TableField = 'IMPORTE_TOTAL_CONSEGUIDO'
+ end
+ item
+ DatasetField = 'CANTIDAD_RESULTADO'
+ TableField = 'CANTIDAD_RESULTADO'
+ end
+ item
+ DatasetField = 'IMPORTE_RESULTADO'
+ TableField = 'IMPORTE_RESULTADO'
+ end
+ item
+ DatasetField = 'IMPORTE_MEDIO_UNIDAD'
+ TableField = 'IMPORTE_MEDIO_UNIDAD'
+ end
+ item
+ DatasetField = 'IMPORTE_MEDIO_CLIENTE'
+ TableField = 'IMPORTE_MEDIO_CLIENTE'
+ end>
+ end>
+ Name = 'InformeListadoObjetivosTrimestral'
+ Fields = <
+ item
+ Name = 'ID_AGENTE'
+ DataType = datInteger
+ end
+ item
+ Name = 'AGENTE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'TRIMESTRE'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'CLIENTES_TOTALES'
+ DataType = datInteger
+ end
+ item
+ Name = 'ALTAS_CLIENTE'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'CANTIDAD_OBJETIVO'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'IMPORTE_OBJETIVO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_DEVUELTA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_DEVUELTO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_CLIENTE'
+ DataType = datCurrency
end>
end>
JoinDataTables = <>
@@ -3358,7 +3901,7 @@ object RptFacturasCliente: TRptFacturasCliente
PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 37800.807714351900000000
- ReportOptions.LastChange = 40934.742124178240000000
+ ReportOptions.LastChange = 40952.796821550920000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);'
@@ -4442,13 +4985,23 @@ object RptFacturasCliente: TRptFacturasCliente
Left = 824
Top = 600
end
- object tbl_InformeObjetivos: TDAMemDataTable
+ object DADSInformeObjetivos: TDADataSource
+ DataSet = tbl_InformeObjetivosMensual.Dataset
+ DataTable = tbl_InformeObjetivosMensual
+ Left = 152
+ Top = 152
+ end
+ object frxDBInformeObjetivos: TfrxDBDataset
+ UserName = 'frxDBInformeObjetivos'
+ CloseDataSource = False
+ DataSource = DADSInformeObjetivos
+ BCDToCurrency = False
+ Left = 152
+ Top = 96
+ end
+ object tbl_InformeObjetivosMensual: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
- item
- Name = 'ID_EMPRESA'
- DataType = datInteger
- end
item
Name = 'ID_AGENTE'
DataType = datInteger
@@ -4467,9 +5020,22 @@ object RptFacturasCliente: TRptFacturasCliente
DataType = datSmallInt
end
item
- Name = 'CANTIDAD_OBJETIVO'
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'CLIENTES_TOTALES'
DataType = datInteger
end
+ item
+ Name = 'ALTAS_CLIENTE'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'CANTIDAD_OBJETIVO'
+ DataType = datLargeInt
+ end
item
Name = 'IMPORTE_OBJETIVO'
DataType = datCurrency
@@ -4482,6 +5048,10 @@ object RptFacturasCliente: TRptFacturasCliente
Name = 'CANTIDAD_DEVUELTA'
DataType = datCurrency
end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
item
Name = 'IMPORTE_CONSEGUIDO'
DataType = datCurrency
@@ -4490,6 +5060,10 @@ object RptFacturasCliente: TRptFacturasCliente
Name = 'IMPORTE_DEVUELTO'
DataType = datCurrency
end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
item
Name = 'CANTIDAD_RESULTADO'
DataType = datCurrency
@@ -4497,30 +5071,235 @@ object RptFacturasCliente: TRptFacturasCliente
item
Name = 'IMPORTE_RESULTADO'
DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_CLIENTE'
+ DataType = datCurrency
+ end>
+ Params = <
+ item
+ Name = 'ANO1'
+ Value = '2012'
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ Value = '1'
end>
- Params = <>
LogChanges = False
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False
LocalSchema = schReport
LocalDataStreamer = Bin2DataStreamer
- LogicalName = 'InformeListadoObjetivos'
+ LogicalName = 'InformeListadoObjetivosMensual'
IndexDefs = <>
- Left = 152
- Top = 208
+ Left = 64
+ Top = 216
end
- object DADSInformeObjetivos: TDADataSource
- DataSet = tbl_InformeObjetivos.Dataset
- DataTable = tbl_InformeObjetivos
- Left = 152
- Top = 152
+ object tbl_InformeObjetivosTrimestral: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ID_AGENTE'
+ DataType = datInteger
+ end
+ item
+ Name = 'AGENTE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'TRIMESTRE'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'CLIENTES_TOTALES'
+ DataType = datInteger
+ end
+ item
+ Name = 'ALTAS_CLIENTE'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'CANTIDAD_OBJETIVO'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'IMPORTE_OBJETIVO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_DEVUELTA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_DEVUELTO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_CLIENTE'
+ DataType = datCurrency
+ end>
+ Params = <
+ item
+ Name = 'ANO1'
+ Value = '2012'
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ Value = '1'
+ end>
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = Bin2DataStreamer
+ LogicalName = 'InformeListadoObjetivosTrimestral'
+ IndexDefs = <>
+ Left = 192
+ Top = 216
end
- object frxDBInformeObjetivos: TfrxDBDataset
- UserName = 'frxDBInformeObjetivos'
- CloseDataSource = False
- DataSource = DADSInformeObjetivos
- BCDToCurrency = False
- Left = 152
- Top = 96
+ object tbl_InformeObjetivosSemestral: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ID_AGENTE'
+ DataType = datInteger
+ end
+ item
+ Name = 'AGENTE'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'ANO'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'SEMESTRE'
+ DataType = datSmallInt
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 20
+ end
+ item
+ Name = 'CLIENTES_TOTALES'
+ DataType = datInteger
+ end
+ item
+ Name = 'ALTAS_CLIENTE'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'CANTIDAD_OBJETIVO'
+ DataType = datLargeInt
+ end
+ item
+ Name = 'IMPORTE_OBJETIVO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_DEVUELTA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_TOTAL_CONSEGUIDA'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_DEVUELTO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_TOTAL_CONSEGUIDO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'CANTIDAD_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_RESULTADO'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_UNIDAD'
+ DataType = datCurrency
+ end
+ item
+ Name = 'IMPORTE_MEDIO_CLIENTE'
+ DataType = datCurrency
+ end>
+ Params = <
+ item
+ Name = 'ANO1'
+ Value = '2012'
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ Value = '1'
+ end>
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = Bin2DataStreamer
+ LogicalName = 'InformeListadoObjetivosSemestral'
+ IndexDefs = <>
+ Left = 312
+ Top = 216
end
end
diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas
index ff127f8..aee4f70 100644
--- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas
+++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas
@@ -106,10 +106,12 @@ type
tbl_InformeListadoBeneficiosGrafCompSemestral: TDAMemDataTable;
tbl_InformeListadoBeneficiosGrafCompTrimestral: TDAMemDataTable;
tbl_InformeListadoBeneficiosGrafCompMensual: TDAMemDataTable;
- schReport: TDASchema;
- tbl_InformeObjetivos: TDAMemDataTable;
DADSInformeObjetivos: TDADataSource;
frxDBInformeObjetivos: TfrxDBDataset;
+ tbl_InformeObjetivosMensual: TDAMemDataTable;
+ tbl_InformeObjetivosTrimestral: TDAMemDataTable;
+ tbl_InformeObjetivosSemestral: TDAMemDataTable;
+ schReport: TDASchema;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
procedure frxReportGetValue(const VarName: string; var Value: Variant);
@@ -125,6 +127,8 @@ type
FIntervalo: Variant;
FListaIDClientes: TIntegerArray;
FListaNombresClientes : TStringList;
+ FListaIDAgentes: TIntegerArray;
+ FListaNombresAgentes : TStringList;
FImporteMinimo: Currency;
FDesglosado : Boolean;
FShowLogotipo: Boolean;
@@ -137,9 +141,11 @@ type
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
procedure PrepararTablaInformeGrafComp(ATabla: TDAMemDataTable);
procedure PrepararTablaResumenInformeGrafComp(ATabla: TDAMemDataTable);
+ procedure PrepararTablaInformeObjetivos(ATabla: TDAMemDataTable);
function _GenerarInforme(const TipoInforme: String): Binary;
procedure IniciarParametrosInforme;
procedure RecuperarNombresClientes;
+ procedure RecuperarNombresAgentes;
public
function GenerarFactura(const ListaID : TIntegerArray; const VerSello: Boolean = True; const VerCopia: Boolean = True): Binary;
function GenerarFacturaEnPDF(const ListaID : TIntegerArray; const VerSello: Boolean = True): Binary;
@@ -148,6 +154,7 @@ type
function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
function GenerarInformeFacturasGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; const TopN: Integer): Binary;
function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary;
+ function GenerarInformeObjetivosAgentesFacturas(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDAgentes: TIntegerArray; const TopN: Integer): Binary;
end;
implementation
@@ -167,7 +174,8 @@ const
rptInformeListadoFactuasClientePendiente = 'InformeListadoFacturasClientePendientes.fr3';
rptInformeListadoFactuasClientePendienteDesglosado = 'InformeListadoFacturasClientePendientesDesglosado.fr3';
rptInformeListadoFacturasClienteGrafComp = 'InformeListadoFacturasClienteGrafComp.fr3';
- rptInformeListadoBeneficiosGrafComp = 'InformeListadoBeneficiosGrafComp.fr3';
+ rptInformeListadoBeneficiosGrafComp = 'InformeListadoBeneficiosGrafComp.fr3';
+ rptInformeObjetivosAgentesFacturas = 'InformeObjetivosAgentesFacturas.fr3';
{ Dataset names for schReport }
ds_InformeListadoFacturasResumen = 'InformeListadoFacturasResumen';
@@ -526,6 +534,55 @@ begin
end;
end;
+function TRptFacturasCliente.GenerarInformeObjetivosAgentesFacturas(
+ const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant;
+ const ListaIDAgentes: TIntegerArray; const TopN: Integer): Binary;
+var
+ AStream: TMemoryStream;
+ AInforme: Variant;
+
+begin
+ FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
+
+ AStream := TMemoryStream.Create;
+ try
+ //Inicializamos parametros
+ FIdEmpresa := IdEmpresa;
+ FAno1 := Ano1;
+ FIntervalo := Intervalo;
+ FFechaVenInicio := Null;
+ FFechaVenFin := Null;
+
+ if Assigned(FListaIDAgentes) then
+ FListaIDClientes.Free;
+ FListaIDAgentes := ListaIDAgentes;
+
+ //Preparamos la tabla correspondiente y la abrimos para el informe
+ if (FIntervalo = CTE_MENSUAL) then
+ PrepararTablaInformeObjetivos(tbl_InformeObjetivosMensual)
+ else if (FIntervalo = CTE_TRIMESTRAL) then
+ PrepararTablaInformeObjetivos(tbl_InformeObjetivosTrimestral)
+ else
+ PrepararTablaInformeObjetivos(tbl_InformeObjetivosSemestral);
+
+ Result := Binary.Create;
+
+ AInforme := DarRutaFichero(DarRutaInformes, rptInformeObjetivosAgentesFacturas, IntTostr(FIdEmpresa));
+ if VarIsNull(AInforme) then
+ raise Exception.Create (('Error Servidor: GenerarInformeObjetivosAgentesFacturas, no encuentra informe ' + rptInformeObjetivosAgentesFacturas));
+
+ frxReport.LoadFromFile(AInforme, True);
+ IniciarParametrosInforme;
+
+ frxReport.PrepareReport(False);
+ frxReport.PreviewPages.SaveToStream(Result);
+
+ finally
+ AStream.Free;
+ FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
+ end;
+end;
+
procedure TRptFacturasCliente.IniciarParametrosInforme;
var
ATextos : TStringList;
@@ -567,6 +624,29 @@ begin
ACadena := ACadena + ' (desglosados)'
end;
+ if not VarIsNull(FAno1) then
+ begin
+ ACadena := 'Aņo: ' + FAno1;
+ ATextos.Add(ACadena);
+ end;
+
+ if Assigned(FListaIDAgentes) and (FListaIDAgentes.Count > 0) then
+ begin
+ ACadena := 'Agente: ';
+ RecuperarNombresAgentes;
+ ACadena := ACadena + FListaNombresAgentes.Text;
+ end
+ else begin
+ ACadena := 'Todos los agentes';
+// if FDesglosado then
+ ACadena := ACadena + ' (desglosados)'
+ end;
+
+ ATextos.Add(ACadena);
+ ACadena := '';
+
+
+
ATextos.Add(ACadena);
ACadena := '';
@@ -672,6 +752,40 @@ begin
ATabla.Active := True;
end;
+procedure TRptFacturasCliente.PrepararTablaInformeObjetivos(
+ ATabla: TDAMemDataTable);
+var
+ Condicion: TDAWhereExpression;
+ i: Integer;
+
+begin
+ if ATabla.Active then
+ ATabla.Active := False;
+
+ // Filtrar el informe por agente
+ if Assigned(FListaIDAgentes) then
+ begin
+ with ATabla.DynamicWhere do
+ begin
+ for i := 0 to FListaIDAgentes.Count - 1 do
+ begin
+
+ // (ID_AGENTE = ID)
+ Condicion := NewBinaryExpression(NewField('SEN', 'ID_AGENTE'), NewConstant(FListaIDAgentes.Items[i], datInteger), dboEqual);
+ if IsEmpty then
+ Expression := Condicion
+ else
+ Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
+ end;
+ end;
+ end;
+
+ DADSInformeObjetivos.DataTable := ATabla;
+ ATabla.ParamByName('ID_EMPRESA').AsInteger := FIdEmpresa;
+ ATabla.ParamByName('ANO1').AsVariant := FAno1;
+ ATabla.Active := True;
+end;
+
procedure TRptFacturasCliente.PrepararTablaResumenInforme(ATabla: IDADataset);
var
i: Integer;
@@ -733,6 +847,96 @@ begin
ATabla.Active := True;
end;
+procedure TRptFacturasCliente.RecuperarNombresAgentes;
+var
+ AContactosService : IsrvContactos;
+ Intf : IInterface;
+ AClientID : TGUID;
+
+ ATableNameArray: StringArray;
+ ATableRequestInfoArray: TableRequestInfoArray;
+ ATableRequestInfo: TableRequestInfoV5;
+ AStream: TMemoryStream;
+ ADataTable: TDAMemDataTable;
+ i: Integer;
+ AWhereBuilder : TDAWhereBuilder;
+ ACondicion : TDAWhereExpression;
+begin
+ CreateGUID(AClientID);
+
+ GetClassFactory('srvContactos').CreateInstance(AClientID, Intf);
+
+ if Assigned(Intf) then
+ begin
+ AContactosService := Intf as IsrvContactos;
+
+ ATableNameArray := StringArray.Create;
+ ATableRequestInfoArray := TableRequestInfoArray.Create;
+ AWhereBuilder := TDAWhereBuilder.Create;
+ try
+ ATableNameArray.Add('Agentes');
+ ATableRequestInfo := TableRequestInfoV5.Create;
+
+ with ATableRequestInfo do
+ begin
+ IncludeSchema := True;
+ MaxRecords := -1;
+ UserFilter := '';
+
+ AWhereBuilder.Clear;
+ with AWhereBuilder do
+ for i := 0 to FListaIDAgentes.Count - 1 do
+ begin
+ ACondicion := NewBinaryExpression(
+ NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDAgentes[i], datInteger), dboEqual),
+ NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual),
+ dboAnd);
+
+ if not AWhereBuilder.IsEmpty then
+ Expression := NewBinaryExpression(Expression, ACondicion, dboOr)
+ else
+ Expression := ACondicion;
+ end;
+
+ WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression);
+ end;
+
+ try
+ ATableRequestInfoArray.Add(ATableRequestInfo);
+ AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray);
+ if Assigned(AStream) then
+ begin
+ ADataTable := TDAMemDataTable.Create(nil);
+ try
+ ADataTable.Name := 'Agentes';
+ ADataTable.LocalDataStreamer := Bin2DataStreamer;
+ ADataTable.RemoteFetchEnabled := False;
+ Bin2DataStreamer.ReadDataset(AStream, ADataTable, True);
+
+ ADataTable.Open;
+ FListaNombresAgentes.Clear;
+ for i := 0 to ADataTable.RecordCount - 1 do
+ begin
+ FListaNombresAgentes.Add(ADataTable.FieldByName('NOMBRE').AsString);
+ ADataTable.Next;
+ end;
+
+ finally
+ FreeANDNil(ADataTable);
+ end;
+ end;
+ except
+ on e: Exception do
+ dmServer.EscribirLog(e.Message);
+ end;
+ finally
+ FreeANDNIL(ATableRequestInfoArray);
+ FreeANDNIL(ATableNameArray);
+ FreeANDNIL(AWhereBuilder);
+ end;
+ end;
+end;
+
procedure TRptFacturasCliente.RecuperarNombresClientes;
var
AContactosService : IsrvContactos;
diff --git a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas
index c6b88c5..582ca07 100644
--- a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas
+++ b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas
@@ -736,8 +736,29 @@ begin
end;
procedure TGestorInformesController.VerInformeObjetivosFacturas;
+var
+ AStream: Binary;
+ AEditor : IEditorInformeObjetivosFacturasReport;
begin
-//
+ AEditor := NIL;
+ ShowHourglassCursor;
+ CreateEditor('EditorInformeObjetivosFacturasReport', IEditorInformeObjetivosFacturasReport, AEditor);
+ if Assigned(AEditor) then
+ try
+ AEditor.Controller := Self;
+ AEditor.Title := 'Informe comparativo de objetivos de agentes de facturas';
+
+ AStream := FDataModule.GenerarInformeObjetivosAgentesFacturas(AppFactuGES.EmpresaActiva.ID,
+ AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.ListaIDAgentes, AEditor.NTop);
+
+ AEditor.LoadFromStream(AStream);
+ AEditor.Preview;
+ finally
+ AEditor.Release;
+ AEditor := Nil;
+ HideHourglassCursor;
+ FreeAndNil(AStream);
+ end;
end;
{
diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas
index 958d9ca..f4fd9a3 100644
--- a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas
+++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas
@@ -38,6 +38,7 @@ type
function GenerarInformeFacturasCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; Const NTop: Variant): Binary;
function DarListaAnosFacturasCli: TStringList;
function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary;
+ function GenerarInformeObjetivosAgentesFacturas(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDAgentes: TIntegerArray; Const NTop: Variant): Binary;
//MODULO RECIBOS DE CLIENTE
function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
@@ -323,6 +324,13 @@ begin
Result := (RORemoteService as IsrvGestorInformes).GenerarInformeObjetivosAgentesAlbaranes(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdAgentes, NTop);
end;
+function TDataModuleGestorInformes.GenerarInformeObjetivosAgentesFacturas(
+ const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant;
+ const ListaIDAgentes: TIntegerArray; const NTop: Variant): Binary;
+begin
+ Result := (RORemoteService as IsrvGestorInformes).GenerarInformeObjetivosAgentesFacturas(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdAgentes, NTop);
+end;
+
procedure TDataModuleGestorInformes.getInforme;
begin
tbl_DirectoryData.close;
diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas
index d114a01..4bd1a21 100644
--- a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas
+++ b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas
@@ -26,7 +26,8 @@ type
function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
function GenerarInformeFacturasCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; Const NTop: Variant): Binary;
function DarListaAnosFacturasCli: TStringList;
- function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary;
+ function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary;
+ function GenerarInformeObjetivosAgentesFacturas(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDAgentes: TIntegerArray; Const NTop: Variant): Binary;
//MODULO RECIBOS DE CLIENTE
function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm
index 83361d7..d6c14f4 100644
--- a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm
+++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm
@@ -155,8 +155,9 @@ object PluginGestorInformes: TPluginGestorInformes
end
object actInformeObjetivosFacturas: TAction
Category = 'Agentes'
- Caption = 'Informe objetivos de agente en albaranes'
+ Caption = 'Informe objetivos de agente en facturas'
ImageIndex = 0
+ OnExecute = actInformeObjetivosFacturasExecute
end
end
object MainMenu: TMainMenu
@@ -241,6 +242,10 @@ object PluginGestorInformes: TPluginGestorInformes
Tag = 190
Action = actInformeObjetivosAlbaranes
end
+ object Informeobjetivosdeagenteenalbaranes1: TMenuItem
+ Tag = 200
+ Action = actInformeObjetivosFacturas
+ end
end
end
object SmallImages: TPngImageList
diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas
index 186bbde..1d3a2cd 100644
--- a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas
+++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas
@@ -53,6 +53,7 @@ type
actInformeObjetivosAlbaranes: TAction;
actInformeObjetivos1: TMenuItem;
actInformeObjetivosFacturas: TAction;
+ Informeobjetivosdeagenteenalbaranes1: TMenuItem;
procedure actInformeFacturasClienteExecute(Sender: TObject);
procedure actInformeFacturasClientePendientesExecute(Sender: TObject);
procedure actInformeFacturasClienteIVAExecute(Sender: TObject);
@@ -68,6 +69,7 @@ type
procedure actInformeBeneficiosGrafCompExecute(Sender: TObject);
procedure actInformeAlbaranesClienteGrafCompExecute(Sender: TObject);
procedure actInformeObjetivosAlbaranesExecute(Sender: TObject);
+ procedure actInformeObjetivosFacturasExecute(Sender: TObject);
private
FController : IGestorInformesController;
public
@@ -156,6 +158,12 @@ begin
FController.VerInformeObjetivosAlbaranes;
end;
+procedure TPluginGestorInformes.actInformeObjetivosFacturasExecute(
+ Sender: TObject);
+begin
+ FController.VerInformeObjetivosFacturas;
+end;
+
procedure TPluginGestorInformes.actInformeRecibosClienteExecute(
Sender: TObject);
begin
diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas
index 5859904..dd65fce 100644
--- a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas
+++ b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas
@@ -393,8 +393,15 @@ end;
function TsrvGestorInformes.GenerarInformeObjetivosAgentesFacturas(
const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant;
const ListaIDAgentes: TIntegerArray; const TopN: Integer): Binary;
+var
+ AReportGenerator : TRptFacturasCliente;
begin
-//
+ AReportGenerator := TRptFacturasCliente.Create(nil);
+ try
+ Result := AReportGenerator.GenerarInformeObjetivosAgentesFacturas(IdEmpresa, Intervalo, Ano1, Ano2, ListaIDAgentes, TopN);
+ finally
+ FreeAndNIL(AReportGenerator);
+ end;
end;
initialization
diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk
index e633943..e42f153 100644
--- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk
+++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk
@@ -94,8 +94,8 @@ contains
uEditorInformeFacturasProveedorReportGrafComp in 'uEditorInformeFacturasProveedorReportGrafComp.pas' {fEditorInformeFacturasProveedorReportGrafComp: TForm},
uEditorInformeBeneficiosReportGrafComp in 'uEditorInformeBeneficiosReportGrafComp.pas' {fEditorInformeBeneficiosReportGrafComp: TForm},
uEditorInformeAlbaranesClienteReportGrafComp in 'uEditorInformeAlbaranesClienteReportGrafComp.pas' {fEditorInformeAlbaranesClienteReportGrafComp: TForm},
- uEditorInformeObjetivosFacturasReport in 'uEditorInformeObjetivosFacturasReport.pas' {fEditorInformeObjetivosFacturasReport: TForm},
uEditorInformeObjetivosAlbaranesReport in 'uEditorInformeObjetivosAlbaranesReport.pas' {fEditorInformeObjetivosAlbaranesReport: TForm},
- uViewFiltroAgentes in 'uViewFiltroAgentes.pas' {frViewFiltroAgentes: TFrame};
+ uViewFiltroAgentes in 'uViewFiltroAgentes.pas' {frViewFiltroAgentes: TFrame},
+ uEditorInformeObjetivosFacturasReport in 'uEditorInformeObjetivosFacturasReport.pas' {fEditorInformeObjetivosFacturasReport: TForm};
end.
diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj
index b9232bb..e55fc6e 100644
--- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj
+++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj
@@ -124,7 +124,7 @@
TForm
-
+
TForm
@@ -153,7 +153,7 @@
-
+
TFrame
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosAlbaranesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosAlbaranesReport.dfm
index 405de6a..7b5d057 100644
--- a/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosAlbaranesReport.dfm
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosAlbaranesReport.dfm
@@ -186,8 +186,7 @@ inherited fEditorInformeObjetivosAlbaranesReport: TfEditorInformeObjetivosAlbara
ParentFont = False
TabOrder = 2
ReadOnly = False
- ExplicitLeft = -1
- ExplicitTop = 318
+ ExplicitTop = 313
ExplicitWidth = 188
inherited TBXLabel2: TTBXLabel
Width = 188
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.dfm
index 055830d..c80619e 100644
--- a/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.dfm
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.dfm
@@ -123,6 +123,7 @@ inherited fEditorInformeObjetivosFacturasReport: TfEditorInformeObjetivosFactura
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 182
+ Visible = False
ExplicitWidth = 182
inherited Label1: TLabel
Width = 172
@@ -139,6 +140,7 @@ inherited fEditorInformeObjetivosFacturasReport: TfEditorInformeObjetivosFactura
inherited TBXAlignmentPanel4: TTBXAlignmentPanel
Top = 224
Width = 182
+ Visible = False
ExplicitTop = 224
ExplicitWidth = 182
inherited Label2: TLabel
@@ -148,6 +150,7 @@ inherited fEditorInformeObjetivosFacturasReport: TfEditorInformeObjetivosFactura
inherited TBXAlignmentPanel5: TTBXAlignmentPanel
Top = 176
Width = 182
+ Visible = False
ExplicitTop = 176
ExplicitWidth = 182
inherited Label4: TLabel
@@ -169,7 +172,7 @@ inherited fEditorInformeObjetivosFacturasReport: TfEditorInformeObjetivosFactura
end
end
end
- inline frViewFiltroClientes1: TfrViewFiltroClientes
+ inline frViewFiltroAgentes1: TfrViewFiltroAgentes
Left = 0
Top = 313
Width = 188
@@ -182,7 +185,6 @@ inherited fEditorInformeObjetivosFacturasReport: TfEditorInformeObjetivosFactura
Font.Style = []
ParentFont = False
TabOrder = 2
- Visible = False
ReadOnly = False
ExplicitTop = 313
ExplicitWidth = 188
@@ -190,11 +192,14 @@ inherited fEditorInformeObjetivosFacturasReport: TfEditorInformeObjetivosFactura
Width = 188
ExplicitWidth = 188
end
- inherited bElegirCliente: TBitBtn
+ inherited bElegirAgente: TBitBtn
Width = 119
ExplicitWidth = 119
end
- inherited edtCliente: TcxTextEdit
+ inherited cbxDesglosado: TCheckBox
+ Visible = False
+ end
+ inherited edtAgente: TcxTextEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
diff --git a/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.pas
index 91822dd..e334086 100644
--- a/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.pas
+++ b/Source/Modulos/Gestor de informes/Views/uEditorInformeObjetivosFacturasReport.pas
@@ -14,24 +14,24 @@ uses
uViewBase, uViewPeriodoFechas, uControllerBase,
dxLayoutControl, cxControls, uViewFiltroImportes,
FactuGES_Intf, TBXDkPanels, uEditorInformeBase,
- uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeAlbaranesClienteReportGrafComp,
- uViewIntervaloComparativo, uViewFiltroClientes;
+ uIEditorInformeBase, uViewParametrosInforme, uIEditorInformeObjetivosFacturasReport,
+ uViewIntervaloComparativo, uViewFiltroClientes, uViewFiltroAgentes;
type
- TfEditorInformeObjetivosFacturasReport = class(TfEditorInformeBase, IEditorInformeAlbaranesClienteReportGrafComp)
+ TfEditorInformeObjetivosFacturasReport = class(TfEditorInformeBase, IEditorInformeObjetivosFacturasReport)
TBXItem58: TTBXItem;
frViewIntervaloComparativo1: TfrViewIntervaloComparativo;
- frViewFiltroClientes1: TfrViewFiltroClientes;
+ frViewFiltroAgentes1: TfrViewFiltroAgentes;
procedure actRefrescarExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
private
- FListaIDClientes: TIntegerArray;
+ FListaIDAgentes: TIntegerArray;
function GetIntervalo: Variant;
function GetAno1: Variant;
function GetAno2: Variant;
function GetSerie: variant;
- function GetListaIDClientes: TIntegerArray;
+ function GetListaIDAgentes: TIntegerArray;
function GetNTop: Variant;
procedure RefrescarInforme;
@@ -43,9 +43,9 @@ type
property Intervalo: Variant read GetIntervalo;
property Ano1: Variant read GetAno1;
property Ano2: Variant read GetAno2;
- property ListaIDClientes: TIntegerArray read GetListaIDClientes;
+ property ListaIDAgentes: TIntegerArray read GetListaIDAgentes;
property NTop: Variant read GetNTop;
- property Serie: Variant read GetSerie;
+ property Serie: Variant read GetSerie;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
@@ -69,12 +69,12 @@ end;
constructor TfEditorInformeObjetivosFacturasReport.Create(AOwner: TComponent);
begin
inherited;
- FListaIDClientes := TIntegerArray.Create;
+ FListaIDAgentes := TIntegerArray.Create;
end;
destructor TfEditorInformeObjetivosFacturasReport.Destroy;
begin
- FListaIDClientes.Free;
+ FListaIDAgentes.Free;
inherited;
end;
@@ -99,13 +99,13 @@ begin
Result := frViewIntervaloComparativo1.cbAno2.EditValue;
end;
-function TfEditorInformeObjetivosFacturasReport.GetListaIDClientes: TIntegerArray;
+function TfEditorInformeObjetivosFacturasReport.GetListaIDAgentes: TIntegerArray;
begin
- FListaIDClientes.Clear;
- if Assigned(frViewFiltroClientes1.Cliente) then
- FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID);
+ FListaIDAgentes.Clear;
+ if Assigned(frViewFiltroAgentes1.Agente) then
+ FListaIDAgentes.Add(frViewFiltroAgentes1.Agente.ID);
- Result := FListaIDClientes;
+ Result := FListaIDAgentes;
end;
function TfEditorInformeObjetivosFacturasReport.GetNTop: Variant;
@@ -125,14 +125,13 @@ begin
ShowHourglassCursor;
try
- AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeAlbaranesCliGrafComp(
+ AStream := (Controller as IGestorInformesController).DataModule.GenerarInformeObjetivosAgentesAlbaranes(
AppFactuGES.EmpresaActiva.ID,
Intervalo,
Ano1,
Ano2,
- ListaIDClientes,
- NTop,
- Serie);
+ ListaIDAgentes,
+ NTop);
LoadFromStream(AStream);
Report.ShowPreparedReport;
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
index 2e77227..ff9d70c 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -38,6 +38,7 @@
FalseTrueFalse/standaloneTrueFalse4210FalseFalseFalseFalseFalse308212524.2.1.04.2.1.0martes, 31 de enero de 2012 10:21
+
ExpressPrinting System by Developer Express Inc.
FactuGES_Server.dprFalse
diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc
index 413f622..2117dbb 100644
--- a/Source/Servidor/FactuGES_Server.rc
+++ b/Source/Servidor/FactuGES_Server.rc
@@ -1,7 +1,7 @@
MAINICON ICON "C:\Codigo\Resources\Iconos\Servidor.ico"
1 VERSIONINFO
-FILEVERSION 4,1,9,0
-PRODUCTVERSION 4,1,9,0
+FILEVERSION 4,2,1,0
+PRODUCTVERSION 4,2,1,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
@@ -12,9 +12,9 @@ BEGIN
BEGIN
BLOCK "0C0A04E4"
BEGIN
- VALUE "FileVersion", "4.1.9.0\0"
- VALUE "ProductVersion", "4.1.9.0\0"
- VALUE "CompileDate", "lunes, 31 de octubre de 2011 11:24\0"
+ VALUE "FileVersion", "4.2.1.0\0"
+ VALUE "ProductVersion", "4.2.1.0\0"
+ VALUE "CompileDate", "viernes, 03 de febrero de 2012 10:41\0"
END
END
BLOCK "VarFileInfo"