Hola a todos estoy haciendo un reporte en html y necesito ejecutar dentro del mismo varias consultas y mostrarlas con su dataReader, para ello hice lo siguiente:
//Comprobante de operaciones
public function actionComprobante()
{
$this->render('Comprobante');
}
public function actionReporteComprobante()
{
$desde = date('Y-m-d',strtotime($_POST['fechainicio']));
$hasta = date('Y-m-d',strtotime($_POST['fechafin']));
$codUEB = $_POST['entidad'];
$Ent = "asad";
$model=$this->loadModel();
$sql='SELECT `entidades`.`NEnt` AS `Entidad` FROM `entidades` WHERE `CodUEB` = "'.$codUEB.'"';
$Ent = Yii::app()->db->createCommand($sql);
$dataReader = $Ent->queryAll();
foreach($dataReader as $row)
{
$Ent=$row['Entidad'];
}
//Consultas laboratorios
$sql1='SELECT
`entidades`.`NEnt` AS `Entidad`,
`nmcuen`.`Cuenta`,
`nmcuen`.`SubCuenta`,
`nmcuen`.`Analisis`,
`nmcuen`.`Subanalisis`,
`nmcuen`.`Naturaleza`,
`detallesfact`.`cantidad`,
`datossal`.`nfactura`,
`datossal`.`fecha`,
`detallesfact`.`Codprod`,
CASE when clientes.UPMin= 2 THEN productos.PreMin
when (clientes.UPMay= 2) THEN productos.PreMay else 0 end AS PrecioMN,
CASE when (`nmcuen`.`Cuenta` = 731 AND
`nmcuen`.`subcuenta` = 0100 AND
`nmcuen`.`Analisis` = 25059 AND
`nmcuen`.`Subanalisis` = 800305) THEN (CASE when (clientes.UPMay= 2) THEN (productos.PreMay)end)*(`detallesfact`.`cantidad`) else 0 end AS DEBE,
CASE when (`nmcuen`.`Cuenta` = 188 AND
`nmcuen`.`subcuenta` = 0140 AND
`nmcuen`.`Analisis` = 206) THEN (CASE when (clientes.UPMay= 2) THEN (productos.PreMay)end)*(`detallesfact`.`cantidad`) else 0 end AS HABER
FROM
`datossal`
INNER JOIN `detallesfact` ON (`datossal`.`id` = `detallesfact`.`Id_sal`)
INNER JOIN `tiposalida` ON (`datossal`.`Codsalida` = `tiposalida`.`Codsalida`)
INNER JOIN `productos` ON (`detallesfact`.`Codprod` = `productos`.`Codprod`)
INNER JOIN `clientes` ON (`datossal`.`CodCliente` = `clientes`.`CodCliente`)
INNER JOIN `entidades` ON (`datossal`.`CodUEB` = `entidades`.`CodUEB`),
`nmcuen`
WHERE
((`datossal`.`fecha`) Between "'.$desde.'" And "'.$hasta.'") AND
(`entidades`.`CodUEB` = "'.$codUEB.'") AND
((`nmcuen`.`Cuenta` = 731 AND
`nmcuen`.`subcuenta` = 0100 AND
`nmcuen`.`Analisis` = 25059 AND
`nmcuen`.`Subanalisis` = 800305) OR
(`nmcuen`.`Cuenta` = 188 AND
`nmcuen`.`subcuenta` = 0140 AND
`nmcuen`.`Analisis` = 206)) AND
`tiposalida`.`Codsalida` = 4
GROUP BY
datossal.nfactura,
nmcuen.Cuenta,
`detallesfact`.`Codprod`
ORDER BY
`nmcuen`.`Cuenta`,
`nmcuen`.`SubCuenta`,
`nmcuen`.`Analisis`,
`nmcuen`.`Subanalisis`';
$command = Yii::app()->db->createCommand($sql1);
$dataReader1 = $command->queryAll();
$html='<table style="width:100%" border=1 cellspacing=0 cellpadding=0>';
$html.='<th><div align="left">Cuenta</div></th>';
$html.='<th><div align="left">Sub-Cuenta</div></th>';
$html.='<th><div align="left">Analisis</div></th>';
$html.='<th><div align="left">Elemento</div></th>';
$html.='<th><div align="left">#Factura</div></th>';
$html.='<th><div align="left">DEBE</div></th>';
$html.='<th><div align="left">HABER</div></th>';
$html.='</tr>';
$totalDEBE=0;
$totalHABER=0;
foreach($dataReader1 as $row1){
$html.='<tr>';
$html.='<td><div align="left">'.$row1['Cuenta'].'</div></td>';
$html.='<td><div align="center">'.$row1['SubCuenta'].'</div></td>';
$html.='<td><div align="center">'.$row1['Analisis'].'</div></td>';
$html.='<td><div align="center">'.$row1['Subanalisis'].'</div></td>';
$html.='<td><div align="center">'.$row1['nfactura'].'</div></td>';
$html.='<td><div align="right">'.number_format($row1['DEBE'],2).'</div></td>';
$html.='<td><div align="right">'.number_format($row1['HABER'],2).'</div></td>';
$html.='</tr>';
$totalDEBE+=$row1['DEBE'];
$totalHABER+=$row1['HABER'];
}
$html.='<tr>';
$html.='<td><div align="left"><strong>TOTAL MUESTRAS LAB</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalDEBE,2).'</strong></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalHABER,2).'</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='</tr>';
$html.='</table><br/>';
//Consulta Mermas
$sql2='SELECT
`entidades`.`NEnt`,
`nmcuen`.`Cuenta`,
`nmcuen`.`SubCuenta`,
`nmcuen`.`Analisis`,
`nmcuen`.`Subanalisis`,
`detallesfact`.`cantidad`,
`datossal`.`nfactura`,
`datossal`.`fecha`,
`detallesfact`.`Codprod`,
`productos`.`PrCUC`,
`datossal`.`Codsalida`,
CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end AS PrecioMN,
`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end) AS Valor,
CASE when (`nmcuen`.`Cuenta` = 188) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS HABER,
CASE when (`nmcuen`.`Cuenta` = 819) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS DEBE
FROM
`datossal`
INNER JOIN `detallesfact` ON (`datossal`.`id` = `detallesfact`.`Id_sal`)
INNER JOIN `tiposalida` ON (`datossal`.`Codsalida` = `tiposalida`.`Codsalida`)
INNER JOIN `productos` ON (`detallesfact`.`Codprod` = `productos`.`Codprod`)
INNER JOIN `clientes` ON (`datossal`.`CodCliente` = `clientes`.`CodCliente`)
INNER JOIN `entidades` ON (`datossal`.`CodUEB` = `entidades`.`CodUEB`)
INNER JOIN `nmcuen` ON (`nmcuen`.`CodUEB` = `entidades`.`CodUEB`)
AND (`datossal`.`CodUEB` = `nmcuen`.`CodUEB`)
WHERE
((`datossal`.`fecha`) Between "'.$desde.'" And "'.$hasta.'") AND
(`entidades`.`CodUEB` = "'.$codUEB.'") AND
(`nmcuen`.`Cuenta` = 819 AND
`nmcuen`.`SubCuenta` = 0100 OR
`nmcuen`.`Cuenta` = 188 AND
`nmcuen`.`SubCuenta` = 0140) AND
`datossal`.`Codsalida` = 8
ORDER BY
`nmcuen`.`Cuenta`';
$command = Yii::app()->db->createCommand($sql2);
$dataReader2= $command->queryAll();
$html='<table style="width:100%" border=1 cellspacing=0 cellpadding=0>';
$html.='<th><div align="left">Cuenta</div></th>';
$html.='<th><div align="left">Sub-Cuenta</div></th>';
$html.='<th><div align="left">Analisis</div></th>';
$html.='<th><div align="left">Elemento</div></th>';
$html.='<th><div align="left">#Factura</div></th>';
$html.='<th><div align="left">DEBE</div></th>';
$html.='<th><div align="left">HABER</div></th>';
$html.='</tr>';
$totalDEBE=0;
$totalHABER=0;
foreach($dataReader2 as $row2){
$html.='<tr>';
$html.='<td><div align="left">'.$row2['Cuenta'].'</div></td>';
$html.='<td><div align="center">'.$row2['SubCuenta'].'</div></td>';
$html.='<td><div align="center">'.$row2['Analisis'].'</div></td>';
$html.='<td><div align="center">'.$row2['Subanalisis'].'</div></td>';
$html.='<td><div align="center">'.$row2['nfactura'].'</div></td>';
$html.='<td><div align="right">'.number_format($row2['DEBE'],2).'</div></td>';
$html.='<td><div align="right">'.number_format($row2['HABER'],2).'</div></td>';
$html.='</tr>';
$totalDEBE+=$row2['DEBE'];
$totalHABER+=$row2['HABER'];
}
$html.='<tr>';
$html.='<td><div align="left"><strong>TOTAL MERMAS</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalDEBE,2).'</strong></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalHABER,2).'</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='</tr>';
$html.='</table><br/>';
//Costo de la produccion vendida
//Consulta
$sql3='SELECT DISTINCT
`entidades`.`NEnt`,
`nmcuen`.`Cuenta`,
`nmcuen`.`SubCuenta`,
`nmcuen`.`Analisis`,
`nmcuen`.`Subanalisis`,
`detallesfact`.`cantidad`,
`datossal`.`nfactura`,
`datossal`.`fecha`,
`detallesfact`.`Codprod`,
`productos`.`PrCUC`,
`datossal`.`Codsalida`,
`productos`.`PrCosto`,
CASE when (`nmcuen`.`Cuenta` = 188) THEN `detallesfact`.`cantidad`* productos.PrCosto END AS HABER,
CASE when (`nmcuen`.`Cuenta` = 810) THEN `detallesfact`.`cantidad`* productos.PrCosto END AS DEBE
FROM
`datossal`
INNER JOIN `detallesfact` ON (`datossal`.`id` = `detallesfact`.`Id_sal`)
INNER JOIN `tiposalida` ON (`datossal`.`Codsalida` = `tiposalida`.`Codsalida`)
INNER JOIN `productos` ON (`detallesfact`.`Codprod` = `productos`.`Codprod`)
INNER JOIN `clientes` ON (`datossal`.`CodCliente` = `clientes`.`CodCliente`)
INNER JOIN `entidades` ON (`datossal`.`CodUEB` = `entidades`.`CodUEB`)
INNER JOIN `nmcuen` ON (`nmcuen`.`CodUEB` = `entidades`.`CodUEB`)
AND (`datossal`.`CodUEB` = `nmcuen`.`CodUEB`)
WHERE
((`datossal`.`fecha`) Between "'.$desde.'" And "'.$hasta.'") AND
(`entidades`.`CodUEB` = "'.$codUEB.'") AND
(`nmcuen`.`Cuenta` = 810 AND
`nmcuen`.`SubCuenta` = 0100 OR
`nmcuen`.`Cuenta` = 188 AND
`nmcuen`.`SubCuenta` = 0130) AND
(`datossal`.`Codsalida` = 1 OR
`datossal`.`Codsalida` = 2)
ORDER BY
`nmcuen`.`Cuenta`';
$command = Yii::app()->db->createCommand($sql3);
$dataReader3 = $command->queryAll();
$html='<table style="width:100%" border=1 cellspacing=0 cellpadding=0>';
$html.='<th><div align="left">Cuenta</div></th>';
$html.='<th><div align="left">Sub-Cuenta</div></th>';
$html.='<th><div align="left">Analisis</div></th>';
$html.='<th><div align="left">Elemento</div></th>';
$html.='<th><div align="left">#Factura</div></th>';
$html.='<th><div align="left">DEBE</div></th>';
$html.='<th><div align="left">HABER</div></th>';
$html.='</tr>';
$totalDEBE=0;
$totalHABER=0;
foreach($dataReader3 as $row3){
$html.='<tr>';
$html.='<td><div align="left">'.$row3['Cuenta'].'</div></td>';
$html.='<td><div align="center">'.$row3['SubCuenta'].'</div></td>';
$html.='<td><div align="center">'.$row3['Analisis'].'</div></td>';
$html.='<td><div align="center">'.$row3['Subanalisis'].'</div></td>';
$html.='<td><div align="center">'.$row3['nfactura'].'</div></td>';
$html.='<td><div align="right">'.number_format($row3['DEBE'],2).'</div></td>';
$html.='<td><div align="right">'.number_format($row3['HABER'],2).'</div></td>';
$html.='</tr>';
$totalDEBE+=$row3['DEBE'];
$totalHABER+=$row3['HABER'];
}
$html.='<tr>';
$html.='<td><div align="left"><strong>TOTAL COSTO DE LA PRODUCCION</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalDEBE,2).'</strong></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalHABER,2).'</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='</tr>';
$html.='</table><br/>';
//Transferencias enviadas
//Consulta
$sql4='SELECT DISTINCT
`entidades`.`NEnt`,
`nmcuen`.`Cuenta`,
`nmcuen`.`SubCuenta`,
`nmcuen`.`Analisis`,
`nmcuen`.`Subanalisis`,
`detallesfact`.`cantidad`,
`datossal`.`nfactura`,
`datossal`.`fecha`,
`detallesfact`.`Codprod`,
`productos`.`PrCUC`,
`datossal`.`Codsalida`,
CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end AS PrecioMN,
`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end) AS Valor,
CASE when (`nmcuen`.`Cuenta` = 188) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS HABER,
CASE when (`nmcuen`.`Cuenta` = 696) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS DEBE
FROM
`datossal`
INNER JOIN `detallesfact` ON (`datossal`.`id` = `detallesfact`.`Id_sal`)
INNER JOIN `tiposalida` ON (`datossal`.`Codsalida` = `tiposalida`.`Codsalida`)
INNER JOIN `productos` ON (`detallesfact`.`Codprod` = `productos`.`Codprod`)
INNER JOIN `clientes` ON (`datossal`.`CodCliente` = `clientes`.`CodCliente`)
INNER JOIN `entidades` ON (`datossal`.`CodUEB` = `entidades`.`CodUEB`)
INNER JOIN `nmcuen` ON (`nmcuen`.`CodUEB` = `entidades`.`CodUEB`)
AND (`datossal`.`CodUEB` = `nmcuen`.`CodUEB`)
WHERE
((`datossal`.`fecha`) Between "'.$desde.'" And "'.$hasta.'") AND
(`entidades`.`CodUEB` = "'.$codUEB.'") AND
(`nmcuen`.`Cuenta` = 696 AND
`nmcuen`.`SubCuenta` = 0100 AND
`nmcuen`.`Analisis` = 0030 OR
`nmcuen`.`Cuenta` = 188 AND
`nmcuen`.`SubCuenta` = 0140) AND
(`datossal`.`Codsalida` = 3 or `datossal`.`Codsalida` = 5)
ORDER BY
`nmcuen`.`Cuenta`';
$command = Yii::app()->db->createCommand($sql4);
$dataReader4 = $command->queryAll();
$html='<table style="width:100%" border=1 cellspacing=0 cellpadding=0>';
$html.='<th><div align="left">Cuenta</div></th>';
$html.='<th><div align="left">Sub-Cuenta</div></th>';
$html.='<th><div align="left">Analisis</div></th>';
$html.='<th><div align="left">Elemento</div></th>';
$html.='<th><div align="left">#Factura</div></th>';
$html.='<th><div align="left">DEBE</div></th>';
$html.='<th><div align="left">HABER</div></th>';
$html.='</tr>';
$totalDEBE=0;
$totalHABER=0;
foreach($dataReader4 as $row4){
$html.='<tr>';
$html.='<td><div align="left">'.$row4['Cuenta'].'</div></td>';
$html.='<td><div align="center">'.$row4['SubCuenta'].'</div></td>';
$html.='<td><div align="center">'.$row4['Analisis'].'</div></td>';
$html.='<td><div align="center">'.$row4['Subanalisis'].'</div></td>';
$html.='<td><div align="center">'.$row4['nfactura'].'</div></td>';
$html.='<td><div align="right">'.number_format($row4['DEBE'],2).'</div></td>';
$html.='<td><div align="right">'.number_format($row4['HABER'],2).'</div></td>';
$html.='</tr>';
$totalDEBE+=$row4['DEBE'];
$totalHABER+=$row4['HABER'];
}
$html.='<tr>';
$html.='<td><div align="left"><strong>TOTAL TRANSFERENCIAS ENVIADAS</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalDEBE,2).'</strong></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalHABER,2).'</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='</tr>';
$html.='</table><br/>';
//Transferencias Recibidas
//Consulta
$sql5='SELECT DISTINCT
`entidades`.`NEnt` AS `EntidadEnvia`,
`nmcuen`.`Cuenta`,
`nmcuen`.`SubCuenta`,
`nmcuen`.`Analisis`,
`nmcuen`.`Subanalisis`,
`detallesfact`.`cantidad`,
`datossal`.`nfactura`,
`datossal`.`fecha`,
`detallesfact`.`Codprod`,
`productos`.`PrCUC`,
`datossal`.`Codsalida`,
`clientes`.`Descripcion` AS EntidadRec,
CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end AS PrecioMN,
`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end) AS Valor,
CASE when (`nmcuen`.`Cuenta` = 696) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS HABER,
CASE when (`nmcuen`.`Cuenta` = 188) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS DEBE
FROM
`datossal`
INNER JOIN `detallesfact` ON (`datossal`.`id` = `detallesfact`.`Id_sal`)
INNER JOIN `tiposalida` ON (`datossal`.`Codsalida` = `tiposalida`.`Codsalida`)
INNER JOIN `productos` ON (`detallesfact`.`Codprod` = `productos`.`Codprod`)
INNER JOIN `clientes` ON (`datossal`.`CodCliente` = `clientes`.`CodCliente`)
INNER JOIN `entidades` ON (`datossal`.`CodUEB` = `entidades`.`CodUEB`)
INNER JOIN `nmcuen` ON (`nmcuen`.`CodUEB` = `entidades`.`CodUEB`)
AND (`datossal`.`CodUEB` = `nmcuen`.`CodUEB`)
WHERE
((`datossal`.`fecha`) Between "'.$desde.'" And "'.$hasta.'") AND
(`entidades`.`CodUEB` = "'.$codUEB.'") AND
(`nmcuen`.`Cuenta` = 696 AND
`nmcuen`.`SubCuenta` = 0100 AND
`nmcuen`.`Analisis` = 0030 OR
`nmcuen`.`Cuenta` = 188 AND
`nmcuen`.`SubCuenta` = 0140) AND
(`datossal`.`Codsalida` = 3 or `datossal`.`Codsalida` = 5)
ORDER BY
`nmcuen`.`Cuenta`';
$command = Yii::app()->db->createCommand($sql5);
$dataReader5 = $command->queryAll();
$html='<table style="width:100%" border=1 cellspacing=0 cellpadding=0>';
$html.='<th><div align="left">Cuenta</div></th>';
$html.='<th><div align="left">Sub-Cuenta</div></th>';
$html.='<th><div align="left">Analisis</div></th>';
$html.='<th><div align="left">Elemento</div></th>';
$html.='<th><div align="left">#Factura</div></th>';
$html.='<th><div align="left">DEBE</div></th>';
$html.='<th><div align="left">HABER</div></th>';
$html.='</tr>';
$totalDEBE=0;
$totalHABER=0;
foreach($dataReader5 as $row5){
$html.='<tr>';
$html.='<td><div align="left">'.$row5['Cuenta'].'</div></td>';
$html.='<td><div align="center">'.$row5['SubCuenta'].'</div></td>';
$html.='<td><div align="center">'.$row5['Analisis'].'</div></td>';
$html.='<td><div align="center">'.$row5['Subanalisis'].'</div></td>';
$html.='<td><div align="center">'.$row5['nfactura'].'</div></td>';
$html.='<td><div align="right">'.number_format($row5['DEBE'],2).'</div></td>';
$html.='<td><div align="right">'.number_format($row5['HABER'],2).'</div></td>';
$html.='</tr>';
$totalDEBE+=$row5['DEBE'];
$totalHABER+=$row5['HABER'];
}
$html.='<tr>';
$html.='<td><div align="left"><strong>TOTAL TRANSFERENCIAS RECIBIDAS</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalDEBE,2).'</strong></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalHABER,2).'</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='</tr>';
$html.='</table><br/>';
//Faltantes o decomiso
//Consulta
$sql6='SELECT DISTINCT
`entidades`.`NEnt`,
`nmcuen`.`Cuenta`,
`nmcuen`.`SubCuenta`,
`nmcuen`.`Analisis`,
`nmcuen`.`Subanalisis`,
`detallesfact`.`cantidad`,
`datossal`.`nfactura`,
`datossal`.`fecha`,
`detallesfact`.`Codprod`,
`productos`.`PrCUC`,
`datossal`.`Codsalida`,
`monedas`.`CodMon`,
CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end AS PrecioMN,
`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end) AS Valor,
CASE when (`nmcuen`.`Cuenta` = 188) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS HABER,
CASE when (`nmcuen`.`Cuenta` = 330) THEN (`detallesfact`.`cantidad`*(CASE when clientes.UPMin= 2 THEN productos.PreMin
when clientes.UPMay= 2 THEN productos.PreMay else 0 end)) end AS DEBE
FROM
`datossal`
INNER JOIN `detallesfact` ON (`datossal`.`id` = `detallesfact`.`Id_sal`)
INNER JOIN `tiposalida` ON (`datossal`.`Codsalida` = `tiposalida`.`Codsalida`)
INNER JOIN `productos` ON (`detallesfact`.`Codprod` = `productos`.`Codprod`)
INNER JOIN `clientes` ON (`datossal`.`CodCliente` = `clientes`.`CodCliente`)
INNER JOIN `entidades` ON (`datossal`.`CodUEB` = `entidades`.`CodUEB`)
INNER JOIN `nmcuen` ON (`nmcuen`.`CodUEB` = `entidades`.`CodUEB`)
AND (`datossal`.`CodUEB` = `nmcuen`.`CodUEB`)
INNER JOIN `monedas` ON (`datossal`.`CodMon` = `monedas`.`CodMon`)
WHERE
((`datossal`.`fecha`) Between "'.$desde.'" And "'.$hasta.'") AND
(`entidades`.`CodUEB` = "'.$codUEB.'") AND
(`nmcuen`.`Cuenta` = 330 AND
`nmcuen`.`SubCuenta` = 0050 OR
`nmcuen`.`Cuenta` = 188 AND
`nmcuen`.`SubCuenta` = 0140) AND
`datossal`.`Codsalida` = 6
ORDER BY
`nmcuen`.`Cuenta`';
$command = Yii::app()->db->createCommand($sql6);
$dataReader6 = $command->queryAll();
$html='<table style="width:100%" border=1 cellspacing=0 cellpadding=0>';
$html.='<th><div align="left">Cuenta</div></th>';
$html.='<th><div align="left">Sub-Cuenta</div></th>';
$html.='<th><div align="left">Analisis</div></th>';
$html.='<th><div align="left">Elemento</div></th>';
$html.='<th><div align="left">#Factura</div></th>';
$html.='<th><div align="left">DEBE</div></th>';
$html.='<th><div align="left">HABER</div></th>';
$html.='</tr>';
$totalDEBE=0;
$totalHABER=0;
foreach($dataReader6 as $row6){
$html.='<tr>';
$html.='<td><div align="left">'.$row6['Cuenta'].'</div></td>';
$html.='<td><div align="center">'.$row6['SubCuenta'].'</div></td>';
$html.='<td><div align="center">'.$row6['Analisis'].'</div></td>';
$html.='<td><div align="center">'.$row6['Subanalisis'].'</div></td>';
$html.='<td><div align="center">'.$row6['nfactura'].'</div></td>';
$html.='<td><div align="right">'.number_format($row6['DEBE'],2).'</div></td>';
$html.='<td><div align="right">'.number_format($row6['HABER'],2).'</div></td>';
$html.='</tr>';
$totalDEBE+=$row6['DEBE'];
$totalHABER+=$row6['HABER'];
}
$html.='<tr>';
$html.='<td><div align="left"><strong>TOTAL FALTANTES O DECOMISO</strong></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalDEBE,2).'</strong></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalHABER,2).'</strong></div></td>';
$html.='<td><div align="center"></div></td>';
//Totalizar todas las consultas
$html.='<tr>';
$html.='<th>TOTAL GENERAL</th>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="center"></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalDEBE,2).'</strong></div></td>';
$html.='<td><div align="right"><strong>'.number_format($totalHABER,2).'</strong></div></td>';
$html.='</tr>';
$html.='</table><br/>';
$temp=$html;
$html=$this->generarSuperior($desde.'',$hasta.'',$Ent.'',$codUEB.'','Comprobante Producción Terminada');
$html.=$temp;
$this->renderPartial('print', array('html'=>$html));
}
Necesito ver lo que tengo mal, ya que me debe mostrar en una tabla todas las consultas sql, desde sql1 hasta sql6 con sus respectivos dataReader mas o menos de la iguiente forma:
El primer sql sin numero es para el encabezado del informe donde escoje la Entidad,
despues debe mostrar todas las consultas mas o menos asi:
[size="3"]Cuenta Sub-Cuenta Análisis Elemento[/size] #[size="3"] Factura DEBE HABER[/size]
[size="3"]188 0140 201 2-3232 0.00 105.00[/size]
[size="3"]330 0050 100 2-3232 105.00 0.00[/size]
[size="3"]Total faltantes 105.00 105.00[/size]
[size="3"]Total General 105.00 105.00[/size]
Pero como ven solo me muestra la ultima consulta y el total general que es la suma de todas las consultas, las demas no las muestra, primero deberia mostrar las demas consultas y al final esa que aparece con el total general.