sparqapi/api/application/helpers/getpdformdetails_helper.php
2018-11-30 10:48:49 +05:30

202 lines
5.2 KiB
PHP

<?php
class GETPDFORMDETAILS
{
/*
This function transform Pd Form Details as key value pairs
@param result_array which is passed from comtroller,
@param pd_id
@param pd_form_id
*/
public static function getPDFormDetailsStructured($result_array = array(),$pd_id,$pd_form_id)
{
$final_data = array();
$overall = array();
$pre_group = "";
$pre_sub_group = "";
$pre_iter = "";
$pre_sub_iter = "";
$t1 = array();
$t2 = array();
$group = array();
$sub_group = array();
/////For handling Rendal form Sub array//////
$pre_column_name = "name";
$z = 0;
$y = 0;
/////For handling Rendal form Sub array//////
/////For handling Asset form Commom Remark Filed//////
$asset_remark = array();
/////For handling Asset form Commom Remark Filed//////
foreach($result_array as $rkey => $result)
{
if($result['iteration'] != "" || $result['iteration'] != null)
{
if($result['iter_sub_column_name'] == "" || $result['iter_sub_column_name'] == null)
{
if($result['iter_column_name'] != $pre_group)// && $result['iteration'] != $pre_iter)
{
$t1 = array();
$group = array();
$t1 = array_merge($t1,array($result['column_name']=>$result['column_value']));
$group[$result['iter_column_name']][$result['iteration']] = $t1;
$pre_group = $result['iter_column_name'];
$pre_iter = $result['iteration'];
}
else
{
$t1 = array_merge($t1,array($result['column_name']=>$result['column_value']));
$group[$result['iter_column_name']][$result['iteration']] = $t1;
$pre_group = $result['iter_column_name'];
$pre_iter = $result['iteration'];
}
}
else// Handle child group
{
if($pd_form_id != 17)
{
if($result['iter_sub_column_name'] != $pre_sub_group || $result['iteration'] != $pre_sub_iter)
{
$t2 = array();
$t2 = array_merge($t2,array($result['column_name']=>$result['column_value']));
$sub_group[$result['iter_sub_column_name']][$result['iteration']] = $t2;
$pre_sub_group = $result['iter_sub_column_name'];
$pre_sub_iter = $result['iteration'];
}
else
{
$t2 = array_merge($t2,array($result['column_name']=>$result['column_value']));
$sub_group[$result['iter_sub_column_name']][$result['iteration']] = $t2;
$pre_sub_group = $result['iter_sub_column_name'];
$pre_sub_iter = $result['iteration'];
}
}
else// handle Rental form Sub group
{
if($result['column_name'] == $pre_column_name)
{
$t2 = array();
$z++;
$y++;
$t2 = array_merge($t2,array($result['column_name']=>$result['column_value']));
$sub_group[$result['iter_sub_column_name']][$result['iteration']][$z] = $t2;
}
else
{
$t2 = array_merge($t2,array($result['column_name']=>$result['column_value']));
$sub_group[$result['iter_sub_column_name']][$result['iteration']][$z] = $t2;
}
}
}
}
else// handle single key value
{
if($pd_form_id != 4)
{
$t = array($result['column_name']=>$result['column_value']);
$final_data = array_merge($final_data,$t);
}
else // asset form details commom remark field
{
$asset_remark = array($result['column_name']=>$result['column_value']);
}
}
$final_data = array_merge($final_data,$group);
}
// print_r($final_data);
// echo "\n";
//print_r($sub_group);
// Merge subgroup into main group for all forms except rendtal form (id = 17)
$i = 0;
if(count($sub_group) && $pd_form_id != 17 && $pd_form_id != 4)
{
foreach($sub_group as $key => $value)
{
foreach($value as $vkey =>$final_value)
{
$temp_array = array($key=>$final_value);
foreach($final_data as $fkey => $fdata)
{
$i++;
echo $fkey.'-'.$i.'-'.$vkey;
if($i == $vkey)
{
$final_data[$fkey][$vkey] = array_merge($final_data[$fkey][$vkey],$temp_array);
}
}
}
}
}
if($pd_form_id == 4)// to merge assest form commom remarks at end of final data.
{
if(array_key_exists('details',$sub_group))
{
foreach($sub_group['details'] as $k => $value)
{
// echo $k;
// print_r($value);
if(array_key_exists($k,$final_data['assets_details']))
{
$final_data['assets_details'][$k] = array_merge($final_data['assets_details'][$k],array('details' => $value));
}
}
}
$final_data = array_merge($final_data,$asset_remark);
}
//die();
if($pd_form_id == 17)//merge subgroup of rental verification form with parent group, diff scenario not like other forms
{
if(array_key_exists('rental_home',$final_data))
{
for($i = 1;$i<=count($final_data['rental_home']);$i++)
{
$final_data['rental_home'][$i]['details_tenants'] = $sub_group['details_tenants'][$i];
}
}
}
$result_array = $final_data;
return $result_array;
}
}
?>