From aeca7a881260cf4fc9f9f4a0a8e68e6d8684f308 Mon Sep 17 00:00:00 2001 From: Hector Cortez Date: Thu, 7 Mar 2013 11:56:35 -0400 Subject: [PATCH 1/3] t push origin BUG-10946BUG 10946 Despues de ingresar mas de 7 case notes despliega error SOLVED - Cuando se agrega mas de 7 case notes seguidos despliega un mensaje de error, en el mismo se presiona "Ok", pero despues de unos segundos vuelve a aprecer el mismo mensaje de error. Es necesario cerrar la ventana del Case Note para seguir ingresando mas notas al caso y ademas poder ver todas las notas ingresadas. - Disabled new notes when sent a new mail. --- workflow/engine/templates/app/main.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/workflow/engine/templates/app/main.js b/workflow/engine/templates/app/main.js index a546db099..6ff3f006e 100644 --- a/workflow/engine/templates/app/main.js +++ b/workflow/engine/templates/app/main.js @@ -331,6 +331,9 @@ function sendNote() Ext.getCmp('caseNoteText').focus(); Ext.getCmp('caseNoteText').reset(); + Ext.getCmp('caseNoteText').setDisabled(true); + Ext.getCmp('sendBtn').setDisabled(true); + Ext.getCmp('addCancelBtn').setDisabled(true); statusBarMessage( _('ID_CASES_NOTE_POSTING'), true); Ext.Ajax.request({ url : '../appProxy/postNote' , @@ -342,10 +345,16 @@ function sendNote() success: function ( result, request ) { var data = Ext.util.JSON.decode(result.responseText); if(data.success=="success"){ + Ext.getCmp('caseNoteText').setDisabled(false); + Ext.getCmp('sendBtn').setDisabled(false); + Ext.getCmp('addCancelBtn').setDisabled(false); statusBarMessage( _('ID_CASES_NOTE_POST_SUCCESS'), false,true); storeNotes.load(); } - else{ + else { + Ext.getCmp('caseNoteText').setDisabled(false); + Ext.getCmp('sendBtn').setDisabled(false); + Ext.getCmp('addCancelBtn').setDisabled(false); statusBarMessage( _('ID_CASES_NOTE_POST_ERROR'), false,false); Ext.MessageBox.alert(_('ID_CASES_NOTE_POST_ERROR'), data.message); From 2d0fff6c4d4325bd1efd026b9ecfe7513d3c1b7f Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Thu, 7 Mar 2013 15:15:54 -0400 Subject: [PATCH 2/3] Improvement in the PM function "setCaseTrackerCode" --- workflow/engine/classes/class.pmFunctions.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index ba781ed51..2a93278fd 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -2230,6 +2230,14 @@ function setCaseTrackerCode ($sApplicationUID, $sCode, $sPIN = '') $aFields['APP_PIN'] = md5( $sPIN ); } $oCase->updateCase( $sApplicationUID, $aFields ); + if (isset($_SESSION['APPLICATION'])) { + if ($sApplicationUID == $_SESSION['APPLICATION']) { + global $oPMScript; + if (isset($oPMScript->aFields) && is_array($oPMScript->aFields)) { + $oPMScript->aFields['PIN'] = $aFields['APP_DATA']['PIN']; + } + } + } return 1; } else { return 0; From cb075d58f132fbf7c3f2537f019349560a28aa4f Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Thu, 7 Mar 2013 17:04:41 -0400 Subject: [PATCH 3/3] BUG 10953 Al crear un segundo Report Table los campos desde la BD se modifican SOLVED - Al repoblar la tabla no se estaba considerando la validacion agregada cuando se actualiza el registro - Se agrego la validacion faltante al momento de popular toda la tabla --- .../engine/classes/model/AdditionalTables.php | 32 ++++++++++++++++++- workflow/engine/controllers/pmTablesProxy.php | 6 ++-- .../reportTables/reportTables_Ajax.php | 2 +- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/workflow/engine/classes/model/AdditionalTables.php b/workflow/engine/classes/model/AdditionalTables.php index c0999578c..ddb42a712 100755 --- a/workflow/engine/classes/model/AdditionalTables.php +++ b/workflow/engine/classes/model/AdditionalTables.php @@ -591,7 +591,7 @@ class AdditionalTables extends BaseAdditionalTables * @param string $sGrid * @return number */ - public function populateReportTable($tableName, $sConnection = 'rp', $type = 'NORMAL', $processUid = '', $gridKey = '') + public function populateReportTable($tableName, $sConnection = 'rp', $type = 'NORMAL', $processUid = '', $gridKey = '', $addTabUid = '') { require_once "classes/model/Application.php"; @@ -621,11 +621,41 @@ class AdditionalTables extends BaseAdditionalTables $rs = $stmt->executeQuery($deleteSql); // getting the case data $caseData = unserialize($row['APP_DATA']); + + $fieldTypes = array(); + + if ($addTabUid != '') { + require_once 'classes/model/Fields.php'; + $criteriaField = new Criteria('workflow'); + $criteriaField->add(FieldsPeer::ADD_TAB_UID, $addTabUid); + $datasetField = FieldsPeer::doSelectRS($criteriaField); + $datasetField->setFetchmode(ResultSet::FETCHMODE_ASSOC); + while ($datasetField->next()) { + $rowfield = $datasetField->getRow(); + switch ($rowfield['FLD_TYPE']) { + case 'FLOAT': + case 'DOUBLE': + case 'INTEGER': + $fieldTypes[] = array($rowfield['FLD_NAME']=>$rowfield['FLD_TYPE']); + break; + default: + break; + } + } + } // quick fix // map all empty values as NULL for Database foreach ($caseData as $dKey => $dValue) { if (!is_array($dValue)) { + foreach ($fieldTypes as $key => $fieldType) { + foreach ($fieldType as $name => $type) { + if (strtoupper($dKey) == $name) { + $caseData[$dKey] = validateType ($dValue, $type); + unset($name); + } + } + } // normal fields if (trim($dValue) === '') { $caseData[$dKey] = null; diff --git a/workflow/engine/controllers/pmTablesProxy.php b/workflow/engine/controllers/pmTablesProxy.php index cc70cbbbe..25707f3f3 100755 --- a/workflow/engine/controllers/pmTablesProxy.php +++ b/workflow/engine/controllers/pmTablesProxy.php @@ -317,7 +317,7 @@ class pmTablesProxy extends HttpProxyController if ($isReportTable && $alterTable) { // the table was create successfully but we're catching problems while populating table try { - $oAdditionalTables->populateReportTable( $data['REP_TAB_NAME'], $pmTable->getDataSource(), $data['REP_TAB_TYPE'], $data['PRO_UID'], $data['REP_TAB_GRID'] ); + $oAdditionalTables->populateReportTable( $data['REP_TAB_NAME'], $pmTable->getDataSource(), $data['REP_TAB_TYPE'], $data['PRO_UID'], $data['REP_TAB_GRID'], $addTabData['ADD_TAB_UID'] ); } catch (Exception $e) { $result->message = $result->msg = $e->getMessage(); } @@ -883,7 +883,7 @@ class pmTablesProxy extends HttpProxyController $table = $additionalTable->loadByName( $tableNameMap[$contentSchema['ADD_TAB_NAME']] ); if ($table['PRO_UID'] != '') { // is a report table, try populate it - $additionalTable->populateReportTable( $table['ADD_TAB_NAME'], pmTable::resolveDbSource( $table['DBS_UID'] ), $table['ADD_TAB_TYPE'], $table['PRO_UID'], $table['ADD_TAB_GRID'] ); + $additionalTable->populateReportTable( $table['ADD_TAB_NAME'], pmTable::resolveDbSource( $table['DBS_UID'] ), $table['ADD_TAB_TYPE'], $table['PRO_UID'], $table['ADD_TAB_GRID'], $table['ADD_TAB_UID'] ); } break; case '@DATA': @@ -1214,7 +1214,7 @@ class pmTablesProxy extends HttpProxyController $additionalTables = new AdditionalTables(); $table = $additionalTables->load( $httpData->id ); if ($table['PRO_UID'] != '') { - $additionalTables->populateReportTable( $table['ADD_TAB_NAME'], pmTable::resolveDbSource( $table['DBS_UID'] ), $table['ADD_TAB_TYPE'], $table['PRO_UID'], $table['ADD_TAB_GRID'] ); + $additionalTables->populateReportTable( $table['ADD_TAB_NAME'], pmTable::resolveDbSource( $table['DBS_UID'] ), $table['ADD_TAB_TYPE'], $table['PRO_UID'], $table['ADD_TAB_GRID'], $table['ADD_TAB_UID'] ); $result->message = 'generated for table ' . $table['ADD_TAB_NAME']; } diff --git a/workflow/engine/methods/reportTables/reportTables_Ajax.php b/workflow/engine/methods/reportTables/reportTables_Ajax.php index 540ea28ed..c9c4e8bb0 100755 --- a/workflow/engine/methods/reportTables/reportTables_Ajax.php +++ b/workflow/engine/methods/reportTables/reportTables_Ajax.php @@ -260,7 +260,7 @@ switch ($action) { $oAdditionalTables->createPropelClasses( $data['REP_TAB_NAME'], $repTabClassName, $fieldsList, $addTabUid ); - $oAdditionalTables->populateReportTable( $data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $data['REP_TAB_TYPE'], $fieldsList, $data['PRO_UID'], $data['REP_TAB_GRID'] ); + $oAdditionalTables->populateReportTable( $data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $data['REP_TAB_TYPE'], $fieldsList, $data['PRO_UID'], $data['REP_TAB_GRID'], $repTabData['ADD_TAB_UID'] ); $result->success = true; } catch (Exception $e) {