- Thu Jun 16, 2022 5:54 pm
#829986
Hi, I am having problems using this code inside a ProcessMaker trigger, since it contains Exit(); terminates the case, as it makes the whole php code "die".
Is there any way to replace that Exit(); to generate the document?
PS: I already tried to use Break, echo, var_dump, flush, but the only one that works is Exit.
Here is my code.
Thanks
@=grd_creacion_borrador = "";
@=grd_creacion_borrador = array();
$ConsultaBoton2 = @@CLAVE2;
$ConsultaBotonExcel = @@CLAVE1;
$filtro_acs = @@ddl_ac_genera_borrador_label;
$condicionFiltro = "";
$exportarExcel = @@Ddl_validacion_informe_correcto;
if ($ConsultaBoton2 == 1){
if ($filtro_acs == "TODOS"){
$condicionFiltro = "WHERE 1 = 1;";
}else{
$condicionFiltro = "WHERE A.CODIGO_PROYECTO = "."'".$filtro_acs."';";
}
$query = "SELECT
A.CODIGO_PROYECTO PROYECTO,
A.PAIS_ACS_LABEL PAIS,
IFNULL(B.TXT_DEFICIENCIA_GRD_SEGUIMIENTO,A.DEFICIENCIA) DEFICIENCIA,
IFNULL(CONCAT(B.TXT_REMEDIACION_GRD_SEGUIMIENTO, ' ', B.FECHA_SEGUIMIENTO_AUDITOR, ' ', B. DESCRIPCION_GRD_SEGUIMIENTO),A.PLAN_DE_REMEDIACION) PLAN_REMEDIACION,
B.TXT_AVANCE_ANT AVANCE_ANTERIOR,
B.DDL_AVANCE_GRD_SEGUIMIENTO_LABEL AVANCE,
B.DDL_ESTADO_GRD_SEGUIMIENTO_LABEL ESTADO
FROM PMT_TBL_GRID_CARGA_ACS A
LEFT JOIN
(SELECT A.*,B.FECHA_SEGUIMIENTO_AUDITOR
FROM PMT_TBL_GRID_ACS_AUDITOR A
INNER JOIN PMT_TBL_FECHAS_SEGUIMIENTO B ON B.APP_NUMBER = A.APP_NUMBER
WHERE A.APP_NUMBER IN (
SELECT MAX(APP_NUMBER) FROM PMT_TBL_GRID_ACS_AUDITOR
GROUP BY DDL_AUDITORIA
)
)B ON B.DDL_AUDITORIA = A.CODIGO_PROYECTO "
.$condicionFiltro;
$aUsers = executeQuery($query);
if (is_array($aUsers) and count($aUsers) > 0) {
for ($i = 1; $i <= count($aUsers); $i++) {
@=grd_creacion_borrador[$i] = array(
'PROYECTO_BORRADOR' => $aUsers[$i]['PROYECTO'],
'PAIS_BORRADOR' => $aUsers[$i]['PAIS'],
'DEFICIENCIA_BORRADOR' => $aUsers[$i]['DEFICIENCIA'],
'PLAN_REMEDIACION_BORRADOR' => $aUsers[$i]['PLAN_REMEDIACION'],
'AVANCE_ANTERIOR_BORRADOR' => $aUsers[$i]['AVANCE_ANTERIOR'],
'AVANCE_BORRADOR' => $aUsers[$i]['AVANCE'],
'ESTADO_BORRADOR' => $aUsers[$i]['ESTADO']
);
}
}
if ($exportarExcel == 1) {
function cleanData(&$str) //REMOVE BAD CHARACTERS FROM DATA
{
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
$filename = "ReporteACS" . date('Ymd') . ".xls";
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
$flag = false;
$data = @@grd_creacion_borrador;
$out = fopen("php://output", 'w');
foreach($data as $row)
{
if(!$flag) {
echo implode("\t", array_keys($row)) . "\n";
$flag = true;
}
array_walk($row, 'cleanData');
echo mb_convert_encoding(implode("\t", array_values($row)) . "\n",'UCS-2LE', 'UTF-8');
$result = mb_convert_encoding(implode("\t", array_values($row)) . "\n",'UCS-2LE', 'UTF-8');
}
exit; // this line is the one I want to avoid.
}
PMFRedirectToStep(@@APPLICATION, @%INDEX, 'DYNAFORM', '812950483629639035de292022920593');
}