Buenas tengo este controlador
<?php
class ConsultaEstadisticaController extends Controller
{
public $layout='//layouts/cuerpo';
public function actionIndex()
{
$this->render('index');
}
public static $ejecutar;
const CONSUL_FACTURA="SELECT
SUCURSAL, NU_SINIESTRO, NU_FACTURA, FE_OCURRENCIA
,(CASE POLIZA WHEN 1 THEN 'JUBILADOS' WHEN 2 THEN 'CLAUSULA' WHEN 3 THEN 'CONTRATO COLECTIVO' else 'DIRYCONF' end) TP_EMPL
,(CASE POLIZA WHEN 1 THEN 'TLCO' WHEN 2 THEN 'TLCO' WHEN 3 THEN 'TLCO' WHEN 4 THEN 'TLCO' WHEN 5 THEN 'MOVILNET' WHEN 6 THEN 'CAVEGUIAS' end) FILIAL
,CEDULA_TITULAR, CEDULA_BENEF, RAMO, POLIZA, BIEN
,COALESCE((SELECT CRPD_DATO
FROM GENERADOR.CRET_PRODUCTOS_DATOS
WHERE crpd_casu_cd_sucursal = SUCURSAL
AND crpd_carp_cd_ramo = ramo
AND crpd_capo_nu_poliza = poliza
AND crpd_cace_nu_certificado = CEDULA_TITULAR
AND crpd_cd_bien_aseg = bien
AND crpd_crcd_cd_dato = 990010),(SELECT CACN_CD_SEXO
FROM CARTERA.CART_CLIENTES
WHERE CACN_CD_NACIONALIDAD = NAC_BEN
AND CACN_NU_CEDULA_RIF = CEDULA_BENEF)) SEXO
/*
,COALESCE(CONVERSION.BUSCA_SEXO_CLIENTE(SUCURSAL, RAMO, POLIZA, CEDULA_TITULAR, BIEN),(SELECT CACN_CD_SEXO
FROM CART_CLIENTES
WHERE CACN_CD_NACIONALIDAD = NAC_BEN
AND CACN_NU_CEDULA_RIF = CEDULA_BENEF)) SEXO
*/
,(SELECT CASE CRPD_DATO WHEN '1' THEN 'TITULAR' WHEN '2' THEN 'CONYUGE' WHEN '3' THEN 'HIJO(A)' WHEN '4' THEN 'PADRE' WHEN '5' THEN 'MADRE' WHEN '6' THEN 'HIJO INCAPACITADO' END
FROM GENERADOR.CRET_PRODUCTOS_DATOS
WHERE crpd_casu_cd_sucursal = sucursal
AND crpd_carp_cd_ramo = ramo
AND crpd_capo_nu_poliza = poliza
AND crpd_cace_nu_certificado = CEDULA_TITULAR
AND crpd_cd_bien_aseg = bien
AND crpd_crcd_cd_dato = 140055) PARENTESCO
--,BUSCA_PARENTESCO(SUCURSAL, RAMO, POLIZA, CEDULA_TITULAR, BIEN) PARENTESCO
,(SELECT CRPD_DATO
FROM GENERADOR.CRET_PRODUCTOS_DATOS
WHERE crpd_casu_cd_sucursal = sucursal
AND crpd_carp_cd_ramo = ramo
AND crpd_capo_nu_poliza = poliza
AND crpd_cace_nu_certificado = CEDULA_TITULAR
AND crpd_cd_bien_aseg = bien
AND crpd_crcd_cd_dato = 990020) FECHA_NAC
/*, (SELECT CACN_FE_NACIMIENTO
FROM CARTERA.CART_CLIENTES
WHERE CACN_CD_NACIONALIDAD = NAC_BEN
AND CACN_NU_CEDULA_RIF = CEDULA_BENEF))*/
/*
,COALESCE(CONVERSION.BUSCA_FE_NAC_CLIENTE(SUCURSAL, RAMO, POLIZA, CEDULA_TITULAR, BIEN),(SELECT CACN_FE_NACIMIENTO
FROM CART_CLIENTES
WHERE CACN_CD_NACIONALIDAD = NAC_BEN
AND CACN_NU_CEDULA_RIF = CEDULA_BENEF)) FECHA_NAC
*/
,DIAG, CD_CONCEPTO,
(SELECT SICO_DE_CONCEPTO
FROM SINIESTROS.SINT_CONCEPTOS
WHERE SICO_CARP_CD_RAMO = RAMO
AND SICO_CD_CONCEPTO = CD_CONCEPTO) CONCEPTO
,MT_FACTURA MT_FACTURADO_CONCEPTO, mt_iva mt_iva_CONCEPTO, MT_FACTURADO_TOT, MT_PAGADO MT_PAGADO_FACTURA
--COUNT(NU_FACTURA)
FROM (
Select SISI_CASU_CD_SUCURSAL SUCURSAL,
SPFA_SISI_NU_SINIESTRO NU_SINIESTRO,
SPFA_NU_FACTURA NU_FACTURA,
SISI_FE_OCURRENCIA FE_OCURRENCIA,
SISI_CACN_CD_NACIONALIDAD NAC_BEN,
(SELECT SICE_CACE_CARP_CD_RAMO
FROM siniestros.SINT_CERTIFICADOS_SINIESTROS
WHERE SICE_SISI_CASU_CD_SUCURSAL = SISI_CASU_CD_SUCURSAL
AND SICE_SISI_NU_SINIESTRO = SISI_NU_SINIESTRO) RAMO,
(SELECT SICE_CACE_CAPO_NU_POLIZA
FROM siniestros.SINT_CERTIFICADOS_SINIESTROS
WHERE SICE_SISI_CASU_CD_SUCURSAL = SISI_CASU_CD_SUCURSAL
AND SICE_SISI_NU_SINIESTRO = SISI_NU_SINIESTRO) POLIZA,
(SELECT SICE_CACE_NU_CERTIFICADO
FROM siniestros.SINT_CERTIFICADOS_SINIESTROS
WHERE SICE_SISI_CASU_CD_SUCURSAL = SISI_CASU_CD_SUCURSAL
AND SICE_SISI_NU_SINIESTRO = SISI_NU_SINIESTRO) CEDULA_TITULAR,
(SELECT SICE_CD_BIEN_ASEG
FROM siniestros.SINT_CERTIFICADOS_SINIESTROS
WHERE SICE_SISI_CASU_CD_SUCURSAL = SISI_CASU_CD_SUCURSAL
AND SICE_SISI_NU_SINIESTRO = SISI_NU_SINIESTRO) BIEN,
SISI_CACN_NU_CEDULA_RIF CEDULA_BENEF,
(SELECT sgdi_cd_diagnostico ||'-'||sgdi_de_diagnostico
FROM SINIESTROS.sint_cie
WHERE sgdi_cd_diagnostico IN
(SELECT snds_dato
FROM SINIESTROS.sint_datos_siniestro
WHERE snds_stds_cd_sucursal = SPFA_SISI_CD_SUCURSAL
AND snds_stds_nu_siniestro = SPFA_SISI_NU_SINIESTRO
AND snds_crds_crcd_cd_dato = 141040
AND snds_consecutivo = 150
LIMIT 1)) diag,
--CONVERSION.BUSCA_DIAGNOSTICO(SISI_CASU_CD_SUCURSAL,SISI_NU_SINIESTRO) DIAG,
SIFA_SICO_CD_CONCEPTO CD_CONCEPTO,
SIFA_MT_FACTURADO MT_FACTURADO_TOT,
SIFA_MT_ORIGINAL_GASTO MT_FACTURA,
SIFA_MT_IVA mt_iva,
COALESCE((SELECT SILI_MT_PAGO_FINAL
FROM SINIESTROS.sint_LIQUIDACIONES
WHERE SILI_SISI_CASU_CD_SUCURSAL = SPFA_SISI_CD_SUCURSAL
AND SILI_SISI_NU_SINIESTRO = SPFA_SISI_NU_SINIESTRO
AND SILI_SPFA_NU_CONSECUTIVO = SPFA_NU_CONSECUTIVO
AND SILI_CD_ENVIO IS NOT NULL),0) MT_PAGADO
--COUNT(SPFA_NU_FACTURA)
from siniestros.SINT_PROVEEDOR_FACTURA
JOIN siniestros.SINT_CONCEPTOS_FACTURA
ON SIFA_SBFA_CD_SUCURSAL = SPFA_SISI_CD_SUCURSAL
AND SIFA_SBFA_NU_SINIESTRO = SPFA_SISI_NU_SINIESTRO
AND SIFA_SBFA_NU_CONSECUTIVO = SPFA_NU_CONSECUTIVO
join siniestros.SINT_SINIESTROS
on SPFA_SISI_CD_SUCURSAL = SISI_CASU_CD_SUCURSAL
and SPFA_SISI_NU_SINIESTRO = SISI_NU_SINIESTRO
where SPFA_FE_FACTURA BETWEEN :fecha_inicio AND :fecha_fin
) as interno WHERE POLIZA = :tipo_poliza;";
public function actionBuscar()
{
$consulta=$_POST["tipo_consulta"];
$fecha_ini=$_POST["fecha_inicio"];
$fecha_fin=$_POST["fecha_fin"];
$tipo_pol=$_POST["tipo_poliza"];
if($fecha_ini<=$fecha_fin){
$oDbConnection = Yii::app()->db; // Getting database connection (config/main.php has to set up database
if($consulta=1){
$oCommand = $oDbConnection->createCommand(self::CONSUL_FACTURA);
$oCommand->bindParam(':fecha_inicio', $fecha_ini, PDO::PARAM_STR);
$oCommand->bindParam(':fecha_fin', $fecha_fin, PDO::PARAM_STR);
$oCommand->bindParam(':tipo_poliza', $tipo_pol, PDO::PARAM_STR);
$ejecutar=$oCommand->queryAll(); // Run query and get all results in a CDbDataReader
elseif($consulta=2){
$oCommand = $oDbConnection->createCommand(self::CONSUL_FACTURA);
$oCommand->bindParam(':fecha_inicio', $fecha_ini, PDO::PARAM_STR);
$oCommand->bindParam(':fecha_fin', $fecha_fin, PDO::PARAM_STR);
$oCommand->bindParam(':tipo_poliza', $tipo_pol, PDO::PARAM_STR);
$ejecutar=$oCommand->queryAll(); // Run query and get all results in a CDbDataReader
}
else{
if($consulta=3){
$oCommand = $oDbConnection->createCommand(self::CONSUL_FACTURA);
$oCommand->bindParam(':fecha_inicio', $fecha_ini, PDO::PARAM_STR);
$oCommand->bindParam(':fecha_fin', $fecha_fin, PDO::PARAM_STR);
$oCommand->bindParam(':tipo_poliza', $tipo_pol, PDO::PARAM_STR);
$ejecutar=$oCommand->queryAll(); // Run query and get all results in a CDbDataReader
}
}
}else{
Yii::app()->user->setFlash('mensajeEstado',"La fecha inicio es mayor a la fecha final");
$this->renderPartial('//flashMsg');
Yii::app()->end();
}
Yii::app()->request->sendFile('/consulta.xls',
$this->renderPartial('excelfactura',array(
'ejecutar'=>$ejecutar
),true)
);
}
}
}
esta es la vista del exel
<?php if($ejecutar!=null){
$x=0;?>
<table border="1">
<tr>
<th></th>
<th>sucursal</th>
<th>Numero de Siniestros</th>
<th>Numero de Factura</th>
<th>Fecha de Ocurrencia</th>
<th>Tipo de Empleado</th>
<th>Filial</th>
<th>Cedula del Titular</th>
<th>Cedula del Beneficiario</th>
<th>Ramo</th>
<th>Poliza</th>
<th>Bien</th>
<th>Sexo</th>
<th>Parentesco</th>
<th>Fecha de Nacimiento</th>
<th>diag</th>
<th>cd_concepto</th>
<th>Concepto</th>
<th>Monto facturado por Concepto</th>
<th>Monto iva Concepto</th>
<th>Monto Facturado Total</th>
<th>Monto Pagado Factura</th>
</tr>
<?php foreach($ejecutar as $user){?>
<tr <?php echo ($x++)%2==0?"style='background-color:#CCC'":"";?>>
<td><?php echo $user['sucursal'];?></td>
<td><?php echo $user['nu_siniestro'];?></td>
<td><?php echo $user['nu_factura'];?></td>
<td><?php echo $user['fe_ocurrencia'];?></td>
<td><?php echo $user['tp_empl']?></td>
<td><?php echo $user['filial'];?></td>
<td><?php echo $user['cedula_titular'];?></td>
<td><?php echo $user['cedula_benef'];?></td>
<td><?php echo $user['ramo'];?></td>
<td><?php echo $user['poliza'];?></td>
<td><?php echo $user['bien']?></td>
<td><?php echo $user['sexo'];?></td>
<td><?php echo $user['parentesco'];?></td>
<td><?php echo $user['fecha_nac'];?></td>
<td><?php echo $user['diag'];?></td>
<td><?php echo $user['cd_concepto'];?></td>
<td><?php echo $user['concepto']?></td>
<td><?php echo $user['mt_facturado_concepto'];?></td>
<td><?php echo $user['mt_iva_concepto'];?></td>
<td><?php echo $user['mt_facturado_tot'];?></td>
<td><?php echo $user['mt_pagado_factura'];?></td>
</tr>
<?php }?>
</table>
<?php }?>
El problema es que cuando ejecuto el query, no me sale el archivo exel si no que me muestra los datos en la vista, como se soluciona ese problema, tengo dias buscando y no puedo.