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; }
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; }