コード例 #1
0
ファイル: wfm.data.php プロジェクト: jafarkhani/rtfund
function ChangeStatus()
{
    $pdo = PdoDataAccess::getPdoObject();
    $pdo->beginTransaction();
    $mode = $_REQUEST["mode"];
    $SourceObj = new WFM_FlowRows($_POST["RowID"]);
    $newObj = new WFM_FlowRows();
    $newObj->FlowID = $SourceObj->FlowID;
    $newObj->ObjectID = $SourceObj->ObjectID;
    $newObj->PersonID = $_SESSION["USER"]["PersonID"];
    $newObj->ActionType = $mode;
    $newObj->ActionDate = PDONOW;
    $newObj->ActionComment = $_POST["ActionComment"];
    //.............................................
    if (isset($_POST["StepID"])) {
        $StepID = $_POST["StepID"];
    } else {
        $StepID = $SourceObj->ActionType == "CONFIRM" ? $SourceObj->_StepID + 1 : $SourceObj->_StepID - 1;
    }
    $dt = PdoDataAccess::runquery("select StepRowID, StepDesc from WFM_FlowSteps \r\n\t\twhere IsActive='YES' AND FlowID=? AND StepID=?", array($newObj->FlowID, $StepID));
    if (count($dt) == 0) {
        echo Response::createObjectiveResponse(false, "1");
        die;
    }
    $newObj->StepRowID = $dt[0]["StepRowID"];
    $newObj->StepDesc = $dt[0]["StepDesc"];
    //.............................................
    if ($SourceObj->ActionType == "CONFIRM") {
        $dt = PdoDataAccess::runquery("select Max(StepID) maxStepID from WFM_FlowSteps \r\n\t\t\twhere IsActive='YES' AND FlowID=? AND IsOuter='NO'", array($newObj->FlowID));
        if ($dt[0][0] == $StepID) {
            $newObj->IsEnded = "YES";
        }
    }
    //.............................................
    $result = $newObj->AddFlowRow($StepID, $pdo);
    if (!$result) {
        $pdo->rollBack();
        echo Response::createObjectiveResponse($result, "2");
        die;
    }
    if ($newObj->IsEnded == "YES") {
        $result = WFM_FlowRows::EndObjectFlow($newObj->FlowID, $newObj->ObjectID, $pdo);
    }
    if (!$result) {
        $pdo->rollBack();
        echo Response::createObjectiveResponse($result, "3");
        die;
    }
    $pdo->commit();
    echo Response::createObjectiveResponse($result, "");
    die;
}