Designer > BPMN Designer > Porcess Supervisors > Steps: Estandarizar la ventana al nuevo diseñue se solicito para el diseñr BPMN
This commit is contained in:
dheeyi
2015-06-16 11:21:24 -04:00
26 changed files with 1088 additions and 147 deletions

View File

@@ -7,7 +7,7 @@ use \Criteria;
use \ReportTablePeer;
use \ResultSet;
use \AppCacheViewPeer;
use \CaseConsolidatedPeer;
use \CaseConsolidatedCorePeer;
use \ContentPeer;
/**
@@ -29,21 +29,21 @@ class Consolidated
public function get ($tas_uid)
{
$criteria = new Criteria();
$criteria->addSelectColumn(CaseConsolidatedPeer::DYN_UID);
$criteria->addSelectColumn(CaseConsolidatedCorePeer::DYN_UID);
$criteria->addSelectColumn(\ReportTablePeer::REP_TAB_NAME);
$criteria->addSelectColumn(\ReportTablePeer::REP_TAB_UID);
$criteria->addSelectColumn(ContentPeer::CON_VALUE);
$criteria->addSelectColumn(CaseConsolidatedPeer::CON_STATUS);
$criteria->addSelectColumn(CaseConsolidatedCorePeer::CON_STATUS);
$criteria->addJoin( CaseConsolidatedPeer::REP_TAB_UID, ReportTablePeer::REP_TAB_UID, Criteria::LEFT_JOIN );
$criteria->addJoin( CaseConsolidatedPeer::REP_TAB_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
$criteria->addJoin( CaseConsolidatedCorePeer::REP_TAB_UID, ReportTablePeer::REP_TAB_UID, Criteria::LEFT_JOIN );
$criteria->addJoin( CaseConsolidatedCorePeer::REP_TAB_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
$criteria->add( ContentPeer::CON_CATEGORY, "REP_TAB_TITLE");
$criteria->add( ContentPeer::CON_LANG, SYS_LANG);
$criteria->add( CaseConsolidatedPeer::TAS_UID, $tas_uid, Criteria::EQUAL );
$criteria->add( CaseConsolidatedPeer::CON_STATUS, 'ACTIVE', Criteria::EQUAL );
$criteria->add( CaseConsolidatedCorePeer::TAS_UID, $tas_uid, Criteria::EQUAL );
$criteria->add( CaseConsolidatedCorePeer::CON_STATUS, 'ACTIVE', Criteria::EQUAL );
$dataset = CaseConsolidatedPeer::doSelectRS($criteria);
$dataset = CaseConsolidatedCorePeer::doSelectRS($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($dataset->next()) {
$response = $dataset->getRow();

View File

@@ -90,6 +90,11 @@ class Light
return $response;
}
/**
* Get status trigger case
* @param $triggers
* @return array
*/
public function statusTriggers($triggers)
{
$return = array("before" => false, "after"=> false);
@@ -1061,6 +1066,23 @@ class Light
$sysConf = \System::getSystemConfiguration( PATH_CONFIG . 'env.ini' );
$offset = timezone_offset_get( new \DateTimeZone( $sysConf['time_zone'] ), new \DateTime() );
$response['timeZone'] = sprintf( "GMT%s%02d:%02d", ( $offset >= 0 ) ? '+' : '-', abs( $offset / 3600 ), abs( ($offset % 3600) / 60 ) );
$fields = \System::getSysInfo();
$response['version'] = $fields['PM_VERSION'];
$Translations = new \Translation;
$translationsTable = $Translations->getTranslationEnvironments();
$languagesList = array ();
foreach ($translationsTable as $locale) {
$LANG_ID = $locale['LOCALE'];
if ($locale['COUNTRY'] != '.') {
$LANG_NAME = $locale['LANGUAGE'] . ' (' . (ucwords( strtolower( $locale['COUNTRY'] ) )) . ')';
} else {
$LANG_NAME = $locale['LANGUAGE'];
}
$languagesList[$LANG_ID] = $LANG_NAME;
}
$response['listLanguage'] = $languagesList;
return $response;
}

View File

