public function deleteorderAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper("layout")->disableLayout();
     $aInputFilters = array("*" => array(new Zend_Filter_StringTrim()));
     $aInputValidators = array("id" => array(new Zend_Validate_Digits()));
     $oModelOrderJournal = new User_Model_OrderJournal();
     $oInput = new Zend_Filter_Input($aInputFilters, $aInputValidators, $_POST);
     $bJson = false;
     $nOrderId = $oInput->getUnescaped("id");
     if ($this->_nUserId == $oModelOrderJournal->getOrderUserId($nOrderId)) {
         if ($oModelOrderJournal->deleteRow($nOrderId)) {
             $bJson = true;
         }
     } else {
         if ($this->_oAuth->hasIdentity() && ($this->_sRoleName == "librarian" || $this->_sRoleName == "administrator" || $this->_sRoleName == "superadministrator")) {
             if ($oModelOrderJournal->deleteRow($nOrderId)) {
                 $bJson = true;
             }
         }
     }
     header("Content-type: application/json");
     echo Zend_Json::encode($bJson);
     exit;
 }
 public function validateformAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper("layout")->disableLayout();
     $oCsrfSession = new Zend_Session_Namespace("Zend_Form_Element_Hash_salt_csrf_token");
     $sClassName = $this->_getParam("form_name");
     $oCsrfSession->hash = $this->_getParam("hash");
     $oObjectReflection = new ReflectionClass($sClassName);
     $oFormInstance = $oObjectReflection->newInstanceArgs();
     if (in_array($sClassName, array("Borrower_Form_OrderSettings", "User_Form_OrderSettings"))) {
         $oModelOrderJournal = new User_Model_OrderJournal();
         $nOrderId = $this->_getParam("order_id");
         $oOrderJournal = $oModelOrderJournal->getRow($nOrderId);
         if (isset($nOrderId) && is_numeric($nOrderId) && isset($oOrderJournal->order_status_id) && is_numeric($oOrderJournal->order_status_id)) {
             $oFormInstance->getOrderFields($oOrderJournal->order_status_id, $oOrderJournal->is_journal_collection);
         }
     }
     if (is_array($this->_getParam("valid"))) {
         $aElement = array();
         foreach ($this->_getParam("valid") as $aValue) {
             $aElement["valid"][$aValue["name"]] = $aValue["value"];
         }
         if (is_array($this->_getParam("remove"))) {
             foreach ($this->_getParam("remove") as $aValue) {
                 if ($oFormInstance->getElement($aValue["name"])) {
                     $oFormInstance->removeElement($aValue["name"]);
                 }
             }
         }
         $oFormInstance->isValid($aElement["valid"]);
     } elseif ($oFormInstance->getElement($this->_getParam("element_name"))) {
         $oFormInstance->getElement($this->_getParam("element_name"))->isValid($this->_getParam("element_value"));
     }
     $aJson = $oFormInstance->getMessages();
     header("Content-type: application/json");
     echo Zend_Json::encode($aJson);
     exit;
 }
 public function setsettingsAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper("layout")->disableLayout();
     $aJson = null;
     $oModelOrderJournal = new User_Model_OrderJournal();
     $oFormOrderSettings = new User_Form_OrderSettings();
     if ($this->_request->isPost()) {
         $aPostData = $this->_request->getPost();
         $nOrderId = (int) $aPostData["order_id"];
         $aData = $aPostData["param"];
         if (is_numeric($nOrderId)) {
             $oOrderJournal = $oModelOrderJournal->getRow($nOrderId);
             $aOrderFields = $oFormOrderSettings->getOrderFields($oOrderJournal->order_status_id, $oOrderJournal->is_journal_collection);
             foreach ($aData as $sKey => $sValue) {
                 if (!in_array($sKey, $aOrderFields["write_able"])) {
                     unset($aData[$sKey]);
                 }
             }
             if ($oOrderJournal->order_status_id == 2) {
                 $sValue = $aData["amount"];
                 $nValue = (double) preg_replace(array("/\\,/"), array("."), $sValue) * 100;
                 if (is_numeric($nValue)) {
                     $aData["amount"] = $nValue;
                 } else {
                     $aData["amount"] = null;
                 }
             }
             $aData["order_status_id_is_finish"] = 1;
             $aData["modified_date"] = time();
             $aJson = $oModelOrderJournal->saveOrder($nOrderId, $aData);
         }
     }
     header("Content-type: application/json");
     echo Zend_Json::encode($aJson);
     exit;
 }
 public function setsettingsAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper("layout")->disableLayout();
     $aJson = null;
     $oModelOrderJournal = new User_Model_OrderJournal();
     //$oModelSybase = new User_Model_Sybase();
     $oFormOrderSettings = new Borrower_Form_OrderSettings();
     if ($this->_request->isPost()) {
         $aPostData = $this->_request->getPost();
         $nOrderId = $aPostData["order_id"];
         $aData = $aPostData["param"];
         if (is_numeric($nOrderId)) {
             if ($this->_nUserId == $oModelOrderJournal->getOrderUserId($nOrderId)) {
                 $oOrderJournal = $oModelOrderJournal->getRow($nOrderId);
                 //$aItemInfo = $oModelSybase->getItemStatusAndRequestable($oOrderJournal->item_id);
                 $aOrderFields = $oFormOrderSettings->getOrderFields($oOrderJournal->order_status_id, $oOrderJournal->is_journal_collection);
                 if ($oOrderJournal->order_status_id == 1) {
                     // && !in_array($aItemInfo["item_status"], array("csa", "o"))) {
                     foreach ($aData as $sKey => $sValue) {
                         if (!in_array($sKey, $aOrderFields["write_able"])) {
                             unset($aData[$sKey]);
                         }
                     }
                     $aData["order_status_id_is_finish"] = 1;
                     $aData["modified_date"] = time();
                     //$oModelSybase->setItemStatusAndRequestable($oOrderJournal->item_id, "article", "0");
                     $aJson = $oModelOrderJournal->saveOrder($nOrderId, $aData);
                 } else {
                     if ($oOrderJournal->order_status_id == 1) {
                         // && in_array($aItemInfo["item_status"], array("csa", "o"))) {
                         $nNewOrderStatusId = 7;
                         $oModelOrderJournal->changeStatus($nOrderId, $nNewOrderStatusId);
                         $aJson = "not_requestable";
                     } else {
                         if ($oOrderJournal->order_status_id != 1) {
                             $aOrderFields = $oFormOrderSettings->getOrderFields($oOrderJournal->order_status_id);
                             foreach ($aData as $sKey => $sValue) {
                                 if (!in_array($sKey, $aOrderFields["write_able"])) {
                                     unset($aData[$sKey]);
                                 }
                             }
                             $aData["order_status_id_is_finish"] = 1;
                             $aData["modified_date"] = time();
                             $aJson = $oModelOrderJournal->saveOrder($nOrderId, $aData);
                         }
                     }
                 }
             }
         }
     }
     header("Content-type: application/json");
     echo Zend_Json::encode($aJson);
     exit;
 }
 public function indexAction()
 {
     $oXServer = new AppCms2_Controller_Plugin_XServer();
     //$oModelSybase = new Borrower_Model_Sybase();
     $oModelOrderStatus = new User_Model_OrderStatus();
     $oModelOrderJournal = new User_Model_OrderJournal();
     $oModelVOrderJournal = new Borrower_Model_VOrderJournal();
     $oModelOrderChangeLog = new User_Model_OrderChangeLog();
     $oModelOrderJournalOrderChangeLog = new User_Model_OrderJournalOrderChangeLog();
     $oSuccessSession = new Zend_Session_Namespace("success");
     $aData = null;
     $nItemHashGet = $this->_request->getParam("new");
     $nOrderJournalId = $this->_request->getParam("open");
     $nItemHashSession = $oSuccessSession->bIsNew;
     if (isset($nItemHashGet)) {
         $nItemHash = $nItemHashGet;
     } else {
         if (isset($nItemHashSession)) {
             $oSuccessSession->bIsNew = false;
             $nItemHash = $nItemHashSession;
         }
     }
     if ($oSuccessSession->bIsSave === true) {
         $oSuccessSession->bIsSave = false;
         $oSuccessSession->bIsNew = false;
         $oSuccessSession->nNewOrder = 0;
     }
     if (isset($nItemHash) && is_numeric($nItemHash)) {
         $aJournalSettings = $oXServer->getJournalSettings($nItemHash);
         if ($aJournalSettings) {
             $aData["user_id"] = $this->_nUserId;
             $aData["order_status_id"] = 1;
             $aData["item_id"] = $aJournalSettings["item#"];
             $aData["call_id"] = $aJournalSettings["call"];
             $aData["csa_call_id"] = $aJournalSettings["csa_call"];
             $aData["location"] = $aJournalSettings["location"];
             $aData["is_journal_collection"] = 1;
             $aData["collection"] = null;
             $aData["journal_title"] = $aJournalSettings["processed"];
             $nTime = time();
             $aData["created_date"] = $nTime;
             $aData["modified_date"] = $nTime;
             $nOrderJournalId = $oModelOrderJournal->saveNewOrder($aData);
             if ($nOrderJournalId) {
                 $oSuccessSession->bIsSave = true;
                 $oSuccessSession->bIsNew = false;
                 $oSuccessSession->nNewOrder = $nOrderJournalId;
                 $nOrderChangeLogId = $oModelOrderChangeLog->addRow(array("order_change_type_id" => 1, "user_id" => $this->_nUserId, "date" => $nTime));
                 $oModelOrderJournalOrderChangeLog->addRow(array("order_journal_id" => $nOrderJournalId, "order_change_log_id" => $nOrderChangeLogId));
             }
         }
     } else {
         if (isset($nOrderJournalId) && is_numeric($nOrderJournalId)) {
             $oSuccessSession->bIsSave = true;
             $oSuccessSession->bIsNew = false;
             $oSuccessSession->nNewOrder = $nOrderJournalId;
         }
     }
     $aAllStatuses = $oModelOrderStatus->getAll()->toArray();
     if (count($aAllStatuses)) {
         foreach ($aAllStatuses as $nKey => $aValue) {
             $aAllStatuses[$nKey]["count"] = $oModelVOrderJournal->getUserCount($this->_nUserId, $aValue["id"]);
         }
     }
     $this->view->aAllStatuses = $aAllStatuses;
 }
 public function statusAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper("layout")->disableLayout();
     if ($this->_request->isPost()) {
         $aPostData = $this->_request->getPost();
         $sHash = md5($aPostData["transaction_id"] . $aPostData["merchant_id"] . $aPostData["order_id"] . $aPostData["product_id"] . $aPostData["user_id"] . $aPostData["amount"] . $aPostData["descr"] . $aPostData["client_ip"] . $aPostData["time"] . $this->_sAuthKey2);
         if ($sHash === $aPostData["hash"]) {
             $oModelOrderPayment = new User_Model_OrderPayment();
             $oModelOrderJournal = new User_Model_OrderJournal();
             $oModelOrderFile = new User_Model_OrderFile();
             $oModelOrderCart = new Borrower_Model_OrderCart();
             $oModelOrderJournalOrderCart = new Borrower_Model_OrderJournalOrderCart();
             $oModelVOrderPaymentHistory = new User_Model_VOrderPaymentHistory();
             $sPathOld = APPLICATION_PATH . "/../files_scanned/";
             $sPathNew = APPLICATION_PATH . "/../../public_html/files_scanned/";
             $nOrderPaymentId = (int) $aPostData["order_id"];
             $nUserId = (int) $aPostData["user_id"];
             $nAmount = (int) $aPostData["amount"];
             $oOrderPayment = $oModelOrderPayment->getRow($nOrderPaymentId);
             if ($oOrderPayment->user_id === $nUserId && $oOrderPayment->amount === $nAmount && $oOrderPayment->is_ending !== 1) {
                 $oDb = Zend_Db_Table::getDefaultAdapter();
                 try {
                     if (!@is_dir($sPathNew)) {
                         if (!@mkdir($sPathNew, 0777)) {
                             throw new Zend_Exception();
                         }
                     }
                     if (!@is_dir($sPathOld)) {
                         throw new Zend_Exception();
                     }
                     $oDb->beginTransaction();
                     $oOrderJournal = $oModelVOrderPaymentHistory->getOrderJournal($nOrderPaymentId);
                     foreach ($oOrderJournal as $oRow) {
                         $nOrderJournalId = $oRow->order_journal_id;
                         if (!@is_dir($sPathNew . "user_id_" . $nUserId)) {
                             if (!@mkdir($sPathNew . "user_id_" . $nUserId, 0777)) {
                                 throw new Zend_Exception();
                             }
                         }
                         $oOrderFile = $oModelOrderFile->getRow($oRow->order_file_id);
                         if (!@copy($sPathOld . $oOrderFile->name, $sPathNew . "user_id_" . $nUserId . "/" . $oOrderFile->name)) {
                             throw new Zend_Exception();
                         }
                         $oModelOrderJournal->setOrderPaymentSuccess($nOrderJournalId);
                         $oMail = new AppCms2_Controller_Plugin_Mail();
                         $oMail->sendBorrowerOrderStatusInfo($nOrderJournalId, 5);
                     }
                     $oModelOrderPayment->editRow($nOrderPaymentId, array("is_ending" => 1, "date_is_ending" => time()));
                     $nOrderCartId = $oModelOrderCart->getOrderCartId($nUserId);
                     $oModelOrderJournalOrderCart->deleteCartJournals($nOrderCartId);
                     $oDb->commit();
                     echo "ACK";
                 } catch (Zend_Exception $e) {
                     $oDb->rollBack();
                 }
             }
         }
     }
     exit;
 }