Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}