diff --git a/workflow/engine/classes/class.consolidatedCases.php b/workflow/engine/classes/class.consolidatedCases.php index b298e1e34..85776f9ca 100644 --- a/workflow/engine/classes/class.consolidatedCases.php +++ b/workflow/engine/classes/class.consolidatedCases.php @@ -2,286 +2,173 @@ G::LoadClass("pmFunctions"); G::LoadClass("reportTables"); - class ConsolidatedCases { - function cochalo ($data) + function saveConsolidated ($data) { $sTasUid = $data['tas_uid']; $sDynUid = $data['dyn_uid']; - $sStatus = $data['status']; $sProUid = $data['pro_uid']; $sRepTabUid = $data['rep_uid']; $tableName = $data['table_name']; $title = $data['title']; - $swOverwrite = $data['overwrite']; - $isBPMN = $data['isBPMN']; - - if ($sStatus == "1" && $sDynUid != "") { - switch ($swOverwrite) { - case 1: - //Delete report table - $criteria = new Criteria(); - - $criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID); - $criteria->add(ReportTablePeer::REP_TAB_NAME, $tableName); - - $rsCriteria = ReportTablePeer::doSelectRS($criteria); - - $rptUid = null; - - if ($rsCriteria->next()) { - $row = $rsCriteria->getRow(); - - $rptUid = $row[0]; - } - - $rpts = new ReportTables(); - - if ($rptUid != null) { - $rpts->deleteReportTable($rptUid); - } - - $sRepTabUid = ""; - break; - case 2: - //Delete table - $rpts = new ReportTables(); - $rpts->dropTable($tableName, "wf"); - - $sRepTabUid = ""; - break; - } + if ($sRepTabUid != '') { + $rptUid = null; $criteria = new Criteria(); + $criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID); - //$criteria->add(ReportTablePeer::PRO_UID, $sProUid); $criteria->add(ReportTablePeer::REP_TAB_NAME, $tableName); - - $result = ReportTablePeer::doSelectRS($criteria); - $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); - if ($result->next()) { - $dataRes = $result->getRow(); - - if ($dataRes["REP_TAB_UID"] != $sRepTabUid) { - return 1; - } - } else { - //check if table $tableName exists - $con = Propel::getConnection("workflow"); - $stmt = $con->createStatement(); - - $sql="SHOW TABLES"; - $rs1 = $stmt->executeQuery($sql, ResultSet::FETCHMODE_NUM); - $rs1->next(); - while ( is_array($row = $rs1->getRow() )) { - if ( $row[0] == $tableName ) { - return 2; - } - $rs1->next(); - } + $rsCriteria = ReportTablePeer::doSelectRS($criteria); + + if ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + $rptUid = $row[0]; } - if ($isBPMN) { - $_POST['form']['PRO_UID'] = $sProUid; - $_POST['form']['REP_TAB_UID'] = $sRepTabUid; - $_POST['form']['REP_TAB_NAME'] = $tableName; - $_POST['form']['REP_TAB_TYPE'] = "NORMAL"; - $_POST['form']['REP_TAB_GRID'] = ''; - $_POST['form']['REP_TAB_CONNECTION'] = 'wf'; - $_POST['form']['REP_TAB_CREATE_DATE'] = date("Y-m-d H:i:s"); - $_POST['form']['REP_TAB_STATUS'] = 'ACTIVE'; - $_POST['form']['REP_TAB_TITLE'] = $title; - } else { - $_POST['form']['PRO_UID'] = $sProUid; - $_POST['form']['REP_TAB_UID'] = $sRepTabUid; - $_POST['form']['REP_TAB_NAME'] = $tableName; - $_POST['form']['REP_TAB_TYPE'] = "GRID"; - $_POST['form']['REP_TAB_GRID'] = $sProUid . "-" . $sDynUid; - $_POST['form']['REP_TAB_CONNECTION'] = 'wf'; - $_POST['form']['REP_TAB_CREATE_DATE'] = date("Y-m-d H:i:s"); - $_POST['form']['REP_TAB_STATUS'] = 'ACTIVE'; - $_POST['form']['REP_TAB_TITLE'] = $title; + $rpts = new ReportTables(); + if ($rptUid != null) { + $rpts->deleteReportTable($rptUid); } - $_POST['form']['FIELDS'] = array(); - - G::LoadClass("reportTables"); - - $oReportTable = new ReportTable(); - //if (!isset($_POST['form']['REP_TAB_CONNECTION'])) { - // $_POST['form']['REP_TAB_CONNECTION'] = 'report'; - //} - if ($_POST['form']['REP_TAB_UID'] != "") { - $aReportTable = $oReportTable->load($_POST['form']['REP_TAB_UID']); - $sOldTableName = $aReportTable['REP_TAB_NAME']; - $sOldConnection = $aReportTable['REP_TAB_CONNECTION']; - } else { - - $sOldTableName = $_POST['form']['REP_TAB_NAME']; - $sOldConnection = $_POST['form']['REP_TAB_CONNECTION']; - $_POST['form']['REP_TAB_TYPE'] = 'NORMAL'; - $oReportTable->create($_POST['form']); - $_POST['form']['REP_TAB_UID'] = $oReportTable->getRepTabUid(); - } - - $_POST['form']['REP_TAB_TYPE'] = 'NORMAL'; - $oReportTable->update($_POST['form']); - - $oReportVar = new ReportVar(); - $oReportTables = new ReportTables(); - $oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']); - - $aFields = array(); - - if ($isBPMN) { - G::LoadClass("pmDynaform"); - $pmDyna = new pmDynaform(array()); - $pmDyna->fields["CURRENT_DYNAFORM"] = $sDynUid; - $dataDyna = $pmDyna->getDynaform(); - $json = G::json_decode($dataDyna["DYN_CONTENT"]); - $fieldsDyna = $json->items[0]->items; - foreach ($fieldsDyna as $value) { - $_POST['form']['FIELDS'][] = $value[0]->name . '-' . $value[0]->type; - } - } else { - $aAux = explode('-', $_POST['form']['REP_TAB_GRID']); - global $G_FORM; - - require_once "classes/class.formBatchRouting.php"; - - $G_FORM = new FormBatchRouting($_POST["form"]["PRO_UID"] . PATH_SEP . $aAux[1], PATH_DYNAFORM, SYS_LANG, false); - $aAux = $G_FORM->getVars(false); - - foreach ($aAux as $aField) { - $_POST['form']['FIELDS'][] = $aField['sName'] . '-' . $aField['sType']; - } - } - - $aFieldsClases = array(); - $i = 1; - $aFieldsClases[$i]['FLD_NAME'] = 'APP_UID'; - $aFieldsClases[$i]['FLD_NULL'] = 'off'; - $aFieldsClases[$i]['FLD_KEY'] = 'on'; - $aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; - $aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; - $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; - $aFieldsClases[$i]['FLD_SIZE'] = 32; - $i++; - $aFieldsClases[$i]['FLD_NAME'] = 'APP_NUMBER'; - $aFieldsClases[$i]['FLD_NULL'] = 'off'; - $aFieldsClases[$i]['FLD_KEY'] = 'on'; - $aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; - $aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; - $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; - $aFieldsClases[$i]['FLD_SIZE'] = 255; - - foreach ($_POST['form']['FIELDS'] as $sField) { - $aField = explode('-', $sField); - $i++; - $aFieldsClases[$i]['FLD_NAME'] = $aField[0]; - $aFieldsClases[$i]['FLD_NULL'] = 'off'; - $aFieldsClases[$i]['FLD_KEY'] = 'off'; - $aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; - $aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; - - switch ($aField[1]) { - case 'currency': - case 'percentage': - $sType = 'number'; - $aFieldsClases[$i]['FLD_TYPE'] = 'FLOAT' ; - $aFieldsClases[$i]['FLD_SIZE'] = 255; - break; - case 'text': - case 'password': - case 'dropdown': - case 'yesno': - case 'checkbox': - case 'radiogroup': - case 'hidden': - case "link": - $sType = 'char'; - $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; - $aFieldsClases[$i]['FLD_SIZE'] = 255; - break; - case 'textarea': - $sType = 'text'; - $aFieldsClases[$i]['FLD_TYPE'] = 'TEXT' ; - $aFieldsClases[$i]['FLD_SIZE'] = ''; - break; - case 'date': - $sType = 'date'; - $aFieldsClases[$i]['FLD_TYPE'] = 'DATE' ; - $aFieldsClases[$i]['FLD_SIZE'] = ''; - break; - default: - $sType = 'char'; - $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; - $aFieldsClases[$i]['FLD_SIZE'] = 255; - break; - } - - $oReportVar->create(array('REP_TAB_UID' => $_POST['form']['REP_TAB_UID'], - 'PRO_UID' => $_POST['form']['PRO_UID'], - 'REP_VAR_NAME' => $aField[0], - 'REP_VAR_TYPE' => $sType)); - $aFields[] = array('sFieldName' => $aField[0], 'sType' => $sType); - } - - $_POST['form']['REP_TAB_TYPE'] = "NORMAL"; - $oReportTables->dropTable($sOldTableName, $sOldConnection); - $oReportTables->createTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields); - $oReportTables->populateTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields, $_POST['form']['PRO_UID'], ''); - - $sRepTabUid = $_POST['form']['REP_TAB_UID']; - - //clases - } else { - $oReportTables = new ReportTables(); - if ($sRepTabUid != "") { - $oReportTables->deleteReportTable($sRepTabUid); - } - $sRepTabUid = ""; - } - - require_once ("classes/model/CaseConsolidatedPeer.php"); - require_once ("classes/model/CaseConsolidated.php"); - - $oCaseConsolidated = CaseConsolidatedPeer::retrieveByPK($sTasUid); - - if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') { - $oCaseConsolidated = new CaseConsolidated(); - $oCaseConsolidated->setTasUid($sTasUid); - } - - if ($sStatus == '1') { - $oCaseConsolidated->setConStatus('ACTIVE'); - } else { - $oCaseConsolidated->setConStatus('INACTIVE'); - } - - $oCaseConsolidated->setDynUid($sDynUid); - $oCaseConsolidated->setRepTabUid($sRepTabUid); - $oCaseConsolidated->save(); - - $sClassName = $tableName;//'__' . $sTasUid; - - if ($sStatus == '1') { - //$oAdditionalTables->createPropelClasses($sTableName, $sClassName, $aFields, $sAddTabUid) - //require_once 'classes/model/AdditionalTables.php'; - //$oAdditionalTables = new AdditionalTables(); - $oAdditionalTables = new AdditionalTables();//AdditionalTablesConsolidated - - $oAdditionalTables->createPropelClasses($tableName, $sClassName, $aFieldsClases, $sTasUid); - } else { + $sClassName = $tableName; $sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; + @unlink($sPath . $sClassName . '.php'); @unlink($sPath . $sClassName . 'Peer.php'); @unlink($sPath . PATH_SEP . 'map' . PATH_SEP . $sClassName . 'MapBuilder.php'); @unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . '.php'); @unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . 'Peer.php'); + $sRepTabUid = ''; } + $_POST['form']['PRO_UID'] = $sProUid; + $_POST['form']['REP_TAB_UID'] = $sRepTabUid; + $_POST['form']['REP_TAB_NAME'] = $tableName; + $_POST['form']['REP_TAB_TYPE'] = "NORMAL"; + $_POST['form']['REP_TAB_GRID'] = ''; + $_POST['form']['REP_TAB_CONNECTION'] = 'wf'; + $_POST['form']['REP_TAB_CREATE_DATE'] = date("Y-m-d H:i:s"); + $_POST['form']['REP_TAB_STATUS'] = 'ACTIVE'; + $_POST['form']['REP_TAB_TITLE'] = $title; + $_POST['form']['FIELDS'] = array(); + G::LoadClass("reportTables"); + $oReportTable = new ReportTable(); + + $sOldTableName = $_POST['form']['REP_TAB_NAME']; + $sOldConnection = $_POST['form']['REP_TAB_CONNECTION']; + $oReportTable->create($_POST['form']); + + $_POST['form']['REP_TAB_UID'] = $oReportTable->getRepTabUid(); + + $oReportVar = new ReportVar(); + $oReportTables = new ReportTables(); + $oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']); + + $aFields = array(); + G::LoadClass("pmDynaform"); + $pmDyna = new pmDynaform(array()); + $pmDyna->fields["CURRENT_DYNAFORM"] = $sDynUid; + $dataDyna = $pmDyna->getDynaform(); + $json = G::json_decode($dataDyna["DYN_CONTENT"]); + $fieldsDyna = $json->items[0]->items; + foreach ($fieldsDyna as $value) { + $_POST['form']['FIELDS'][] = $value[0]->name . '-' . $value[0]->type; + } + + $aFieldsClases = array(); + $i = 1; + $aFieldsClases[$i]['FLD_NAME'] = 'APP_UID'; + $aFieldsClases[$i]['FLD_NULL'] = 'off'; + $aFieldsClases[$i]['FLD_KEY'] = 'on'; + $aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; + $aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; + $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; + $aFieldsClases[$i]['FLD_SIZE'] = 32; + $i++; + $aFieldsClases[$i]['FLD_NAME'] = 'APP_NUMBER'; + $aFieldsClases[$i]['FLD_NULL'] = 'off'; + $aFieldsClases[$i]['FLD_KEY'] = 'on'; + $aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; + $aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; + $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; + $aFieldsClases[$i]['FLD_SIZE'] = 255; + + foreach ($_POST['form']['FIELDS'] as $sField) { + $aField = explode('-', $sField); + if ($aField[1] == 'title' || $aField[1] == 'submit') { + continue; + } + $i++; + $aFieldsClases[$i]['FLD_NAME'] = $aField[0]; + $aFieldsClases[$i]['FLD_NULL'] = 'off'; + $aFieldsClases[$i]['FLD_KEY'] = 'off'; + $aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; + $aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; + + switch ($aField[1]) { + case 'currency': + case 'percentage': + $sType = 'number'; + $aFieldsClases[$i]['FLD_TYPE'] = 'FLOAT' ; + $aFieldsClases[$i]['FLD_SIZE'] = 255; + break; + case 'text': + case 'password': + case 'dropdown': + case 'yesno': + case 'checkbox': + case 'radiogroup': + case 'hidden': + case "link": + $sType = 'char'; + $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; + $aFieldsClases[$i]['FLD_SIZE'] = 255; + break; + case 'textarea': + $sType = 'text'; + $aFieldsClases[$i]['FLD_TYPE'] = 'TEXT' ; + $aFieldsClases[$i]['FLD_SIZE'] = ''; + break; + case 'date': + $sType = 'date'; + $aFieldsClases[$i]['FLD_TYPE'] = 'DATE' ; + $aFieldsClases[$i]['FLD_SIZE'] = ''; + break; + default: + $sType = 'char'; + $aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; + $aFieldsClases[$i]['FLD_SIZE'] = 255; + break; + } + + $oReportVar->create(array('REP_TAB_UID' => $_POST['form']['REP_TAB_UID'], + 'PRO_UID' => $_POST['form']['PRO_UID'], + 'REP_VAR_NAME' => $aField[0], + 'REP_VAR_TYPE' => $sType)); + $aFields[] = array('sFieldName' => $aField[0], 'sType' => $sType); + } + + $_POST['form']['REP_TAB_TYPE'] = "NORMAL"; + $oReportTables->dropTable($sOldTableName, $sOldConnection); + $oReportTables->createTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields); + $oReportTables->populateTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields, $_POST['form']['PRO_UID'], ''); + $sRepTabUid = $_POST['form']['REP_TAB_UID']; + + $oCaseConsolidated = CaseConsolidatedPeer::retrieveByPK($sTasUid); + if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') { + $oCaseConsolidated = new CaseConsolidated(); + $oCaseConsolidated->setTasUid($sTasUid); + } + + $oCaseConsolidated->setConStatus('ACTIVE'); + $oCaseConsolidated->setDynUid($sDynUid); + $oCaseConsolidated->setRepTabUid($sRepTabUid); + $oCaseConsolidated->save(); + + $sClassName = $tableName; + $oAdditionalTables = new AdditionalTables(); + $oAdditionalTables->createPropelClasses($tableName, $sClassName, $aFieldsClases, $sTasUid); } } diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 20a83527e..6befabc56 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -1464,6 +1464,9 @@ class processMap case 7: $sFilename = 'tasks/tasks_Notifications.xml'; break; + case 8: + $sFilename = 'tasks/tasks_Consolidated.xml'; + break; default: //if the $iForm is not one of the defaults then search under Plugins for an extended property. By JHL Jan 18, 2011 $oPluginRegistry = & PMPluginRegistry::getSingleton(); @@ -1541,6 +1544,55 @@ class processMap } } + if ($iForm == 8) { + $oCaseConsolidated = CaseConsolidatedPeer::retrieveByPK($_SESSION["cDhTajE2T2lxSkhqMzZUTXVacWYyNcKwV3A4eWYybDdyb1p3"]["TAS_UID"]); + if ((is_object($oCaseConsolidated)) && get_class($oCaseConsolidated) == "CaseConsolidated") { + require_once ("classes/model/ReportTable.php"); + + $aFields["CON_STATUS"] = $oCaseConsolidated->getConStatus(); + $aFields["DYN_UID"] = $oCaseConsolidated->getDynUid(); + $aFields["REP_TAB_UID"] = $oCaseConsolidated->getRepTabUid(); + + $oReportTables = new ReportTable(); + $oReportTables = $oReportTables->load($aFields["REP_TAB_UID"]); + if (count($oReportTables)>0) { + if ($oReportTables['REP_TAB_STATUS'] == 'ACTIVE') { + $aFields["TABLE_NAME"] = $oReportTables['REP_TAB_NAME']; + $aFields["TITLE"] = $oReportTables['REP_TAB_TITLE']; + } + } + } + $aFields["PRO_UID"] = $_SESSION["PROCESS"]; + $aFields["TAS_UID"] = $_SESSION["cDhTajE2T2lxSkhqMzZUTXVacWYyNcKwV3A4eWYybDdyb1p3"]["TAS_UID"]; + $aFields["SYS_LANG"] = SYS_LANG; + $aFields['INDEX'] = 0; + $aFields["TABLE_NAME_DEFAULT"] = "__" . $aFields["TAS_UID"]; + + $oCriteria = new Criteria("workflow"); + $del = DBAdapter::getStringDelimiter(); + + $oCriteria->setDistinct(); + $oCriteria->addSelectColumn(DynaformPeer::DYN_UID); + $oCriteria->addSelectColumn(ContentPeer::CON_VALUE); + + $aConditions = array(); + $aConditions[] = array(DynaformPeer::DYN_UID, ContentPeer::CON_ID); + $aConditions[] = array(ContentPeer::CON_CATEGORY, $del . "DYN_TITLE" . $del); + $aConditions[] = array(ContentPeer::CON_LANG, $del . "en" . $del); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + + $oCriteria->add(DynaformPeer::PRO_UID, $_SESSION["PROCESS"]); + $oCriteria->add(DynaformPeer::DYN_TYPE, "grid"); + + $oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE); + + $numRows = DynaformPeer::doCount($oCriteria); + if ($numRows == 0) { + echo "