BUG 12253 "Cuando se borra un caso por PM, este caso no..." SOLVED
- Cuando se borra un caso por PM, este caso no se borra en los PM Reportes. - Problema resuelto, cuando se ejecuta un proceso que tenga Report Tables, al borrar el caso tambien se eliminara los registros de los Report Tables. * Available from version ProcessMaker-2.5.2-testing.1
This commit is contained in:
@@ -6554,4 +6554,63 @@ class Cases
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function reportTableDeleteRecord($applicationUid)
|
||||||
|
{
|
||||||
|
$criteria1 = new Criteria("workflow");
|
||||||
|
|
||||||
|
//SELECT
|
||||||
|
$criteria1->addSelectColumn(ApplicationPeer::PRO_UID);
|
||||||
|
|
||||||
|
//FROM
|
||||||
|
|
||||||
|
//WHERE
|
||||||
|
$criteria1->add(ApplicationPeer::APP_UID, $applicationUid);
|
||||||
|
|
||||||
|
//QUERY
|
||||||
|
$rsCriteria1 = ApplicationPeer::doSelectRS($criteria1);
|
||||||
|
$rsCriteria1->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
|
||||||
|
$rsCriteria1->next();
|
||||||
|
$row1 = $rsCriteria1->getRow();
|
||||||
|
|
||||||
|
$processUid = $row1["PRO_UID"];
|
||||||
|
|
||||||
|
$criteria2 = new Criteria("workflow");
|
||||||
|
|
||||||
|
//SELECT
|
||||||
|
$criteria2->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
||||||
|
|
||||||
|
//FROM
|
||||||
|
|
||||||
|
//WHERE
|
||||||
|
|
||||||
|
$criteria2->add(AdditionalTablesPeer::PRO_UID, $processUid);
|
||||||
|
|
||||||
|
//QUERY
|
||||||
|
$rsCriteria2 = AdditionalTablesPeer::doSelectRS($criteria2);
|
||||||
|
$rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
|
||||||
|
G::LoadClass("pmTable");
|
||||||
|
$pmTable = new PmTable();
|
||||||
|
|
||||||
|
while ($rsCriteria2->next()) {
|
||||||
|
try {
|
||||||
|
$row2 = $rsCriteria2->getRow();
|
||||||
|
$tableName = $row2["ADD_TAB_NAME"];
|
||||||
|
$pmTableName = $pmTable->toCamelCase($tableName);
|
||||||
|
|
||||||
|
//DELETE
|
||||||
|
require_once (PATH_WORKSPACE . "classes" . PATH_SEP . "$pmTableName.php");
|
||||||
|
|
||||||
|
$criteria3 = new Criteria("workflow");
|
||||||
|
|
||||||
|
eval("\$criteria3->add(" . $pmTableName . "Peer::APP_UID, \$applicationUid);");
|
||||||
|
eval($pmTableName . "Peer::doDelete(\$criteria3);");
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -864,58 +864,5 @@ class PmTable
|
|||||||
$m->execute( $args );
|
$m->execute( $args );
|
||||||
$m->runBuild();
|
$m->runBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function reportTableDeleteRecord($applicationUid)
|
|
||||||
{
|
|
||||||
$criteria1 = new Criteria("workflow");
|
|
||||||
|
|
||||||
//SELECT
|
|
||||||
$criteria1->addSelectColumn(ApplicationPeer::PRO_UID);
|
|
||||||
|
|
||||||
//FROM
|
|
||||||
|
|
||||||
//WHERE
|
|
||||||
$criteria1->add(ApplicationPeer::APP_UID, $applicationUid);
|
|
||||||
|
|
||||||
//QUERY
|
|
||||||
$rsCriteria1 = ApplicationPeer::doSelectRS($criteria1);
|
|
||||||
$rsCriteria1->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
||||||
|
|
||||||
while ($rsCriteria1->next()) {
|
|
||||||
$row1 = $rsCriteria1->getRow();
|
|
||||||
$processUid = $row1["PRO_UID"];
|
|
||||||
|
|
||||||
$criteria2 = new Criteria("workflow");
|
|
||||||
|
|
||||||
//SELECT
|
|
||||||
$criteria2->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME);
|
|
||||||
|
|
||||||
//FROM
|
|
||||||
|
|
||||||
//WHERE
|
|
||||||
$criteria2->add(AdditionalTablesPeer::PRO_UID, $processUid);
|
|
||||||
|
|
||||||
//QUERY
|
|
||||||
$rsCriteria2 = AdditionalTablesPeer::doSelectRS($criteria2);
|
|
||||||
$rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
||||||
|
|
||||||
while ($rsCriteria2->next()) {
|
|
||||||
$row2 = $rsCriteria2->getRow();
|
|
||||||
$tableName = $row2["ADD_TAB_NAME"];
|
|
||||||
|
|
||||||
$tableName = str_replace("_", " ", $tableName);
|
|
||||||
$tableName = str_replace(" ", "", ucwords(strtolower($tableName)));
|
|
||||||
|
|
||||||
//DELETE
|
|
||||||
require_once (PATH_WORKSPACE . "classes" . PATH_SEP . "$tableName.php");
|
|
||||||
|
|
||||||
$criteria3 = new Criteria("workflow");
|
|
||||||
|
|
||||||
eval("\$criteria3->add(" . $tableName . "Peer::APP_UID, \$applicationUid);");
|
|
||||||
eval($tableName . "Peer::doDelete(\$criteria3);");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,12 +61,8 @@ class adhocUserProxy extends HttpProxyController
|
|||||||
$caseData = $app->load( $applicationUID );
|
$caseData = $app->load( $applicationUID );
|
||||||
$data['APP_NUMBER'] = $caseData['APP_NUMBER'];
|
$data['APP_NUMBER'] = $caseData['APP_NUMBER'];
|
||||||
|
|
||||||
G::LoadClass("pmTable");
|
|
||||||
|
|
||||||
$pmTable = new PmTable();
|
|
||||||
$pmTable->reportTableDeleteRecord($applicationUID);
|
|
||||||
|
|
||||||
$oCase = new Cases();
|
$oCase = new Cases();
|
||||||
|
$oCase->reportTableDeleteRecord($applicationUID);
|
||||||
$oCase->removeCase( $applicationUID );
|
$oCase->removeCase( $applicationUID );
|
||||||
|
|
||||||
$this->success = true;
|
$this->success = true;
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ try {
|
|||||||
$pmTable = new PmTable();
|
$pmTable = new PmTable();
|
||||||
|
|
||||||
foreach ($ids as $id) {
|
foreach ($ids as $id) {
|
||||||
$pmTable->reportTableDeleteRecord($id);
|
$oCase->reportTableDeleteRecord($id);
|
||||||
$oCase->removeCase( $id );
|
$oCase->removeCase( $id );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user