Exemplo n.º 1
0
 public function reportAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->getHelper("layout")->disableLayout();
     $oPayU = new AppCms2_Payments_PayU();
     $oModelOrderPayment = new User_Model_OrderPayment();
     $oModelResponse = new User_Model_Response();
     $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/";
     if ($this->_request->isPost()) {
         $aPostData = $this->_request->getPost();
         if ($oPayU->getResponse($aPostData)) {
             $aPaymentStatus = $oPayU->getPaymentStatus();
             $sOrderId = $aPaymentStatus["order_id"];
             $sSessionId = $aPaymentStatus["session_id"];
             $nAmount = $aPaymentStatus["amount"];
             $oOrderPayment = $oModelOrderPayment->findOrderPayment($sOrderId, $sSessionId, $nAmount);
             if (isset($oOrderPayment)) {
                 $nOrderPaymentId = $oOrderPayment->id;
                 $nUserId = $oOrderPayment->user_id;
                 $oModelResponse->setResponse($nOrderPaymentId, $aPaymentStatus);
                 if ($aPaymentStatus["status"] == "1") {
                     //nowa
                     $oModelOrderPayment->setDateIsStarting($sOrderId, $sSessionId, $nAmount);
                 } else {
                     if ($aPaymentStatus["status"] == "2") {
                         //anulowana
                     } else {
                         if ($aPaymentStatus["status"] == "3") {
                             //odrzucona
                         } else {
                             if ($aPaymentStatus["status"] == "4") {
                                 //rozpoczęta
                             } else {
                                 if ($aPaymentStatus["status"] == "5") {
                                     //oczekuje na odbiór
                                 } else {
                                     if ($aPaymentStatus["status"] == "7") {
                                         //odrzucona
                                     } else {
                                         if ($aPaymentStatus["status"] == "99") {
                                             //zakończona
                                             $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();
                                                 if ($oModelOrderPayment->getDateIsEnding($sOrderId, $sSessionId, $nAmount) !== 1) {
                                                     $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->setDateIsEnding($sOrderId, $sSessionId, $nAmount);
                                                     $nOrderCartId = $oModelOrderCart->getOrderCartId($nUserId);
                                                     $oModelOrderJournalOrderCart->deleteCartJournals($nOrderCartId);
                                                     $oDb->commit();
                                                 }
                                             } catch (Zend_Exception $e) {
                                                 $oDb->rollBack();
                                             }
                                         } else {
                                             if ($aPaymentStatus["status"] == "888") {
                                                 //błędny status
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     echo "OK";
     exit;
 }