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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DataModuleImpresiones
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
-
fEditorInformeObjetivosFacturasReport
+
fEditorInformeObjetivosFacturaReport
TForm
@@ -153,7 +153,7 @@ -
frViewIntervaloComparativo
+
frViewFiltroAgentes
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"