Beispiel #1
0
function SavePart()
{
    $obj = new LON_ReqParts();
    PdoDataAccess::FillObjectByArray($obj, $_POST);
    $pdo = PdoDataAccess::getPdoObject();
    $pdo->beginTransaction();
    $dt = LON_ReqParts::SelectAll("RequestID=?", array($obj->RequestID));
    $firstPart = count($dt) > 0 ? false : true;
    if ($obj->PartID > 0) {
        $result = $obj->EditPart($pdo);
        if (!$firstPart) {
            $dt = PdoDataAccess::runquery("select max(DocID) from ACC_DocItems join ACC_docs using(DocID)\r\n\t\t\t\twhere DocType=" . DOCTYPE_LOAN_DIFFERENCE . " AND SourceID=? AND SourceID2=?", array($obj->RequestID, $obj->PartID));
            if ($dt[0][0] != "") {
                $result = RegisterDifferncePartsDoc($obj->RequestID, $obj->PartID, $pdo, $dt[0][0]);
                ComputeInstallments($obj->RequestID, true, $pdo);
            }
        }
    } else {
        $result = $obj->AddPart($pdo);
        if (!$firstPart) {
            foreach ($dt as $row) {
                $partobj = new LON_ReqParts($row["PartID"]);
                if ($partobj->IsHistory == "NO") {
                    $partobj->IsHistory = "YES";
                    $partobj->EditPart($pdo);
                    ChangeStatus($partobj->RequestID, "100", $partobj->PartDesc, true, $pdo);
                }
            }
            $result = RegisterDifferncePartsDoc($obj->RequestID, $obj->PartID, $pdo);
            ComputeInstallments($obj->RequestID, true, $pdo);
        }
    }
    if (!$result) {
        print_r(ExceptionHandler::PopAllExceptions());
        echo Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString());
        die;
    }
    $pdo->commit();
    echo Response::createObjectiveResponse(true, "");
    die;
}