Пример #1
0
 public function packageAction()
 {
     // 		trigger_error('In ' . __METHOD__ . '', E_USER_NOTICE);
     $oRequest = App_Request::getInstance();
     if (0 == $oRequest->getParam('package_id', 0)) {
         header('Location: ' . App_Request::getReferer());
         trigger_error('Missing package_id :: redirecting to: ' . App_Request::getReferer(), E_USER_NOTICE);
     }
     $oPackageModel = new Model_Package();
     $oPackageModel->setOption('package_id', $oRequest->getParam('package_id'));
     if ($oRequest->getParam('assign_pick', false)) {
         $oPackageModel->setOption('package_id', $oRequest->getParam('package_id'))->setOption('courier_pick_id', $oRequest->getParam('assign_pick'));
         $oPackageModel->update();
         header('Location: ' . App_Request::getReferer());
         trigger_error('assign_pick completed :: redirecting to: ' . App_Request::getReferer(), E_USER_NOTICE);
         return;
     }
     if ($oRequest->getParam('assign_deliver', false)) {
         $oPackageModel->setOption('package_id', $oRequest->getParam('package_id'))->setOption('courier_deliver_id', $oRequest->getParam('assign_deliver'));
         $oPackageModel->update();
         header('Location: ' . App_Request::getReferer());
         trigger_error('assign_deliver completed :: redirecting to: ' . App_Request::getReferer(), E_USER_NOTICE);
         return;
     }
     if ('' != $oRequest->getParam('set_status', '')) {
         $this->view->status_form = true;
         $this->view->package_log_type = $oRequest->getParam('set_status');
         $this->view->package_id = $oRequest->getParam('package_id');
         $this->view->referer = $oRequest->getPost('referer', App_Request::getReferer());
         $oPackage = $oPackageModel->getById();
         if ('pick' == $oPackage->package_payment_method && 'picked' == $oRequest->getParam('set_status', '')) {
             $this->view->show_payment = true;
         }
         if ('deliver' == $oPackage->package_payment_method && 'delivered' == $oRequest->getParam('set_status', '')) {
             $this->view->show_payment = true;
         }
         if (0 != $oRequest->getPost('package_id', 0)) {
             try {
                 if (('pick_error' == $oRequest->getPost('package_log_type') || 'deliver_error' == $oRequest->getPost('package_log_type') || 'other_error' == $oRequest->getPost('package_log_type')) && '' == $oRequest->getPost('package_log_info', '')) {
                     throw new Exception('Missing `package_log_info` with problem description');
                 }
                 if ('pick' == $oPackage->package_payment_method && 'picked' == $oRequest->getParam('set_status', '') || 'deliver' == $oPackage->package_payment_method && 'delivered' == $oRequest->getParam('set_status', '')) {
                     if (0 == $oRequest->getPost('package_payment', 0)) {
                         throw new Exception('Payment is required for this action');
                     }
                     $oPackageModel->setOption('user_id', App_Auth::getInstance()->getIdentity()->user_id)->setOption('package_log_type', 'payment')->setOption('package_log_info', '')->updateLog();
                     $oPackageModel->setOption('package_payment_received', 1)->update();
                 }
                 $oPackageModel->setOption('user_id', App_Auth::getInstance()->getIdentity()->user_id)->setOption('package_log_type', $oRequest->getPost('package_log_type'))->setOption('package_log_info', $oRequest->getPost('package_log_info', ''))->updateLog();
                 header('Location: ' . $oRequest->getPost('referer'));
             } catch (Exception $e) {
                 trigger_error('Error while updating package log: ' . $e->getMessage(), E_USER_WARNING);
                 $this->view->update_error = true;
             }
         }
     }
 }
Пример #2
0
 public function payAction()
 {
     $oRequest = App_Request::getInstance();
     if (0 != $oRequest->getParam('tracking_code', 0)) {
         $oPackageModel = new Model_Package();
         $oPackageModel->setOption('package_tracking_code', (int) $oRequest->getParam('tracking_code'));
         $oPackage = $oPackageModel->getByTrackingCode();
         if ('instant' == $oPackage->package_payment_method) {
             $oPackageModel->setOption('package_id', $oPackage->package_id);
             $oPackageModel->setOption('package_payment_received', 1);
             try {
                 if ($oPackageModel->update()) {
                     $this->view->success = true;
                 } else {
                     $this->view->success = false;
                 }
             } catch (Exception $e) {
                 $this->view->success = false;
                 trigger_error('Error while paying: ' . $e->getMessage(), E_USER_WARNING);
             }
             $this->view->payment_type_mismatch = false;
         } else {
             $this->view->payment_type_mismatch = true;
         }
     }
 }