function Equalization_UpdateChecks() { $BankID = $_POST["BankID"]; $result = ""; require_once "phpExcelReader.php"; $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('utf-8'); $data->setRowColOffset(0); $data->read($_FILES["attach"]["tmp_name"]); $pdo = PdoDataAccess::getPdoObject(); $pdo->beginTransaction(); //--------------- add to equalizations ------------- $EqualObj = new ACC_equalizations(); $EqualObj->RegDate = PDONOW; $EqualObj->BankID = $BankID; $EqualObj->ImportFile = fread(fopen($_FILES["attach"]["tmp_name"], 'r'), $_FILES["attach"]["size"]); $EqualObj->Add($pdo); //----------- insert DocHeader -------------------- $obj = new ACC_docs(); $obj->RegDate = PDONOW; $obj->regPersonID = $_SESSION['USER']["PersonID"]; $obj->DocDate = PDONOW; $obj->CycleID = $_SESSION["accounting"]["CycleID"]; $obj->BranchID = $_SESSION["accounting"]["BranchID"]; $obj->DocType = DOCTYPE_EQUALCHECKS; $obj->description = "مغایرت گیری بانکی / به روز رسانی چک ها "; if (!$obj->Add($pdo)) { ExceptionHandler::PushException("خطا در ایجاد سند"); return false; } $successCount = 0; for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { $checkNo = ""; switch ($BankID) { case "4": // اقتصاد نوین $TafsiliID = ""; $TafsiliID2 = ""; if (empty($data->sheets[0]['cells'][$i][1])) { continue; } $cellData = $data->sheets[0]['cells'][$i][1]; if (isset($cellData) && strpos(trim($cellData), "چک عادي ش.") !== false) { $arr = preg_split("/\\//", $cellData); $checkNo = $arr[2]; $checkNo = substr($checkNo, 0, strpos($checkNo, "صندوق پژوهش")); } break; } if ($checkNo == "") { continue; } //---------------- add doc items -------------------- $dt = PdoDataAccess::runquery("\r\n\t\t\tSELECT * FROM ACC_IncomeCheques \r\n\t\t\t\twhere ChequeNo=? AND ChequeStatus<>" . INCOMECHEQUE_VOSUL, array($checkNo), $pdo); if (count($dt) > 0) { $inChequeObj = new ACC_IncomeCheques($dt[0]["IncomeChequeID"]); $inChequeObj->EqualizationID = $EqualObj->EqualizationID; $inChequeObj->ChequeStatus = INCOMECHEQUE_VOSUL; $inChequeObj->Edit($pdo); $temp = $inChequeObj->GetBackPays($pdo); foreach ($temp as $row) { $BackPayObj = new LON_BackPays($row["BackPayID"]); $BackPayObj->EqualizationID = $EqualObj->EqualizationID; $BackPayObj->Edit($pdo); } ACC_IncomeCheques::AddToHistory($inChequeObj->IncomeChequeID, $inChequeObj->ChequeStatus, $pdo); RegisterOuterCheque($obj->DocID, $inChequeObj, $pdo, COSTID_Bank, $TafsiliID, $TafsiliID2); $successCount++; $result .= "شماره چک : " . $checkNo . " به روز رسانی شد <br>"; } else { $result .= "<font color=red> شماره چک : " . $checkNo . " یافت نشد </font><br>"; } } if ($successCount == 0) { $pdo->rollBack(); } else { $pdo->commit(); } echo Response::createObjectiveResponse(true, $successCount == 0 ? "هیچ چکی به روز نگردید" : $result); die; }
function ReturnLatestOperation($returnMode = false) { $OuterObj = new ACC_IncomeCheques($_POST["IncomeChequeID"]); $pdo = PdoDataAccess::getPdoObject(); $pdo->beginTransaction(); $dt = PdoDataAccess::runquery("select max(DocID) docID from ACC_DocItems di\r\n\t\twhere SourceType=" . DOCTYPE_INCOMERCHEQUE . " AND SourceID=?", array($OuterObj->IncomeChequeID), $pdo); $DocID = $dt[0][0]; if ($DocID > 0) { $temp = PdoDataAccess::runquery("select TafsiliID2 from ACC_DocItems where DocID<>? AND \r\n\t\tSourceType=? AND SourceID=? order by DocID desc", array($DocID, DOCTYPE_INCOMERCHEQUE, $OuterObj->IncomeChequeID)); $OuterObj->ChequeStatus = count($temp) > 0 ? $temp[0][0] : INCOMECHEQUE_NOTVOSUL; PdoDataAccess::runquery("delete from ACC_DocItems \r\n\t\t\twhere DocID=? AND SourceType=" . DOCTYPE_INCOMERCHEQUE . " AND SourceID=?", array($DocID, $OuterObj->IncomeChequeID), $pdo); PdoDataAccess::runquery("delete from ACC_DocItems \r\n\t\t\twhere DocID=? AND CostID=?", array($DocID, COSTID_Bank), $pdo); PdoDataAccess::runquery("delete d from ACC_docs d left join ACC_DocItems using(DocID)\r\n\t\t\twhere DocID=? AND ItemID is null", array($DocID), $pdo); } else { $OuterObj->ChequeStatus = INCOMECHEQUE_NOTVOSUL; } $OuterObj->Edit($pdo); //.................................................. ACC_IncomeCheques::AddToHistory($OuterObj->IncomeChequeID, $OuterObj->ChequeStatus, $pdo); //.................................................. $dt = $OuterObj->GetBackPays($pdo); foreach ($dt as $row) { $PayObj = new LON_BackPays($row["BackPayID"]); ReturnCustomerPayDoc($PayObj, $pdo); } //.................................................. if (ExceptionHandler::GetExceptionCount() > 0) { $pdo->rollBack(); print_r(ExceptionHandler::PopAllExceptions()); echo Response::createObjectiveResponse(false, "خطا در برگشت"); die; } $pdo->commit(); if ($returnMode) { return true; } echo Response::createObjectiveResponse(true, ""); die; }