diff --git a/gulliver/js/dveditor/core/dveditor.js b/gulliver/js/dveditor/core/dveditor.js index 20a2770ab..03aeebace 100755 --- a/gulliver/js/dveditor/core/dveditor.js +++ b/gulliver/js/dveditor/core/dveditor.js @@ -1,129 +1,136 @@ -function DVEditor(where,body,oHiddenInput,height,mode) +function DVEditor(where,body,oHiddenInput,height,mode,editorId) { - var me=this; - var hiddenInput=oHiddenInput; - var iframe=$dce("iframe"); - //NOTE: className no funciona en FIREFOX - iframe.style.width="100%"; - iframe.style.height=height; - iframe.style.margin="0px"; - iframe.style.padding="0px"; - iframe.style.border="none"; - where.appendChild(iframe); - var head=document.childNodes[0].childNodes[0]; - var header=''; - if (iframe.contentWindow) - { - var doc=iframe.contentWindow.document; - } - else - { - var doc=iframe.contentDocument; - } - var _header=$dce("head");// head.cloneNode(true); - for(var i=0;i'+header+''+body+''); + doc.close(); + doc.designMode="on"; + if (mode=="edit") { + doc.contentEditable=true; + } else { + doc.contentEditable=false; + } + this.doc=doc; + + me.insertHTML = function (html) { - } - } - header=_header.innerHTML; - //alert(header); - doc.open(); - doc.write(''+header+''+body+''); - doc.close(); - doc.designMode="on"; - if(mode=="edit"){ - doc.contentEditable=true; - }else{ - doc.contentEditable=false; - } - this.doc=doc; - me.insertHTML=function (html) - { - var cmd = 'inserthtml'; - var bool = false; - var value = html; - try + var cmd = 'inserthtml'; + var bool = false; + var value = html; + try { + doc.execCommand(cmd,bool,value); + } catch (e) { + } + return false; + }; + + me.command = function() { - doc.execCommand(cmd,bool,value); - } catch (e) { - } - return false; - }; - me.command=function() - { - var cmd = this.getAttribute('name'); - var bool = false; - var value = this.getAttribute('cmdValue') || null; - if (value == 'promptUser') - value = prompt( - (typeof(G_STRINGS[this.getAttribute('promptText')])!=='undefined')? - G_STRINGS[this.getAttribute('promptText')]: - this.getAttribute('promptText') - ); - try + var cmd = this.getAttribute('name'); + var bool = false; + var value = this.getAttribute('cmdValue') || null; + if (value == 'promptUser') { + value = prompt( + (typeof(G_STRINGS[this.getAttribute('promptText')])!=='undefined')? + G_STRINGS[this.getAttribute('promptText')]: + this.getAttribute('promptText') + ); + } + try { + if (editorId) { + if (window.ActiveXObject && cmd == 'hilitecolor') { + doc.selection.createRange().pasteHTML('' +doc.selection.createRange().text +''); + } else { + eval("window._editor" +editorId+".doc.execCommand(cmd,bool,value);"); + } + } else { + doc.execCommand(cmd,bool,value); + } + } catch (e) { + } + return false; + }; + + me.loadToolBar = function(uri) { - doc.execCommand(cmd,bool,value); - } catch (e) { - } - return false; - } - me.loadToolBar=function(uri) - { - var tb=WebResource(uri); - iframe.parentNode.insertBefore(tb,iframe); - me.setToolBar(tb); - } - me.setToolBar=function(toolbar) - { - var buttons=toolbar.getElementsByTagName('area'); - for(var b=0;bexecuteSQL ( $owner ); + $disable = ($owner->mode === 'view') ? 'disabled="disabled" ' : ' '; + $r = 1; + $result = array(); + foreach ( $values as $v ) { // foreach the grid row with selection + $i=1; + $html = ''; + if (! is_array ( $v )) { + $aV = explode ( '|', str_replace(" ","",$v)); + } else { + $aV = $v; + } + foreach ( $this->options as $optionName => $option ) { // foreach the options of checkbox group + $bChecked = in_array ( $i , $aV, true ) || in_array($optionName, $aV, true); + $html .= 'name . ']['. $r .']['. $this->name .'][]" '; + $html .= 'type="checkbox" value="' . $optionName . '" ' . ($bChecked ? 'checked ' : ' ') ; + $html .= $disable . '>' . $option . ''; + if(++$i==count($this->options)){ + $html .= ' ' . $this->renderHint(); + } + $html .= '
'; + } + $result[] = $html; + $r++; + } + return $result; + } } /* TODO: DEPRECATED */ diff --git a/workflow/engine/classes/class.consolidatedCases.php b/workflow/engine/classes/class.consolidatedCases.php index cbe1fb6fb..c0c899013 100644 --- a/workflow/engine/classes/class.consolidatedCases.php +++ b/workflow/engine/classes/class.consolidatedCases.php @@ -18,14 +18,13 @@ class ConsolidatedCases if (!$status) { $oCaseConsolidated = new CaseConsolidatedCore(); $oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid); - if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') { - $oCaseConsolidated = new CaseConsolidatedCore(); - $oCaseConsolidated->setTasUid($sTasUid); - $oCaseConsolidated->delete(); + if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') { $oCaseConsolidated = new CaseConsolidatedCore(); $oCaseConsolidated->setTasUid($sTasUid); $oCaseConsolidated->setConStatus('INACTIVE'); $oCaseConsolidated->save(); + }else{ + $oCaseConsolidated->delete(); } return 1; } @@ -172,11 +171,21 @@ class ConsolidatedCases $sRepTabUid = $_POST['form']['REP_TAB_UID']; $oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid); - if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') { + if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') { $oCaseConsolidated = new CaseConsolidatedCore(); $oCaseConsolidated->setTasUid($sTasUid); } + $criteria = new Criteria(); + $criteria->addSelectColumn(CaseConsolidatedCorePeer::TAS_UID); + $criteria->add(CaseConsolidatedCorePeer::TAS_UID, $sTasUid); + $rsCriteria = CaseConsolidatedCorePeer::doSelectRS($criteria); + if ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + $oCaseConsolidated->delete(); + $oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid); + } + $oCaseConsolidated->setConStatus('ACTIVE'); $oCaseConsolidated->setDynUid($sDynUid); $oCaseConsolidated->setRepTabUid($sRepTabUid); diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 3fc95bac3..3f2eb4f15 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -907,6 +907,20 @@ class Derivation //Create the new case in the sub-process // set the initial date to null the time its created $aNewCase = $this->case->startCase( $aSP['TAS_UID'], $aSP['USR_UID'], true, $appFields); + + //Create record in table APP_ASSIGN_SELF_SERVICE_VALUE + $taskSub = new Task(); + $arrayNextTaskData = $taskSub->load($aSP["TAS_UID"]); + if ($arrayNextTaskData["TAS_ASSIGN_TYPE"] == "SELF_SERVICE" && trim($arrayNextTaskData["TAS_GROUP_VARIABLE"]) != "") { + $nextTaskGroupVariable = trim($arrayNextTaskData["TAS_GROUP_VARIABLE"], " @#"); + + if (isset($appFields["APP_DATA"][$nextTaskGroupVariable]) && trim($appFields["APP_DATA"][$nextTaskGroupVariable]) != "") { + + $appAssignSelfServiceValue = new AppAssignSelfServiceValue(); + + $appAssignSelfServiceValue->create($aNewCase['APPLICATION'], $aNewCase['INDEX'], array("PRO_UID" => $aNewCase['PROCESS'], "TAS_UID" => $aSP["TAS_UID"], "GRP_UID" => trim($appFields["APP_DATA"][$nextTaskGroupVariable]))); + } + } //Copy case variables to sub-process case $aFields = unserialize( $aSP['SP_VARIABLES_OUT'] ); $aNewFields = array (); diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 1b5521d1a..1f3ad6b19 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -1546,7 +1546,7 @@ class processMap if ($iForm == 8) { $oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($_SESSION["cDhTajE2T2lxSkhqMzZUTXVacWYyNcKwV3A4eWYybDdyb1p3"]["TAS_UID"]); - if ((is_object($oCaseConsolidated)) && get_class($oCaseConsolidated) == "CaseConsolidated") { + if ((is_object($oCaseConsolidated)) && get_class($oCaseConsolidated) == "CaseConsolidatedCore") { require_once ("classes/model/ReportTable.php"); $aFields["CON_STATUS"] = $oCaseConsolidated->getConStatus(); diff --git a/workflow/engine/classes/model/ListCompleted.php b/workflow/engine/classes/model/ListCompleted.php index 876302b28..84c5b8b55 100644 --- a/workflow/engine/classes/model/ListCompleted.php +++ b/workflow/engine/classes/model/ListCompleted.php @@ -104,7 +104,9 @@ class ListCompleted extends BaseListCompleted BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow")); $users = new Users(); - $users->refreshTotal($data['USR_UID'], 'add', 'completed'); + if($data['USR_UID'] != ''){ + $users->refreshTotal($data['USR_UID'], 'add', 'completed'); + } if ($data['DEL_PREVIOUS'] != 0) { $criteria = new Criteria(); $criteria->addSelectColumn(TaskPeer::TAS_TYPE); diff --git a/workflow/engine/classes/model/ListInbox.php b/workflow/engine/classes/model/ListInbox.php index 09ecfcaf0..571773cfa 100644 --- a/workflow/engine/classes/model/ListInbox.php +++ b/workflow/engine/classes/model/ListInbox.php @@ -306,7 +306,9 @@ class ListInbox extends BaseListInbox } } } else { - $users->refreshTotal($data['USR_UID'], 'add', 'inbox'); + if($data['USR_UID'] !=''){ + $users->refreshTotal($data['USR_UID'], 'add', 'inbox'); + } if ($dataPreviusApplication['APP_STATUS'] == 'DRAFT') { $users->refreshTotal($dataPreviusApplication['CURRENT_USER_UID'], 'remove', 'draft'); } else { diff --git a/workflow/engine/classes/model/ListParticipatedLast.php b/workflow/engine/classes/model/ListParticipatedLast.php index bc008a208..7b9de8dee 100644 --- a/workflow/engine/classes/model/ListParticipatedLast.php +++ b/workflow/engine/classes/model/ListParticipatedLast.php @@ -36,6 +36,7 @@ class ListParticipatedLast extends BaseListParticipatedLast $data['APP_STATUS'] = $aRow['APP_STATUS']; if ($data['USR_UID'] != 'SELF_SERVICES') { + if($data['USR_UID'] != ''){ $criteria = new Criteria(); $criteria->addSelectColumn(UsersPeer::USR_USERNAME); $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); @@ -51,6 +52,7 @@ class ListParticipatedLast extends BaseListParticipatedLast $users = new Users(); $users->refreshTotal($data['USR_UID'], 'add', 'participated'); + } } $con = Propel::getConnection( ListParticipatedLastPeer::DATABASE_NAME ); diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php index 47d48d602..0e53cf3dc 100755 --- a/workflow/engine/classes/model/OutputDocument.php +++ b/workflow/engine/classes/model/OutputDocument.php @@ -178,12 +178,12 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_DESCRIPTION'])){ $description .= ", Description: ".$aData['OUT_DOC_DESCRIPTION']; } - if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ - $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; - } - if(!empty($aData['OUT_DOC_GENERATE'])){ - $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; - } + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; + } + if(!empty($aData['OUT_DOC_GENERATE'])){ + $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + } if($aData['OUT_DOC_PDF_SECURITY_ENABLED']==0){ $pdfSecurity = 'Disabled'; }else{ @@ -199,14 +199,14 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_TAGS'])){ $description .= ", Tags: ".$aData['OUT_DOC_TAGS']; } - if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ - if($aData['OUT_DOC_OPEN_TYPE']==0){ - $genLink = 'Open the file'; - }else{ - $genLink = 'Download the file'; - } - $description .= ", By clicking on the generated file link: ".$genLink; - } + if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ + if($aData['OUT_DOC_OPEN_TYPE']==0){ + $genLink = 'Open the file'; + }else{ + $genLink = 'Download the file'; + } + $description .= ", By clicking on the generated file link: ".$genLink; + } G::auditLog("CreateOutputDocument", $description); return $aData['OUT_DOC_UID']; @@ -268,12 +268,12 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_DESCRIPTION'])){ $description .= ", Description: ".$aData['OUT_DOC_DESCRIPTION']; } - if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ - $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; - } - if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ - $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; - } + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; + } + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + } if($aData['OUT_DOC_PDF_SECURITY_ENABLED']==0){ $pdfSecurity = 'Disabled'; }else{ @@ -289,14 +289,14 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_TAGS'])){ $description .= ", Tags: ".$aData['OUT_DOC_TAGS']; } - if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ - if($aData['OUT_DOC_OPEN_TYPE']==0){ - $genLink = 'Open the file'; - }else{ - $genLink = 'Download the file'; - } - $description .= ", By clicking on the generated file link: ".$genLink; - } + if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ + if($aData['OUT_DOC_OPEN_TYPE']==0){ + $genLink = 'Open the file'; + }else{ + $genLink = 'Download the file'; + } + $description .= ", By clicking on the generated file link: ".$genLink; + } if (isset($aData['OUT_DOC_TEMPLATE'])) { $description .= ", [EDIT TEMPLATE]"; } @@ -556,6 +556,24 @@ class OutputDocument extends BaseOutputDocument if (($sUID != '') && is_array($aFields) && ($sPath != '')) { $sContent = G::replaceDataGridField($sContent, $aFields); + if (strpos($sContent, ''; + $oFile = fopen($sPath . $sFilename . '_smarty.html', 'wb'); + fwrite($oFile, $sContent); + fclose($oFile); + $template->templateFile = $sPath . $sFilename . '_smarty.html'; + //assign the variables and use the template $template + $template->assign($aFields); + $sContent = $template->fetch($template->templateFile); + unlink($template->templateFile); + } + G::verifyPath($sPath, true); //Start - Create .doc diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index f2c40ce46..c3c7e0d14 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -4852,22 +4852,23 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index f54fdb02c..aba16cf92 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -2702,22 +2702,23 @@ DROP TABLE IF EXISTS `USR_REPORTING`; CREATE TABLE `USR_REPORTING` ( - `USR_UID` VARCHAR(32) NOT NULL, - `TAS_UID` VARCHAR(32) NOT NULL, - `PRO_UID` VARCHAR(32) NOT NULL, - `MONTH` INTEGER default 0 NOT NULL, - `YEAR` INTEGER default 0 NOT NULL, - `TOTAL_TIME_BY_TASK` DECIMAL(7,2) default 0, - `TOTAL_CASES_IN` DECIMAL(7,2) default 0, - `TOTAL_CASES_OUT` DECIMAL(7,2) default 0, - `USER_HOUR_COST` DECIMAL(7,2) default 0, - `AVG_TIME` DECIMAL(7,2) default 0, - `SDV_TIME` DECIMAL(7,2) default 0, - `CONFIGURED_TASK_TIME` DECIMAL(7,2) default 0, - `TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0, - `TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0, - `PRO_COST` DECIMAL(7,2) default 0, - `PRO_UNIT_COST` VARCHAR(50) default '', + `USR_UID` VARCHAR(32) NOT NULL, + `TAS_UID` VARCHAR(32) NOT NULL, + `PRO_UID` VARCHAR(32) NOT NULL, + `MONTH` INTEGER default 0 NOT NULL, + `YEAR` INTEGER default 0 NOT NULL, + `TOTAL_QUEUE_TIME_BY_TASK` DECIMAL(7,2) default 0, + `TOTAL_TIME_BY_TASK` DECIMAL(7,2) default 0, + `TOTAL_CASES_IN` DECIMAL(7,2) default 0, + `TOTAL_CASES_OUT` DECIMAL(7,2) default 0, + `USER_HOUR_COST` DECIMAL(7,2) default 0, + `AVG_TIME` DECIMAL(7,2) default 0, + `SDV_TIME` DECIMAL(7,2) default 0, + `CONFIGURED_TASK_TIME` DECIMAL(7,2) default 0, + `TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0, + `TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0, + `PRO_COST` DECIMAL(7,2) default 0, + `PRO_UNIT_COST` VARCHAR(50) default '', PRIMARY KEY (`USR_UID`, `TAS_UID`,`MONTH`,`YEAR`), KEY `indexReporting`(`USR_UID`, `TAS_UID`, `PRO_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Data calculated users by task'; diff --git a/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js b/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js index e274443c0..7f2efcc3e 100644 --- a/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js +++ b/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js @@ -113,6 +113,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToMonth = function (monthList) { this.endPeriodState.list = monthList; this.initPeriodState.visible = true; this.endPeriodState.visible = true; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.MONTH, new Date()); } TimeSeriesPresenter.prototype.changePeriodicityToQuarter = function (quarterList) { @@ -120,6 +121,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToQuarter = function (quarterList this.endPeriodState.list = quarterList; this.initPeriodState.visible = true; this.endPeriodState.visible = true; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.QUARTER, new Date()); } TimeSeriesPresenter.prototype.changePeriodicityToSemester = function (semesterList) { @@ -127,6 +129,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToSemester = function (semesterLi this.endPeriodState.list = semesterList; this.initPeriodState.visible = true; this.endPeriodState.visible = true; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.SEMESTER, new Date()); } TimeSeriesPresenter.prototype.changePeriodicityToYear = function (yearList) { @@ -134,6 +137,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToYear = function (yearList) { this.endPeriodState.list = []; this.initPeriodState.visible = false; this.endPeriodState.visible = false; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.YEAR, new Date()); } TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, initPeriod, @@ -145,7 +149,7 @@ TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, i this.model.historicData(indicator, periodicity, initDate, endDate).done(function (data) { var graphData = []; $.each(data, function(index, originalObject) { - var newObject = {datalabel: that.periodValue(periodicity, originalObject) + '/' + originalObject['YEAR'], + var newObject = {datalabel: that.periodColumnName(periodicity, originalObject) + '/' + originalObject['YEAR'], value: originalObject.VALUE } graphData.push(newObject); @@ -157,7 +161,7 @@ TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, i } -TimeSeriesPresenter.prototype.periodValue = function (periodicity, object) { +TimeSeriesPresenter.prototype.periodColumnName = function (periodicity, object) { var retval = ""; switch (periodicity*1) { case this.helper.ReportingPeriodicityEnum.MONTH: @@ -179,6 +183,48 @@ TimeSeriesPresenter.prototype.periodValue = function (periodicity, object) { return retval; } +TimeSeriesPresenter.prototype.periodEquivalentFromDate = function (periodicity, date) { + var retval = null; + var year = date.getFullYear(); + + switch (periodicity * 1) { + case this.helper.ReportingPeriodicityEnum.MONTH: + for (var i = 1; i < 12; i++) { + var periodInitDate = this.periodInitDate (periodicity, i, year); + var periodEndDate = this.periodEndDate (periodicity, i, year); + if (periodInitDate <= date && periodEndDate >= date) { + retval = i; + } + } + break; + case this.helper.ReportingPeriodicityEnum.QUARTER: + for (var i = 1; i < 4; i++) { + var periodInitDate = this.periodInitDate (periodicity, i, year); + var periodEndDate = this.periodEndDate (periodicity, i, year); + if (periodInitDate <= date && periodEndDate >= date) { + retval = i; + } + } + break; + case this.helper.ReportingPeriodicityEnum.SEMESTER: + for (var i = 1; i < 2; i++) { + var periodInitDate = this.periodInitDate (periodicity, i, year); + var periodEndDate = this.periodEndDate (periodicity, i, year); + if (periodInitDate <= date && periodEndDate >= date) { + retval = i; + } + } + break; + case this.helper.ReportingPeriodicityEnum.YEAR: + retval = year + break; + } + if (retval == null) { + throw new Error("The periodicity " + periodicity + " is not supported."); + } + return retval; +} + TimeSeriesPresenter.prototype.periodInitDate = function (periodicity, period, year) { var retval = null; switch (periodicity * 1) { diff --git a/workflow/engine/js/strategicDashboard/viewDashboardView.js b/workflow/engine/js/strategicDashboard/viewDashboardView.js index 68bc584db..c69a67957 100644 --- a/workflow/engine/js/strategicDashboard/viewDashboardView.js +++ b/workflow/engine/js/strategicDashboard/viewDashboardView.js @@ -505,7 +505,7 @@ var loadIndicator = function (indicatorId, initDate, endDate) { fillSpecialIndicatorFirstView(viewModel); break; case "1050": - fillStatusIndicatorFirstView(viewModel); + //fillStatusIndicatorFirstView(viewModel); break; default: fillGeneralIndicatorFirstView(viewModel); diff --git a/workflow/engine/menus/setup.php b/workflow/engine/menus/setup.php index bd3dc2998..82f195f66 100755 --- a/workflow/engine/menus/setup.php +++ b/workflow/engine/menus/setup.php @@ -66,10 +66,6 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) { //$G_TMP_MENU->AddIdRawOption('REPORT_TABLES', '../reportTables/main', 'Report Tables', 'icon-tables.png','', 'settings'); $G_TMP_MENU->AddIdRawOption('PM_TABLES', '../pmTables', G::LoadTranslation('ID_ADDITIONAL_TABLES'), 'icon-tables.png','', 'settings'); - - if (!$partnerFlag) { - $G_TMP_MENU->AddIdRawOption('WEBSERVICES', 'webServices', G::LoadTranslation('ID_WEB_SERVICES'), 'icon-webservices.png', '', 'settings'); - } $G_TMP_MENU->AddIdRawOption('LOGIN', 'loginSettings', G::LoadTranslation('LOGIN'), "",'', 'settings'); $G_TMP_MENU->AddIdRawOption('DASHBOARD', '../dashboard/dashletsList', ucfirst(G::LoadTranslation('ID_DASHBOARD')), '', '', 'settings'); /*----------------------------------********---------------------------------*/ diff --git a/workflow/engine/methods/cases/casesConsolidatedListExtJs.php b/workflow/engine/methods/cases/casesConsolidatedListExtJs.php index 2861f4f95..173112538 100644 --- a/workflow/engine/methods/cases/casesConsolidatedListExtJs.php +++ b/workflow/engine/methods/cases/casesConsolidatedListExtJs.php @@ -3,9 +3,9 @@ $action = (isset($_REQUEST["action"])) ? $_REQUEST["action"] : "consolidated"; $oCriteria = new Criteria("workflow"); -$oCriteria->addSelectColumn(CaseConsolidatedPeer::CON_STATUS); -$oCriteria->add(CaseConsolidatedPeer::CON_STATUS, "ACTIVE"); -$activeNumRows = CaseConsolidatedPeer::doCount($oCriteria); +$oCriteria->addSelectColumn(CaseConsolidatedCorePeer::CON_STATUS); +$oCriteria->add(CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE"); +$activeNumRows = CaseConsolidatedCorePeer::doCount($oCriteria); G::LoadClass ("BasePeer"); G::LoadClass ("configuration"); @@ -18,16 +18,16 @@ $usrUid = $_SESSION["USER_LOGGED"]; $oCriteria = new Criteria("workflow"); $oCriteria->addSelectColumn("*"); -$oCriteria->addSelectColumn(CaseConsolidatedPeer::TAS_UID); -$oCriteria->addJoin(CaseConsolidatedPeer::TAS_UID,ContentPeer::CON_ID, Criteria::LEFT_JOIN); -$oCriteria->addJoin(CaseConsolidatedPeer::TAS_UID,TaskPeer::TAS_UID, Criteria::LEFT_JOIN); +$oCriteria->addSelectColumn(CaseConsolidatedCorePeer::TAS_UID); +$oCriteria->addJoin(CaseConsolidatedCorePeer::TAS_UID,ContentPeer::CON_ID, Criteria::LEFT_JOIN); +$oCriteria->addJoin(CaseConsolidatedCorePeer::TAS_UID,TaskPeer::TAS_UID, Criteria::LEFT_JOIN); $oCriteria->addAnd(ContentPeer::CON_CATEGORY, "TAS_TITLE"); $oCriteria->addAnd(ContentPeer::CON_LANG, "en"); $params = array(); //This will be filled with the parameters $sql = BasePeer::createSelectSql($oCriteria, $params); -$oDataset = CaseConsolidatedPeer::doSelectRS($oCriteria); +$oDataset = CaseConsolidatedCorePeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); //$oDataset->next(); while ($oDataset->next()) { diff --git a/workflow/engine/methods/processes/consolidated.php b/workflow/engine/methods/processes/consolidated.php index 68ebc3b6c..b2db2a5cc 100644 --- a/workflow/engine/methods/processes/consolidated.php +++ b/workflow/engine/methods/processes/consolidated.php @@ -590,10 +590,10 @@ class ajax_con extends WebResource $sRepTabUid = ""; } - $oCaseConsolidated = CaseConsolidatedPeer::retrieveByPK($sTasUid); + $oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid); if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') { - $oCaseConsolidated = new CaseConsolidated(); + $oCaseConsolidated = new CaseConsolidatedCore(); $oCaseConsolidated->setTasUid($sTasUid); } diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql index dc468398f..a630c7b43 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql @@ -12,6 +12,7 @@ INSERT INTO USR_REPORTING ( PRO_UID, MONTH, YEAR, + TOTAL_QUEUE_TIME_BY_TASK, TOTAL_TIME_BY_TASK, TOTAL_CASES_IN, TOTAL_CASES_OUT, @@ -31,6 +32,7 @@ SELECT ACV.PRO_UID, DATE_FORMAT(ACV.DEL_INIT_DATE, '%m') AS `MONTH`, DATE_FORMAT(ACV.DEL_INIT_DATE, '%Y') AS `YEAR`, + SUM(ACV.DEL_QUEUE_DURATION*24) AS TOTAL_QUEUE_TIME_BY_TASK, SUM(ACV.DEL_DURATION*24) AS TOT_TIME_BY_TASK, COUNT(ACV.DEL_INIT_DATE) AS TOT_CASES_IN, COUNT(ACV.DEL_FINISH_DATE) AS TOT_CASES_OUT, diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php b/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php index 41cf13800..e66eca758 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php @@ -65,23 +65,37 @@ class Consolidated * @param string $app_number, Task Uid * @param string $del_index, Task Uid * @param string $usr_uid, Task Uid + * @param string $fieldName, Field Name + * @param string $fieldValue, Field Value * @return string * * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia */ - public function postDerivate ($app_uid, $app_number, $del_index, $usr_uid) + public function postDerivate ($app_uid, $app_number, $del_index, $usr_uid, $fieldName='', $fieldValue='') { G::LoadClass("library"); G::LoadClass("wsBase"); G::LoadClass("case"); - $ws = new \wsBase(); $oCase = new \Cases(); if (!isset($Fields["DEL_INIT_DATE"])) { $oCase->setDelInitDate($app_uid, $del_index); $aFields = $oCase->loadCase($app_uid, $del_index); + //Update data grid + $aData = $aFields['APP_DATA']; + foreach ($aData as $k => $dataField) { + if(is_array($dataField)){ + $pos = count($dataField); + if(isset($aData[$k][$pos][$fieldName])){ + $aData[$k][$pos][$fieldName] = $fieldValue; + } + } + } + $aFields['APP_DATA'] = $aData; + $oCase->updateCase($app_uid, $aFields); + //End update } $res = $ws->derivateCase($usr_uid, $app_uid, $del_index, true); @@ -242,7 +256,7 @@ class Consolidated $tableUid = $item["REP_TAB_UID"]; $tableName = $row["REP_TAB_NAME"]; } else { - throw (new Exception("Not found the report table")); + throw new \Exception("Not found the report table"); } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php b/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php index 35705c86f..8c06c1bba 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php @@ -136,19 +136,21 @@ class Consolidated extends Api * @param string $app_uid {@min 1} {@max 32} * @param string $app_number * @param string $del_index + * @param string $field_grid + * @param string $field_grid_val * @return array * * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia * - * @url POST /derivate/:app_uid/:app_number/:del_index + * @url POST /derivate/:app_uid/:app_number/:del_index/:field_grid/:field_grid_val */ - public function doPostDerivate($app_uid, $app_number, $del_index) + public function doPostDerivate($app_uid, $app_number, $del_index, $field_grid, $field_grid_val) { try { $usr_uid = $this->getUserId(); $consolidated = new \ProcessMaker\BusinessModel\Consolidated(); - return $consolidated->postDerivate($app_uid, $app_number, $del_index, $usr_uid); + return $consolidated->postDerivate($app_uid, $app_number, $del_index, $usr_uid,$field_grid, $field_grid_val); } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index 082521694..30fc95759 100755 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -1058,6 +1058,9 @@ Ext.onReady ( function() { }); /*----------------------------------********---------------------------------*/ + if (typeof filterStatus == 'undefined') { + filterStatus = []; + } var comboFilterStatus = new Ext.form.ComboBox({ width : 180, boxMaxWidth : 200, @@ -1071,6 +1074,7 @@ Ext.onReady ( function() { mode : 'local', autocomplete : true, triggerAction : 'all', + hidden : filterStatus.length == 0 ? true : false, store : new Ext.data.ArrayStore({ fields : ['UID','NAME'], data : filterStatus @@ -1705,8 +1709,11 @@ Ext.onReady ( function() { '-', btnAll, '->', // begin using the right-justified button container - _('ID_OVERDUE'), - comboFilterStatus, + filterStatus.length != 0 ?[ + _('ID_OVERDUE'), + comboFilterStatus + ] : [ + ], _("ID_CATEGORY"), comboCategory, "-", diff --git a/workflow/engine/templates/cases/casesListConsolidated.js b/workflow/engine/templates/cases/casesListConsolidated.js index b2e9dd1df..2f3283d12 100644 --- a/workflow/engine/templates/cases/casesListConsolidated.js +++ b/workflow/engine/templates/cases/casesListConsolidated.js @@ -1,6 +1,7 @@ var grdNumRows = 0; // var grdRowLabel = []; // - +var fieldGridGral = ''; +var fieldGridGralVal = ''; @@ -409,9 +410,16 @@ Ext.onReady(function () { var selectedRow = Ext.getCmp(gridId).getSelectionModel().getSelections(); var maxLenght = selectedRow.length; for (var i in selectedRow) { + rowGrid = selectedRow[i].data + for (fieldGrid in rowGrid){ + if(fieldGrid != 'APP_UID' && fieldGrid != 'APP_NUMBER' && fieldGrid != 'APP_TITLE' && fieldGrid != 'DEL_INDEX' ){ + fieldGridGral = fieldGrid; + fieldGridGralVal = rowGrid[fieldGrid]; + } + } if (selectedRow[i].data) { //alert (derivateRequestAjax(selectedRow[i].data["company"])); - ajaxDerivationRequest(selectedRow[i].data["APP_UID"], selectedRow[i].data["DEL_INDEX"], maxLenght, selectedRow[i].data["APP_NUMBER"]); + ajaxDerivationRequest(selectedRow[i].data["APP_UID"], selectedRow[i].data["DEL_INDEX"], maxLenght, selectedRow[i].data["APP_NUMBER"],fieldGridGral, fieldGridGralVal); } } } @@ -1298,14 +1306,14 @@ function generateGrid(proUid, tasUid, dynUid) }); } -function ajaxDerivationRequest(appUid, delIndex, maxLenght, appNumber){ +function ajaxDerivationRequest(appUid, delIndex, maxLenght, appNumber,fieldGridGral, fieldGridGralVal){ Ext.Ajax.request({ method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + credentials.access_token }, - url: urlProxy + 'derivate/' + appUid + '/' + appNumber + '/' + delIndex, + url: urlProxy + 'derivate/' + appUid + '/' + appNumber + '/' + delIndex + '/' + fieldGridGral + '/' + fieldGridGralVal, success: function(response) { var dataResponse; var fullResponseText = response.responseText; @@ -1333,7 +1341,7 @@ function ajaxDerivationRequest(appUid, delIndex, maxLenght, appNumber){ window.location.reload(); } - if (fullResponseText.charAt(0) != "<") { + if (fullResponseText.charAt(0) != "<" && parent.document.getElementById("batchRoutingCasesNumRec") != null) { parent.document.getElementById("batchRoutingCasesNumRec").innerHTML = parseInt(dataResponse.casesNumRec); } diff --git a/workflow/engine/templates/oauth2/clientSetup.js b/workflow/engine/templates/oauth2/clientSetup.js index e0f051809..639f3d218 100644 --- a/workflow/engine/templates/oauth2/clientSetup.js +++ b/workflow/engine/templates/oauth2/clientSetup.js @@ -645,7 +645,7 @@ clientSetup.application = { //style: "margin: 0 auto 0 auto;", //width: 550, //height: 450, - title: "
" + "ProcessMaker Dev Tools / User Applications" + "
", + title: "
" + "User Applications" + "
", border: false, listeners: { diff --git a/workflow/engine/templates/strategicDashboard/viewDashboard.html b/workflow/engine/templates/strategicDashboard/viewDashboard.html index 0c6d51ef7..0ad1b3b74 100644 --- a/workflow/engine/templates/strategicDashboard/viewDashboard.html +++ b/workflow/engine/templates/strategicDashboard/viewDashboard.html @@ -79,7 +79,7 @@ data-indicator-type="<%- indicator.type %>" data-gs-min-width="3" data-gs-min-height="2" data-gs-max-height="2" data-toggle="tooltip" data-original-title={translate label="ID_DASH_HELP_INBOX_STATUS"}> -