- Novos filtros

- Correções casos 0004074 e 0004226
	 

	

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@28429 d1611594-4594-4d17-8e1d-87c2c4800839
master
bruno 2013-07-01 22:08:52 +00:00
parent 0e1c8d0c0d
commit 954dda12cb
5 changed files with 331 additions and 196 deletions

View File

@ -14,3 +14,7 @@ sumario.ocupacao=Ocupa
sumario.ocupacaoComArrecadacao=Ocupação com Arrecadação: sumario.ocupacaoComArrecadacao=Ocupação com Arrecadação:
sumario.ocupacaoSemArrecadacao=Ocupação sem Arrecadação sumario.ocupacaoSemArrecadacao=Ocupação sem Arrecadação
sumario.totalNominal=Total Nominal: sumario.totalNominal=Total Nominal:
legenda.ocupacaoArrecadacao=Ocupação Passageiro
legenda.ocupacaoOperacional=Ocupação Operacional
legenda.poltronaExclusiva=Poltrona Exclusiva

View File

@ -56,20 +56,24 @@ public class RendimentoParamsImpl implements IParametros {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT round(NVL(TAB.TOTAL_ARRECADADO,0),2) TOTAL_ARRECADADO, "); sql.append(" SELECT round(NVL(TAB.TOTAL_ARRECADADO, 0), 2) TOTAL_ARRECADADO, ");
sql.append(" round(NVL(TAB.TOTAL_ARRECADADO / TAB.KM_NOMINAL,0),2) ARRECADADO_KM, "); sql.append(" round(NVL(TAB.TOTAL_ARRECADADO / TAB.KM_NOMINAL, 0), 2) ARRECADADO_KM, ");
sql.append(" round(NVL(TAB.TOTAL_NOMINAL,0),2) TOTAL_NOMINAL, "); sql.append(" round(NVL(TAB.TOTAL_NOMINAL, 0), 2) TOTAL_NOMINAL, ");
sql.append(" round(TAB.TOTAL_NOMINAL / TAB.KM_NOMINAL,2) NOMINAL_KM,"); sql.append(" round(TAB.TOTAL_NOMINAL / TAB.KM_NOMINAL, 2) NOMINAL_KM, ");
sql.append(" (TAB.TOTAL_OCUPADOS/TAB.TOTAL_ACENTOS) OCUPACAO, ");
sql.append(" ((TAB.TOTAL_OCUPADOS-TAB.TOTAL_OCUPADOS_GRATUIDADE)/TAB.TOTAL_ACENTOS) OCUPACAO_ARRECADACAO, ");
sql.append(" (TAB.TOTAL_OCUPADOS_GRATUIDADE/TAB.TOTAL_ACENTOS) OCUPACAO_S_ARRECADACAO ");
sql.append(" "); sql.append(" ");
sql.append(" FROM ( "); sql.append(" ((TAB.TOTAL_OCUPADOS + TAB.TOTAL_OCUPADOS_OPERACAO) / ");
sql.append("SELECT (SELECT SUM(BO.PRECIOBASE) "); sql.append(" TAB.TOTAL_ACENTOS) OCUPACAO, ");
sql.append(" ((TAB.TOTAL_OCUPADOS - TAB.TOTAL_OCUPADOS_GRATUIDADE) / ");
sql.append(" TAB.TOTAL_ACENTOS) OCUPACAO_ARRECADACAO, ");
sql.append(" ((TAB.TOTAL_OCUPADOS_GRATUIDADE + TAB.TOTAL_OCUPADOS_OPERACAO) / ");
sql.append(" TAB.TOTAL_ACENTOS) OCUPACAO_S_ARRECADACAO ");
sql.append(" ");
sql.append(" FROM (SELECT (SELECT SUM(BO.PRECIOPAGADO) ");
sql.append(" FROM BOLETO BO "); sql.append(" FROM BOLETO BO ");
sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID ");
sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND BO.ACTIVO = 1 "); sql.append(" AND BO.ACTIVO = 1 ");
sql.append(" AND BO.INDSTATUSOPERACION = 'F' ");
sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR "); sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR ");
sql.append(" BO.MOTIVOCANCELACION_ID = 0)) TOTAL_ARRECADADO, "); sql.append(" BO.MOTIVOCANCELACION_ID = 0)) TOTAL_ARRECADADO, ");
sql.append(" "); sql.append(" ");
@ -83,10 +87,13 @@ public class RendimentoParamsImpl implements IParametros {
sql.append(" AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID "); sql.append(" AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID ");
sql.append(" AND DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID "); sql.append(" AND DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID ");
sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID "); sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID ");
sql.append(" AND TR.ACTIVO = 1 ");
sql.append(" AND CT.ACTIVO = 1) KM_NOMINAL, "); sql.append(" AND CT.ACTIVO = 1) KM_NOMINAL, ");
sql.append(" "); sql.append(" ");
sql.append(" (SELECT SUM((SELECT TR.CANTKMREAL "); sql.append(" (SELECT SUM((SELECT TR.CANTKMREAL ");
sql.append(" FROM BOLETO BO, CORRIDA_TRAMO CTD, CORRIDA_TRAMO CTO "); sql.append(" FROM BOLETO BO, ");
sql.append(" CORRIDA_TRAMO CTD, ");
sql.append(" CORRIDA_TRAMO CTO ");
sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID ");
sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); sql.append(" AND BO.NUMASIENTO = DD.ASIENTO ");
@ -101,21 +108,21 @@ public class RendimentoParamsImpl implements IParametros {
sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND "); sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND ");
sql.append(" CTD.NUMSECUENCIA "); sql.append(" CTD.NUMSECUENCIA ");
sql.append(" AND BO.ACTIVO = 1 "); sql.append(" AND BO.ACTIVO = 1 ");
sql.append(" AND BO.INDSTATUSOPERACION = 'F' ");
sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR "); sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR ");
sql.append(" BO.MOTIVOCANCELACION_ID = 0))) "); sql.append(" BO.MOTIVOCANCELACION_ID = 0))) ");
sql.append(" FROM CORRIDA_TRAMO CT, "); sql.append(" FROM CORRIDA_TRAMO CT, ");
sql.append(" TRAMO TR, "); sql.append(" TRAMO TR, ");
sql.append(" ROL_OPERATIVO RO, "); sql.append(" ROL_OPERATIVO RO, ");
sql.append(" DET_DIAGRAMA_AUTOBUS DD "); sql.append(" DET_DIAGRAMA_AUTOBUS DD ");
sql.append(" WHERE "); sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA ");
sql.append(" CR.FECCORRIDA = CT.FECCORRIDA ");
sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID ");
sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID ");
sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ");
sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID ");
sql.append(" AND DD.VENDIBLE = 1 "); sql.append(" AND DD.VENDIBLE = 1 ");
sql.append(" AND CT.ACTIVO = 1) KM_OCUPADA, "); sql.append(" AND CT.ACTIVO = 1) KM_OCUPADA, ");
sql.append(" ");
sql.append(" (SELECT SUM(TF.PRECIO) "); sql.append(" (SELECT SUM(TF.PRECIO) ");
sql.append(" FROM TRAMO TR, "); sql.append(" FROM TRAMO TR, ");
sql.append(" ROL_OPERATIVO RO, "); sql.append(" ROL_OPERATIVO RO, ");
@ -126,6 +133,7 @@ public class RendimentoParamsImpl implements IParametros {
sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID ");
sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID "); sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID ");
sql.append(" AND DD.VENDIBLE = 1 "); sql.append(" AND DD.VENDIBLE = 1 ");
sql.append(" AND DD.ACTIVO = 1 ");
sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID ");
sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID ");
sql.append(" AND TF.MARCA_ID = CR.MARCA_ID "); sql.append(" AND TF.MARCA_ID = CR.MARCA_ID ");
@ -136,8 +144,7 @@ public class RendimentoParamsImpl implements IParametros {
sql.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID "); sql.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID ");
sql.append(" AND VT.ACTIVO = 1 "); sql.append(" AND VT.ACTIVO = 1 ");
sql.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND "); sql.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND ");
sql.append(" VT.FECFINVIGENCIA) TOTAL_NOMINAL,"); sql.append(" VT.FECFINVIGENCIA) TOTAL_NOMINAL, ");
sql.append(" "); sql.append(" ");
sql.append(" (SELECT COUNT(1) "); sql.append(" (SELECT COUNT(1) ");
sql.append(" FROM CORRIDA_TRAMO CT, "); sql.append(" FROM CORRIDA_TRAMO CT, ");
@ -152,11 +159,13 @@ public class RendimentoParamsImpl implements IParametros {
sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ");
sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID ");
sql.append(" AND DD.VENDIBLE = 1 "); sql.append(" AND DD.VENDIBLE = 1 ");
sql.append(" AND DD.ACTIVO = 1 ");
sql.append(" AND CT.ACTIVO = 1) TOTAL_ACENTOS, "); sql.append(" AND CT.ACTIVO = 1) TOTAL_ACENTOS, ");
sql.append(" "); sql.append(" ");
sql.append(" (SELECT COUNT( "); sql.append(" (SELECT COUNT((SELECT 1 ");
sql.append(" (SELECT 1 "); sql.append(" FROM BOLETO BO, ");
sql.append(" FROM BOLETO BO, CORRIDA_TRAMO CTD, CORRIDA_TRAMO CTO "); sql.append(" CORRIDA_TRAMO CTD, ");
sql.append(" CORRIDA_TRAMO CTO ");
sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID ");
sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); sql.append(" AND BO.NUMASIENTO = DD.ASIENTO ");
@ -168,26 +177,28 @@ public class RendimentoParamsImpl implements IParametros {
sql.append(" AND CTO.FECCORRIDA = CR.FECCORRIDA "); sql.append(" AND CTO.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND CTO.ACTIVO = 1 "); sql.append(" AND CTO.ACTIVO = 1 ");
sql.append(" AND CTD.ACTIVO = 1 "); sql.append(" AND CTD.ACTIVO = 1 ");
sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND CTD.NUMSECUENCIA "); sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND ");
sql.append(" CTD.NUMSECUENCIA ");
sql.append(" AND BO.ACTIVO = 1 "); sql.append(" AND BO.ACTIVO = 1 ");
sql.append(" AND BO.INDSTATUSOPERACION = 'F' ");
sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR "); sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR ");
sql.append(" BO.MOTIVOCANCELACION_ID = 0))) "); sql.append(" BO.MOTIVOCANCELACION_ID = 0))) ");
sql.append(" FROM "); sql.append(" FROM CORRIDA_TRAMO CT, ");
sql.append(" CORRIDA_TRAMO CT, ");
sql.append(" TRAMO TR, "); sql.append(" TRAMO TR, ");
sql.append(" ROL_OPERATIVO RO, "); sql.append(" ROL_OPERATIVO RO, ");
sql.append(" DET_DIAGRAMA_AUTOBUS DD "); sql.append(" DET_DIAGRAMA_AUTOBUS DD ");
sql.append(" WHERE "); sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA ");
sql.append(" CR.FECCORRIDA = CT.FECCORRIDA ");
sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID ");
sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID ");
sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ");
sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID ");
sql.append(" AND DD.VENDIBLE = 1 "); sql.append(" AND DD.VENDIBLE = 1 ");
sql.append(" AND DD.ACTIVO = 1 ");
sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS, "); sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS, ");
sql.append(" (SELECT COUNT( "); sql.append(" (SELECT COUNT((SELECT 1 ");
sql.append(" (SELECT 1 "); sql.append(" FROM BOLETO BO, ");
sql.append(" FROM BOLETO BO, CORRIDA_TRAMO CTD, CORRIDA_TRAMO CTO "); sql.append(" CORRIDA_TRAMO CTD, ");
sql.append(" CORRIDA_TRAMO CTO ");
sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID ");
sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); sql.append(" AND BO.NUMASIENTO = DD.ASIENTO ");
@ -200,27 +211,60 @@ public class RendimentoParamsImpl implements IParametros {
sql.append(" AND BO.PRECIOBASE = 0 "); sql.append(" AND BO.PRECIOBASE = 0 ");
sql.append(" AND CTO.ACTIVO = 1 "); sql.append(" AND CTO.ACTIVO = 1 ");
sql.append(" AND CTD.ACTIVO = 1 "); sql.append(" AND CTD.ACTIVO = 1 ");
sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND CTD.NUMSECUENCIA "); sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND ");
sql.append(" CTD.NUMSECUENCIA ");
sql.append(" AND BO.ACTIVO = 1 "); sql.append(" AND BO.ACTIVO = 1 ");
sql.append(" AND BO.INDSTATUSOPERACION = 'F' ");
sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR "); sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR ");
sql.append(" BO.MOTIVOCANCELACION_ID = 0))) "); sql.append(" BO.MOTIVOCANCELACION_ID = 0))) ");
sql.append(" FROM "); sql.append(" FROM CORRIDA_TRAMO CT, ");
sql.append(" CORRIDA_TRAMO CT, ");
sql.append(" TRAMO TR, "); sql.append(" TRAMO TR, ");
sql.append(" ROL_OPERATIVO RO, "); sql.append(" ROL_OPERATIVO RO, ");
sql.append(" DET_DIAGRAMA_AUTOBUS DD "); sql.append(" DET_DIAGRAMA_AUTOBUS DD ");
sql.append(" WHERE "); sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA ");
sql.append(" CR.FECCORRIDA = CT.FECCORRIDA ");
sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID ");
sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID ");
sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ");
sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID ");
sql.append(" AND DD.VENDIBLE = 1 "); sql.append(" AND DD.VENDIBLE = 1 ");
sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS_GRATUIDADE "); sql.append(" AND DD.ACTIVO = 1 ");
sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS_GRATUIDADE, ");
sql.append(" ");
sql.append(" (SELECT COUNT((SELECT 1 ");
sql.append(" FROM ASIENTO_EXCLUSIVO AE, ");
sql.append(" CORRIDA_TRAMO CTD, ");
sql.append(" CORRIDA_TRAMO CTO ");
sql.append(" WHERE AE.CORRIDA_ID = CR.CORRIDA_ID ");
sql.append(" AND AE.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND AE.NUMASIENTO = DD.ASIENTO ");
sql.append(" AND AE.PARADA_ID = CTO.ORIGEN_ID ");
sql.append(" AND NVL(AE.DESTINO_ID, CR.DESTINO_ID) = ");
sql.append(" CTD.DESTINO_ID ");
sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID ");
sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID ");
sql.append(" AND CTO.FECCORRIDA = CR.FECCORRIDA ");
sql.append(" AND CTO.ACTIVO = 1 ");
sql.append(" AND CTD.ACTIVO = 1 ");
sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND ");
sql.append(" CTD.NUMSECUENCIA ");
sql.append(" AND AE.ACTIVO = 1)) ");
sql.append(" FROM CORRIDA_TRAMO CT, ");
sql.append(" TRAMO TR, ");
sql.append(" ROL_OPERATIVO RO, ");
sql.append(" DET_DIAGRAMA_AUTOBUS DD ");
sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA ");
sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID ");
sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID ");
sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ");
sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID ");
sql.append(" AND DD.VENDIBLE = 1 ");
sql.append(" AND DD.ACTIVO = 1 ");
sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS_OPERACAO ");
sql.append(" FROM CORRIDA CR "); sql.append(" FROM CORRIDA CR ");
sql.append(" WHERE CR.CORRIDA_ID = ? "); sql.append(" WHERE CR.CORRIDA_ID = ?");
sql.append(" AND CR.FECCORRIDA = ? "); sql.append(" AND CR.FECCORRIDA = ? ) TAB ");
sql.append(" ) TAB");
return sql.toString(); return sql.toString();
} }

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="RelatorioAproveitamento" pageWidth="595" pageHeight="842" whenNoDataType="NoDataSection" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3308e98f-a36a-4ee6-bb41-be017c32427e"> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="RelatorioAproveitamento" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3308e98f-a36a-4ee6-bb41-be017c32427e">
<property name="ireport.zoom" value="1.5"/> <property name="ireport.zoom" value="2.0"/>
<property name="ireport.x" value="0"/> <property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/> <property name="ireport.y" value="44"/>
<style name="Crosstab Data Text" hAlign="Center"/> <style name="Crosstab Data Text" hAlign="Center"/>
<style name="table"> <style name="table">
<box> <box>
@ -60,6 +60,22 @@
AND BO.ACTIVO = 1 AND BO.ACTIVO = 1
AND (BO.MOTIVOCANCELACION_ID IS NULL OR AND (BO.MOTIVOCANCELACION_ID IS NULL OR
BO.MOTIVOCANCELACION_ID = 0)) OCUPADO, BO.MOTIVOCANCELACION_ID = 0)) OCUPADO,
(SELECT DECODE(AE.VENDIBLE, 1, 1,0,2)
FROM ASIENTO_EXCLUSIVO AE, CORRIDA_TRAMO CTD, CORRIDA_TRAMO CTO
WHERE AE.CORRIDA_ID = CR.CORRIDA_ID
AND AE.FECCORRIDA = CR.FECCORRIDA
AND AE.NUMASIENTO = DD.ASIENTO
AND AE.PARADA_ID = CTO.ORIGEN_ID
AND NVL(AE.DESTINO_ID,CR.DESTINO_ID) = CTD.DESTINO_ID
AND CTD.CORRIDA_ID = CR.CORRIDA_ID
AND CTD.FECCORRIDA = CR.FECCORRIDA
AND CTO.CORRIDA_ID = CR.CORRIDA_ID
AND CTO.FECCORRIDA = CR.FECCORRIDA
AND CTO.ACTIVO = 1
AND CTD.ACTIVO = 1
AND VT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND CTD.NUMSECUENCIA + 1
AND AE.ACTIVO = 1
) OCUPADO_OPERACAO,
VT.NUMSECUENCIA VT.NUMSECUENCIA
FROM CORRIDA CR, FROM CORRIDA CR,
(SELECT CT.ORIGEN_ID PARADA_ID, CT.NUMSECUENCIA (SELECT CT.ORIGEN_ID PARADA_ID, CT.NUMSECUENCIA
@ -88,6 +104,7 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<field name="CVEPARADA" class="java.lang.String"/> <field name="CVEPARADA" class="java.lang.String"/>
<field name="ASIENTO" class="java.math.BigDecimal"/> <field name="ASIENTO" class="java.math.BigDecimal"/>
<field name="OCUPADO" class="java.math.BigDecimal"/> <field name="OCUPADO" class="java.math.BigDecimal"/>
<field name="OCUPADO_OPERACAO" class="java.math.BigDecimal"/>
<field name="NUMSECUENCIA" class="java.math.BigDecimal"/> <field name="NUMSECUENCIA" class="java.math.BigDecimal"/>
<sortField name="NUMSECUENCIA"/> <sortField name="NUMSECUENCIA"/>
<sortField name="OCUPADO"/> <sortField name="OCUPADO"/>
@ -95,38 +112,44 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<band splitType="Stretch"/> <band splitType="Stretch"/>
</background> </background>
<title> <title>
<band height="84" splitType="Stretch"> <band height="106" splitType="Stretch">
<rectangle> <rectangle>
<reportElement uuid="8f226d21-ccdb-41b4-a01d-fb0712f0b4d3" x="0" y="0" width="555" height="30"/> <reportElement uuid="8f226d21-ccdb-41b4-a01d-fb0712f0b4d3" x="0" y="0" width="802" height="30"/>
<graphicElement>
<pen lineWidth="0.75" lineStyle="Solid"/>
</graphicElement>
</rectangle> </rectangle>
<rectangle> <rectangle>
<reportElement uuid="b6aa9717-79c4-4f13-91df-9b0255003a16" x="0" y="40" width="555" height="39"/> <reportElement uuid="b6aa9717-79c4-4f13-91df-9b0255003a16" x="0" y="40" width="802" height="39"/>
<graphicElement>
<pen lineWidth="0.75" lineStyle="Solid"/>
</graphicElement>
</rectangle> </rectangle>
<textField> <textField>
<reportElement uuid="eb300dc6-1610-409d-8589-72b1539f86d3" x="77" y="0" width="478" height="15"/> <reportElement uuid="eb300dc6-1610-409d-8589-72b1539f86d3" x="77" y="0" width="478" height="15"/>
<textElement> <textElement>
<font size="11"/> <font size="9"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="a125ac5c-e00c-4ac5-bc03-317c514f1ad8" x="12" y="15" width="65" height="15"/> <reportElement uuid="a125ac5c-e00c-4ac5-bc03-317c514f1ad8" x="12" y="15" width="65" height="15"/>
<textElement markup="none"> <textElement markup="none">
<font size="11" isBold="true"/> <font size="9" isBold="true"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$R{cabecalho.servico}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{cabecalho.servico}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="88bb80e0-40a4-490c-914a-01a41178168b" x="244" y="15" width="65" height="15"/> <reportElement uuid="88bb80e0-40a4-490c-914a-01a41178168b" x="244" y="15" width="65" height="15"/>
<textElement markup="none"> <textElement markup="none">
<font size="11" isBold="true"/> <font size="9" isBold="true"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$R{cabecalho.data}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{cabecalho.data}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="a3d3c093-a9f4-4b32-823f-b4f548e46c2f" x="77" y="15" width="167" height="15"/> <reportElement uuid="a3d3c093-a9f4-4b32-823f-b4f548e46c2f" x="77" y="15" width="167" height="15"/>
<textElement> <textElement>
<font size="11"/> <font size="9"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$P{CORRIDA_ID}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{CORRIDA_ID}]]></textFieldExpression>
</textField> </textField>
@ -145,14 +168,14 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<textFieldExpression><![CDATA[$R{sumario.arrecadadoKm}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{sumario.arrecadadoKm}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="a0ec9db5-a7be-4407-b257-e49dd7fe6811" x="197" y="40" width="130" height="11"/> <reportElement uuid="a0ec9db5-a7be-4407-b257-e49dd7fe6811" x="255" y="40" width="130" height="11"/>
<textElement markup="none"> <textElement markup="none">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$R{sumario.ocupacao}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{sumario.ocupacao}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="0325af45-b23b-45ba-a8c6-dea75a36bb75" x="197" y="51" width="130" height="11"/> <reportElement uuid="0325af45-b23b-45ba-a8c6-dea75a36bb75" x="255" y="51" width="130" height="11"/>
<textElement markup="none"> <textElement markup="none">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
@ -166,24 +189,24 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<textFieldExpression><![CDATA[$R{sumario.nominalKm}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{sumario.nominalKm}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="fcaa51c2-2057-4aa4-bb84-adae3ef5c34e" x="197" y="63" width="130" height="11"/> <reportElement uuid="fcaa51c2-2057-4aa4-bb84-adae3ef5c34e" x="255" y="63" width="130" height="11"/>
<textElement markup="none"> <textElement markup="none">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$R{sumario.ocupacaoSemArrecadacao}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{sumario.ocupacaoSemArrecadacao}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="5cc7b439-0a60-4581-a67c-83519a4fd977" x="382" y="40" width="78" height="11"/> <reportElement uuid="5cc7b439-0a60-4581-a67c-83519a4fd977" x="542" y="40" width="78" height="11"/>
<textElement markup="none"> <textElement markup="none">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$R{sumario.totalNominal}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{sumario.totalNominal}]]></textFieldExpression>
</textField> </textField>
<line> <line>
<reportElement uuid="5b56b7a4-1abd-43cc-8071-e949d5575a45" x="185" y="40" width="1" height="39" forecolor="#CCCCCC"/> <reportElement uuid="5b56b7a4-1abd-43cc-8071-e949d5575a45" x="243" y="40" width="1" height="39" forecolor="#CCCCCC"/>
</line> </line>
<line> <line>
<reportElement uuid="98b93926-7900-4445-bbe6-024e456fd45e" x="370" y="40" width="1" height="39" forecolor="#CCCCCC"/> <reportElement uuid="98b93926-7900-4445-bbe6-024e456fd45e" x="530" y="40" width="1" height="39" forecolor="#CCCCCC"/>
</line> </line>
<textField> <textField>
<reportElement uuid="bdfd7f9e-e50e-4a8b-bba4-2fc8a909f38b" x="90" y="63" width="85" height="11"/> <reportElement uuid="bdfd7f9e-e50e-4a8b-bba4-2fc8a909f38b" x="90" y="63" width="85" height="11"/>
@ -207,28 +230,28 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<textFieldExpression><![CDATA[$P{P_ARRECADO_KM}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{P_ARRECADO_KM}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="6b68d2b4-0fa0-41a4-bdf5-0eaccb7d1f59" x="327" y="40" width="33" height="11"/> <reportElement uuid="6b68d2b4-0fa0-41a4-bdf5-0eaccb7d1f59" x="385" y="40" width="33" height="11"/>
<textElement textAlignment="Right"> <textElement textAlignment="Right">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$P{P_OCUPACAO}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{P_OCUPACAO}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="66317ebd-e503-420c-8886-8385b782770d" x="327" y="51" width="33" height="11"/> <reportElement uuid="66317ebd-e503-420c-8886-8385b782770d" x="385" y="51" width="33" height="11"/>
<textElement textAlignment="Right"> <textElement textAlignment="Right">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$P{P_OCUPACAO_ARRECADACAO}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{P_OCUPACAO_ARRECADACAO}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="a6ff7221-60b5-4d08-b7e8-7b10db0b97a6" x="327" y="63" width="33" height="11"/> <reportElement uuid="a6ff7221-60b5-4d08-b7e8-7b10db0b97a6" x="385" y="63" width="33" height="11"/>
<textElement textAlignment="Right"> <textElement textAlignment="Right">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$P{P_OCUPACAO_S_ARRECADACAO}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{P_OCUPACAO_S_ARRECADACAO}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="9eebfdd7-504b-4e98-8893-63bdb8c02b54" x="468" y="40" width="74" height="11"/> <reportElement uuid="9eebfdd7-504b-4e98-8893-63bdb8c02b54" x="628" y="40" width="74" height="11"/>
<textElement textAlignment="Right"> <textElement textAlignment="Right">
<font size="8"/> <font size="8"/>
</textElement> </textElement>
@ -236,23 +259,63 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
</textField> </textField>
<textField> <textField>
<reportElement uuid="0eccc14c-3288-43e8-8731-7c876e4d659e" x="309" y="15" width="100" height="15"/> <reportElement uuid="0eccc14c-3288-43e8-8731-7c876e4d659e" x="309" y="15" width="100" height="15"/>
<textElement/> <textElement>
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$P{DATA}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{DATA}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement uuid="11a895de-bf79-45dc-8d47-ea6ef8bf562c" x="12" y="0" width="65" height="15"/> <reportElement uuid="11a895de-bf79-45dc-8d47-ea6ef8bf562c" x="12" y="0" width="65" height="15"/>
<textElement> <textElement>
<font size="11" isBold="true"/> <font size="9" isBold="true"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$R{cabecalho.relatorio}]]></textFieldExpression> <textFieldExpression><![CDATA[$R{cabecalho.relatorio}]]></textFieldExpression>
</textField> </textField>
<staticText>
<reportElement uuid="3a123294-f53f-40c2-b412-ff71cb7f2d98" style="Crosstab Data Text" x="147" y="89" width="18" height="8"/>
<textElement>
<font size="6" isBold="true"/>
</textElement>
<text><![CDATA[O]]></text>
</staticText>
<staticText>
<reportElement uuid="756fd1c7-16bc-4f9a-8e98-c31b46cc48b6" style="Crosstab Data Text" x="269" y="89" width="18" height="8" backcolor="#FFFFFF"/>
<textElement>
<font size="6" isBold="true"/>
</textElement>
<text><![CDATA[E]]></text>
</staticText>
<textField>
<reportElement uuid="c2ff3a87-55cb-407b-a791-6d3ba28bab24" x="49" y="89" width="76" height="9"/>
<textElement markup="none">
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$R{legenda.ocupacaoArrecadacao}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="ed96b163-866d-4f9c-8955-38eee360f49e" x="165" y="89" width="76" height="8"/>
<textElement markup="none">
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$R{legenda.ocupacaoOperacional}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="1eb3ad3e-e20c-4852-892c-dff3ecf5da3f" x="287" y="89" width="76" height="8"/>
<textElement markup="none">
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$R{legenda.poltronaExclusiva}]]></textFieldExpression>
</textField>
<rectangle radius="10">
<reportElement uuid="312d6433-b0ba-4707-b371-1fbdf1140877" style="Crosstab Data Text" x="25" y="90" width="20" height="8" forecolor="#CCCCCC" backcolor="#CCCCFF"/>
</rectangle>
</band> </band>
</title> </title>
<summary> <summary>
<band height="47"> <band height="47">
<crosstab> <crosstab>
<reportElement uuid="eff55ca1-3935-4726-82a1-4a15e4518714" x="0" y="0" width="555" height="47"/> <reportElement uuid="eff55ca1-3935-4726-82a1-4a15e4518714" x="0" y="0" width="555" height="47"/>
<rowGroup name="ASIENTO" width="70"> <rowGroup name="ASIENTO" width="16">
<bucket class="java.math.BigDecimal"> <bucket class="java.math.BigDecimal">
<bucketExpression><![CDATA[$F{ASIENTO}]]></bucketExpression> <bucketExpression><![CDATA[$F{ASIENTO}]]></bucketExpression>
</bucket> </bucket>
@ -262,8 +325,10 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<textField> <textField>
<reportElement uuid="1d4e483e-bf24-4da5-ab8c-62bf83e6c1bb" style="Crosstab Data Text" x="0" y="0" width="70" height="15"/> <reportElement uuid="1d4e483e-bf24-4da5-ab8c-62bf83e6c1bb" style="Crosstab Data Text" x="0" y="0" width="15" height="8"/>
<textElement/> <textElement>
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$V{ASIENTO}]]></textFieldExpression> <textFieldExpression><![CDATA[$V{ASIENTO}]]></textFieldExpression>
</textField> </textField>
</cellContents> </cellContents>
@ -287,7 +352,7 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<cellContents/> <cellContents/>
</crosstabTotalColumnHeader> </crosstabTotalColumnHeader>
</columnGroup> </columnGroup>
<columnGroup name="CVEPARADA" height="30"> <columnGroup name="CVEPARADA" height="10">
<bucket class="java.lang.String"> <bucket class="java.lang.String">
<bucketExpression><![CDATA[$F{CVEPARADA}]]></bucketExpression> <bucketExpression><![CDATA[$F{CVEPARADA}]]></bucketExpression>
</bucket> </bucket>
@ -297,8 +362,10 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<textField> <textField>
<reportElement uuid="92b133ad-3903-4c0c-8aeb-593d907cac98" style="Crosstab Data Text" x="0" y="0" width="50" height="30"/> <reportElement uuid="92b133ad-3903-4c0c-8aeb-593d907cac98" style="Crosstab Data Text" x="0" y="0" width="20" height="10"/>
<textElement/> <textElement>
<font size="7"/>
</textElement>
<textFieldExpression><![CDATA[$V{CVEPARADA}]]></textFieldExpression> <textFieldExpression><![CDATA[$V{CVEPARADA}]]></textFieldExpression>
</textField> </textField>
</cellContents> </cellContents>
@ -310,16 +377,37 @@ ORDER BY VT.NUMSECUENCIA, TO_NUMBER(DD.ASIENTO)]]>
<measure name="OCUPADOMeasure" class="java.math.BigDecimal" calculation="Lowest"> <measure name="OCUPADOMeasure" class="java.math.BigDecimal" calculation="Lowest">
<measureExpression><![CDATA[$F{OCUPADO}]]></measureExpression> <measureExpression><![CDATA[$F{OCUPADO}]]></measureExpression>
</measure> </measure>
<crosstabCell width="50" height="15"> <measure name="OCUPADO_OPERACAOMeasure" class="java.lang.Number" calculation="Lowest">
<measureExpression><![CDATA[$F{OCUPADO_OPERACAO}]]></measureExpression>
</measure>
<crosstabCell width="20" height="8">
<cellContents> <cellContents>
<box> <box>
<pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/> <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<rectangle radius="10"> <rectangle radius="10">
<reportElement uuid="bc96586e-75d2-4c8a-9225-f63fe33165d0" style="Crosstab Data Text" x="0" y="0" width="50" height="15" forecolor="#CCCCCC" backcolor="#CCCCFF"> <reportElement uuid="bc96586e-75d2-4c8a-9225-f63fe33165d0" style="Crosstab Data Text" x="0" y="0" width="20" height="8" forecolor="#CCCCCC" backcolor="#CCCCFF">
<printWhenExpression><![CDATA[$V{OCUPADOMeasure}.intValue() == 1]]></printWhenExpression> <printWhenExpression><![CDATA[$V{OCUPADOMeasure}.intValue() == 1]]></printWhenExpression>
</reportElement> </reportElement>
</rectangle> </rectangle>
<staticText>
<reportElement uuid="8fcc35fd-62a3-4480-bc4e-467eb3668653" style="Crosstab Data Text" x="0" y="0" width="20" height="8">
<printWhenExpression><![CDATA[$V{OCUPADO_OPERACAOMeasure}.intValue() == 2]]></printWhenExpression>
</reportElement>
<textElement>
<font size="6" isBold="true"/>
</textElement>
<text><![CDATA[O]]></text>
</staticText>
<staticText>
<reportElement uuid="55cf6871-62ff-4e1f-867f-8e22dbfdc305" style="Crosstab Data Text" x="0" y="0" width="20" height="8">
<printWhenExpression><![CDATA[$V{OCUPADO_OPERACAOMeasure}.intValue() == 1]]></printWhenExpression>
</reportElement>
<textElement>
<font size="6" isBold="true"/>
</textElement>
<text><![CDATA[E]]></text>
</staticText>
</cellContents> </cellContents>
</crosstabCell> </crosstabCell>
<crosstabCell height="25" rowTotalGroup="ASIENTO"> <crosstabCell height="25" rowTotalGroup="ASIENTO">

View File

@ -35,7 +35,6 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCorrida;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCorridaAproveitamento; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCorridaAproveitamento;
/** /**