Beispiel #1
0
function SendLetter()
{
    SaveLetter(false);
    $LetterID = $_POST["LetterID"];
    $toPersonArr = array();
    $pdo = PdoDataAccess::getPdoObject();
    $pdo->beginTransaction();
    if (isset($_POST["SendID"]) && $_POST["SendID"] * 1 > 0) {
        $obj = new OFC_send();
        $obj->SendID = $_POST["SendID"];
        $obj->IsSeen = "YES";
        $obj->EditSend($pdo);
    }
    $arr = array_keys($_POST);
    foreach ($arr as $key) {
        if (strpos($key, "ToPersonID") === false) {
            continue;
        }
        $toPersonID = $_POST[$key];
        if (isset($toPersonArr[$toPersonID]) || $toPersonID * 1 == 0) {
            continue;
        }
        $toPersonArr[$toPersonID] = true;
        $index = preg_split("/_/", $key);
        $index = $index[0];
        $obj = new OFC_send();
        $obj->LetterID = $LetterID;
        $obj->FromPersonID = $_SESSION["USER"]["PersonID"];
        $obj->ToPersonID = $toPersonID;
        $obj->SendDate = PDONOW;
        $obj->SendType = $_POST[$index . "_SendType"];
        $obj->ResponseTimeout = $_POST[$index . "_ResponseTimeout"];
        $obj->FollowUpDate = $_POST[$index . "_FollowUpDate"];
        $obj->IsUrgent = $_POST[$index . "_IsUrgent"];
        $obj->IsCopy = isset($_POST[$index . "_IsCopy"]) ? "YES" : "NO";
        $obj->SendComment = $_POST[$index . "_SendComment"];
        $obj->SendComment = $obj->SendComment == "شرح ارجاع" ? "" : $obj->SendComment;
        if (!$obj->AddSend($pdo)) {
            $pdo->rollBack();
            echo Response::createObjectiveResponse(false, "");
            die;
        }
    }
    $pdo->commit();
    echo Response::createObjectiveResponse(true, "");
    die;
}
Beispiel #2
0
function SaveOperation()
{
    $obj = new NTC_operations();
    PdoDataAccess::FillObjectByArray($obj, $_POST);
    $obj->GroupLetter = isset($_POST["GroupLetter"]) ? "YES" : "NO";
    $pdo = PdoDataAccess::getPdoObject();
    $pdo->beginTransaction();
    if (empty($obj->OperationID)) {
        $obj->OperationDate = PDONOW;
        $result = $obj->Add($pdo);
    } else {
        $result = $obj->Edit($pdo);
    }
    require_once "phpExcelReader.php";
    $data = new Spreadsheet_Excel_Reader();
    $data->setOutputEncoding('utf-8');
    $data->setRowColOffset(0);
    $data->read($_FILES["PersonFile"]["tmp_name"]);
    for ($i = 0; $i < $data->sheets[0]['numRows']; $i++) {
        if (!empty($data->sheets[0]['cells'][$i][0])) {
            $PersonID = $data->sheets[0]['cells'][$i][0];
            $dt = PdoDataAccess::runquery("select PersonID from BSC_persons where PersonID=?", array($PersonID));
            if (count($dt) > 0) {
                $PersonObj = new NTC_persons();
                $PersonObj->OperationID = $obj->OperationID;
                $PersonObj->PersonID = $PersonID;
                for ($j = 1; $j < count($data->sheets[0]['cells'][$i]); $j++) {
                    eval("\$PersonObj->col{$j} = '" . $data->sheets[0]['cells'][$i][$j] . "';");
                }
                $PersonObj->Add($pdo);
            }
        }
    }
    $dt = NTC_persons::Get(" AND OperationID=?", array($obj->OperationID), $pdo);
    if ($dt->rowCount() == 0) {
        $pdo->rollBack();
        echo Response::createObjectiveResponse(false, "در فایل ارسالی هیچ فرد معتبری یافت نشد");
        die;
    }
    $dt = $dt->fetchAll();
    //----------- create letter -------------
    if ($obj->SendType == "LETTER" && $obj->GroupLetter == "YES") {
        $LetterObj = new OFC_letters();
        $LetterObj->LetterType = "INNER";
        $LetterObj->LetterTitle = $obj->title;
        $LetterObj->LetterDate = PDONOW;
        $LetterObj->RegDate = PDONOW;
        $LetterObj->PersonID = $_SESSION["USER"]["PersonID"];
        $LetterObj->context = $obj->context;
        if (!$LetterObj->AddLetter($pdo)) {
            ExceptionHandler::PushException("خطا در ثبت  نامه");
        }
    }
    //---------------------------------------
    foreach ($dt as $row) {
        $context = $obj->context;
        for ($i = 1; $i < 10; $i++) {
            $context = preg_replace("/\\[col" . $i . "\\]/", $row["col" . $i], $context);
        }
        switch ($obj->SendType) {
            case "SMS":
                break;
                //------------------------------------------------------------------
            //------------------------------------------------------------------
            case "EMAIL":
                $email = $row["email"];
                if ($email == "") {
                    ExceptionHandler::PushException("فاقد ایمیل");
                    continue;
                }
                $result = SendEmail($email, $obj->title, $context);
                if (!$result) {
                    ExceptionHandler::PushException("خطا در ارسال ایمیل");
                }
                break;
                //------------------------------------------------------------------
            //------------------------------------------------------------------
            case "LETTER":
                if ($obj->GroupLetter == "NO") {
                    $LetterObj = new OFC_letters();
                    $LetterObj->LetterType = "INNER";
                    $LetterObj->LetterTitle = $obj->title;
                    $LetterObj->LetterDate = PDONOW;
                    $LetterObj->RegDate = PDONOW;
                    $LetterObj->PersonID = $_SESSION["USER"]["PersonID"];
                    $LetterObj->context = $context;
                    $LetterObj->AddLetter($pdo);
                    $SendObj = new OFC_send();
                    $SendObj->LetterID = $LetterObj->LetterID;
                    $SendObj->FromPersonID = $LetterObj->PersonID;
                    $SendObj->ToPersonID = $row["PersonID"];
                    $SendObj->SendDate = PDONOW;
                    $SendObj->SendType = 1;
                    if (!$SendObj->AddSend($pdo)) {
                        ExceptionHandler::PushException("خطا در ثبت  نامه");
                    }
                } else {
                    $Cobj = new OFC_LetterCustomers();
                    $Cobj->LetterID = $LetterObj->LetterID;
                    $Cobj->PersonID = $row["PersonID"];
                    $Cobj->IsHide = "NO";
                    $Cobj->LetterTitle = $obj->title;
                    if (!$Cobj->Add($pdo)) {
                        ExceptionHandler::PushException("خطا در ثبت ذینفع نامه");
                    }
                }
                break;
                //------------------------------------------------------------------
        }
        if (ExceptionHandler::GetExceptionCount() == 0) {
            $PObj = new NTC_persons();
            $PObj->RowID = $row["RowID"];
            $PObj->IsSuccess = "YES";
            if ($obj->SendType == "LETTER") {
                $PObj->LetterID = $LetterObj->LetterID;
            }
            $PObj->Edit($pdo);
        }
    }
    $pdo->commit();
    //print_r(ExceptionHandler::PopAllExceptions());
    echo Response::createObjectiveResponse($result, ExceptionHandler::GetExceptionsToString());
    die;
}