From 5ece254eae1b0e38035ba6416903e7b7a97b68cd Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Wed, 29 Jun 2016 11:56:34 -0400 Subject: [PATCH] HOR-1118 "0019378: Se elimina el query en los dashboards" SOLVED Issue: 0019378: Se elimina el query en los dashboards Cause: Al hacer update del registro, se setea nuevamente el campo DAS_INS_ADDITIONAL_PROPERTIES Solution: Al hacer update del registro, el campo DAS_INS_ADDITIONAL_PROPERTIES es actualizado con los nuevos valores seteados --- .../engine/classes/model/DashletInstance.php | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/workflow/engine/classes/model/DashletInstance.php b/workflow/engine/classes/model/DashletInstance.php index bc3f4f4b5..0244c966a 100644 --- a/workflow/engine/classes/model/DashletInstance.php +++ b/workflow/engine/classes/model/DashletInstance.php @@ -43,23 +43,37 @@ class DashletInstance extends BaseDashletInstance unset($data[$field]); } } - if (!empty($additionalFields)) { - $data['DAS_INS_ADDITIONAL_PROPERTIES'] = serialize($additionalFields); - } else { - $data['DAS_INS_ADDITIONAL_PROPERTIES'] = ''; - } + $connection = Propel::getConnection(DashletInstancePeer::DATABASE_NAME); + try { if (!isset($data['DAS_INS_UID'])) { $data['DAS_INS_UID'] = ''; } if ($data['DAS_INS_UID'] == '') { - $data['DAS_INS_UID'] = G::generateUniqueID(); - $data['DAS_INS_CREATE_DATE'] = date('Y-m-d H:i:s'); $dashletInstance = new DashletInstance(); + + $data['DAS_INS_UID'] = G::generateUniqueID(); + $data['DAS_INS_ADDITIONAL_PROPERTIES'] = (!empty($additionalFields))? serialize($additionalFields) : ''; + $data['DAS_INS_CREATE_DATE'] = date('Y-m-d H:i:s'); + $msg = 'CreateDashletInstance'; } else { $dashletInstance = DashletInstancePeer::retrieveByPK($data['DAS_INS_UID']); + + if (!empty($additionalFields)) { + $arrayAdditionalProperties = []; + + if ($dashletInstance->getDasInsAdditionalProperties() != '') { + $arrayAux = unserialize($dashletInstance->getDasInsAdditionalProperties()); + $arrayAdditionalProperties = (is_array($arrayAux))? $arrayAux : $arrayAdditionalProperties; + } + + $additionalFields = array_merge($arrayAdditionalProperties, $additionalFields); + + $data['DAS_INS_ADDITIONAL_PROPERTIES'] = serialize($additionalFields); + } + $msg = 'UpdateDashletInstance'; } $data['DAS_INS_UPDATE_DATE'] = date('Y-m-d H:i:s');