示例#1
0
function SaveLetter($dieing = true)
{
    $Letter = new OFC_letters();
    pdoDataAccess::FillObjectByArray($Letter, $_POST);
    if ($Letter->RefLetterID != "") {
        $obj = new OFC_letters($Letter->RefLetterID);
        if (empty($obj->LetterID)) {
            Response::createObjectiveResponse(false, "شماره نامه عطف قابل بازیابی نمی باشد");
            die;
        }
    }
    if ($Letter->LetterID == '') {
        $Letter->PersonID = $_SESSION["USER"]["PersonID"];
        $Letter->LetterDate = PDONOW;
        $Letter->RegDate = PDONOW;
        $res = $Letter->AddLetter();
    } else {
        $res = $Letter->EditLetter();
    }
    if (!empty($_FILES["PageFile"]["tmp_name"])) {
        $st = preg_split("/\\./", $_FILES['PageFile']['name']);
        $extension = strtolower($st[count($st) - 1]);
        if (in_array($extension, array("jpg", "jpeg", "gif", "png", "pdf")) === false) {
            Response::createObjectiveResponse(false, "فرمت فایل ارسالی نامعتبر است");
            die;
        }
        $dt = DMS_documents::SelectAll("ObjectType='letter' AND ObjectID=?", array($Letter->LetterID));
        if (count($dt) == 0) {
            $obj = new DMS_documents();
            $obj->DocType = 0;
            $obj->ObjectType = "letter";
            $obj->ObjectID = $Letter->LetterID;
            $obj->AddDocument();
            $DocumentID = $obj->DocumentID;
        } else {
            $DocumentID = $dt[0]["DocumentID"];
        }
        //..............................................
        $obj2 = new DMS_DocFiles();
        $obj2->DocumentID = $DocumentID;
        $obj2->PageNo = PdoDataAccess::GetLastID("DMS_DocFiles", "PageNo", "DocumentID=?", array($DocumentID)) + 1;
        $obj2->FileType = $extension;
        $obj2->FileContent = substr(fread(fopen($_FILES['PageFile']['tmp_name'], 'r'), $_FILES['PageFile']['size']), 0, 200);
        $obj2->AddPage();
        $fp = fopen(getenv("DOCUMENT_ROOT") . "/storage/documents/" . $obj2->RowID . "." . $extension, "w");
        fwrite($fp, substr(fread(fopen($_FILES['PageFile']['tmp_name'], 'r'), $_FILES['PageFile']['size']), 200));
        fclose($fp);
    }
    if ($dieing) {
        Response::createObjectiveResponse($res, $Letter->GetExceptionCount() != 0 ? $Letter->popExceptionDescription() : $Letter->LetterID);
        die;
    }
    return true;
}
示例#2
0
function SaveDocument()
{
    foreach ($_FILES as $file) {
        if (!empty($file["tmp_name"])) {
            $st = preg_split("/\\./", $file["name"]);
            $extension = strtolower($st[count($st) - 1]);
            if (in_array($extension, array("jpg", "jpeg", "gif", "png", "pdf", "xls", "xlsx", "csv", "doc", "docx")) === false) {
                Response::createObjectiveResponse(false, "فرمت فایل ارسالی نامعتبر است");
                die;
            }
        }
    }
    //..............................................
    $obj = new DMS_documents();
    PdoDataAccess::FillObjectByArray($obj, $_POST);
    $obj->ObjectID = $_POST["ObjectID"];
    $obj->ObjectID2 = isset($_POST["ObjectID2"]) ? $_POST["ObjectID2"] : "0";
    $obj->ObjectType = $_POST["ObjectType"];
    if (empty($obj->DocumentID)) {
        $result = $obj->AddDocument();
    } else {
        $oldObj = new DMS_documents($obj->DocumentID);
        if ($oldObj->IsConfirm == "YES") {
            echo Response::createObjectiveResponse(false, "");
            die;
        }
        $obj->IsConfirm = "NOTSET";
        $result = $obj->EditDocument();
    }
    if (!$result) {
        //print_r(ExceptionHandler::PopAllExceptions());
        echo Response::createObjectiveResponse($result, "");
        die;
    }
    //-------------- params ------------------
    PdoDataAccess::runquery("delete from DMS_DocParamValues where DocumentID=?", array($obj->DocumentID));
    $arr = array_keys($_POST);
    foreach ($arr as $key) {
        if (strpos($key, "Param") !== false) {
            PdoDataAccess::runquery("insert into DMS_DocParamValues values(?,?,?)", array($obj->DocumentID, substr($key, 5), $_POST[$key]));
        }
    }
    //----------------------------------------
    foreach ($_FILES as $name => $file) {
        if (empty($file["tmp_name"])) {
            continue;
        }
        $obj2 = new DMS_DocFiles();
        $obj2->DocumentID = $obj->DocumentID;
        $obj2->PageNo = str_replace("FileType_", "", $name);
        $obj2->PageNo = $obj2->PageNo * 1 == 0 ? 1 : $obj2->PageNo;
        $obj2->FileType = $extension;
        $obj2->FileContent = substr(fread(fopen($file['tmp_name'], 'r'), $file['size']), 0, 200);
        $dt = PdoDataAccess::runquery("select RowID from DMS_DocFiles where DocumentID=? AND PageNo=?", array($obj2->DocumentID, $obj2->PageNo));
        foreach ($dt as $row) {
            DMS_DocFiles::DeletePage($row["RowID"]);
        }
        $obj2->AddPage();
        $fp = fopen(getenv("DOCUMENT_ROOT") . "/storage/documents/" . $obj2->RowID . "." . $extension, "w");
        fwrite($fp, substr(fread(fopen($file['tmp_name'], 'r'), $file['size']), 200));
        fclose($fp);
    }
    //print_r(ExceptionHandler::PopAllExceptions());
    echo Response::createObjectiveResponse($result, "");
    die;
}