function RetPayPartDoc($ReturnMode = false, $pdo = null) { if (empty($_POST["PayID"])) { echo Response::createObjectiveResponse(false, "درخواست نامعتبر"); die; } $PayID = $_POST["PayID"]; $PayObj = new LON_payments($PayID); //------------- check for Acc doc confirm ------------------- $temp = PdoDataAccess::runquery("select DocStatus \r\n\t\tfrom ACC_DocItems join ACC_docs using(DocID) where SourceType=" . DOCTYPE_LOAN_PAYMENT . " AND \r\n\t\tDocID=?", array($PayObj->DocID)); if (count($temp) == 0) { echo Response::createObjectiveResponse(false, "سند مربوطه یافت نشد"); die; } if (count($temp) > 0 && $temp[0]["DocStatus"] != "RAW") { echo Response::createObjectiveResponse(false, "سند حسابداری این شرایط تایید شده است. و قادر به برگشت نمی باشید"); die; } //------- check for being first doc and there excists docs after ----------- $CostCode_todiee = COSTID_Todiee; $temp = PdoDataAccess::runquery("select * from ACC_DocItems \r\n\t\twhere CostID=? AND CreditorAmount>0 AND DocID=?", array($CostCode_todiee, $PayObj->DocID)); if (count($temp) > 0) { $dt = PdoDataAccess::runquery("select * from ACC_DocItems where CostID=? AND DebtorAmount>0 \r\n\t\t\tAND SourceType=? AND SourceID=?", array($CostCode_todiee, DOCTYPE_LOAN_PAYMENT, $PayObj->RequestID)); if (count($dt) > 0) { echo Response::createObjectiveResponse(false, "به دلیل اینکه این سند اولین سند پرداخت می باشد و بعد از آن اسناد پرداخت دیگری صادر شده است" . " قادر به برگشت نمی باشید. <br> برای برگشت ابتدا کلیه اسناد بعدی را برگشت بزنید"); die; } } //----------------------------------------------------------- if ($pdo == null) { $pdo = PdoDataAccess::getPdoObject(); $pdo->beginTransaction(); } if (!ReturnPayPartDoc($PayObj->DocID, $pdo, !$ReturnMode)) { if ($ReturnMode) { return false; } $pdo->rollBack(); print_r(ExceptionHandler::PopAllExceptions()); echo Response::createObjectiveResponse(false, PdoDataAccess::GetExceptionsToString()); die; } $PayObj->DocID = 0; if (!$PayObj->Edit($pdo)) { if ($ReturnMode) { return false; } $pdo->rollBack(); echo Response::createObjectiveResponse(false, PdoDataAccess::GetExceptionsToString()); die; } ChangeStatus($PayObj->RequestID, "90", "", true, $pdo); if ($ReturnMode) { return true; } $pdo->commit(); echo Response::createObjectiveResponse(true, ""); die; }