@@ -0,0 +1,347 @@
<?php
namespace ProcessMaker\BusinessModel\Light;
class Tracker
{
function __construct()
{
\Creole::registerDriver('dbarray', 'creole.contrib.DBArrayConnection');
}
/**
* authenticaction for case tracker
*
* @param $case numbre case
* @param $pin code pin access for case tracek
* @return array
* @throws \Exception
*/
public function authentication($case, $pin)
{
$cases = new \Cases();
$response = array();
$uid = $cases->verifyCaseTracker( $case, $pin );
switch ($uid) {
//The case doesn't exist
case - 1:
throw (new \Exception(\G::LoadTranslation('ID_CASE_NOT_EXISTS')));
break;
//The pin is invalid
case - 2:
throw (new \Exception(\G::LoadTranslation('ID_PIN_INVALID')));
break;
}
$response['process'] = $uid['PRO_UID'];
$response['app_uid'] = $uid['APP_UID'];
return $response;
}
/**
* Access granted for administrator in case tracker
*
* @param $pro_uid
* @param $status
* @return bool
*/
public function permissions ($pro_uid, $status)
{
$cases = new \Cases();
$caseTracker = $cases->caseTrackerPermissions( $pro_uid );
switch ($status) {
case "map":
$return = $caseTracker['CT_MAP_TYPE'];
break;
case "messages":
$return = $caseTracker['CT_MESSAGE_HISTORY'];
break;
case "history":
$return = $caseTracker['CT_DERIVATION_HISTORY'];
break;
case "objects":
$return = $caseTracker['DYNADOC'];
break;
default:
$return = false;
break;
}
return $return;
}
public function history($idProcess, $appUid)
{
$oCase = new \Cases();
$aFields = $oCase->loadCase( $appUid );
$oProcess = new \Process();
$aProcessFieds = $oProcess->load( $idProcess );
$noShowTitle = 0;
if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
$noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
}
if (isset( $aFields['TITLE'] )) {
$aFields['APP_TITLE'] = $aFields['TITLE'];
}
if ($aFields['APP_PROC_CODE'] != '') {
$aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
}
$aFields['CASE'] = \G::LoadTranslation( 'ID_CASE' );
$aFields['TITLE'] = \G::LoadTranslation( 'ID_TITLE' );
$c = \Cases::getTransferHistoryCriteria( $appUid );
$dataset = \AppDelegationPeer::doSelectRS( $c );
$dataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$dataset->next();
$history = array();
while ($row = $dataset->getRow()) {
$history[] = $row;
$dataset->next();
}
$response = $this->parserHistory($history);
return $response;
}
public function parserHistory ($data)
{
$structure = array(
'PRO_UID' => 'processId',
'TAS_UID' => 'taskId',
'APP_UID' => 'caseId',
'user' => array(
'USR_NAME' => 'name',
'USR_FIRSTNAME' => 'firstName',
'USR_LASTNAME' => 'lastName'
),
'DEL_DELEGATE_DATE' => 'delegateDate',
'DEL_INDEX' => 'index',
'DEL_INIT_DATE' => 'initDate',
'APP_ENABLE_ACTION_DATE' => 'enableAction',
'APP_DISABLE_ACTION_DATE' => 'disableAction',
'TAS_TITLE' => 'taskTitle',
'DEL_FINISH_DATE' => 'finishDate',
'APP_TYPE' => 'type'
);
$response = $this->replaceFields($data, $structure);
return $response;
}
public function messages($idProcess, $appUid)
{
$oCase = new \Cases();
$aFields = $oCase->loadCase( $appUid );
$oProcess = new \Process();
$aProcessFieds = $oProcess->load( $idProcess );
$noShowTitle = 0;
if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
$noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
}
if (isset( $aFields['TITLE'] )) {
$aFields['APP_TITLE'] = $aFields['TITLE'];
}
if ($aFields['APP_PROC_CODE'] != '') {
$aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
}
$aFields['CASE'] = \G::LoadTranslation( 'ID_CASE' );
$aFields['TITLE'] = \G::LoadTranslation( 'ID_TITLE' );
$c = \Cases::getHistoryMessagesTracker( $appUid );
$response = array();
if ($c->getDbName() == 'dbarray') {
$rs = \ArrayBasePeer::doSelectRs( $c );
$rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$rs->next();
$messages = array();
while ($row = $rs->getRow()) {
$messages[] = $row;
$rs->next();
}
$response = $this->parserMessages($messages);
}
return $response;
}
public function parserMessages ($data)
{
$structure = array(
'APP_UID' => 'caseId',
'APP_MSG_UID' => 'messageId',
'APP_MSG_TYPE' => 'messageType',
'APP_MSG_SUBJECT' => 'messageSubject',
'APP_MSG_FROM' => 'messageFrom',
'APP_MSG_TO' => 'messageTo',
'APP_MSG_BODY' => 'messageBody',
'APP_MSG_DATE' => 'messageDate',
'APP_MSG_CC' => 'messageCc',
'APP_MSG_BCC' => 'messageBcc',
'APP_MSG_TEMPLATE' => 'messageTemplate',
'APP_MSG_STATUS' => 'messageStatus'
);
$response = $this->replaceFields($data, $structure);
return $response;
}
public function objects($idProcess, $appUid)
{
$oProcessMap = new \processMap();
$oCase = new \Cases();
$oProcess = new \Process();
$aProcessFieds = $oProcess->load( $idProcess );
$noShowTitle = 0;
if (isset( $aProcessFieds['PRO_SHOW_MESSAGE'] )) {
$noShowTitle = $aProcessFieds['PRO_SHOW_MESSAGE'];
}
$aFields = $oCase->loadCase( $appUid );
if (isset( $aFields['TITLE'] )) {
$aFields['APP_TITLE'] = $aFields['TITLE'];
}
if ($aFields['APP_PROC_CODE'] != '') {
$aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
}
$aFields['CASE'] = \G::LoadTranslation( 'ID_CASE' );
$aFields['TITLE'] = \G::LoadTranslation( 'ID_TITLE' );
$c = $oProcessMap->getCaseTrackerObjectsCriteria( $idProcess );
$response = array();
if ($c->getDbName() == 'dbarray') {
$rs = \ArrayBasePeer::doSelectRs( $c );
$rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$rs->next();
$objects = array();
while ($row = $rs->getRow()) {
$objects[] = $row;
$rs->next();
}
$response = $this->parserObjects($objects);
}
return $response;
}
public function parserObjects ($data)
{
$structure = array(
//'CTO_UID' => 'objectId',
'CTO_TITLE' => 'objectTitle',
'CTO_TYPE_OBJ' => 'objectType',
'CTO_UID_OBJ' => 'objectId',
'CTO_CONDITION' => 'condition',
'CTO_POSITION' => 'position'
);
$response = $this->replaceFields($data, $structure);
return $response;
}
public function showObjects ($pro_uid, $app_uid, $obj_uid, $typeObject)
{
switch ($typeObject) {
case 'DYNAFORM':
$oCase = new \Cases();
$Fields = $oCase->loadCase( $app_uid );
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = '';
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = '';
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = '#';
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = 'alert("Sample"); return false;';
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW'] = '#';
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW_ACTION'] = 'tracker_PrintView?CTO_UID_OBJ=' . $obj_uid . '&CTO_TYPE_OBJ=PRINT_PREVIEW';
$dynaForm = new \Dynaform();
$arrayDynaFormData = $dynaForm->Load($obj_uid);
if (isset($arrayDynaFormData["DYN_VERSION"]) && $arrayDynaFormData["DYN_VERSION"] == 2) {
\G::LoadClass("pmDynaform");
$Fields["PRO_UID"] = $pro_uid;
$Fields["CURRENT_DYNAFORM"] = $obj_uid;
$pmDynaForm = new \pmDynaform($Fields);
// if ($pmDynaForm->isResponsive()) {
// $pmDynaForm->printTracker();
// }
$response = $pmDynaForm;
}
break;
case 'INPUT_DOCUMENT':
//G::LoadClass( 'case' );
$oCase = new \Cases();
$c = $oCase->getAllUploadedDocumentsCriteriaTracker( $pro_uid, $app_uid, $obj_uid );
// $response = array();
if ($c->getDbName() == 'dbarray') {
$rs = \ArrayBasePeer::doSelectRs( $c );
$rs->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$rs->next();
$doc = array();
while ($row = $rs->getRow()) {
$doc[] = $row;
$rs->next();
}
//$response = $this->parserObjects($objects);
}
$response = $doc;
break;
case 'OUTPUT_DOCUMENT':
//G::LoadClass( 'case' );
$oCase = new \Cases();
$c = $oCase->getAllGeneratedDocumentsCriteriaTracker( $pro_uid, $app_uid, $obj_uid );
$response = $c;
break;
}
return $response;
}
public function replaceFields ($data, $structure)
{
$response = array();
foreach ($data as $field => $d) {
if (is_array($d)) {
$newData = array();
foreach ($d as $field => $value) {
if (array_key_exists($field, $structure)) {
$newName = $structure[$field];
$newData[$newName] = is_null($value) ? "":$value;
} else {
foreach ($structure as $name => $str) {
if (is_array($str) && array_key_exists($field, $str)) {
$newName = $str[$field];
$newData[$name][$newName] = is_null($value) ? "":$value;
}
}
}
}
if (count($newData) > 0)
$response[] = $newData;
} else {
if (array_key_exists($field, $structure)) {
$newName = $structure[$field];
$response[$newName] = is_null($d) ? "":$d;
} else {
foreach ($structure as $name => $str) {
if (is_array($str) && array_key_exists($field, $str)) {
$newName = $str[$field];
$response[$name][$newName] = is_null($d) ? "":$d;
}
}
}
}
}
return $response;
}
}

View File

@@ -226,12 +226,12 @@ class Lists {
$licensedFeatures = & \PMLicensedFeatures::getSingleton();
if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) {
$criteria = new Criteria();
$criteria->add(\CaseConsolidatedPeer::CON_STATUS, 'ACTIVE');
$criteria->addJoin(\CaseConsolidatedPeer::TAS_UID, \AppCacheViewPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria->add(\CaseConsolidatedCorePeer::CON_STATUS, 'ACTIVE');
$criteria->addJoin(\CaseConsolidatedCorePeer::TAS_UID, \AppCacheViewPeer::TAS_UID, Criteria::LEFT_JOIN);
$criteria->add(\AppCacheViewPeer::USR_UID, $userId);
$criteria->add(\AppCacheViewPeer::DEL_THREAD_STATUS, 'OPEN');
$criteria->add(\AppCacheViewPeer::APP_STATUS, 'TO_DO');
$total = \CaseConsolidatedPeer::doCount( $criteria );
$total = \CaseConsolidatedCorePeer::doCount( $criteria );
$response[] = array('count' => $total, 'item' => 'CONSOLIDATED_CASES');
}
/*----------------------------------********---------------------------------*/